{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "Z7apiBJbNP0R" }, "source": [ "Son değiştirilme tarihi:21.09.2024" ] }, { "cell_type": "markdown", "metadata": { "id": "r2qH7XpGNP0U" }, "source": [ "ÖNSÖZ" ] }, { "cell_type": "markdown", "metadata": { "id": "N2GwLaANNP0V" }, "source": [ "NOT:Dokümanda zaman zaman güncellemeler olacağı için arada bir güncel versiyon kontrolü yapmanızı tavsiye ederim.\n", "
\n", "\n", "\"nbviewer\" üzerinden görüntülüyorsanız, dosyayı kaydetmek için sayfanın sağ üst köşesindeki download butonuna tıklayın, açılan sayfada herhangi bir yere sağ tıklayın ve `farklı kaydet` diyerek dosyayı istediğiniz klasöre kaydedin. Dosyayı açabilmek için Jupyter'in kurulması gerekmekte olup, yeni başlayan biriyseniz aşağıda kurulumla ilgili detayları inceleyin.\n", "
" ] }, { "cell_type": "markdown", "source": [ "# Kurulumlar" ], "metadata": { "id": "mCZjqiN8QNWi" } }, { "cell_type": "markdown", "metadata": { "id": "FDY8Dhe4NP0X" }, "source": [ "**EDIT(09.2024):** Ben artık sadece [Colab](https://colab.research.google.com/) kullanıyorum. Yapay zeka desteği ile tartışılmaz tek gerekli araç bu olmuştur. İstediğiniz işi basit promptlarla yaptırmak çok kolay.\n", "\n", "\n", "![Ekran Görüntüsü - 2024-09-21 18-32-19.png](data:image/png;base64,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)\n", "\n", "Oluştur'a tıkladıktan sonra, promptumuz yazıyorum ve voila!\n", "\n", "![Ekran Görüntüsü - 2024-09-21 18-33-34.png](data:image/png;base64,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)\n", "\n", "Colab kullanma imkanı olmayanlar için aşağıdaki eski notlarım geçerlidir.\n", "\n", "
\n", "\n", "Python'a ilk kez başlıyorsanız önce \"Anaconda\" kurulumu yapmanız gerekmektedir. Bu işlemi şu sayfadan öğrenebilir veya hemen alttaki videodan izleyebilirsiniz.\n", "\n", "**NOT: Normalde Anaconda birçok paketi ve programı baırndırdığı için bilgisayarınızda çok yer kaplamakta olup ilerde anacondayı kaldırıp pure python kurulumu yapmanızı, ve sadece ihtyiacınız olan paketleri kurmanızı tavsiye ederim. Ancak herşeyin hazır gelmesi sebebiyle ilk başta anaconda ile başlamanız yerinde oalcaktır. Disk sorununuz yoksa anaconda ile devam da edebilirsiniz.**\n", "\n", "Anaconda ile birlikte Python environment'ına ek olarak Jupyter notebook uygulaması ve Spyder gibi IDE'ler de kurulacaktır. Ayrıca birçok önemli kütüphane(numpy, pandas, sklearn gibi) kurulmuş olacak. Ben de bu dokümanı Jupyter üzerinde hazırladım. O yüzden Jupyter ağırlıklı gideceğiz. Spyder'ı, kurcalayarak ve Youtube'da birkaç video izleyerek kendiniz de öğrenebilirsiniz.\n", "\n", "Bu notebookta detaylı Jupyter kullanımı olmayacak. Her detayı vermekten ziyade bir başucu rehberi hazırlamayı amaçladım. Yani tam bir eğitim dokümanından ziyade büyük bir cheatsheet(hızlı başvuru kaynağı) tadında bir doküman bulacaksınız. Dokümanın en altında süper konsantre bir cheatsheet daha bulacaksınız.\n", "\n", "Gereksiz açıklamalarla dokümanı şişirmek istemedim. Çoğu durumda kodları çalıştırdığınızda neyin ne olduğunu anlayabileceksiniz. Anlaşılması zor durumlar için ilave açıklamalar olacaktır.\n", "\n", "Bununla birlikte bir nebze de olsa programcılık dünyasına aşina olmanızda fayda var. Eğer tamamen sıfır noktasındaysanız bu doküman size biraz ağır gelebilir. Önce başka bir kaynaktan temelleri(değişken, fonksiyon, algoritma, nesne v.s) öğrenin, bu dokümanı ise cheatsheet olarak kullanın." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:10:52.681419Z", "start_time": "2021-05-15T15:10:52.225681Z" }, "id": "FTLeQQOGNP0X", "outputId": "09292b1d-37f4-40f4-9ead-888a24b71f92", "colab": { "base_uri": "https://localhost:8080/", "height": 321 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ], "image/jpeg": "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fw+NPRkv4fGnCy5TonGwZxqsOlZnoyX8PjT0ZL+HxpwsuU6JxsGcarCNWhewfkKhPRkv4fmqbXsH5Cuns6J7C7eFMFxdsTxyBu4QccPZfaVR/W+57sPyv9dPW+57sPyv9dZbyh76LBc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/10vKHvolz2joNVeKVR/W+57sPyv8AXT1vue7D8r/XS8oe+iXPaOg1V4pVH9b7nuw/K/109b7nuw/K/wBdLyh76Jc9o6DVXilUf1vue7D8r/XT1vue7D8r/XS8oe+iXPaOg1VdpSleeXrEpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURKUpREpSlESlKURf/9k=\n" }, "metadata": {}, "execution_count": 1 } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('JEv5oigBUL0')" ] }, { "cell_type": "markdown", "metadata": { "id": "Y0Q9eLeeNP0Z" }, "source": [ "# Jupyter" ] }, { "cell_type": "markdown", "metadata": { "id": "wNbDnGGmNP0a" }, "source": [ "## Rehber" ] }, { "cell_type": "markdown", "metadata": { "id": "5Qw_PCoqNP0a" }, "source": [ "### Jupyter kullanırken neleri bilmenizde fayda var?" ] }, { "cell_type": "markdown", "metadata": { "id": "LkyZoJggNP0b" }, "source": [ "* Kısayol tuşları(Jupyter'de H tuşuna basınca çıkar)-->bunları mutlaka kullanın, büyük hız kazandırır. Herşeyi yukarıdaki menülerden yapmaya kalkarsanız yavaş ilerlersiniz.\n", "* magic functions(Googlelayın)-->Bir süre sonra, şimdi değil\n", "* smart suggestions(tab, tab+tab)-->sınıflar ve metodlar hakkında bilgi alırsınız, kod pratiğine başlayınca deneyin. Aşağıda print için örnek ekran görüntüleri var.\n", "* nbextensions ve jupyter_helpers-->sol paneldeki içindekiler ve indeksleme dahil birçok güzellik\n", "* help, dir ile yardım alınır-->deneyin(aşağıda örnek var)\n", "* type fonksiyonu ile sık sık bir değişkenin tipini öğrenmeniz gerekecek -->deneyin\n", "* naming convention(pep 0008)-->Kritik değil ama bence önemli, googlelayın\n", "* jupyteri ektin kullanma rehberleri(medium v.s)-->Hemen değil ama bir süre sonra googlelayın\n", "* https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/\n", "* https://towardsdatascience.com/productivity-tips-for-jupyter-python-a3614d70c770" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "YGarWWj4NP0c", "outputId": "32df3a5a-c32d-4825-ff75-a5075895ed41", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " \n" ] } ], "source": [ "a=1\n", "liste=[]\n", "print(type(a),type(liste))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "Eze8T8J8NP0d", "outputId": "8210c7f1-0e3f-4f5f-dc24-522d3a6d23ba", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Help on built-in function print in module builtins:\n", "\n", "print(...)\n", " print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n", " \n", " Prints the values to a stream, or to sys.stdout by default.\n", " Optional keyword arguments:\n", " file: a file-like object (stream); defaults to the current sys.stdout.\n", " sep: string inserted between values, default a space.\n", " end: string appended after the last value, default a newline.\n", " flush: whether to forcibly flush the stream.\n", "\n" ] } ], "source": [ "help(print) #print fonksiyonu hakkında yardım" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "id": "0Ep6IF5WNP0e", "outputId": "bfda99a0-a755-4341-ccce-85703b543300", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['clear',\n", " 'copy',\n", " 'fromkeys',\n", " 'get',\n", " 'items',\n", " 'keys',\n", " 'pop',\n", " 'popitem',\n", " 'setdefault',\n", " 'update',\n", " 'values']" ] }, "metadata": {}, "execution_count": 4 } ], "source": [ "[x for x in dir(dict) if not \"__\" in x] #dictionary nesnesinin property ve metodları. tek başına dir(dict) yapsaydım\n", "#çok uzun bi liste çıkardı. Biraz aşağıda göreceğimiz 'list comprehension' yönteminden faydalanarak listeyi daralttım" ] }, { "cell_type": "markdown", "metadata": { "id": "EE31_wWENP0f" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "vAN_wAqdNP0f" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "dWpOrXCKNP0f" }, "source": [ "Anacondayı kurduktan sonra yukarda bahsettiğim nbextensionsı kurar ve bu notebooku kendi pcnize indirip jupyter içinden açarsanız aşağıdaki gibi İçindekiler tablolu ve indeksli şekilde görebilirsiniz. Kurulumun nasıl yapılacağını https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html sayfasından görebilirsiniz. Onun öncesinde biraz aşağıdaki Modül, Package, Class bölümüne bakıp kavramlar hakkında kısa bir bilgi edinebilirsiniz. (Bu işlem size karışık gelirse bu aşamayı pas geçebilir ve biraz daha deneyim kazandıktan sonra tekrar denersiniz. Ancak benim tavsiyem, bikaç kez deneyin ve kurmaya çalışın, inanın çok faydasını göreceksiniz)" ] }, { "cell_type": "markdown", "metadata": { "id": "7wfxcfQTNP0f" }, "source": [ "![resim.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjoAAAEECAYAAAAh0J6AAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF7sXQV4VEcXPZuNu5AEQiAkQIK7uxWHAsUKBVoorsWLW38otEVK8RaXtkCxAgWKu1uAQCAkREiIe7Iy/5232WR3IyQUWmTuxyP73vh5dt69d+7I4uPjGTKEMc1P7V9+WK1WQyaTabOIvwIBgcC/gAC/7+Li4rLde/xe5GlctL/5X37P8o2naX/zvyqVSjrG/1pbW8PFxSWz/L8wDNGEQEAgIBD4zxEwNjIykjrBH4raB6aW2PBjcrn8P++k6IBA4ENEgN+bOX1kaO9Zjon2t/be1d7LWtKje3/z37plP0RMxZgFAgKBDw8BiehoSY72IakLA08TIhAQCPz7CHDykhMx0b0ntb8N72HD+5ZrdQTR+ffPoWhRICAQ+O8RMOYPU92vQcMu5fRFaZhH7AsEBAKvDwHtPce1qTndf7kRHV2yw3ujvbe1fznRERra13eeRE0CAYHAu4GAnulKt8uGX4TvxnBELwUC7wcCnJQUVKOjq93RvX+1HzJ51fl+oCZG8coIyIxgamYKjSMD+WYq0pCu4tp8Om6uc1yZjnSlxkfsldt6SwrK5CYwM8lyzVCkpUIzZGOYmxpn9JJBkZZOx4Vl4y05ba/UDUmjw0X7MNTWoj0uCM8r4SoKCQReGQHde1L7O7+V6ebnvw3r0pqq81ufyPf+IyCTkeZQlYCrR9bjTrAFoExChfaDUNuVxq6OwaXfj+JuUgqgcEDFRo1QtbQdmEKFd/nVb0Ta0pSIezh2+hLCU4xhZmmNxu26ooiFGvJEf6z45RSszeVItS2F9i1rwdXMCEr1uzzi9/86zmuEEtHRkpmcHqo5HcurQpEmEBAI/DMEDMlJQWoTRKcgaIm8HAEjOWkvUsKxaeYQ/HRRg8ngY0NR241+y4Kxvn9vrE7kL3k3DP/pL1T3caJCNMPvnYVPBhNjY4T77cWEPtNxX0kDMXPEoaCucLcmnVbMKQwfOkgzOpcuOH5rM9ysTKFWqt7ZEX/oHZf0cy8jM0Kr86FfJmL8/wUCWlNTQdrOieiI+7cgCH6YeWVGcpiRMkcrZiYZv/hxKysgMZEOWEmmHm4DeB90G0bGZrCkoSGOeI61FYy1Vixj0ywgrCxgwmcmiwgrWZi8g78yfXS0fc8pbs7LiNA7OG7RZYHAW40Av+f4ltOsK917VPubkxntxssZkhvtjKvc6nyrwRCde6MIaLwXjGHnLIeVXSEgORz2ZtomTWDv5g4rZRiQ5Ao7aw0DkvFQBW+0V2++crmJDVyLWsBWZoFCRQrDVEtmaB9GZnC1N0V0YUeYSgQo53vxzfdStPA6EJBRILFs5Jw/JAW5eR3wijoEAq+GACcwMTExORIdXRKj/a0lOboBA/lv7aZUKmFrawtXV1cRMPDVTsl7XYoTl/wqLRgPSpkLGjnWw+g6zKVATvlzr5+Tjbx6yQNm5tJQDv3N6SMih2x0KPd6819HzjXz+1PIm0cg0xn5zTclWhAICAQKgoBWq2NYRvdDJKePEu1HirZ8bvUY1iv2P1wEtPQh/O5pnLryCHfvXkREsjGYyholfLxQo2Er1KvlRcYr0m0Q2WA5EAqJtISdxdTvtyMykSLqq9JgVaMb5gxqAyvu02NQRj+/Eso0GzTqNQS9PyoFOZEj3YlOWkKRGH4XF85cxtXrF/A02hgyZgHnUkVRp25HNGxQGracCOVBrLRnmLctiSoWD8+dw/4rt8ln5ykS5DIoLZ1Rt1JdVGxSDzU97PmIactOoHifkh5swpxVpxCbagZ5flVcahXSzO3ReMgM9C1jJT48tCflDf41NlRx87aENucNIi6qFgjkAwHtPWh4f+oe171P89LyaNN0CVA+uiCyfAAIaK+JhPPL8dnIb3ApMAWxsYlIoyVDskQGa/tCsHErjfbDF2LVsPqSZiXbtckLRN/GiqUrEMsdfLms+xtFKj/C+Dqm9F7JqpH/knb18psioVR7fEpEhyhMpl+M1EdlEJYOGYCl+64hIj4eSWn6jsFWtgtg5VYO/WavxsLuZWAk46Zc/fa0e5oxq3F66RCM/3EfAl4kIDI+WS/zemMr2Djaws2zAUYuWY8hdTjF06wgoJsx9dlB/Lj0V9CctAKKBZLaTZSIjnjfFhC6V8hOpFQTFl7LmF8OusZ3gOcz3F6hfVFEICAQyAOB3O4xw/tUd1/7W/uX39uG+fNoUiR9IAhorok47B1VDrb1R2Lf9ecIj4ozIDkcDIbE2BcIu3cea4c3gNypFc4naT6IsxmSKDaNlbXu0SBM+GQU4qkWQ6IjwayX3xoWFL9Gt7TUx5iTqGPvgTE/HyNSEpON5PBqkuIjEfHgNBb1KIsyY/bw1nIwxWWEW0i7gU6OcjQesxZXHodnIzm8PhVNsY+NCMO9S79jaF1rlBm+Ay94rdkGIcMrLZJkYUVOztnQ400LeQMIaKMiSVXn196ojAnA5Zt+ePEiHmmWdnAu4oYalSvCxlicuDdwjkSVHyAC/IGq3QyHr3vcMI/ug5j/5ve01g9Am5b9YW3Ygtj/MBCIxvYJbdHrx/t6w3UtXRM1KxQDhY7hqzojLeE5rpy+iPD0jGzRR1C/eg/s2bsVH/voE5Mc2AUQuho9l03DwVHu2clOtlcGXbO8GX79S81FYelnLXGJiJVWrN0roFF1H1gYk8qGzGHpiSE4ffQynzwlid/SzhjVUYFlzQz6xhNjzmAExQLaG6Otjf+1QrVGjVHMyUIyP8nVSoQ9voELt4Og1Rv5rfgULZKj8Meq4fAyy+q0WeH66P5pPKJSzHM2XclMYGcej4NbDyFct8l0WxSz02iJxP2oC8wb+k3qx/yLOpqdWDqFfdKgLLOkJbKoS9Jm5FSUNes0iP1w4AFT5L+2f5wzPPAOC0v8x9Xkq4Kgs5dZTL5yikwCgX+OAJ8kEBkZyaKjo7Nt/HhUVJS0vXjxQsrH/0ZERLCwsDBpCw0NZcHBwSwoKIg9ffqU+fv7S+lCBAJaBO5uGscKZzzDpWe5iSPrMH4Vu/DY8EmXyC7u/I619LHOfObz/EU/nsIepRrg+WANK2pPdiPdevlvp2ZsU0AO2Ovld2R9F55lSp1s6mtzWFHzrHeNe52RbPfVUIOKktne+W2Yi06bFtWms6eGzamC2cIBlfT6Ji/WiE3dcJBFputnTg27w7Ys6Me8LLPaBmxY3+VnDWt96X7SwXGMIg/ptdt4/EGW8NKSIsPrQoDbWfMt++e2YcRBs1/E2mMmFdjs3Q/zXd+rZ4xni3uXY7U7D2T33jTRSX3Mlg0ox0p7r2HiNfHqZ0yULBgCgugUDC+Ru4AIJN9kIyvqPstlrOWcgyw5j2qSbmxhNUuY6jz/vdjkzY/0S+RGdOgdUevzDdk/Fl9CdB780pnZkTuQhjh5sVEb/HPuoSKQTWik0zcLd7bZ4FUUcnAuq6D7/nKuwJYeD8u5voyjd1Z/zkx0Purh9jk7FU8LQuRTYs9+w8rb6r8zZQ2mMkN+mM/qRLZXRCC/fuII2tYbnacfAtcgVv78e0TpxO14cnA6KPoChQi/i5k/roBfPL8u35xcGu+Jr7beQ3SSEjYa7d8baiwO63p0xaif7+FFqj1s31ArQAIO/K+3pBLVmiJkxeth7uYLiM6YfXj/8G481qqOc+uHdqri8/WaelzqYoVvmpRbbeC8l1sV4rhAQCDw/iMQsv9HLL+TNU5bz3FYMb0NdGIGZgPBskpvrB3ZFtaZKU+w4dAuvNA6HmcroX/g8obZmL3X7yW59JOtbalHmQ4WT3H/7k16WuYgxoXRum03OBuZwoaC/8ntzXEmJDorozoWO37fhruZRyzQ+oulGNGUdFp5SIVB87GgFOljtBK6Aat3B+ZRIisp8c52tO4xFb7cQSlDZDWG4erxecgMU5SvmkSmf4pAPomOGsvHbwO/nn36rcPl9WPhqNOyZ5s5uHl4Dhb9fhZxhxbDx1bf8KqKDcKFE4ewa9d+WlvkKp5EZr8zHp7aim07jsMvgleciJvn/sK+nftw5OxtRGhf8Opk3L19Gkf9NJbTlBeBOLDjEH67FazTm3Q8u3cOB3buxoHDZ3D3aZQBRgoE/3UQ2/74E9ef83pS8PTaafy++w/8deY6wrTu8+o0PLm8A5dDeURQIgqpF/Dr3/txyTcoM/R53LN7OHf4EPbu3o39x87A92mkQVsv3018sAf9KxdCh6nbECAvgnJVq6NOjcqwe3YBM/rWg0/L8fhlSjOUa/MJDjzMvb7QC1swuEdvrDvyCFf/2KfJGB2BG+fO4uGZtfikaX/seaIhPbnXIlIEAgKBDwGBy39vkdQMWik7bTRK5mPglbt/iuJO2rDJwPNjvrgXl/15rqnKHMXdi1MgPu37IADLZ32Hu7H5aCgjS9GaHeCRSXTUOPrd52g3eBGOXrmFoOcJmT40gCmaTdqCCJrSHp+QCGXoI6xukvWWUsX54e5FHV8ke1t0+qJZPoIeFsagH5rodXjbsZMvH0DERYzu8yUuhuhkLdYBmzYsQrUs+F5ej8jxehDIlyYo7QgjFk/3RQU2dU9gvopoMiWxKzvmsx7NfHTUncbMs0Zrtni/vspzamlefzE2aPoqNr5//az8RoVYleYTmaSwTL3NWpQx06krQyXY6idNc3EP2KqJvRktxZKZx6FkTdZ37l4K+6CVSLbORmNDbjxzJft2RCMd+6k9q9R+KrvIbVTJD1hfH32VIyHOfPouZtyce3FVf1bX20WvLy7eDdno1WdYWmZbL/kRdpoNqWkp1VGj3wL2+4lb7FlkLEuOi2BnD6xmU3vUycCd+mFflK15kFt9aWyshB+YmY0TszDJ6rfMwZk5Z6hri7adyR4KnWluIL5Vx4Xp6q06He9dZ75rpP9s+z7XZ4vh0O+yIUXsdJ57ldmS67FZmfRMUW5s+MJf2ZwOxXXyy1itb87nkj+7jw4jr89T45pkf+YbO7BKtVuxbn2+ZMMmz6Fn5zUWmWLY16z95OBf2Uc6ZivbIh3ZNQO/nFxLP12n377RGBafa2aekMgWNNd/NwDebNaB4DxLicQ3h0D+fHSuTNGcaK8WbK1vXlZc/Y4+2TePlc946Q7beJnd9b3G9izsq/HzsSnP5p2OzCzwTU1+45kwCkTOagxZxW7du83+/GkkK22luSFrbtbYUkND/djq3s5Sfzzrtme7z/iyS8/iqB4F2zShlnTcqFx/dubBQ3Z570JWt5Cm/Gd/aV2/YtgWD015mBVhDfvNY8ev3GNnto5nVeSavGXnHpf6FfV4P5vUpIJUp4PbXHbs0U32+DndTZEHmB2/adyrsyV7L7L7D/3ZwaV9NMeIDP50OT+OQ+nswOwuUt02nZboOeBpQTkwrQGjbyEN9taF2ar7uV8It9b0ySQ0vM5sm4k9G7Hhbu4ViJS3CgFBdN6q0/GedSacDTN4RmzJ21VFZ/yR7Gft81OqowSbq/McZwY+N18sv81YxEbmoNeeKzusfRy/xEdH03ASm9vcIvszTadOc/tCrHiJaqzLwO/Z9Rw+5qIvLmI+Ovnt3SayfHM7dkKvLDCAPcvjirg8U+dDPaPNbmv+Dd/VPDr1gSflz3SVljG3z9QIJpqFP+g9+hJJvI+Fc6fBVwFUmX0eP/WtifLlquHjCRtxdgYpSRN8sWTCRFzRm+angFmHMTiycjAqla2ItsO+QtOGdHmSPP7hiOQfVKSIN6oW01g4LexdUL1BOdRyt0VSwGasW3SZcjTA5r9+RgOf0qjZcQIObRwIusmwvcdI3MjUsGpUqUVrNsdPK6aiaY2yaNBrFvr08Zbauv/nFemvo1dDlHGxkX4bm3mjXqnK8HI1B+4dlqYyWljboUixMihTuiTajFqFb4dVoqN3MW/HEalMXsLiHuHYsd2UpS1WLR2eLRZD4G+D0X7eWZiYW8Dc1AS2djaw1gsGkFE7UyKN/HhMaCE6rdWtzOCNGesehWPtgBqajHI5FLROjUqllFiQEIGAQOBDRSAdqYZDz/dDwRgWerFkaDp4ttgyWZWrUsijxrkvtk/20mkxHD16r5Fi61Bhw57ksG+JaceScW/vHLT2diBTWPbXVmpsJIKeXsfuteNQzbwQZp3Vt4+p01Ohb7gvyHPQDPRhqyMZU+Bz6OmNtZ+i4exzeimlRu7GbwNL55BbHPq3EMh+xeTUsoXmZU+RpJCelps9Vr9gfPBJXJf4QlUM7lhZL7FK/6+l/cigBzj/RMdTi47V9vEAUYkMsUE9a42d1ShSDq2rTrpSc1eqKXpnesbBmMvncZqX8rBC5MUDOEq+M4eOnsTFQFqJlipUKffj5iOegQ9Z4+Fb1LUBXC21bclpYbcMK7WS2JkkaVCoNHmZWpF1o5RqCl4s5cFx9KhmD5mVDzqP/BbmHdYhIJYh9PvO2kpz/SuzK4fFp3n0zj/Rq3h2BuPRfbVEVtJSkpGSlo644IfoXSqH6u6thjWFLS/X/2fybCKpOAJ/rOibkdEFX/64GI0LU29To7C6qw+MjZti17OCx/HMoWVxSCAgEHgnEaCPJ8N+54dvSGUUSNJbyoGvY5UHS+KTVqhUq+k7MYymPGklbt9wTNlODpkW5vnwk9GUKttxOg75RSMy4AZWL/oKvTo1R8M61VGuuGtWxdKvKMxu2AIrsr5sYWRqru8ALDPOd7tQp0Df+5LGbNAi3w049D90HbtDj1CV7bMcp5a9/H2QQ3Xi0GtEIH9Ex6caJP+pgFAEPJC8hV8q6c8jECrlcoNTIYNmKCqkJCkKKFP0ebYxDy2eWbsa6bRuiSRURV73Yrr2ygv8C6O7dUDLNm3RtmVTtB72E2L450tiDE4+46Qqqy/6MS3p4tWGPc/jC0XqS5EuuLB9EjpWLy7tIvkh9iyfg8/b1IJXyQrov+Ga5vi/8T9pdPRokqMlpGgXWjG3ofVfdHOkISldP3z6v9FN0YZAQCDwtiDghOJ19fviz8P+5kdYCI4qdJ/ZTnCwzf6hpluV9Gi2rIqRU8eiWObjV4kd3y/EpSAFTKXIhPkXG49KGDT+B2z94xhOnz6Ovw7sw9aV8/FJbTedp/s1rPthtRTNmItZ4SIoqtOESnUTsfn93nviiye63bN00JuMw5PUD4nI9Z+GJ5q5K1Luwm1nYAcFGHTTLSt+/ycI5O8Ks+qEUZ68f/exbddBAxWgpt9BB2fh6+WHEJaxZIiZa2G4S0nBFEHZgP+mZJjCyGvW2DLbt0W+gdDlI3J1hmqn5MfYdPwibly5jIsXr+DW/ccIehaMx0/9MKcenyCu+5LP40sksxfaPPo0q1LPBdh79S4eXjmFXZu+Q//m1aVplyzKF+u/mIY8JkhJNaeGn8TIyiVRnmZZVa9aGaUqVsfIPwKyjz3sAFo3JtNao7XQdeDPzFi6Fy5fvIBtMzpqvtJO/YzZW7Nuy/sbaYZCGBE8uTVaTvkZR09vQMfib3ROfvYxiCMCAYHAW4VA2apZk8R5x379wzd//fM7hwvJOlp4ZzLdF83f86RM12EY3Fp6kUgSde0XfD1rGyJp8dCcJPXpHozoVhpVqtVCtcp1MGDKH9DzdOCFTGzhXrEWeg2ZjJ2bV6J1Re6ooJEw/5MIzJh0a27vA08djVJC4nUc9tXaCHJqPetYxLkN+hk6VJI0+lkShiEtu+Hwc533icsnWLduNirpZ9SvR+z9awjkj+iQLmXs4mGSr0vg9uEo2W4S7kWoyRykQEpyNG6sHwSvdrOxgGIsuFXvjxvkwGJTsiXqNubjuIUlm0/rDejE4mnSvlf5WmhTNsMsVoAhy2QaspLO5JCRZYqLS+2maMJ/PA5GgmsVVKlRE7Vr10DaH6NRppg7KtRfjiTpfswPuZGqlESm1hAcmVEyTWDUyPEhLlKcmlIfzYBJjUbo0mccfj52FXe3ToHGyycs80tCW4/hX1XSM5oq/wT3bl7H9Zu3kVJlCuZ3znoIaPInYfes+fjr9AP4N6um90WSWZ+ZMyrWroPWjaqjiHQwCuv6lYSJdy2UKW6Ncl9sRSoN2cjGFp/06I8WDcvBwSQv3ZhhT8W+QEAg8L4hUKfNl9JK5FoJWDYJp3S0ETmPNx1Ht+zEC+6gmCFe7YmEOOZMVLLVYVwSU5fMRgm+ILgkMThx9BjiEnIOe2Fu4YhnD0Nw68YV3Lh9CdsPboJvXpqnUlXIZzJLf/I8OhZ3IjXeSEZ2ZWiZhwx/Rd50YiwOzP+VnpYvE1/Mm6T/2Tr4k+Y6hV7gl07lsTZQtx5P7PTdiXaaB/LLGhDp/wIC+SQ6ZID6+Aesm9IG/BoNObgQ5V3lMDYxhaWVE6r1X6vRk9jWxLc/zEJV7rll6onhQ2ejAr1THy1ug37LDuHUqSPYML0r2ix9DrjWwch5M+GdV4SqXACoVLeYlBLgdwe/bdiLXScew6JUH/QbV5WOXsPwlp3xO2l1jm75BqOWHABXMn22ZgbKFfj97owKxW0kk1l0zHas2nkMf98JR7Nvd6EsHXx8bCU+G74YB4+dwPFDO7D05+2SJses+1jUz6Xv2sMyI3kmcSK9Lro1c0cMLVin8YBiiA25g+3T+6LfmvNUpAX+nlU9jxoZlk6aCV19kPLRFfg9y1ogRh0billDp+FB/j5i8mhLJAkEBALvOgIuzQdgYLWsUaRG/YmBQ5cjMI/vwID9izDipxM6jsyl0ad1Rzjk+y1C7ZXug9NzG+UPPteyaF+5fGbelFsXsGKXvqOvXkWhtP7is6DMQw62DvCmwIEasUbXTl1ROZOTKXHlz4mYuvFKHn2JwW+Th+PHcB0G6DUI/dpoyVQMdk7pggF6C2cVxqh9p/BJoTyqFUn/PgIFm3UWz06vn8d6tarOSA/DbwlpM3UqwVr1Gs3WnXxosNZVMruz70c2qGPVzLzkfcbKNenB1p/XX69kSilNXbWGrdBZAySULW3hLZWV2axlmZPR46+w9pWdsup0G60JqR13l/0yrRer5pE1FdGieB3W77ujetMj12bE0fFusZRl9SKBrRimmZ6OUlMy8yf7bWX9G2bFgbBo/w2jqNAs6txaNqhNTUbXc2Y/ZEXKsg6DF7Ob0S9HNfHROkbfF6xch06stqOmDseKjViPL4awwf17sYbl7DX12tdjC46GvLTCuzsns1rlvdkXc1axn4Y1zOhTIdZo5Dy2cd4XzKNQJTZ7n3/+Y/y8tEWR4U0iIKaXv0l0Rd0cgVtbxjDnzOUV6Bkks2I1+8xke66H6wOkjGB7lo1kVV3017Aq3m0ue2IYiyZf08VD2edFs56b2vcIzXPNttZVwt/TWZGMsB9SvkJl2fBVR5hO5B6pry/uHGHTu5XPijtGeav2Xam/bI/6OVv2RRmddxHV5+DDBs/cwAINpqTH+J1iCwe1Zja6bcOe9V97MRObRztnsRI6z39YFmVfbrwhLq63EAEZ71NB6ZUiIRyPHgciKp5UjuZWsLNzgKeXJ2xyifjIkl/gvt8TvIhXwdrBCW4lvFHEIHpy8M1j8IuWw9WrPMqVcMlwKlMg/ME9PHweCROrSqhZ0zlzGrYi0h93HkcgQSWHnY0bKlQsluGUqyBW/wRPnjyH0swSTm6lyISTZbflPjovrlzB7SQFChX2RrkyrhpHa/Kjj3h6D75PwqFy9EGLKhoPI45NakQgbvsHQCGzgLWrFyp4Uj+4miclCk8CAhAWQzojmTUc3dzgVaJwvsJ7J4ddwPrFN9Fk5iB4RF3C7KFf4LuD+irSSr1mY+HkYWhVMT+fBwzRYcGwKFIMFiErIHMfTh30xrwL1zC1jjWe+j2Du48Wo4KecZH/30aArzgeExMjrT5uKDxNu+Kx9je/jflGBEnKzn/zNO2mVCpha2sLZ2cKHylEICBdJFHY9XU7dP32kh4elq6lULGkK4z5M46pkJYYiXu3/SXNeKY4dsbeW7vRMesxqUnyWwv3OoMRQrNPibig78J9+GVC/WzhM0KOTkDdlt/hmV7LOeVPxOYepdD3N521v+V2KFPRBw6WJprZ6UxBz24/PArVsamRof/7i4EYW1uu1wKiz2J084ZYdlP3sBwlKlSjd5Kppj6aYRv5zB9+wTpLSFD2kn1X4wS5aWgcqpU4Pb8vOk7ZnrlqOkztUaZyBbiQlUKpNPBL1esFrbieKkfVNhOwYF7HbI7N+h0We68DgVciOq+jYVFHDgioVUhOSgat3gtreillf8XlUCbHQ/wlGQ8jE3NYk7O3/NUryrF2cfDNIyCIzpvHWLTAEVDh+pI+qP7V9nzDYVKuH3x9NyDHyDD5JDo0VRWbhjZCv1W6M1RzIjq8W4mY1cIOs//Oizzodl+OUXueY+nHuX0gRmJMrcJYeiX/s0+bzPkbh6c30/mIVeHcov7oOHET9OlQvmFElQ4rcXjfEBhOjs9/DSJnfhEQr8D8IvVv5CO/HUsbmg7+j0gO76gRHBzsYWctSM6/cdpEGwKBdxcBOaqN2YaUG5sxpF0TlPcuBieKbWMoThRjrFydNpi46hzScyM5vJAqHQlxWiNBHJIp7lrO9MQSn04ch4/1NEK55bfGrGNpODDvCzQsXxbuLtmXV7awIEtByTJo0HYQNt9Jy4Pk8E4WwpLLSlzdNAmdG1dEaXcXCkKoP2JzC1u4eZZFpVb9seECOU3rkRyeVw1lWnKWNscQsHzsKxQqyX4n5M0jIDQ6bx5j0YJAoMAICI1OgSETBV4DAknPfXHtoh/8Am8gOIY8d2nBHnfPQvCp1BTVq3nozdTKsbmo61j885+ITVYS57FGjfY90bFesVy00+m4vXsb9t14ApWJERSpVi/JTy2mx+DO1cu4etcXT0PiyYWAQeHgjmoe3vCqXgmVi+m6KeTYQ4OD6Qi7cxVnbj5ESEgA4lJlUFk6oWppb3hUqoXqJXOrT41n5/dhx4GrSDInk1d+msrMw6BMN4JH5Xbo2a3ayzEtUN0ic04ICKKTEyrimEDgP0ZAEJ3/+ATzmL6hAAAgAElEQVSI5gUCAoH3BoGCEdH3ZthiIAIBgYBAQCAgEBAIfAgICKLzIZxlMUaBgEBAICAQEAh8oAjkK6Tlxj1piE1g0uydpBSGoT3NYWtd4Oh7HyjEYtjvCwJ86rZCocic2l3QcfEp3yYmJpDTSvJCBAICAYGAQODfQSBfRGf51jT4B6lgSksHRESp0bOtKREd8bD+d06RaOVtQYDHoklNTf1HRIfHvxFE5205o6IfAgGBwIeAQL6IjhUtTMY1OJzopKbRg5pWGBciEPjQEOAkRbu96ti1gf5etbwoJxAQCAgEBAIFQ0D46BQML5FbICAQEAgIBAQCAoF3CIF3k+gEn8TaTbeQ85q3rwf9pIDjeJjweuoStQgEBAICAYGAQEAg8N8g8G4SnSf7sGDxBaS8McweYcHIb+D/JpnUG+u7qFggIBAQCAgEBAICAS0C7ybRMTaHlVXBolEyWuAw3+G2lWHwD0iFqYG/tWahxFxqoXWq1AVfH1Vcie8RAv/Uf+c9gkIMRSAgEBAIvDUI5MsZ+WW9VUTcwsl7ibC10K2Oh7lWwNLVG5VKu2pW+9apKPbpFVx/eBere21F+W0bMaNl0Zc1ky1dcom+uRwes9MQ+Mc4TXr0nyhbfgVWhP2JpmEn0WfGHlTzkWHP4TtgMWao1XMEZk1oA/nTPRjedwO6b9mD1sWpqDoGqyaPwCOnWoh5eAIPFJGYMn4WMHMGWhRPxcbRH2PxLWO4qEPh3m4ulkzqCL7iyo0VfbE5vCSi/joKNO+CmdPHwiv7UjHZ+i4OvF8IcJKTnp4uDcrU1FRaPVyIQEAgIBAQCPz3CLwWooOwnWjZdF6Oo+k8/xi2TSaiY5Aaee8vrFr5J/ZEOaJdKfscy+broIklnOx0apebw6mQvWaVWTMrOIdexC63+Th7bDFVdw9z2ozHskqVMaVVE1Srtw2XbjwiolMaqphHCHyWjAZDRqOzVzP0rzICg9fMQm2q2m9ON/wsm4ybJ5tLXTo6qiF6zi6FgzPLwdbODru2xcP34llY56vDItP7iAAnOhcuXJCG1qRJE0F03seTLMYkEBAIvJMIvBbTlUnlubi+ZTQ8DCDoMG0vVkxujpwUHKXaTsNvO39AUy97pKWp3gx4KgWSijbFnCH1M+ovh4Gfl8CeCzdp3x7VPUsi6OxVydcn5u4p3FM3QBUvnjUeaRQcLjGZfrIrmPqrMeYu0ZAcnvrRspkw27kdQTw5PQ1VenQVJIcD84GKDa04f+zYMUREREgb/82PCREICAQEAgKB/x6B10J0+DCq9l6CAzvGwyOjxjazL2DH3I4onNcY4xKRrlDnlSP3NLWOaUAvrg83aGXE+WFqqEnjYmeSVY2tizkSVEnSgbrtWoIpnuKpErh2/Bc4tWgLT56grZqPJTEJcYUiMLZWTdSoXh3Vq9dA9RpjEO1iCoWUlcHJ9PUoxrJ6KX69KwhwM9W+ffvw4sULKRAg3/hvfoynCREICAQEAgKB/xaB1/qGrtBjEQ6Tcmbu/ebYOqNOPkdGQdheGoDwDDo5D0T/ew/Q0ZmqNSIGYm0KqfOc08QrJW6ioTdEnGQZTIXMCUZJSUhWZRAfyhPoGwsreYaRyb0a2qn24dTNYwja7o6OZ8rq95lXQ0ES1RGF8fP9P1BFJzU4OAnutH+PmhNOyPqwfSh7xsbGuHbtGnjE5MKF9Sk999fhaVWrVpXShQgEBAICAYHAf4PAayU6fAhlei3C1vyOxdEBFmZJUMhepuavigruatwPgER04v3uQdG4Kyx4O9Y2UFz6FTcxAlVp98nhE4iMSoKkWJKbwvLZKczfdBUNJ9SlA4+w73oSRg6pldFDOzT9uBAG/7gU8hqfYbxrxmG1AgqVHDwiNIxqYnLrGHy3xBdbxpSXMoQs6Ykud4fg8romWt1RRkHx50NCgBMYTmRyW9KBr40lSM6HdEWIsQoEBAJvIwKvnejkd5DBfy1AsyGL8ehpBI7WK46js/dj9/DKuRS3Rs95vTF90EfoU9kBD82q4LcFGfqV4h2wetLv6NvqM1S2d0Kt+q7wplq4ew3pWqA2KYVSSb+jR+/lRF6MUaHDUHSv5ZTZjmOT9igycRWSZm6Do/aovBEaeF/ByH7/wzczRqPl4t9xb2AfNOvmCnezSCRbtcae1U2k3Gkp8YjPmG2TWan48cEgwImMIDMfzOkWAxUICATeQQRkNA32pfNgm/SLR0CwOnNRT9/9dnAv/M/ce1QpMQiJSoGlhRnUaclQWbmiiF3ePg2JLyKQTL45zMYVrlzbkikKvAiPIlpjBgcXezDyIja2sYI88gKG9Pkd7Vd+jUakNEqhdCcnW43JS1s29SyaVF2MGbd3oZmOL486NQovEmSwsbeHpQmNVRlPC5qmUikGMydX2GVQRFVaIlKYOazN/zPO+A5edu9ml7k5KiUl5R8t6mlhYZEv3x01xX2KiYkhK232+4ynadfM0v7mtzHfuBaJiybmExF9yss3TsZsbW3h7Mxtv0IEAgIBgcCHg8B/9naWWziguLtDBtJZGpa8oLd2dslldpMJnF11fCSI5EiiViItOZHIkSVsnaykuDeZwpSICg3E5T0bYDH2Kz2Sw/MYmTvBVXe6mLEtXFz1apCqkptZ59InnbbET4GAQEAgIBAQCAgE/hME/jOi86+M1tIdrXu2go9W/aLbqCoV905tw77E9tgxocG/0h3RyPuBQG4+OS8bnTBxvQwhkS4QEAgIBF4/AvkiOty4xTc+u+jlhq7X38lXrtHaEz2GShPGs4uxNRr2mo6G2VPEEYFArghwkhMYGChFQdaaj3LNnJHAzUh8qnnx4jwEtxCBgEBAICAQ+DcRyBfRSUxmiE1gMKHcCfRXqXqpW8+/OQbRlkDgX0OAk5vY2FikpqYWiOiYm5vDw8PjX+unaEggIBAQCAgENAjki+hc22kn8BIICAQyEOAOwtotP6BwZ+CcnIrzU1bkEQgIBAQCAoF/hkC+iM4/a+IVS6sSgNhV5BWc4Vj8itW8k8XU8YDT5Hey66LTAgGBgEBAICAQeJsQeIuJTjgQPBH6c8HfJujeYF/42hKC6LxBgEXVAgGBgEBAIPChIPD2Eh0ZdY0vSm647Pk/PTM8VA/fDJfY4vtptL3M/YiHNeExfBJz6QgP18wj/nOy8qpi2LdXrUeUEwgIBAQCAgGBwAeOwNtLdN7EiaG4OL6/+uDj9XYo7JhOs8j4GljEbFLMofjoHq4MJZORZqXOnFvnJCfGCaWbOeDYNX94xBhkoyUnVo6qiJuNfLH6EwouyOMLChEICAQEAgIBgYBA4D9D4N0gOjxwH9eS5LU2Yn7yUBWmcgajVg9xdl6sRivDuY6RHN98WgkzDt/FnLbEdDhB0Wpu+KnhwWZT+A8SuRpODkqY8yjKGWuDSvl532gxUSsbBewsSCXD0zi66RkbL8uFHzOjjbfLy2jJEG+PH+ei/ZuxK/4IBAQCAgGBgEBAIPBqCLzdRIebiCjg8bOfgD9KAqMq0b4h2eGEggIsX10HHHUDvuYrexrmMcRGQfYw4jlIykiwUKF3p3gMPeeA6NYRcOTmMoU5Vo73wFVaWT2tRBi2TIgDXmjyG5sokXi/ECYtcYKxCUOrzx+hW0kebIjSiew4mVhg5WhPXCS+U6dVEIY2IpbECQ8nMEGFMGOLE4IS1KhcKwyjuybCiExmyZEWuHbcGnfJLnb6bCCmHwLKGfZb7AsEBAICAYGAQEAgUCAEsi+kU6DibzAzUbAzPwKuNOmqOPkkG3FCw7UgukLH/h4F2NLfmrMoD6dt+RkRkRFwjQzPzzfy2UmJN4aJXKXR1DgZYVafcrhWPQTfjXmEgSiJFgMckC6t+qmGpakrRvzOMG+iP4ZXk2PuBA/EZczANyNtzoZ5xVB4gD+W9onAtV0+mHWOGuGTx0LsMXxGEbg2DcYPg0Ng8tADX260h5qIlSzdEssXu+OZcSzmjgO8eFNCBAICAYGAQEAgIBD4Rwjkhxb8owZeuTBpZRoSiQknP5gh1Es5JyaGjsLkENx8GRBPx0eThsaUm68M8xh2gEiOSaIZIh6awe+xBfyfmSLmTmFM/MMYo4ZFSX7GKb+Xwu+Fn2DdyEQ4uKnQeNZ1tAgojVWXKNFEhqTkBHw3LgruTipU7f4YXUwKY+sdSiM+k54iQ71R/uhcRgX7ijFY92UMdmwpKpGpv/90gWXTIAxvlgTHcskY0T8YqrvOOB+h4VtutRPRvWUcShUDdJfZMhyC2BcICAQEAgIBgYBAIH8IvN2mq2QaBPnHJJMJKNelJ/jsJyJDPOvLOI4ECfnoWD5zxKKtlmThkiHwqgOOxKXjyB+3UC/D5+bKbWuYuCVg72pTxClkMDFVIoxMU4pIYlwUxV/F0uHEzVBS/+RklVJDs3i5DApVMuqVIJbGfXq4b49HLBxDHBBBv4MijBFiZIOtv5lBRa5AliozhD0EnqfKKMouufWQGcyMn5GXmd6kgQgRCAgEBAICAYGAQOBlCLzdROdlvX+VdKUR4iqEYtEcYkfkG6O8WgifznXFjedAvVKaCuVGRJmIXBkRKSLfY1oEXY6mHz9A2XK0o9TYz9R5sKrMFTJ41gQTqHgZ+ienjVx+wOuX0Y9001SMHhqDOq4M6WHa9cReZVCijEBAICAQEAgIBAQCOSHwdhMdblgjkxUnCOZcg8J7y2PMFKKNOxLzLSMPt2xZ8Pg4kiMxbXkJkR1Q4GVe3rhiJNZ/5giPGeXQfMM9lKGKCtsbQ2YVgw6f05Qo7rRM/jcHp9O08cJ34OOcV8VEjGRWeMY1Pdz2xPsaYYNYDzVcaCo7IydmZ59I9OxB9XKtTbQZZm9zRLFqifDW8Ke8KhdpAgGBgEBAICAQEAgUEIG310eHepZOJOP5LfLTIe3JjiM06SmURkfkoZUTKUi+o982pJQhxUzIbYqPQ7vrT5IVi/xdOL/ITdREclLIHJUpREqsez3EMjcrjJriiudkcio54Qq6/FUe/X60QXiQCR785I1vnoSgUxUqRWVT04yy2qC+pdO+IqNRuaka26aVwU5fY0TedMCgzTbo0y+E27vQr084lLtLY+khazz3s8SOXzyRIk9FWXJyVqhIw5Muo9g+ufVcHBcICAQEAq8RAWUiwp89ht+D+3j0LBxJfGZoXsLSEB3yGL53biGcf8wVWBR4HhyG6BRu03+9okyIQEAwPV9fb7VUG0P8E39EfOAx0aJDHiEskZs3EvDkUfA7FyLu7SU6pJmJIJIzbRZpXdqRguQYMO834gt0wZXuCgynqeRcmxNOJGfUJJph3p40MZRnIREiHuA4R6H7y65ELHpVzNCoaDNFAT3HPUQDZzPcfUJqo0hg+lZf1LvrhulrPDH/ZizObY6GWTQVMEnDJ63iYaWNosyUqNMiAmWliMhqFC8bjl3bniB0fUlM2GGPj/rcw7R6dPtx7VOROPw4NxSx56nete547ByJr/vEwISuH2PLVNSuG6eZ2i7ITo6nTxwUCAgEXg8Csff3YXy3lmjaqB7q1a2LyvXqoHn3r/DHXa7CzklUuPbrTDSqXw8tPmqG9XdegVKk+qJn/a6YeYx/sb5eebCxH7wa9caj105IorCmZGkMPvV6+/uu1Tappjear3gMBPyEkt7VcPQVTv9/OWYZI/kvO5Br24qnBKonzR3XycG/OPiFzKdqc/MU/83NVZxkaJU0/FheFzu3cXF6Z8iGuMmLm8f4cf7BwfPwKVha0S75wNvh7el+0fB8vE2u1dEGLtROm+L16ZrSuPlNN2CgljDx9vhY+D4fZ8W387RQzz5YSU9Ph0KhwJ07d5CamprvFcn56uXm5uaoWLEiTExMYGrKT3TewsvExMTk2AZPk3HvdRLtb34b802l0nwt8988TbsplUrY2trC2TlP22venRKp7wkCCZhWzh7by0zDiqk94e1kg6TnV7F98TSsDm6B40eWoFIOaykv71MP2wvPwLlFraXJIRmXYAEweYBOVceh7LfrML9lkQKUe3lWv597ovZKJW5d3QmPl2cvQI5YrLBwwKVDDBubFKDYe5bV98QOpFbtier2Ufhjy1XU/awVD3H3zsjbq9EhNamkBeFB+rQbxeyTiADXrHAfG04geB7SwGTm0R7naTltnKBw0mKYxokKr5//5Wm8Hb7Eg3bT5uckhOfTLa/tFz/G2+czrrTleHu6eXka/2ji6Twvr0/bnu4+HRYiEBAICARePwKXsP++GmMXz0ar6mXhWcIdFep0wjf/mwzbewew5xapuOnBtHVGZ3SesV1qfnELGUZuuYCLy9oSwZmIaJkCq4d2weClF6Tvu6THv+HrjgOxe/M3qGvtgLbTT0jlos6vQwdiTVbVuuPkTSLb1rokX4Ebv85Gi4p2MLK0R/luU3E6UBOCXvXiAgaP+gx7b1/Fmv4NIDO1R9ux6xGkSZbq1hOZESzNjRD416/4yNkcDk3648/7+l+84efX4NOGHrAyNYJLswHYeo5moGhFEYil/eugiJ0MRau1x46Hhg1k7D/ehHLuXXGNdh9vHYMGfeYinL8rtBJ7EhVdOuNkhsYj5tou9G3sDBNLF3SfugsvMr5flREXMHTcp1i3axXaFTZGg883gRYgwqN936NlBWuY2VTE5wsPSK8KrcTf+xMj23rD1sIIjlXbY9khv8y0Cz/0xWfjzuLq3wvQwM4M9jU6Y/15Whg7Qx7//hWqdxmBAH6ywnZIH0pWVnReaLO2cYCzSyE0/XQ4/HPBNzngCkZVc4SDZzucUxXPIjmPf0G54j8gHLfxVUNPWNsVR6vJZHrRk6eY27sGXGS2KPPRSOwP0k0Mx5Yp7eAoM4UnnbM/7uW2iCQv8w+uF67RESIQEAi8HIG0tDSWmJjILly4wE6cOMFOnTqVr43n5WV4WV5HfoQ0MywyMpJFR0dn2/jxqKgoaXvx4oWUj/+NiIhgYWFh0hYaGsqCg4NZUFAQe/r0KfP395fShQgEGItjE33AGk74jT0Ki2UJ6cocQEliywZUYpUG/Mj4FRt/6y82tGlV1mToOnb5bggdiWSz2lZmraceY2raS/bfwJqTQ4tz27Hs4JWT7MSt5+zhjoHMFo5s4NqTzPfkJjaleylmJq/DZp2MpBIp7NdBNZmVWxu24eQddv/mITa5hRtDoc7sQgwlx5xlXcuDmbq0YLM3HWf3z+9gnb3APHssYzG8QQN5vOULTiGYQ/3BbNe1h+zggi7MAcXYzEOBUs5H67sza3iyqTvOMr+A22ztl7VpLSAv9t3paEpVsqHFwcqP3swu+95nVzeOkur6+mQ6pcWzFeZgfU9kNHh/MaVVZtLu0x2sRuHqbMnd+IxExgLW1Gf4eKG0f2VFD2ZjVISN2HSKPbxxiI2qU4jBuxe7FUeJsedYt6LkAFSmL/v13Dl28cwDdnH9AOZZtiFbcfgWe3BtD+tVxpIV67yQzhZjL05NZ6Vgzr786U927/FD9vusrozoHBu0w1dq68zMqtQvZ9Zi2DR23NeP7ZjUlMHcmy27yMFk7P6aT5hFpY7Mjw8pLZRduXad3b5zm929788C/fewBqZgbX64yniyviSwzT3taG2jnmzT+dvs9l/LWCPKa/vpDpbKMz74kXAtyso3rMUW7b/GbhxbwerRvBvXr69rqgnczqoSlhUGfsfO377FtsxqTf10Y3uSKDnkMPvEy5lV776Y+T57yA6vHc2KWBRhX/7x1LATtJ/wytdLApV+u2ddGfBCsSsQEAgIBAQC/xQBW8zetx2D+81Es93z4OpRArVr1UGdWo3wUev6cOWmeRK5sTFNdDWSLPk2lWrCnWajhhb2Qc3y5CCpCqdI9JQuN5K8BoyYirQPZTDh2zloU4HsXiwUEyadRONFR7Dmy+pSfd8Ul+HIn1OhkBZTTqW3XwdsGzkGHSvQrBJUwPw9m3DB41vcDFegTlFyeYyzwOffrsaMPl5S+XU/3UbpWRfwOG4kmVCkQ5miJpMyPDrjwJ+rUI9myaLaLuyI+QjjfvoVY1tPQJS8GP63ZwFGfkzuECTea48j0L8+fG+Q9qrhfdwmLcOoEZ+hJg8xUm4pLqUl4XI6zWzhU251RSYnTDJemx7N0a/aNGzfexejy9elXLRU0OpU9B9GTqSK25i/4ix6bbqAH3trjGlLL1xAUplWmPNrAHb2NUK63BHj5nyD7vXcqWwK1mwIh3u9Qfi8VSXyjqiErUf3Y8GeMD6PBclx9hi87gjGDGgotV525u94EfgR9t0MBnqUg0ydBovqXbD6x7nw4naaBbtx+0ItXDj5BCNrV4NcbgxTitPGI6fAtAhqVNOaDhOxvkdTBH26Dw++qi4tGKAr6nPz0WdHaZxl21FfSqiIU0ml4WnyCX6a2QNjzSgmHEIown8wxkjQVsPpA7+RX+0hRP+vKm4vmo+brX6Ces0wqXTdivtRWDkJAY8icfbwGkTUHIeTO8bAmmyh5b5cggsmvigxdTXWdvqflF8rjFwFXvV6CUwcqT1jenWKHYGAQEAgIBB4jxEw9+6JjRc6wf/6eVy9eAs37lzFT5NXYuHmgdi0aTqqWBt4NajTyf9LTZtCIj7cpVFPyB+M2VnBRlrtmHzHIp/AX61Cg0als7IVq4kqPhVhlM5tPUXQY+R0TVpqDB7cu43zh3/GnajnaJdAdh/ub+ZeBEVLZhENlaUF0Y54xKVzu5D+N7pSaQZ3jwoopcNLytetidgzd+BP9p/afb5Dbd6aKgnPA5/gzJHNOOQbgzJtuQ9BPXzWoQgmNfDBb82boX7DtvhqyDrUknoXm0cg2kL4uGd1jJy7D2xKXcgeHcV28+KY09ITLOQXxCcUQ3cylWVJUXQra4nW58jw9YUHVEXt4FBY68xpgdad6+PnfsNR7c5mNGzbEZ906o3JIzSMzqHDWIyXKkpB9LOnuHrqEH4/ewGyjtzMyCf1WqKIfRXYaU+bKh0WjoRWEh9fbpKCw5M6YOC56jRjrYPkemoo/rfPAa27ZZCcjFTjVuhaIRkHL4djbDM1zXSrg5oa/ihlkNv40KSdp9TTeBy/GoaPezfUqdYYzed+T/tx+GHxA5w5cAUNqv0KpqJzakSkKfYq8DQaV/E/1NApJTMv9MrXS3y6Ol8rQxmOXewLBAQCAgGBwDuPgDlKVWuGnsO+wrcrt+LcsV9Q+f4PGL/2Co3s5Q7z2YZPsTHUGfExVMpUpDIrmFnwmRcZYmyBEhbWmcvbhB7/EfU9rSCzKIXPJ83GuafkqG9phOQUjYMLY+R0n+Fcz2sgGxmRDhm9tDSO+LrtM65nkVvqETCLQqRZcqa6OCcKPoqe1ewhM3ZD4497Ys91JYwdLJGWliz5GA3ZfRsntsxAbaMAbJ7YEQ4OFTDrGNfomOT5kizWtidKP9qDY5Tz6d/HUMy5NBqSgiY1VQH7FDM46K3lYwxrY8IjiRxLuSc3x4vIo1aKt5uMv66dwvxPa+HqjqloXcUB5fov1vjpJN3AV83cqJgDKrTpjtVH/WBibY209HjNWtL0v5ppSKhUH5+cQPXLyHcpN4k59S1G/RaP5X9tQLFcMim4m5OL7owgnlEGSyKULJESJY90heRmmilqwlxGa0fSFGnf9GTYEAHOLiokxZiicZ/Z+GXLFmzcsBEbflmDrft94Xt3N+mNssurXi/cHyl3FLK3I44IBAQCAgGBwDuOQMR6b3o/jUGAwTiMitVFEzd7xEfrete+2mBNLAvDTRZJ5iFOFjIkMRxnIkKRZErTVONOo//A8ai06D69k6Nw8ehx/Px9P5R3UPAoHQUWI6MURMU/RpxO2acXH8LphTu8aWmfKS1b4kG7A9RWHPzu+GLrmlloVSwd6WojyTgXFW+BKi1645vNh/GEFk+8MtoM341diFCaemucTX2l0z2nTlj3+RN8vegS/riYDPeP+sKFkuU2jggp9BzXA/lsGa0k4GZkFBpXIPuYUjM7MitNjcSYaFh4VEGnMXNx/T5pksL3w3zbZvxCQeJ2kKP0b2YLkMxSEXr3DnZtXI2PK1shTcltUQWXlICt6Nh/M7quPIAh5Q3MczrVFSrqAJy4Ks3fyZJnuHOXdHLlSVtF48ixB6ThS5O7oFuRIrh63V+v9J9d7dDg20fwomWVnsXFokK5cqhStSqq0la5ggdcCjtKE5N1Rfn8+D+6XgTRMQBU7AoEBAICgfcZAZdPNqKCxVJ07b8If5LZKjAoFEGPbmLPDxMw/YEDerbhkVE1WpVXxsGuNLrUro39PyzAwQc0LVURjr0r5uHkIz+Kck/aouQIxIc5wcQoSQqBEBt6C+vnL8CZEIpXJi34VzAhdyEk3NhP2oEziFbQ2oSXd2DOxrOo06sXrOk1HXGfdFT0Pk9RqKBICsehFROw6e8gmFsSC0o4gnpFnDHlUDASUtOhTHuBK34JKFymDByIBL0siGujsV/j2uTx+NMiEh1bl5c6burWGp9VN8e2Kd/gfEgiVGlxuPTLAsz3c0C3dmQUS+PTbXVEGYvNI9rQzKf/4WZEMpkIU+FHJq5U56Io7axGSCSZokpaIS5NCXVKNE79Pg+/7HsCa2nJgAIIJ23qpxjS7gskNZ2HsS2K0HhTkJKSTItVp0JHwSRV6tpmIlqmb0P3+ZcRnkRauthnODKtH/6w6olx3Gkn3ZCwZfSFfLb4CNsM/Qh+a6fjV78XSCf1UNj5ZfhqlxKf9auNTz7uAeWR1Ri76RxSSHMXT4HzviWPc+9PlksTl3VF8Q+vl4JfUQYdeNd3gw9sxqpj15BMGjj7Mo0wfHAXUODlfyBJODZtJjDmO7QoRNWEX8KJpLJo6mWLuMdncOwRnfzWDZF4cQe2+ZXB8H5VDBzADMr/g57kv2gSzv4WgHrdK8Ao5T6++94fX07rAAN/v/xXJ3IKBAQCby8CtnVx+NAqjJ6xFIN7zIM6naYVpZnDyqsUvly0EjNiPrMAACAASURBVGOk1Y0TkZwQS2YTeunykZC/TRJ9fcclpkmmHrnBvkqRgtiEGCRnqmPM0Hb8XDyOnYlJvWphmqwYShXjX//O5LtCcTSKtMGEybUwcVxLHJ3lgdLlfFC5VEVUsLmLRw8pnkg5BeJiopCUlvUiVZGDcFRMHNKkt7G+miU1iRxtncoi/tpa9Fw6DA9TTFCr80zMHMRJGzBi0yB8Me0TVNjgCS+aTl/epyxq1/FBmJ8v1DafYfmsjvh6UnucdzJHdFoqXIt0xNolX5LfSgwSKERIglbJpUgmChiLNN4FrZqg4kB0U8/GvagVqO0lNUemGxsMnP8jXkyejzE96kERr4DczJOcq5djaA1a/5BC8OuNz9gRn06chDszFqF/O5rST8OWm7qhw+zpaO9ihKApC/DnsNGoV2UqSnj6wLNcGdSsVg5XHz7RRClJikVUbMa54u0T0dCeL76rSCHfpph0MIItYVsrbLqvoPfcEnSs9x1S+DlTpiOhZBP88P336OilY2+zqYs9f69G108Hoc0eMuOlJSLJuAJ+PbYOVfkpSE3KjkcanV/qP4+sYtduPo5PH4vRvVpTa2rEq81Q47t9GMKD8LiOwGYKoDtu4Reot5A7pKthVroXfl0/IZu/kIVna7pedrzS9ZJO43t7Awbys/NGRYWD35ND3vMG+IpOgp1VCh4e2IqVZwth1Y6JKGGa3Q6cv+6o8OLePQrfXBHOJvE4MPlznK6zBAs7FUfIqWWYfwKYMWUUnJJDEBBvjZLF7Qwszhnl6aZ3fgUzef76qJ8r5mAPdD46DCcXN6b4PgdRpfpJHHiyEGRqFqKDgAgYKC6H9wkBlhyN4LBQvIil72e5LQqXKA43e61LKqPlHvwRRa/DUkUd6RmlQsTTJ0i2cEMJV+5zYbCfHkMEJRJO3qXgqPvsVCaR+eo+LR9ghdI+xZASSZHgnYvA1Zq+sdUpCHn8CMFRabAtXAI+JZwRF+iHeGtPeDip8NQ/EJZFSsPFSkNqVEkReBSWjGKeJZBxKPN0pMWEIIjaKO6oxJN7/kimeC7lvN10XpgMkYH3ERieRDF7nFC2gheMogIRnEyTzos5Sc/gdN9daDntBAZMGoGu1cvAQvKrViPqzm0ke1VBMT7s9Cjc8Y2GV9XSUtxarfyvuQyXPw/Gnj40XUxXFAk0jod4Tu9+l+I+8CrMSSQJOUU/DXimNz5+mC9l8fhpEPgpsXfzQil3x0xKlxD6CP6hkVCbOqIkEUP7lHA8fqGGp1cRpIb7IyjJAaW9nDLy65+f9JggPIpk8CntAVmML24+VcJITb41WhUO+UMpKTCit7c3Cplnf/elRVP5wHDStFjCzassimq9nnPCIzkYN8haVb6Se4anF0P4E188e5ECcxcPlPd00XnnMcQ994d/QDStL+kED28vOFE8pBzlFa8XD68S7wjRSYlAjJELHHLT0iU9x+PwVFoVnIImFyoKZ2vDSXLZYQs5Pg2T1zDM3fENSmQmx+K3r/pjn+dUbBmlmRLJvdwjw2PoK4ICUtkWggO/QTNElRqL8CjOWylkgWNROGY8I9Lj4yGjKLQmKQ+wZNAIPG48F99/WZeWfliFBScZvh4/FM60xlViOjmnWWRXqqXHk6rXxg7S80JBateoeMlubWZtDydbnXDNiiREvIglRi2DsZklnJ3I2Y73jS6IaPqisVSGIyKFvPFdHWBCCWnxYYhK5E5r5nCnhxcXur5xa1lt9A+YhhNLOsAu4Sjq1j2FXb7zQJNISZSIjogklS+xbWq/kJ2mfYo9QWt8pUBFHu2xcXGwcyue7eEjFX+PRBCd9+hkiqEIBAwRILJ2bEk3tN1VH1GXZvOlFPMWeniqyNlX/nQ1ynnuxUblQdTMy58n79pE6htEIPtb9g02VrCq1Xh++yxO3fTH0XkDYESkZE2T7DWkR5zHjKnD8fdNS5imhuCxU238+NPP6FY+gzlnLyIdOf7HVhTrd0uH5PCjNvhozi50t8lgtOo4HPthFFbcTIat2hJGdiXQZewYtC/tAHXoFSxYsgaXgxUoZJqEYKPK+Ob7aajhEIuVtSrA9HAw6t/6DXvvv4Ai7H/4X4UdGGfCmaoKxqSpebztaww/3gx713UwcLyKwcqa5SGj9WBGFQ7ClmULcewWzY9UpZEy2Q7dJixGjyp0Cybex5YFP+Dwg3SY2BkjIfgBGk09hJGNbCELWo+SAx5iYHV/PFZ0wHcLB8P+1nrMmr8OYfZlYP4sCaW/moSJbaoi+szPWHksASlRm7F8vTOmdjOFUSahT8PtLQswaf9DFDYjXaS5PdoMnIvuNZ2R9uIqfvhqNIIsmyI+8h6+WLsPH3FTnRCBgEBAIPCuIaBKxq0zB/EgrRSsA4PICRmgSdJ5S9RdLJk1DotXHkOlbSGC5OSN1n+a+hYTHYY0svk+v3cWR8ivZY53TjgpcW5MT3x7fyjYja8pgworW3uh+8hfwI6PyqlAxrE4PL3lhHKjDafNyeGgQ+MDDi3G+mseWLR1DkoSR/E/MBWjlyxBlZ9mI2b3MlxSD8K+bQ2lOu8cJBIRQ5PsHIxh4UDeLURmKn08FsOOXcatthswq44VQs9m2ZtNzK1gZ2OWw7Q3OcU/ICc9UpyEHtqEnYFVsGfTl1IbgVdP4r6Sx0Wwwe2d32J3Siv8vvNTSVWZdmYmPlu+BO0azUBJqtsiNAQNfz+AhZLiJgYzxs9AsakBWPoRP+URGNCmOpbZ+GFC4wFYFLYJLe9/jan9KYZl/BGKySCT6kw4vw2LdiVgxi9bUZec7xMvr8Pnc36A5+b5qElOcEHxVvAZMpFCf2u0Q7wlIQIBgYBA4N1DgJFPSzgCWAXsOPHpy0kOH6CNGyrV6oivakzD6E81+u93b9wfRo9zMYa9DYOXw6P+xxi9YDZaUy+Tc5wEIEeNuUdwaVPfjA7LUcuOJvdRPIG8JQ7RATLJqS5XUZFn+9+hqNzzS4nkcCnVfiB8YtNwMwwoWr4kwrcMxbS9FPyJpGLbL9HSi5vMdGslb3YKbpWezBexKojweBRk0/Vwg+Xt/6H2mP1SYY8aTdC6RnHpt0+X77HleyI5iecxqGdbNJ+wD2m2aRqveZYOR/tmaKzlHzdX4q/0KfhKIjlcXDCfnK4v7b0g7SWnqkhhxE1wJHyuIMUd4O5Bp0/fhlPb3hLJ4WJd61O0dU7HzcdkWiO1beHSJVG9tCA5GnTE/wIBgcA7i4DcCvW6jMX3M0agZdl8TkcxK4SP+o7EuM8bi8i7b/mJf4s1OlrkkjQe7jkCKYNNyTIZESwpQ9ApzAh4jiHjOueYO+tgcVpcLI2COuWQjfxbYpKN4GAhpxDngfh5aifsnEeRFmiOoZExkaPUemhH4csdm87Czk1F8NWYz1FlrhJy1g5rzn+H6mYyyU8mx9gCOTSX2yEKbAnjyv2xbWMhdBk4H9UqTUakc2XM+2E1+la2Qfy9n9Gzxy94bqVGt5U3sNplI4bMCcigWbx14yyHr1QlAkN+Qv06v0BJvjY87BaMXNGyu2UuZE8zBrVJNPYv/gLn1xrTdEcKPiWnkSlLYqQl0SCqgvsQCZN0bmdQHBcICAQEAgKBtwGBd4DoaGDi79hcJe421mz7E/fOXkXnhX74somOw24uhcpWdsTPe45gQIWWei9r/41foOWRxniy/QuKmumJfgs2Ykp7PhdOI8HPw+BQSOMVXazlYOy8N1hK+LlNSywZvRfrV7WVzFG5RBfIrOelP7RMyaMjdh/pKGW/vKoPRq9di47Lx+LIltVouMkPsxprTuGLE6GII8e4LP8aic5oxEQFe/eJuHhOq/miw+nP8DC2kNTX7JotTVlZqhU6TdiA77/QTNHklYUHhMHMwwLKaCpFDfxTQqftovgrEBAICAQEAgKBN4HAW2y60g7XEbakQIjMfBu/wIFJozD9KplPSNIDtmEzRW5MNymOJVt35Yvk8HINesyH+635+Pbo00xcVY8OYNYvqRg38hM6Zo56zT1xc9taPMx4m0f+/T3Gzd6EcLUMQUfXYf3+4MyyDQc4wryQNelRdF/9FDSJAiqZ8HjZJHlxtcyKMnLKacxx1/Zj8y4ejl0jpctUgbedXKpHlUCBrZ5ro24mYsX0zfCnEJ5KHu9BCsutI9UGoLntCiw5rMGMx8iY9/HH+P2+ho6pKEw3M89wTuJXBIUP58Ge6jeujGhaE+ZUlKYu1e3tGDNqOfzITYjPcBMiEBAICAQEAgKBtx2Bt1qj4799Hgb2n4mT/K1bwg2XhizDvm9d0XvhjxSm/BPMrVETW0ZPwID9L1C6FK1OO3UMyDKD+KhIbHnG0M0gpIHuyTAqXBdTl8zAsllT0HExBaGiqdpGjj7oNXcF+tQjPx+S8h3HYXL4YAxrWR9qhQy2xSti9Oxl8CISkkKxBIIWDMNHK1UwZSnkh1MPi040p1KxSIiMJAbGayiMpq08sXZ6fYQE/Yb/VVYggQgKpxeKlATExKfmoE1RITnyBWREWOwqeEO5+n/osCaapoTHI922JEZRkC9Om9qMW4DjQ2qjwTp3yOOL4tMJ42Ez7zjukP9QOVOaEk/MMFOrJCuOhUumYMbEmqj3nRdM4h6izdzzmNhYMzOtWOexkHt3wWdsLFYM9kEcTWfnfMm1wWDMjV2I3j2awZjWLzEuVBZDZi9AbTJhp4alIoGmwVOgTiECAYGAQEAgIBB4axH4gAMGas9JLDbMPIXOFBnTzlAT8rLTpvTHzJ330aVOU1Qukfd09pdVlVf6+TnTkThqDlra518nlFd9Iu3VEBBxdF4NN1HqbUNAgRiKomtnb5fDrM+3ra+v1h9GEYzj6WvN1toyR026ikf4VZrC1sqUwo7Rx6ncHnbc9TA9CbEU38zBOregba/WH1Hqv0XgAzdApOHZubtwr3MDXWvOwdMCnQslQgJT0N7oCnr1+IkWnX8zkhB0G/L2jXCoW1PszrKUvZnGRK0CAYHA+4/Aw2VwpBAYf+qst/m+Dfruqi6wr9ge9w0XTcoY6MGRXrCr9i1FfqaYan0dYL9Ys/DkjW+rw9F7xPsGxwc/nrfadPXmz046ouOC4XvHCgNWfY4SBWmQplfHht7H0cfW+N/6QZI56U1Iakwwrp26hSoDf0EnsSbDm4BY1CkQ+LAQcP8YP65xRq33ODKEqSVpaJyUsNSuaGFwhmsOWYtfO5eR1jU0sZXBwkoTTb9UtyVYWcX5w7oePoDRfuAaHRtUbtsToydNQM8aBby4/8/edcBFcT3/73F0kCrSFMEGgoACNmwodo29915i7LFGY8UaNXZjxd67sXfFBqKIKAoKIqJSBel3x/5n9w445Cy/fzQRfPPx5Pb19317u/Nm5s2INOFUrwumTpmIto7fLvylmWtL/Dx2Cvp2odgsP8ANyabIEGAIfGMEUp9h256DeKPkXuPcsl9Qx9kMTnW64s9zr5QGkI2bm0bD2YSc43kNgu9dxckEKvF8/0JMn7cDARvIv1gZb/yx6xjGDf8dB8LJLcX09qhUhiKY/35QMFfMerAObdwroXKTgThG9pPKlOK3Gd7VKH5TlYaY4iv3SwZpHFb80gOTfIMLHO+I3DUM1WfsU1SX4ebOyWhYvjTKe3XD5ktR+c3SCVQdbTFeXT6Oro425HdsLC6E50bmpNOjD87h+OUngi2iskFA8tNL2HEuWGgnUnl+1g0wY38IPuehrcDE2MV3gwB7d343S8EGwhBgCDAE/gUEMqLgf/EU4oWDBHFY20QTTZe/RWefXZjfzRKLm5bG0IuUxYVjZpsKaLVVgiUnDsOnuyHm1a2Izhvlap7sxFc49FtvdLlSASv3TEIzO0O8fXQNI+qXx3auG1avHoXUzd3h1a4dmg0IQO8lf2GY3XW0tfkJFPaYKAMXZraDYdtN6LroBLbM74Iwnzow7bSJ3ICZoYpRIk7u24fYvAMP5NdseRDcKtWmuslY1dUZ3Re9wYB1e7F2oD2W9a5J7kUuCy1ra2vjjd8+/DT5AJou242plR6is6Mbll6T6+sSQq/iws0IgdFRfgm+j7wFv+uPhTYKzG/3BDSsYIbPR1EUqjL6zhD4wVVX39lqsOEwBBgCDIFvjYCIf+xrQZNX61yfR2Fq6iKM248KQr9NUL+cBBMf+CHw3V4czWlFqvM1sOPFHp410bxyDjQ7z0HSoK3QEZGdomknnPadhFrCm4Qclmbfg6jDAeyb21horWLsWdgNjqf2j8jbr7sVqzbUxjX+dGj6AYw9IsU2/2vobcezG56o38wRHlpdsTFxIAb16wzp6d24EpWJLuW0SSp0Die1y2Nx2zJIvTEDO4LscMDfFx6CZ4w6uGmviRq/LMGtX7xQhk6JonRrHDm5FfV5FV2zczCTemHykh0YVm8cNDW0oKWh5FRVGC0xPWJiZTTl7Iw6BTQuOD9FIfanyCHAGJ0it2RswAwBhgBD4J8ioCYEFw65QGFg2nZXMDnyNo1arcZ6UhgdmjgXYZdC0NfbGyIZKW3UNKCR+pRC5UXjgnQrsSXky8PODCV5fQ7/JiGfYdn0vaGHXd7gMrNJP1ancX776ibwIqaJ5ycSHgYjI/wylvX1xmY1cofBqUFL/T0e4y02n8/GoC7eaCVZhoPnI9FliAP8T12CQelqqE0HXMNuX8XtJ08wpm0Tcn2RBU6kAS41BI8DxLgRAXSFLkqTCxB7JTskF89aSLzxALyCS5zvWfXjQMo+mN/HS7Kc7xwBxuh85wvEhscQYAgwBL4+AiLBi3pSEDEieqpsDEV4mxqPkl7tMGlcF2jJ0oRgv2rqGpimpoaq9OZI4p24EjNA0WEKEi9NySVyPgqp4FRMQTnI5suTACfrzXu8M22A3yaNg42WDBI+zIyaOjSmi2DsxAeXsUWf7jpwvXIZe4fY4czdCJRt9Ct4QVRSfBJMXbpg7IxOMMpKg1QYmzrURUZwdiRvZrcpMDHFr1IOUaNbqgTUzKKoH6XhfO6rqvl9rg7L/+4QYIwOBZVKy6AfIv3oOdLA6ulpqfS78HVXTkbhJUh4rPXvRIriyIuiSIOZY33dNWStMQSKMgLEoBA/Uv6nksCa0IITuTQEZXzsMKuhDTSfm6C+d10o/KbLy+V6is/zVl+wOs/bfI44Yjb07U2hqfkCNg280aiAGzK+AbmJsMuAidA134Vzi8pSvD4xurSuJjRtbGGOdI6CLjeoW0AalRuUJpHsf1LSoqEIVSzUeR0UCcO4krCgx+7TLxnk5ybB8osMAj/02+9d9CWsGTsK/bv2Qu++fdCpWTeMm7se4cq/jm+xlJErYeu8EhRJ4dtT1nWM7LdRMLpjxBBgCDAE5AhwkNBDwbL1cFQOWIsJJ18hPScHkuQgTB+/Afo/dUf/nj/B8N5GjFhzSXh+ZKfH4dTUhhBZ9geZ2JD05P+PJS/kMajdBS0NAzFs2Dq8JcGSjJz1Rf89FUYiM/iS+kmgUm2wtekJTBuwF6nWA+GpcLHh1HEE6r25jNGLTiI2O4eCLb/FsQUtYevQFlfJd46eNkl9Ao9gx4FA8IFykkJOwmfzRXh06g7+fC0fpPl/Jkky7vmdQXDMR5zz/M8Nsgr/FgI/rEQnLeQEJvvsgcvIedhX20aB91vsmtAMA3zMcdWn7bdbA3VdmJIDh39DniO5cxgXxbZkesiIIcAQYAgQAlL+RZ2KTP54uVlHnD58Bx0ndUIH31KQRUXhreUMnBltSzKVbljrE4rBiwai4c7y0OLIazBKY+2hBbCkqo/TU5FMnlKluZKdHAlS3iVDMzNfdSXJSKEDUrkx+Xj0JdQznbfiOSctF8xfMwe/DFmIOt7bYaeVg+R3InRacxT98sx8tNBucn90buSLEScWI9fkRmzVBotWDcFon3FofWQh9GQyJGuZYPSylahPuq3H74mR0bdBxPml6LkmCuHxySjbYDzW/Myf2KIQNmnJFIInQwiTk5XKISNDPmbl8UozPpjf21voVb85zBY/wOVxzkI7jIoGAkUiBET4qibY6XYGMzxVC6CeUX71uU+gT+qZzrN3U7Rt+c38qSU4v7Q2fE13YUfffMM5oXzkVrRbqon9K7rnHSW8OWE4fn/4nPS71TFl/kx4WfP8YRou7DgGGQXyPH5sD8IjkuDYtCemjO0JEgYL9C7wMGZO/QuhXDYq9KHTBj3LyDOi16NKZ+DGzSEwUJTN//ME44fMQGh0MmSlPDB5xlR42eng4poueGC/EmO8zYWiWfG3sHH+VTTymQhu50j4uYyH2taB2P9MC2o1RuPkrGZIDPkb86ZNxbHnWqhVewhmrRsEO5Ij7fxlDLZFJECdnB7WGTobU9t6IDPmAqaNPoOmi2egqa0ebXmisernGdDpOA0Dm36AUaEx/xgJLATEj7HOxX6WWW9wxu8pajaoDyPFbivmti+mzVqHOpMOoHOD0gWeS8mvHuJOQARkeiVRzoUCC5eSe+HLePUUASTa8XCrBB3+0Uwx/x7eDYCatQccLeVl0l/dh98bAzRxL6eANR2PL/nBwLMJrBW7L+m7V7hN9d5J9WFh5wz3SvJYg3nrEL8TGmYbcDHzMup9sGNLeRWC+8EReA9jVKzqjEoW8idq+uunCEk0QGWrbDy4eR8ppg6o7VEJFBNZoHcRAXicbImaVa3xPvQS7pfwRAMakHy8hjReO2TS/PyV5ydJQdBdf2jYesLR4iOeCIv9zVNEJ8j9SxS03JuXFar8lJ94QsUoMrmri/pydMsLdda/UFGEkgIW1uE8fz8kZMYHruKqm4DrviVcdeG81FfcVKfq3JnkzxTjsrgrk3pxdsP2CAWTHu7kenh25A5HZNBVBndgXkfOuN4Yzv9tOidLCuVmtqvF+ewj7S+fG3GI61C7O7cjOEm43jOiPNd74mUuk7+I/otzqvUXV6j7jEfchG6DuEU33lKhHC7iwiquxZh53EsJxz3fO5LzHuDLxQqt0fXBsVyjvhu5RPp+a3odzq52K+4SX00SxE30sOem35CXiz09hnPtvkDeL/ea2zS4KTduZ4g88+0NbkSrztzSO/wYs7lLSwdxw2bu4WR0dfeP9lyTgZu4aHlJ9j8hkJWVxaWmpnI3b97kLl26xF25cuWLPnxZvg5fl2/jS0gmk3Hx8fFcYmJioQ+fnpCQIHzi4uKEcvzf2NhY7vXr18InJiaGi46O5qKiorjIyEguPDxcyGfEEFCJQMZ9bs5Pjbles49zqSoL/HeJwbNsOI1Rfv/dAFjPRR4B1SKSb8C0uYz4C4s72RZq2dz7Vxyc1qpQOu/nod4EX7zlYjGcuHAlO36lspngEuyRIJNr4EyrDcSwqnZ4HvZSRXtKSZKnCIMmSTTy01Ii/XHuwiVcueoHvxt+oPjjJN05T3Z6pXFoeVehoJFTD8zuaoi/dt6hKzEk0rIYMrg/PGiHo2Zkj9atq+PVwzuC98yrGzbAuMdc9KwiP9HQdcl+WD9bjyuCcvsjsGfS6YFkGXJigsibqAi2jUbg5LIpKE3Ts6rfHq6xJxEYJQwFlw8fhEfHtrSPIWFwViacJh2CF78RUnfBlF/NcGTfZaGcrpY6cujopbARinuLxFojMKUHfywhHHeeJaGUdjSio95Rpga8Rk2Eyd0rWLvbB9P2amHG0gH4RAB4oX1GDAGGQFFHIAsBux/A0NkID6MCkPCtbRS/CC4OL27sRL96FeE8wwpXFnl+US1WiCGgCoF/z0ZHXB6/bjtBp38649fdcs+Tti0mYvfW+XAtYNL/4TATkEaKVNWmY9rwWLgJeWcGJIE4Z1AKg1t+Rn+qYQozOsqopmQkkxJ1H1evxcFIOxFHlq3HgIcp6Bwfg0z1Rzi4eAnOa8rAiXUgeRKKG7q8d00ROE6X1GW5EEqRTX4k1Mg5Be9u6lFoCF6l7cPKpWJkyOjoY0Y8/HWy4PieMj8WhdzIGb9Ma4CJbTugk/98eJXUgnvbTmhQ0RhapVxR1UMfIXdfoJlNLA7c8MCvq+VKMgkZEbqYkFMMBaVncHSiS+70Koc3uss9YWDmgh6VX2H/suV4emsXEsq1hSg+DaU0FECIK2LC8IrwGjgbLQ8koU5hvdqHi8OuGQIMgSKPQBpCT5/BowqNsGpqb9jofg8TEsGgpBUqe3XGlsWjUJsZGX4Pi1Jkx/DvMTo8RDpOGL/1CMRJrhgb9zMO7FoId1UuHFTA+TkD/786G+HXB04YvGo7BtbhQ7V9iuxhXiYJdyIALwVPVLr+YMypz9eJwftDxwUfEzyDINWzRJVqHrDQkQm+GrTrrELzMvaUyVvTcVRENQvGM0Wm5auiZjVtvM+SQayuDa/udqhUgaq9/si5TJK7lPPsi40XqyI4JRahx/dietuHWHhjCWobmaBOdRdsCn+Et8d2IKJ+T9RTYkToBPnnKeYcZq/bgSote6LLxM2o7e6Eo2Nu4WaeYwkJnkdGIZW8fr08RfFePD/DMH6+R1aCIcAQ+O4RMEGvvTvQ6zsbp3Glhpg0p+F3Nio2nKKIwEd0KN9wKhqVMOZUPN7fXPKFTI4WeBcw4nyBhcrB9dv6EinX1yF+rjdc5lxTWSY/URM9BrfA+RWbhWOSBekd3pNkhnf6qW9SAnrqYlSo3wANGjaCd6OGMA/zxeazT6iKkjioQAPkn4KubcvnQN/IATXqesGbPIt6ueniyuYFeMSfKf8o10aMFenojJxdUa9OEwxe4IMebjLce5wo9FDOzQMpibexYv8ddBjYQXBG+jnickgVJpKPNfb5U6iXq4s+XVsJTA6S7uJ8eDgyyNEWT4kB2zDtnBRHYgJhvKMvJvvx4idGDAGGAEOAIcAQKLoI/PuMjoCVHql8Pg9a2qtnCDx+HE+I6di89iQePCbLGZk/6otEEP0eVKABLd0SEJk5Y95ARwSv2Q2lwLwqO6rQ+Q9MdbuM/v1m4eT5G7h56zb8Dq5H/46jcbflKvTlzxof7gAAIABJREFU7V3Kd4NPHRP06+2DB0GBuE75846aoUdbF8qUkG1MFrLyRCnEpJC78yyShvCHN9tP2wOt3ZMwx/csAu8HYuOUPxFrOxS1+PORkmykp0t4XqogJQZhTq/hmLvvNAL8A3Buy0ZcMzdHU1dFZHWLqmgrCiX36LXRv25+VWlWOrKUjJhyJOlIVyRom1rC+F0EboSGQ93OA/p3TmPlvjMIJBfquzbvxbPQNNwJoWjFsjD8ueYyXLqPQhXNSpi3rxtuze6FE2GqraM+HDq7ZggwBBgCDAGGwPeIgHgm0fc4MH5MiQ8uYpvvFRg2bwrL2CC8kdqgjrMVYkiv5F2jAeqXz8CetfMRqu5KxxnliuWXh7dhzd+6GDezreAq/ONExr7V26OJQSLOkQHyk8hnCIsRo9Uv8zCne5W8aibVGqFJxkPsvBWA569LoPuEIahtRd6oeKshMvK1sCsHOwu5W0+RSA2Gpe1Ryc6c4shYooEn+XG4fAF3noRAy344fhtMUhSBSKSjbY1aHtYFpTI6FmjYsjweXbqEwIeP8CLJEr0HDoaLea6CWhMZD07Cz/on/NqcDIrzW4NJxRqowFsm5zZv5YHqFYwgtnSBffoLXAwOR6VmHdGmhimCb9xAYEgMStbsjEHt60LNpDQ8DV/jwTtrdO5QH2QaBE1rd1QSv0GSRhlUsjEqEOE3r+Mf7AudhEIO2UPR6SWSvEkhIob7S4hXb6qT1MycmFaxWCx8Pkd8nUxydKKqDz4vN135O9+msiqV/5774cetpaVFnr/JdQAjhgBDgCHwAyFQJPzofHQ9kv1Q1eZXdL1yFVOqkogo5wq6W3khuO9FPFxYHHW7CfDp8jv0x0zHaE+Lj8LCMr4NAsyPzrfBlbXKEGAIMAS+JQL/kerqK03JsA7uP5yNDa1MhR2uSDwIxlNvIagYMjmJgavR1Ko53jbuhWGMyflKNxBrhiHAEGAIMASKOwJfYs/6fWNQpgmevyI348WcTNxG4GzMiGI+SzY9hgBDgCHAEGAIfF0EirZE5+tiwVpjCDAEGAIMAYYAQ6CYIcAYnWK2oGw6DAGGAEOAIcAQYAjkI8AYHXY3MAQYAgwBhgBDgCFQbBFgjE6xXVo2MYYAQ4AhwBBgCDAEGKPD7gGGAEOAIcAQYAgwBIotAozR+apLmwy/rcswom9v9OzVC73o071TR8y+IMRC/3KKOoiRF/lYWkDwutMIfJksrxt3HwtW+OJhgjxPdYPpOD9lDLbnRTpVXep/TX16egVWn4/6X6sVLp8WhCmjl+FxIbfQhYv+8xQpgrYswbKjYYWayn73FAc2r5aH5CiUyxIYAgwBhgBDoLggwBidr7qSmXh69W9w9UZh49qVWLp0Odbv9IHR7y3w02F5vKov6s6mNSxXOMLFtQoWx6egQhlDeTVTJ/w8oDMcTD4VypcCc56jcBn/I2/1uXElhN/GnWcKhutzhT+VnxOH86duIO5TZb5aXg7e3vfDjSeFsc/JSkDIvTuI5+N1MGIIMAQYAgyBYotA0fej85GlSX3rjxgtN1QyUu1uPyf2AS4/TIS6WA3qFavD0+pTASOkeH43Chbu5SAPNPGRTilQgphc/ZcwtYBOCWP68OVMMcpvP55UrYmdVcPQ005RN+cdntwLRxq56c+xdIaHNR9WIpdk6PjHBfTU1IMVhZd4GfaSxlgGupwEKSlp0NDRo3ED6fHP8TgyiQJKUABRm2qoVIpfThHUtbWFQKgCcWkIffAIunbVYcNHO+fe4+mjZ0jJkEHfzBr2ZS3kMUY5KeLjE6GpKULMy1dIyxLB1Ko8bC3l4S3E6hrQVM/nizPf3MXDaD4Egi4quDnASMjKQcoraoNCUTwMjoR+qbIob2cGDaThbkAIOHUTOBtmQ0tXB+p50RM4xFGIjBfvKdyBvhkq25eF7sciK3DpePHkMeLSQBgYwN6xInJR495RXLTwd8KUjSq4obwR34gIYg0tpXHLEBP2EMkGjqhE66ShoQk1YdxSxBAmJRzsUUIxxdiIx5CY2cNan+0FBFAZMQQYAgyBIopAMWN0SJpxeBf233uD8+cmw3pOOnwbq2Bg4vzxi89yvHqTA9OkIGyJsMPBi0fQocwHcKS+wN49xKQ8uwrfBXY4xS2H/RcsNB8xvCDZolPnkti45w56TqlBWek4MOMXHH5uQYxADgLf7sTw0XPRqgrPVCTi5NJFWPNchGrq2ciQxWHbrnc4lHAMdWNvY8KsCxjlMwe1067AZ8Uhkozow1wrDQ9e7sHIhUvQ2ErxYhb4uyz4rRmFCeeyMe3P7cTovMfVtfOwLCgTTsYc3qemw7n9VAz0toUoOxH7/hiOk5IqcCcB0vs3UYhIMsOk1QtRy/QDzuPNeUzqPwNZ1b1R8k0cXlg4YMGs0bAWZeL6Qh+ciOGQXl4PNaq2Q0U7fVxcPhTTA8uiEUWtOC9LRFKKBBSujCgHry6vw2/Lg1HayRBvaDwlq7TFtIHe0P+Q2ZGl4OyWeTjxMB46upaQJj1EqZq/Yni/OjB4cxa/j1+L5xbOKI9nCHpbHgs2zEZlxdLzMch4en5iPsZtvo2awzdjSk1lBvg1Fjdph0bBj/ETH3SV6K9RzRAzIghrm+cGEJOns/8ZAgwBhgBDoGghUMwYHRG0TaxgVzkC6XPoRVtWBZND6xOzrx7WbtsILqkXXcng1EgdHRffBreiTsHVE2vBzLocEoN8EWHcDv8kupSVTR1I776j3kiocmMM5ge74cyRcSjJ9xj8B7yGjkNFv/WwurgCK8IdcHpNP2Esd7b1x4lDEpKKEIk1oK+nSy96EYJ3bUCIeASOLPIUykXcOkFMj9A6fdSgR6KOF0d/h0+gEf7cuAQ1qKPYy7uw8bIYMzcvgyvxVNnBu9B78hrYuyxAPTMNaKeSfMbGC7MmNaQ2krF2HDFjp4JQq1dVudRHxN8umdg2sj+4fuFY11WuQtszyhajfTvhQH9r6Oq+wSOt9ri8sIswrpQLc9DnqgXCD/oI0pfY0/OxZ/8bIQ8JVzBv8yV4zfRFP1cKNpn1ANN6TcbGSlUwpr65vIzi/5Snp3H0nBiDt25EVb6h9Oe4FZBEgVvTsH3kECS1v4WdPeQr9HhpOwwZcwvX/qolBCMVk6QIz7di9KYA9Jq7F12ddJEdF6HUvjr0jAyhpcT76JYwgp6mamlggYGxC4YAQ4AhwBD4rhEoZnJ5dVg1aIIu3YejKklNMj9i8Go+IAKvH3VSLIwY9SvSV0vTwgtF0cQbteiA4T1rARmZAgvx/yUtfX2KJE2qLWJG9k2/Ae/JCiaHb9D5V3S2uYW7YWk4d/Q2nBvzjIacarTpBjMTY4GFyaUcKVCmhitiN3XD8E3nSS4C2NVqjRpW/IuZImXrlkDYul/Qe+d7TJsvZ3JADMFVv0cw9G4nMDk8aTo3R1OzbAQ/TxLqZVvYonHdyopu1FHS1AQpyaQnIhIUQeqawNsTWHevE6YpmBw+r9vUCQhadwoS+i7LykGdjtUVbUhx52Qwunb5OU/FVMqzBvQM9QQGJOrqTWQaN0VnnsnhScsFvZuZU+T2F4r6+X/Czv6Nd1YN4ZSrq9Ith1r13aHx/jY2hHigm4LJ4WtUHjMG5td+w236rqmjC9Pbi1Cz3xZ0nHNEYHJ4Io0hI4YAQ4AhwBD4ARAoZhKd3BXLEF66HyOxjiUsdHLwOuIh4u4eh/eJ9eBeOXysOAkxPtXax6sp57wOvwd1oxaUJAGnVhInx3nBXyMH0hwOXI4aSjk1xwS9TEQSo1CA+1TXBicqKFmQZmbBqNZEnDxTHpPHzkKDHb8i6YUbVtzejEZmxEyR4UlodCxqmVlgs+/fqDqxFVnSiKCmlYyza0bAa7c2cmQ54MTq0NFywBBTevnnpNM1r0zK5QDIdiiHxiI3YpFPhQKnQiKCrtlNdGzkBZFEJpTmNLTRss4kgRnir0U0JzklISYlBdpaSreZgQVqEsNEvBoV1ELc6VVo5rUTaqTu42gAmjpacBui0B8pWuH/SNU56FS2lEu2lNIhkyBT5AA75TQ1beiJxcJY1MkW52rAfbRr0wRHlyxB3Q3jUUHlXU9BYZXUZQptl3Kr7DtDgCHAEGAIFEEEVD7yi+A8Cg2ZZxaUbGcL5UP6HgEnVmP5GSnm9tfArsAE9HBTIdXJrUnMhtJ7sHB7n0yR4vqdR3CfWZNKSclY+C3qzHuMv3IFH5QaceIUjKxM8M5EG5lSgQ2Q07tocNI0ldIkI4+OWHeto1Buf59O2DbtIOr+1QbS1CS02ngF00udRcc+K3ConTd6VRJDPVsHrUetwZKB7nnNh/o/hj5vCC0jvRX1wn1K1MHn6YgQ97Yurj7/A4qzYFQvAifu6UOd2KSCQjQzVChtgr/jeCNhG3mfCS9wIzsT3ehKrC6BdpsxuL64f954pKH+eKxnmXed+0WH8I97EEmKM6c86ZCQp2sAS84PDwky69y7OSkCb0SNBObnSWoKnH/ehmlDDDB3QBdsONIUCzs5F2BqePZOKuFA/GMeZcQQ48M0V4XWgSUwBBgCDIGihkAxU13lwm8mMAYRSm/d/VNaYdryULkkgS+mboifRq7F+RMb0J7bi54d/sJbPj0zFAO7tcLOJ0pLacq/0t+Q2unzxPMCWvpGBQrem9IVey3nYKQTn6yOdj6D8GjyLwjOFRTdG4muywPIdFiEFj1b4uZfm5EgtJCNHVv2IDLWEFb8pTAfUk1pa5HR9SIs2fFcKMWTQ+N0qFmXgibl59Ag0nltlElT/NpGD2vG+dKFFho1rY2EvzfhpMJEJvPOFsz02Y3YTGLhcsUxivZy/xDrk5fCSYkTMG2Lqe2vYui0h4p0KfZ2bY3DL3n1E5X9gFHy7OiNO5vG4ZGi9N19p5AUmyq0al2/MSrEHsesU4rD5ln++HXmXNyLzfxgFEBZrxZQf7kP1xRjR2YwNkxbgXCuNia1icaisWcUUjwp9o9cDP2BPcBb+fASs+xU/nh5SfTu1RSPt27AQzpSrikWKc2sJNRN3sL/kYLTuT8em5/qQftLFrzQSFkCQ4AhwBBgCHxPCBQ7RidkU1eU0tUHKaPwp4MIrSbvILzjsWPBSaw5cFal/5YyHbzIcnchQnhzlMiz2Lz3JAZffE0Xz9G/pQtELivJRmcmSpjXxbLrfPrHiMQKamLsG1EXHtU94O7ujqpVyuM39YG4saIbMSFy0nIZD98xRviloiPcqjmjzBRDnDg3XW7s7DQUd5ZYwbG8A5wduyHZtC4sLWzkUgxS06SmZ5DkQYZy9dsAfkPh6lETtWu54pdN3pj+ez3qIB3ppC5KV7yzaw+eCPfH89B4fyz0Pfpg1bgqmN/RA1VdqqDxwjsYuHga3PiDRRIpMjPIronUUXKSISs9DWkZcm4sOzMNqRl8o2J0XXIb3lH1UdG1BlwdyuF8483Y1Ia3fZEiOz2V+laSSFUZiIg1zVC3rCNcnZvgeLQ2ZFqacvspAw/MWzEOyT7t4FLVBQ6NFsB24GL0cS8sWTN07IK1U+th5yAH1KxRC54txkDi3RMVyB7ac0EoxhsvQQVHN2E85xqsxcHRvAQpi+aQSuPOFqZUtlEvtNYPRJPfThHfp4YMypNPVwuj1v+Oh10rw8m5Mnrf7IoZPeMRn/Lh6TkFNOwPQ4AhwBBgCBQZBESkqsjfsheZYf+TgQajl8gFf+9KQVJ3wdENzk4RodmOuYh++Rus/0nT/7guHfl+FYXXJcqiEu/zhqe7q1B9kz78FaewCnaRiPUXHqJ62RqoViHXSvcfD+I7byAUQ/a+pxNf1QvaMv0Lo87OzoZEIkFwcDAyMzML2i99on/e1kmbfBs5OzuT7x7yR6SZy/J+vBJfJykpSWUffJ5IYVCU+53/GfMfmUzOnPHf+bzcj5TUoQYGBjAzoxNojBgCDAGGwA+EQLG10fn4Gtpj5OROKH99I+a/kkI7+iqWXWuJGad+/Y+ZHH7EOXhzcRM6b0vC5P41kS1LQtg1UqV1+a3wdMh54NP792EafAC9597DrUujyaNOMSdpIq5djUSrZ3+h3rzZ8JvqXMwnzKbHEGAIMAQYAv8UgWKnuvo8IJqoOX8/mpYlD71adKLJphEOn/wbM6t8KqzC51v9OiXEqNh7GvZPagYZWcJqqpmgzs+TMayxYKFTkMimRl3EIdXYE2u3DCz+TI4wezXSOEmRVLojNo9gTM6HtwS7ZggwBBgCDIHCCPyAqqvCILAUhsCXIMBUV1+CEivDEGAIMAS+LwR+QInO97UAbDQMAYYAQ4AhwBBgCHw7BBij8+2wZS0zBBgCDAGGAEOAIfAfI8AYnf94AVj3DAGGAEOAIcAQYAh8OwQYo/PtsGUtMwQYAgwBhgBDgCHwHyPwAx4v/zcQz8bbyNdIp+ib8rBPvLdiMYzMysLM8HvnLbPw6kU0MmRiWJa1pZhRXx+v1IQ06Jnq/YOQGl9/TKxFhgBDgCHAECieCDBG51usK3cLfVw6Q6trT9hqZULGiSBJzYSUs8OIpZPgXlLjW/T6FdrkELl/LobtjYRTpfLoO2UmXOQ+Fb9C24om3p3G6JERWLdreOEAnV+vF9YSQ4AhwBBgCDAEBAQYo/NNbgQxStk54Oe/lqK2kgDnzNy+OLTtIpzGNSsYmPKbjOH/02gabl7wh+fI4/i9wbdhxqQhF3BLoyxjcv4/y8PqMAQYAgwBhsD/jMD3rkf5nyeUW+HUUhv0P8sHc1RNkRsaCW701ekjmnFVdSEhNRg17UsJZUWiuvjzLB+J+/OUkyND+vuC5So6OSHu2XO8V4SC8ts6Gs4u1eDh7oKfevvmx+F6tQ/t5/6N9RMdYNtiOoKT+XZeY1FnJ7i614CbcxUMulIwDtO+/vaoUqUqqv22ARcWdkbvI/JAmaH7Z+Gg3ykMta+ANiPnIIwP+CE9AwcHJ9So4Q5X1144JITvysTfq8dj1qUX2D/CFR0W3/nsJP22jYELjd/dxRHd1z4tUP7OAgc4USysGm6ucBlxSMiLC9yLodOPIvvOGjTvsAwvKM1/0Vj8uvmBkP86YB8OHVmNuT+1Rq1m7XBN1fIFr0D7hs5wrd8eU1ZtxMQFPghOVERHzX6OhSNa0pyqomG7PrRyBenk4s5wdnWHi4M91oTL895fn4dOu8MQ8ocTHKt6UIyyyUIAUn+fSnB0rIqqE3dR9LBc+v/Hr/9gKOySIcAQYAgwBP4lBIoZo5OGC/1bwJCYkpbjU1G7rIlKGLP2esJu/wQhNpCUe4gq8xpAtCi0cNlUf9Q07w7P1c/kcYQed8ayZs5YfPfzzI5Ijbz4Fgg/JUH442BoWpvDiORowRu6Y8qt+rj/4B4C7j7AJJs5GDj8FCiwNkUSz8CZ9TOQ2CMUkafmwNkwHZO86iF5SgiC7t5BYPAJSAY6YbXiTX6wnzM2tQ/Cw4f3ca7uS0xZeRavM+QhzNSy4zCu81qMeRKOYyuno2LMLtjab8PR0BDcuXMXQQecMM2lLyJIxtRqxBLMaVoB7RZfw6EJNQrjoZTyeMsQTPdrgAc0/rsPHsH7QT9MvijH5eFsWwzLPoqQoDu4ExiEP15Mg/OaCJi5dcVf8zpDv+YInD40FmUpOvu719GITpBHKxdz77Fm8m6UWnIUt84cQb0Plu/93U3osDQCC84HI+jqdtjd/Q1/HUkCp07SJ2kMlg4YiVjPpQgKuo/zC+phRoOeOMtzU0Q7uhlib+bvCA66iwehd5HQpR52UZ6WOB2R46vhRKsQPLp/C3OaR8JbzxDXOz7Fo0d3MSfLFz/NuS5vhKPgoIoYU58Eh2UyBBgCDAGGwHeDQDFTXenBe8spJG9Jw1hRCaR+BOYk0/LoZq4FXuBSAk7YOxJwikooXFqqj/Y9KkBXLC+pZuGJKuXjEBQSD7gbFS6fmyJSgzQ9Bef3/I1Y3VRipsTIeP8clwON0eV3L0Ftk1GyPKbM6QixJBTnz4eSpIUij4vjkUJ5OpDA1rIrBlZVNCgNh33jv9DfDUgMuo6bUW+hVcUAL5JJkhG9HdMf9UCwr5yrKtliAkbUPIYtshyhMpctQemx41BZ0VRqvAwDN/nAnq7Dbx/E06cctIwz8Yr4IjtisDKofJYgiiocQVzRhPAnhw/H8DIQfrGNUadUCQxae0OR/R5vZAOxcxb1kBSOi5ee4mVlLRi+ekX5dhQhPQuybDljQ1wDBXtXh1gs57c5iqBu2qkz2pVVZQGdgosnnqJmg/6wF7L10WngfBz2uUeMDpDy4BgeZNfF/J4OwjjEDoMxpOlTUsU9RNMB2TgZ1BDj9uSGjdDH9MBrQrmUF9mQWo/HGAEgdVRzN4dxn1UYKzQjRpUaFRARzEvH0iF5cRIimw5CPUYMAYYAQ4AhUDQQKGaMTi7ocUj7BP4Wjbdjd+PcAlEYv7025j6oXbiGUWVMXnYkPz0hBKE51TDNw6Jw2Q9TuBxiGNKQxqVBQkevctTLYtiyMahZRh652s3dGzMXT8CB4CBwddvBlaJhi4lBkr/ycyBWM86341F3gUf5KZg8ajtuRGuhS8sayJYSo0GRsLnIEIjtreiVnEsl4FBZE1KpXKIjpQjWlQ308nL1XZvDbtV6jNgZgXfvJfCsb0vckIj6/nACn7527DoWbW+Mw4SWHeBSxwV29q3x888NiXEsgcYD7DBp3Ai8ePkO5hU9UY7EVGo68hGSEO2jJKOx2uhpqz6NJclCzJs4SIhpyiVDixIwKZMDvsmMV+G49fI55k+cCA2K1K0mliIq4Dmsu5IUJiYIdw29QTMtTFKK8F3ZCLmt6umrQWyRHx5VKsmBuho/9mxkxLyEnp0qJqxwsyyFIcAQYAgwBL4PBIopo8PLCuSfj8JMKp0VI+tj9PoUDNgTgt8sP63FywlYCK+uRzBp12H0d/xMnHBictT1jNBqYBfUlfM1hYaxZcEEhLn8iYWDRsGiYhlkX0jAqX35djfEGgkvcIGSjqL/vJeYvmcuBpqYopJlCWy4uRzPSGjDyWSCdEWZ1IlrUeYnpErcRcyRRZh63xI3f/sNnJEdShsHYv+GFQXKF2jsIxciXXsMW7cPrcJiwBlHYKzFULwRHcay4RZYMWgqxONuYl5lDmVsSyPn6H7suPUJDkepDxlhp7IkzYFnhEDMYC6picV0SaXpn0wqQkm7uugxpD2MJRkUFFUd+mONUdLSDHgVQJHgU8kK6SNEzE4u8VBxCmlYwdKcoL5kxBBgCDAEGAJFC4FPv92L1lyURqtLEg4RcpSYjNSEl4h/p7AC5ktqmmHUX4/p5fUSrScYQ9TlmKK+FK9fvURqXtFX2GxjDLuTLXH12U0MqfUF0hxqiaOXcpZgcKOKYvDsfA4G9K4LW2JyeKXTzk1LoKGlrvolH3QN6Y16oZ2TrcDkIPkIfM9qQ8xlQq1+T5QOfI7A3G4kd7HzWBIMdVWdmspG8MVn6NK4PazteCaHNF8nfZGYGEXM0v9GWe9ikZChhzIOFWFj3hRb/IdCcj8YkrRH2BXZBb+0sEY5YnI0EI218xKhLVao0shIm4/M/j+Tpglq13RAZuRzZCkqh1y5iUdB2iRxAYwqVICLjCyNrOxgX9kRjg4WOPfHXCze/xwoXQdNsnfhTlR+rxnxL5FEfItY7QtEWQKDowsjm0rIkSndQ//zJFgFhgBDgCHAEPi3ESh2Ep2kxxdx7uFlnKdX93GfOXAf3hNe7tYYWtIGpzy345lfL9D7XYnU0P74OKDqIvijDapH74FVmd7w2CuBf8eb6GExBmrjlmBVuUD8tc4POdIspFnWw68dyWDmY0SOAjNSU0ll9bECVqjdzxabRy7E+06O0A1/jCOZruCibyAmvQdKkdErVc9nPqp3g+v8IZi0Hqhn+Q6Rd2/DwCYJb26GAJ7VsW3hAfQZtwyjG9ng1dO7iCmRAU+bkkLnsmze7ib35awJj37NsHTcXOw27AC92De4FZIFcdYd+JMtdl0HubotQyKXLMmSnuHai/dwd6qKEh/wTZGnV8PnjDq82zvDWKSBW7tOofKEw9DQy8HMNnPRl4yKx9XVQ1TkLURUFOPdaX+8nlsXllblYRl/HwcuXEZjby/kZKUhI0s+vhxpNkiDB15wU5jU4d6uGc4tW4nVvvGw0eVw/+ZVZLp3hRHxIbrOQ9Cj4RQsnTYfzeo7I+ftDYSJnDGibTmhqZHja2CVz0Jkd3CGoSQJ+w6dRMPJO9GNy0Jqer6sJ4ekQamZilNcCvzeZ/D5WuBsf6LDaZ9SihYeNUthCDAEGAIMgf8WAfFMov92CF+399Tou7hyMw4e7TuiumYyRGYV4VLOFAY5BvDq5YUaFUTYM3o01urURCtbuQqKuzcLs3bKMGDaIJQm1YiNlS3ciYFw06EXXFl66yam4nX8O6SlpdGR8WQkapdFU7eyHx+4SAsmFuXpeHVlGHxEeOHg2RDGsRGITk1BPGpj6R8kmdEtjXIVbaGvpQ9za1u4OpaS295oWqFVTVu8eB6JlHepKNvxd4xraAIjc2fY2RigRKUmqCsJwO3ITNi0ao8qd04gofFw1DUHMR7GJL2xR7lS8rnqWnqgQUkpHkTHICXLDO379UYrj6qwLOeE0iXUoWdiiQokESljogW17AhsPfYIjpUcYaBbUPhXskpDuFrE4fFTsodKTUS52hPRz6sUYaKNCs0aICPsAd6/T4GkYnv8PqAVjEtbwsGxNHTMqsBVPxvP4tNgS8fkLUgVZ1O5Mspb6EFM8y5lXQ521qWgoUrWqGOJurXLIfrRUySqmcHNwxW0KKhdwxMGmiLY0NF7Cy4WL6Jjycq8IjqP7IWyCuMbc9e2qFYyGH/8cRZqJU3ReNgCdCIeSKZhACtbJzIyl0vq1LSNYGVjD2dr+ZEvHr+y5R3hUsaY1GPZxITlIDY2lmygpILLgS8hXuWlrq4Oc3NzMrwWC5/PEV8nk7iwgpWvAAAgAElEQVQ+VX3webnpyt/5NpXVa/z33A8/bi0tLejp5dtrfW4MLJ8hwBBgCBQHBET0IPzBDA9eYbKoNCRRHJaU4ZcwEu4GdggcdgfcoupFb03DyE5m6G2svbgENvzoJWdQx3o71sfuoPNk/5CyQrHhdDxaedWFleE/bOufViej7qPLx+CC0SCs6FdTaO3yijHYmtEcayY1p5NqX0oRWNXxIrocHAieLftfKDs7GxKJBMHBwQITokYuBL6EeCZDW1sbzs7O0CADck3NjxhuKTXG10lKSlLZB5+Xy+jkfs9laGRks8UTf83n5X54xszAwABmZmSzxIghwBBgCPxACHzZk7pYAWKNBdw7yGx4B4D8xw71dsQWTSaHX5eKXbB9zEt4V3aFOzketHc8DJ8n2/45k0NNJ4fGwsaUg+F/zeTw8xTpoW3fkTC+Rj55yCGgS5Wa2B7fCMu/mMnJQsC239C4YmMsdbb5n5mcYvUTYJNhCDAEGAI/EAI/oETnB1pdNtWvigCT6HxVOFljDAGGAEPgX0HgB5To/Cu4sk4YAgwBhgBDgCHAEPgOEGCMznewCGwIDAGGAEPgP0cg/i7Gdq+OCpXKoX7TJSDHDP8abexlifKkfnetZAvzmSf/tX7/zY6iQu/gQTjv+57Rv41AsTte/m8DyPpjCDAEGALFAYHbu/7E9j0B4IPhxCRFfdzB5jeYbMzDN3ge+kbe8nMV4Xi+QZ//XpMZ8O1lj/5/W2Ldzctw+fc6Zj0pEGASHXYrMAQYAgyBHxyBiPOzMfz3HQKTw5OWpvoH/ta/LUDqygcRNT7vfuHbjubrtS57cRSDqhqi/86XQClDaH3hSc2vNwLWEo8Ak+iw+4AhwBBgCPywCMjw+ORSdOw8A4/Tf1gQvtnEH51cj+1BCgekX+Z265uN5UdumEl0vsXqc0EY03EANj4t2Lgk8hx+m7sQIUlfM4xAMna2bYydfHDwH5DS/Y/hUiRFkycKPfwnFi07jJQfzDPUD7jsbMpfAQEu4Sbm9vCGV9uJjMn5CniqaqI0xdojP6xy0tQlR7L5QYlVlWdp3wYBxuh8C1xFGQg7ewhb505GqNIuicuMw5OwZxRH62u+iQ3R8+h59LT+FhP5ztuUhWH6oiMIjJfLvR3aj8HEse1hwHZO3/nCfeXhvbwN3y3bsGvXri//7NyBbQdOI/ztjynGSA3fhoYlPTF99xXE0r5LrFUCFuamX3lhvlJz0b4Kn2e83zNLzLwcV6jhrb1y/aLRX5eZBfOV69v0xl1a8ozHxzC9Rz0YqMvr2Xj2wIrjD/Pi6AkNvLqI1o6air410HLJ3UL9CgmP5yuNrzY2PyeP5FE70ID8tJm034qE3H1t8FG0NZT3Zzr6SsG2clJJsrYSvZo75bVVpVF3LNhzC0nZKrqVxGFhd8u8shP8ye/Z7XVoUVlbSDOu3AyLjz7F19xSqxhFkUkqtqqruKdHEF6iJWpbqvZCm/XsHHZcjYGWWA1ij9bo7lgwAlb+Cibj1JEziEshd/zGdvBuUg9WfBTOT5IIBmYlkRAahm07KIr3kNpCaREFs+Q946rlhQ6QIOz+bTyJfkd5mrAo7wY3h5JC5PU34TeQqFMOskh/RCSJKTRCHdSqRvGdrl1FVKIaLOq2Rg3huSRFlJ8fRNUboAwS8SAyA/amKTjtF05hBwxQ0a06KlnoKkYr7y/0ZSIMjO1hW1qMVJEpHMtSUFMV83kTeg3+YXRKgGJ3OTZvi/K5m5GsCBw/85C89opgWLE66tpTrAmizMQXiMrQgmlKGPzCk6FuYAX36lVhTuEjXoWcRZJxfVTJBU+WibDnD6FtXg1l+DgZ2a9w/UwgkimsqaxCA7SprPBS+P4l/KL14GYYhrMBcTQnU1Tzrg0rLQ5v791BdHIi0q8cRUTl3rBMDceLFF2Ur2gl6GRzyKDylt8DJIpyYFCyDurXVDzIM6NwI1AN5Wxi4X8vhiKga6BWq2aQRwdTAQRL+q4RkKrrQp9+5tlqYgrwqupOLjx8PjirpoYmNIrtE7DwnJVTeK/euUiVKOuFDTv3AX7D0G3SoU9X/C9yxcqLpE1rVnh/rq4ci0/zg8B8yvU1U+G3vD/qTvUtYGz98uZujG6zGyu7zseRdZPhZEQTta6O/vVr4MxjP3rKShF+8gjCRrmj4gfN31qzOA+VEl07UGgZEbKfS6GKP8ktmKW82c18hJFNamPV9YInskIu7cEU+kwv3wNnbu9EI2U+lEIVaWjmv4giTi3FT0vH41qyvId3ofeRXMKc2aYoAC98x/wXN/JX6zMbjzb+gRG9h6JF1/bY/uQjDb88gz5/HkPwkyeIuOKLHk1bY+Xj/MCO+bUScGDeNmy86I+wEH/s8hmF1sPX4tXn2GROBm2T0pgwuy9iLu7H5bcfSnD4RwyHsNPbsXjbGYQ8i8TTID+snT4Jf4e8F7q/vro1hsxeA7/gCLx+ehzj2g3G3HXrcSXoOWIeH8HEkQsQJhRNxdEhvXGU3+SkPMLKWSPQc9VJvImOxO3jmzBlwZa88T49sw0Lt57GoxevEHBgMTp3G4M1fz9CfgjL/Jk/PTYN85eeQPCLSLx4eQ1LBvkg8B3lx1/FsuG/4lDIK7wMu4Vt86dj0025CWPio1OYNaILVv59F9GRj3F8/Tws9L0mNPr8+FxMWHM9b8eUHe+PzbMXIPg9b3iYjE3jRmLbhTC8jH6Kg8vGYbNfonwwL85h5IhBmH4sCDHRz3BxwyyMWHmR8kRIjH2NlMx0JESFIZ7WJPLcZqzfdBbCHj3pDmZOnIPdlx5Qm6+wd2Z/bLpGMbB4ij+NVp1HYPWJ23gW/Rp+G3pi3B8v5Hns/yKHgLqlMxrUsEcJNQlk9FOTezxX2uELHtDzPzzjzmmboWqtWuT5O3cTUOSm/Y8GLKFHkKV5dfSZtR6nb1xE1zqmyEqgSMLfJSkzr7SOKrZl9N7Pp0LMrlL9F0cwmpicbNtmGDtrIcUY/AOzx7RB7l0QvncKmvxCTJ9AJdCmTxOUUISHC3t2FbeefhDUl7uPhRQnUU7m6O7tDQO6UC9ZExPmzsXoTs7Qzu2e4i52nuCDJT4zsahzRXkV6QvM79Y6j8kxdmiGiXMXYekiH/RrVAE8TyV9tgttfhqCwAKck/x+VnSMgzPGw09cCz/PWIRFC+biz9VbKcjz9+DSPneE/+3fYrafUYdFrSbo7WKEZzUpDIKVamlO1OHm2Ld+M7is/gL6pduIMGD5bYxc16Dgarzxx+8z1qLtxduYU68EsgIXopL7XzgzpQ8GVPpUcESOYiLRhqBxG7Q7tBljpx3EvQ2d8k4xiGjnifQI+J7ajyo9DmJUTfnP7MisATh97RFaO9WElkQbJmrV0GtYe+hDhlfHbPHw/c/YOcGLAn3K8LZFFWy5Nxbz6mtAi2IYkbCIIniqQytWB87DemJoPQpSmXEPw3uvxN+PUzGk4mscO3cdLYdsRIfKVDjhFp627wVNbR0VpysycHTWHlT1DUd/ZzkkL6oHwEA/HWdmLEBAuTHYOaWpkJF6wQd1x25F71vjoE3bqljdihjWawz47jPrbULvFUcRktYA7m0HwWLcGTxJawwXgi4p5DZearRHA1K5ZV0chlVJrXFj5wAhZtWwl5vQtP3PcPffA1ddTWg910KzIUPQhH+YtSsN91Y7EfxrIzi37IiqO8NhNWAKqtNvOkSsAx1dLQorClzZNAqPy8zG1t+bCg+xN1USMGXOCtQ6MRdOtJM3MC2Jxt2GowG/c+thgJ9qj8StkcdQi6nQhXUtamRWsSZq0Qvwxt2nSM/RVC3ZEYKcSpEm0UOdpo1QyYT/0fyYpF+6Ff6404oC2OZKsjNA4YuLPwmb1Jo4dfs0muYFuxuPGrpeaDXvCj1Zgdc7u2LfH13QhZ5hGp7d0U9jCZaBdpUvnuL6lSfo5eSWx2pl3tqKa9lySYy4YhW0aCg/PC42qIwOv/2GGrtDsP0wxcbjGyZGp+OYqehqlQ9z2JbpWHA0QkjQLd8Mq3fsRXd3BYMyqBHMWvTA4tsRSLu5DYv+HIs9EyvnV1b+pqGHoSt3Y3UPW9X5P3hqMZPoqMGkiitq1WiFciQ7yPpQkKJYbJtR9MBTMDl8krm+OkzcVNwgFs3xSPII84nJ4UmsqQeTVjawM/z825CjXWM6ceDtlk9CqbujMc2P6uvKZZ58HnTt4PPncQyrrovQ9Y1h51QN03c9g662/OErK1EC1rVdickReka1hkawdq8uj2ZO/5cw0UAWBWrkJRt5RNdZLq74yUkh4+RF+iTmTZOqI/PxCTx+aYoqFRUPd1NXNG3eEtlZWfn1c79F78Rf6A4vBZPDJ5et6QFj7gVOP7VGjZY18uroe3dDi6xV2EkSJbFIAheXWsjrXs8A6mSvlE5d6JZriIoVg3H9vtxweNu6zbDs2wl6SMOO6Q/hPaA7dLJTkZycipwy3dC8QjD8eWNuUjFkNWwoZ3L4XkuYQEeSAV64BGkWJJSfTVKdfBIJu6C7gamo0LBe3k7Nwq0vKlS8jauBtCNTy4Ghvic8eCaHJ0NbGInjkJqh1Az7WuQQMKtYA/VrOEBXRIqGnA9+/EKQUxkkaiao1aLlD83k8Asr1jBWYnKK3FL/owE3W0EbqTwmR95Us99WY5BrfrNj9uaeJKlE0t5czzdvcODCacTlSfTTcGrlPbxXCHmqunSGZ4WCsoPUDAnybkWZBBmpSs9b6TPsOOAPOZukg/pNpuQzOfxQjGthzDhPmApNZiHwzBo8VfG45nP1TVugX2fb/AmwbwUQKGYSndy5ZX2BEVY2ngRcwqMrF/BLKPmP2FX247cG2XRs2/s3Ii48xKhB69HQ/Mtg43idkGFtnNncBW6dh6LO/rYooUkiRzWqnxOPVb8NwKbbMtgaeuN+yBT4/zkRh+mHISdixujBnEs59GvJUUSm5tP4mPOFRLjCsz0HUqlib8bvYClFiHRNkaw5TkRt5rVIJT+yoyXVm7qGFXL5AKVBUJ2SMC+hzB9zEItNQYIU+aBozHndU580WUqnv1oWcCvrjIM3QgHXZFwJdoJPfb5SJjR1jHF1aX/02EBjp6I5OSKY2fdCX55fS+BnoLTXFNoUqZBC5Y6S5khfdUhqY2OoFNOc12no0E6fbKR4yqE55qFLu3weizzTqdym2N8ih4BxOQ94k/3J2ZuP6NWgkOwomByRjhnca9WFQ8kPjCyK3CzZgP//CDihefUyhavr2MChBu3sgoKFPOn+AKSMriSooUr384H5IC+8pe+Jxy/iavRYdLKlZ0vcXfg+vye3xdE2Rt1h3f+3YMFvIhAYFykfi7o6MgwjcPmqDNn0DuCfYWItA6S+jEOOoL8CwuIi8IR8KlZS8arS1qTNMrut5Viq+P/L3tgqKn7vSfyrWONT8ipZNtm++ONUlCYmV7+NxZfqYUJDJZmi8gQzY3Hx2j2ULa+ByFvEHDXqAkfegPZLqeoyTGv6E2bO3gF9bSsygqT79s1dPIuyxuYza1FNuEHf4xXZtYiduqhuVWBivoBUlSPmQ9PEFsb0Q5LwuxFBo5eD9NhQcCZqwo+qABmURMnUA3iB4Shgoq2lDwuNUIS9JhahoqJGejQevauOnvREkFKynLX6oD2Bu9Igw+Ry2Hf4Ms5tDkRM04lwFYRRetA1iEXlCVexVW6zLVS+v2ETDHlGJ45Gx3N1X0zyEWhovsODKLIdcpFLtzhpAlJjjVC1FE2eZ5YYFVsE9G3dUC87GzfvhyON1FhinpHVJJucmp5wMP/sSYJiiwubGI9AKZiYqnh2k+7f0NAsDyLRi5z8jZC4AabWBUZfp2zJBWw7/wKdBjkgJuAKou/K5TG62g3RvR7PFn05Zae/Rna6wjZU+h5XFvZHw4WfqJ+QgqgEkmWXLbQFJSF1CUGSzUg1Ap9iBVTXKBKpZsQAc6R2yh/shn5VMOj3+/mW8GJ9ePWYhvXL56KHw31M7LYW0XzxtPtoXqcKVgYpTdTIA74b12PW+D64vG0olp99+WkUFDtI5fdzh1nTUT35MAJiyOMoveDVxFpIe0cGvfw2gSjz7jrM3nUd7zMVvklJ4pCj1ABHzIKyNJ4Xw8vz6cUuI2mN0ApJfahcHrMhjIOX8GRBzbYhKhmnYe+pCKFkduAazN4dj7IlDQv/QAw7onuF09iwMlIoy9OB39pjSaAF+ncwwqFxU/BKkX5l4UrENm0OXnOcTQPk+EEq+BJO0T//lyezqrVgmH4LY5afQ7efaylaUEfHJeMRMaobbuba+V3tiT7H02DMM0J8G8pA0ncZL53ia+eQKDgzB5r6CnaMx4hw4W32mrRpjlurF+KOQh11a/UAPJa0Qi3+GD5xZDm8hCeXhHHK/jd+Kr82+/YdImBWqRZqV6sIbWkq3mXpwK1BQ1TOO334HQ64WA8pCfOqOsCtdh1Ud3XCz7tJqvshKWngCzzoPiz3kesvl8YmIOl9nu6pQGuc0gYo/5kqL9L65z55z8nj2y4KiTev30GgoinrwRNR8/MWDQX6k+Vk0rPsIxNSlRzzEvFJHxhD55arQKeHVdVhaQICxY7RCdnUBWYkedhEk1vnJEKLSdvpWzyubw2hE0z+gm0Hl5VBdiv5LzpTT0cgdiUEg/qYO/C/EYKFd+XMTDoZ2uTdi7oWsLbhcD4wUgDvo0QqIi2dD4x8S3pgcN8RqKBGqh2ypVEz98KvQ7yxydsRztWc0GVeKaxcNQyyiFdktcLbA+lCU5z/6xdr6EBTLX/M6lq51xzUqS91PotTgxapZvJq0Tg0NeU7WsAEQxfMgMbFMajs5IDus40wjpiXnFw90weTGbE/HDVjRqCyc1VUrVweWx3/xHg3LVh02oJ7K8rAs1IVuDrZw9ewF86saSPU5kglp6l0XpejXRLff95NZlAFHUtbISdlEPrZK3VoNxhH1nhijqsjqlV1gu2KmnhwbJRcdcapk8ZJWfCoBh0dLYh4vZOmM0Z1L4X9Xcqi4/G3MNYjTKh/nr8t+9MabB9iiblVCd8q9piLlTiyswcE+Q7fpo56viRL1XopDY99LZoI8AbKrdp1Qo9ubcnlQrEVXheBxTFGtuwJ7t26gYAHj7D2ZGDhMSsdejUqoaRyFn6vSpsSXmGvgqvJfF+4SdUpT/D0pQpDF5Lwx8VG5FdpaUVPzHwq23wgOpVWXF9bjgvJyQi4ciKvwKSRNVV394lUHRNHGBopNmliE3T1DaOp0mbxo58IzPDmd2qFSaNGGTojxuijCBCoPxiFcH3pp2N7RJI37x1D6Z3nuIyL/QCJkOXdOW3Tn7jAbHmGLGg7Z2+iwU04EV3kMJOkxXD+t0I5ad7I33CLRw/ltt5LKnJz+a8GnJWVxaWmpnI3b97kLl26xF25cuWLPnxZvg5fl2/jS0gmk3Hx8fFcYmJioQ+fnpCQIHzi4uKEcvzf2NhY7vXr18InJiaGi46O5qKiorjIyEguPDxcyGfEEFCNQBq3ZWJTYbvEf4ysxnGPVRf8f6UeHSFvV96+N3dDuZXE/RxpwvP6br0mqGAfCfvz8sjQjhv794f3cTzX31Cp/eo+BevH7FCqD06/3arCc4g5xbUuld9GnX2JH5RJ47aNrpHXjkefXpx77pgdPuhPqWbIho4c+QiU13NoxvmGKf/+o7l5nV0VbWpwngP2c6mFR6Y6RZLALe1rlzce6wl+qsuxVAGBH3CbUwkTV/0C841jMPQcCQVe38bp5AFYd+IX5Gto5XyhXaefsTxtPdaPHAYRl4E3ERFwHX4Qk1qq5qo/yk1+Bxmi7Nc4/qcPVhg7ooptCaSnPIeaVRu0FDxjMWIIMAQYAt8OAbfWE2GwepHihNEFdG80CH28ykJDkoxQ8jUWltd1DXRpUL7gQEyc0ZZSjgqpFAl8yWbMazlJcCPB2zZeWzQEWxSO8gpWVH2VemQCBm9piDX9HRXqqNdY8stInFC42QI8sK5zAetEakgX9Rs2gfPKOwgmEX/Ath15jTcd2VJ1R5Sqb0QqJf4ty4uZUzPpj9zlCZeRDZGONYZ0q485+4NoVhLcOuSDxc2cMLMLbwjAUxKuHDyFBB1bVK9ZHWVMP2GFU0DqpajO/uQh8AMyOupwHLESfUvtxWPes6S0EcY06YDyKuzIdKzqYsAAA5y/E44M8rClX7oSvGo4FbZpKQI3lNjIDVNX/UGHCiIFh3pqWt5wqukO02KnvCwCi8GGyBD4wRAo3WAQRnmuxNwbcqO5F5c2Yc6lwiC4jRqPNo4f+iizR5fOOji6X1436eLvZO9zGhbkHT0r7Q0CA8gzLHmWB1fAo17hxoUUTehpZmDjgDq4td4Fpjp0GCPlBa7ejVCU10W7tb6ooqJ2Wc+msHVbjeAAwbmFnLQbY1jrXMakcCWb8q7IFu2XZ0TfwZwONbFVJwP63X1xaowbTDtMwcJOuzHqQDxy3t3H3MHNcHKFHfToJI0kLRaPgkKRRh7ujchQum7f+Vg3v2OhDXnhXlnKhwj8gIyOHALHzl1BljmfJXVzFzT/KdePwmeLf9cFtEztUMPL7rseIxscQ4Ah8F8gwEEqybddycgk/y9fcxg6FTH7wHm8bdMFGwJyjzIod6CFOlN24Ni8TlDlz7f7+jO4GNoQm4J547xsPL51GY8V1XXb/IGAblHw6LFCnpKldAql0BzssOD6SaTPdMSkk1c/yLVGtz/3Yccwp0K1hASz6vjF0x3nAy6QBEZOVu0ak9PTT1ghV/sZa9qtQp99dC6cakUF30EUfdOLDkYiMTomsMTI/ZGQdvDA+MOhkKW8hL/fB4ddst+hRIvJmPKrMpNDh0yy89crU/JVV0v1/Itw6g/L6BThNWNDZwgwBBgCXxkBMawreaCaRyZ0NWUwsnQgxw9fl0SWnljvH41pV3di7pb9eBhKuqJStnCu4Ylxw34hg/GP9ycyqoeNDzIx+NCfWL/2bzyRqpHfmzZo3bkn2nmUROKVJahStTpMtGWIcy338YZIRZQqs8DkvzPR4cw6LFtPXuuj1FCtPXm7H9wF7mafUA+R3/aGvT1h5EuMjnCq/P/YOwu4qpL3Dz90IwaChdhKg9iJ3e3a3WvsrrnG2rq6duuqu3Z39yp2B4rdXYAgzeX+59x7CQGV1d/6R535fNB7z5mZM/OcC+d733nnffPSvGYDPhxgOz2tVj8lV5WRzNl6mDvP9HHwzEOtmkVJkEcW/LLhKp1v/sOi9ds5vP8sD8PVWGfOSbFyFfCp04pyuZKa3o3I6VoWr1sPMFW/JWsB6YLwgZsuXE9E+VAFeU4SkAS0BKJEbJZokdvDz0+EdI+IEElNk/7xSZmUssXf1NQUV1dXTVJXZSfax4rSJjAwMMVrKOfidp7EvVZ+jZUf4cSs6Vp5rZyL+1F2+lmLVCG2tkk90T42EnleEvjKCTxdjl7WlrpJiIj0h8+IuDiJ91Slfn53F4nUNB3mECgMKPpOldm4fRd1HFP3dyD1V5E1/9cE5B36XxOV/UkCkoAkIAl8ewQebWHQ5KUakaMUd9dGlJQi56u4z3Lp6qu4TXKQkoAkIAlIAl+cwJsDlHKqx7Enb0VAPmExjRuAZVa6DO0sEuLI8jUQSNtCR0Q1vXPjKuEZvXC2Sx73MejZDZ5EZ6Bgjkz/OvLh67unCTB3Jd9HQsKHPbvJQ7U9BbJ8OByTKvQp/n73CRFJJrURjJWIvtbk93DF/p3cUP/yYyHST5z3C8W5SC7dxsR/2f6/qh4jdjscuS52BIhc6tEqPHzKJeTGinrGWX/w8LCX0Tr/K/6yX0lAEkgdAREMMKG8JULJVZPaks6B8sJt51icyNE3IV0mO35ddIkuqdnNktrryHr/KYG0LXReX2LcT725maccS0U4/+yJtU74LSY1rc4pnzFsGNb0XzvO7ZlSk+1Oh4SHvXZr4KXt47mdrSNl8WXB4zwMqKndaXVz/VBGR/Vg7S+lPngjAv2W0LfdJvI3qY+9YSRqkcwy9MF9Vqz1oN/EH8nzcbeMlPu/u4kmNS+y/8UscqRc48sfvbeGMXMuEG5ghom5Afoh51nzz1PaijQORZWvOE/XUK85XPLv9W6urC8/UnlFSUAS+N4JpPOkW4+fsLEyIeKtLRUc/42bdTaaTJuKga8/EeaWZMnrTNmKDSmcXXp9fE0fq7QtdEQKBLN0lXFT/0n//WNYUSVhuI+PLeCaOjeFLD5NQVhY2IgEmwn95czrToy5qQhClRNPi7zx99DQ1BILgw954uuq6hmSs3B5+g3vj0N86xcsbNmJdYfqMqDyJwYZNDQVYcIt0o5lRH2bHh3nkX2g2DlR0T5+phv6VaH7kIdsmtuPbEZizGKPaHIb3Nf0qyHHKglIAt8EASsPZs+Y+olTMcOtbnvx84nNZbM0QeALytIIlgyqpdktovxky7eC1ASzjIpU0aD5L1wbs1yTAyquHN8SRJlGRTAUMRPito3F3N5Cj/oFcBH5mUpXrcfhRHGdiHjM9I55cHJyxqXjWoLSWWCoy5niO7g0UwKq4ZXDAoscXhQ+24CyQ49rLpU419zH7lhsTDQiNVaikpl82cy5ePGJ7thL1v7amqKu7ri7uVC/5yhuJ6p/a8t06hUQuZk8ClGt7nICEg1AO44YfEd0FMt4vYnr8caagVQo5oKnuxsFG/Ri252EGBKvzi0X0UcL4SrmXGPWCkb268z6G7oLxvFw96BAriacSOXeuzvLJ7HdtQu/JhI5yjDrjBrP3+Jbk0bOJe3r6SqR+b0Q3t4eOOWvxbyLCXf+5tpBVCzmipuLM3V/HMY1JZqhUsIfM7NzXpzcvHHO78jYY0k71dWT/0kCkoAkIAlIAh8g8MWEzonR1Wi/rTARum2wv2ZugXPZhSLI9YeLOloExy7WkU56E9n0SFc3YDn/2LajbMZwkTFbm5k0/N52WjSZSeEB57jsd4E9Q4sxsG1LThNri1AAACAASURBVGnUAsxu5sw1t3/w97/C5WEhDJsPpiZa+aASGeFCE+V5iwx/I6J1a13r/43Q0ReWH7PEBib1TY7feEEBNyUbXCSbRvXikF0rTvld5OKly3SwucpYkclbSYD7dO8gfl70iqnX/fG7cJV5LS8zesI51OYiKaawFilp7g5P7sXQ83nZ+3wyWcX7mxvH0M3Xjo0nL3P+4iUOtbVm7tjpvBBL0JF3dtJzki8dtlzFT8y587lBTD2pxsBAe8vjeVy8wPU7PejimpuVt7Ws3v9vGH7HntLOp2SyKoamnri46Cav0yQadrcXkq3CXo7dvsqZMxfw/6cKMyr1RIlD+nTXeLoczMzOk35cunyFvkWtWL3xrKbvhT09uVrHD/9LZ7hy4x/Cxjd5V7gmG4E8IAlIApKAJCAJJCfwxYROpsJVGNwpN8E6g0OxmkL0hJ8m8KN+YTEiFHYm3GtnZM/WG5oZ+I07hEubYhgI84nyTFUWoO7t2UBYiV40K65dfzUv+SOtnaLY7ntfPPW3svZOc3r30i0q5WjPqErBhOqMG3r6BsLKlAiOyLptoP9vJI4QW0LkBN65yIIpc5kxfRrTZ0xjyMAZ3M3WiBZls0CsiiwVOtPrx8oQ4ce0qRM5fP8lBqo3GkfqYwfO4CCymzvqhpGz8e9M7ueFXqjIjmKuZtf2sSz1z8rMlb9qRI6SPMUoS3km9uwmIolGsE2sI/8lImo+MoxBLdaMLm2bh6FrN8rpUlvUGjGTCunDUSmJV579zfoHnRgRx0OvDOv7erB1ldaKlYhEkpfBvI4OFfdQkWYfLwrBSFVmhq8Yp7H0XNw1nfkrH6CXLhIlrYyxSMGR/elRJm64qemsTNu+DGshUuWJYmaWg8s713PnpSI4czF68xrKyJhYGjaySAKSgCQgCaSewBfz0clbfRAjEo3r2N6z2JaZiGMqHDlErDPyuVTBbL0S9DuGQVfzskp45l7RPW+VB2qoCOSWuaCDLtGbOCCsIOnN7Tn7QqxfXfXjlVVxEWw7oeR28cRX6VhX/p2sSdSR7qVaHYuRhTU58xbCwSiUGLH1KrdzKYqU8sZOEwLTHAeDV0zu0Iqbt33J3mUpzrbHRJI7fY3QefboOS657JJ3LPZamZseYOxsE7Kb1kjY3igybmV1NGLTxA5MvHmLmzl/ZFghW7b4aS1cT55cwtI5YaeYnnk2stipiFUm+ugh14LP8XP7VqjDY9AzMCBYiC5TjzdCMglLVwqj0B6yIoORBVZip1VqiiJRTPJ78Pa3kTQY+hADa0eaNciNqeFjjUDN6NOOX1/cpsrAFlzakBe93OUY2LsLbkLQNOk/lfN9f6NGjaW45U2Pa9NJ/Fb3E/2cUjNYWUcSkAQkAUngmyTwxYROAj1/uts483bJK7E08YGY34lwq4SIsS1SCceD69m94jhZGtTX7LJSJXbbEL46YS+DNA9QrWjRE9FhrciSTpg0stoSm0jUKF0HvryKvpXugS0aCSNOfDEUTtD/tqiFxcZChOyuULscuVNq/PYei1YtJEvzqQwpO5d0lhZcWrSB64+0S2SRYsvjyzdKBhVlkSpxiSIoqDQ7jo/n8G/1GTVjCyv71xEy5y1b/lrOFfvmTBxaFltrS2IuLWHOjYc6Fxkxf42q0RZ9YaFSYmBr4mCrI8QWyYb88VdHrALeEiMmb2xigomR8UcSllpQ0DMDA05dZFjdJHvA3lykz6DJFO+zmMYWinRTa/p6sGwcM0OKcnvdH4QZmWGuPsG0UWe1W/D1rHFqOp3bdUOJCnrKwhEt6THGgq1jW5IuRxkmrN7N4LdqbO7Mx6JxMwwyb2VQiZQy4STmJV9LApKAJCAJSAIJBL7Y0pVIEcuRkX0oVn4JA4LULE6lyFGGqogIrEVGV+P99B71guollNyyCSpHWf3K4eFO4C1frsY5sz4/x8E7ZyjgIqwAmStQMeZ31l+Jm/gTdhxRY6zbTGVhpmLXkVu6kyHsPBQillU+TeyILAEplsjwl0SFZ8DTo6BG5BBxm81b93BHCBBF6nh5mfPoyImERHpvH3L5rkioItbU1CpDYWUx5Ic2HTE8toYddxSHoiheREdQoLA7WYTIMRQ+QAc3buTKHZH1VnRYuurPvDrqyyvdaO7smcuRa8LZWpG2zhWw1TvOjRfGWGfIQIb06dg1pCY91txLceyJDxZs35fiB6cx69zbd+rumTaE42pPyioqT6XMSE+z6+r2uWfU8CgqTDtC5IhP29X1f/Py9W2NZSr21X1u3Q8Up4SVKEtefv6pB9lN7hEsTj69fo5HUSbYWAr7kltPDray5dHtuNl8dJiygiQgCUgCkoAkoCHwxSw6+4d50XSiGz0nluTvIYOJiI4iwio3DVu2pLTje4LxqaIJDQkjUvEJMRR+OrZeqBzt8cip2HOE705EKGHhkcJbBex8utD5QF9mDOxHIZf8hPmdIV3FAdRyVhxk89B9YB0mjO7Ac5/iGAe+4Lp+NHl0WW49WnUjX/N+jMlUHQth+QkSlqCwcK1iiYkU14jSLnE99/PlWmBGSpR1Tha8TyWcpkPfhoklq5Q/WSYZC+Ke3YilI/rjVzgPeq+f8jQqK4/97wnBAuU7zODs0KWMHHYJu6zGBFy6xNtSPRjhHUNIcKgmW26mvHXpU3Ypnbr/Qfmdv1HBIxuDl4xi/CUvLPQDefEiFstHl7n6PJpKPs2pe34440a8IF8WYx5eDhE7mzJjq+Awr8RffbYyplcHTlcoiXXAUa4aNWNYc60t6s2ZBWw0aUpbV8vkkzEoxOJFTfh5VF96C3GZz1Tsogs5zenXNRgztBuaxTeRBTlYaDRFjhXr0pBZnUYxWVUe85chPA6zIL3qEieFu1XhmHMs/sMXK9c8WJlFcP/qFUpV6kcOoW2275jNuqc5KOZoJ/yf7rPjnCvjf86TfDzyiCQgCUgCkoAk8AECXyyp571T8/G9ZY46SrcdXFhpooQPTakKFXDOnHS5RjfiqAAunHlEZg9nsorAdGFPb3HntTEFXRyEQlMTcPeS+NafCacC2bSKLTaA80cPc/91LBbpXalQLu87sVzund3MhQdCiWQtQWn7azzWK4K7g9Z5+dGpzZx9HEtMdi8a5ovk0OMMlHPORMj989yMdcQrV3rCr2xikb8VjetWJFOS8D1Rgbe4ciuCfIVdsHyPnUwd/pzTx07wJESNZUYnCrtYiB1Fb/HyLoCYHjGv73L08AUChTHJwsYFn3L5MAx7wMGjwRSv7KL1nQm+xoHDz3CpWZ7MQv5cPXWMG09CMLTMKDIPuxJw+RrpvYqQTelQbOA/u+8gj8KMyOWcjt2jl1Jh2lwK6xyUNTwe6YtlvWhKNmxAXFQc1ZO/6bWiGLP6fiD0Z+BlNh68haHw14kW97SUaB/vYRRxj/0noVw5R819eXn8EEdeiP116gwUKeNK5I0LROb3wUmsXAYLy83Raw+FfUrM2T4vJYo6Y6ExpkXhf3A7N4IN0RPjy1S2AaX+n+Oty6SeH/hLIk9JApKAJJBGCXwxoZNG5/+vhhV6+SD7XqnxKe+DTiv8q/ZfsvKZ6S0Z96Ahiydq/Zkuz2rNiCuNWTy7tnCL/ki5+yc/X2rO1LopWHQ+0vRbPi2Fzrd8d+XcJAFJ4Fsl8MWWrr5+gNHcDRXboc0d07zIUVh795xD49+qUqX0dAz0Qsnu9Dtr51VM1W24dfg1zZtJkZMqWLKSJCAJSAKSQJomIC06afr2yMGlJQLSopOW7oYciyQgCUgCqSPwHm+S1DWWtSQBSUASkAQkAUlAEkjLBKTQSct3R45NEpAEJAFJQBKQBD6LgBQ6n4VPNpYEJAFJQBKQBCSBtExACp20fHfk2CQBSUASkAQkAUngswhIofNZ+GRjSUASkAQkAUlAEkjLBNK20Im8w8RfW+Dt5UXhwoXjfwrkdmDVk8/DumNsGQasvpP6TmKDWDV6GGNWxeeRSH3b1NSMfMmS6SNYcupZamrLOpKAJCAJSAKSgCSQCgJpPI5OJI9vm9Fu2Wm6O6UuY3Yq5qypEh70mIDQhOzlH22nb0PTISM+Wu2TK4js5yFvRPTgyPfkkPjkjmVDSUASkAQkAUng+yXwRYXO3VPrWbzjighgB451e9PK4yNB6URCSwOhbyJChADgffH/o/DbvJHjL4LRs3Kgcs0qOFqJC6jC8fe/hqm5IRfPnONVsD653MtTvmgOTVoCPX1DDERCTW0JZteCDRiVrEtFp/S8Pb+JpadfYainJk+pGlRwEolBRUqCW2cvEJzBGS8LP1Yfz0yjurnjU0xc/mcNgXnrUEZJ1CQyi++at4xHYvCxmdxpVa+oNid52DN8rwbjaR/I8q0XMDLKiLtPZbxzi4zcYq76BsLAFp9LNJyTG5ZwMcAI/dgYstXsTHVlGKI8EekqAuzcuLltG4ZFq1LNOz9G/z4HqW7u8j9JQBKQBCQBSeDbJfBJS1dBh3+jXLUGNG/RghbxP81pWKceA2YfIFRJTZ2kvPRdyi/jr2Ca3R4Hi2t0LVaTqWdeJq32L98HsXVObwZtvk8WuwyE397L0N/n80yTGjuMI0sG0nDcekL0rTFVPWD++BEceKCkmtTpCT0lYVUU/wxpT2/ft9hlMCPw/DI6LT9DFttMZDJ4ztzh41ipSYkeydH1a1h/7KlIMHqDGb0HczV+tHeZ1WcgfmGKyHnIlAEtWHrLAjs7a14enEXHifu0NYPvsGJCT+rMPkWOrLaE393PqAl/8kDJShovurS3ZOe0biy4osJWZBfPbHKLiV37cyFA282N9SP4uc8ynltmwtJYyDYpcuLvhHwhCUgCkoAkIAkkJvBJFh2bElVR7R7NymQsszLyx9xYpLDKdHbdCPbc6cHSjp2xojOBO/WYP/oiXTdV0iarTNZX3AEDTC1TziwVdH4zMy6YMHpcf4pmFvXreDO1ZScW7q/L4Cqm6IdmolzROrRu7CVOVoVHP7Nt90WqdCoqDCgGWNnC7bn9aHWzPPdW9xCWHhV7xq4jLM946tUvINrUo2q9AKIslOxQIRibmmKqL5a7MrSmqssYVp+KwaWoQHh5FcdU3fhdNHm2fgqTAyvz8M9WmgnUruZIR69ObOlyiTqm+hi8zkIDIYRqemaA6gW40XwSm/3e0NNTpzn1jUSroyyaoUefWz9SVNNLPW5vLcSKS8PwKG+BkYERASUb0bVNIc1ZWSQBSUASkAQkAUkgZQKfZNHBsDRHwk/QwT1h6cnQzpO5p+/xm3iwp1SqTb9F2PmfhcjRlhjxwrlJ/o+KHHPrx8xuUZISxYtRtGhRvFwK0vzPS5pOHvvfI6+ZCwWEYNGWnDSokZfZuw+LtyKrtkMWXNx06z3EYiKESky01i/HxCScvX+0oc5fkWxZqIgcpRhQtnNVLFcXJ1erRdx+fJ/najNsTJRzat01tOaqxvUqcnvBVtEr7JqxmKyje2AjhNLFQw+p7lleV1f8Z1SMbvWN+W21cDIWa3ZRXoUonVNHQW2IiViuiowRvYilK02JVfJ4l2L1tYnkvHWIES1rUczDmwWP7THR1/rvREVHU7O4FDkJkOUrSUASkAQkAUkgZQKfJnSUvkyLMWvLWtp6ioe2oSMztp2gi7dijfhAiQlg5/qljP+1GjcsD7G6mcMHKiunVIQFZ6PHypMcP3GSU6dOce7yNVZ0dtO2E+LA0kJcM9HSTZQQDbkyCJ8XRZjEqoiOTlhHU6vVQk9oK6tDozErVI0+VULp2+sv4tySTV26sXzzBuplvMDMwb2o1KwjK88Hi/7eNX7lrdWC/Hq7uPTgLGsPZaFfDWXZSiV8f/RJZ6UsiSWUKJUeeTKKMcWKMYnxRCvCRlPUGvkUp3E0hzQWnQe0LVaKnhM38qpCf05eOEMf5wDCE/lORyrLXbJIApKAJCAJSAKSwAcJfNLSVVyPJg7VmLJsI3UC8lDf+92He8pXFQ63Qmfo25chd/QiJi3IwS8dc8U79KbcRhE7KTsjW2Sw4FrIa2IV3aCRbNHcu/kM9wI5xesUHIUSXSDKyJIi5TvQvslb/PLWp8/59kzz1FWw9WHKVB/Nm5bzGtNq4xGaeVZO1FrInvQFyOKYkU1/z+NoyZYs1CzXGZM+qxGH7j0Xr/Pr6ov+zwdQsrWZGNKHx6Q00DcSgunCLE65TcZ/bg1dH884ddmA9MafrkvfGbx8IwlIApKAJCAJfCcEPvvJaeNUkfqlHVOHyzA9VRu0ot/Pg6mY6TYj54zgYdyKUEo9CAuMKiYGlWIJSaE4lvDB9v5Sui67pzmrvrGeSadMqFveUYiKGGHQUWmMKNqi1ryP0agiYVyJiSI8NEi8ysWUFU1Z2rUxN8S7o4Pa0m3RzbhGvLwRjHcuRThp+4sfi2EmSuWy5cjsNRSrpRVFSqMizRrwZllb5t7RdhG0bTijQ+rSTXH5iYoVWkcZk25QuvlphiRea8aniKH0GXl6fp5mPEq5Na01Sx8YEPNC67ytVuYWZxTS1ZH/SQKSgCQgCUgCkkByAp8tdJJ3mdKRGJ5ducnjN4r/ibZkymZHSMADHr5IqX7cMSNss2Yhg3DiTbGk82Lh5l1U2NYFJ2cnnH87x6AVq6mSXViXxDKPTcbM2JjGeUbrYZXRDrt0yhITWNrmxs5aZ9Aq+iuznB4xZdgxSo1dRJ09vSng7oG7izML7X5mUTtn0SJGtM9ExkTLUk4lHLB1rU3rkjkShpejAdev7eF0tfy4uTpRbLcL1w9PxkKpoW+KfeaMmCr76zVFO7/0psp7fe14DSIgZw+uDslKfRc33ArlY7zjJs4OtCLK/5lmqcsisyO2wkAkiyQgCUgCkoAkIAl8mICe8FtJ2Vzy4Xb/8uwzGutlQb0plHV1lR1MMLKIAQtyj+T86sFk/Je9pZXqD3dMp/8xc6YP74jtZy0CppUZyXF8iEBUVJTw+YrGz8+PiIgI9IU/VmpKrDC/mQpHeFdXVxE7yQhj448v8yptAgMDU7yGci7O1yzutfJrrPwoFkOlKK+Vc3E/McIyam1tja1tvOd+aoYu60gCkoAk8NUT+EKPZ3sGb+jNzBW1qDbXEv3gs4Q6zWHN2DZfqcgJ4u9WXTlqlYO23UZIkfPV/xrICUgCkoAkIAl8qwS+kNABj/qTGOl0mqehRqjFbqg83oVJ/9VStaRKv8GUz5yVnPZaC9VXOxU5cElAEpAEJAFJ4Bsm8MWEjsIwa4EiZP0mYBqSzc31m5iJnIQkIAlIApKAJPAtE0idk8G3TEDOTRKQBCQBSUASkAS+WQJS6Hyzt1ZOTBKQBCQBSUASkASk0JGfAUlAEpAEJAFJQBL4ZglIofPN3lo5MUlAEpAEJAFJQBL4boXOteM7ufDi3YRRoc/82LZiO1cCRLTB8MdcOnqeN58cgTiKm2dPcfamEn05kovb93Dvbeo+cM8O7mHZ2k2cuKW0/bTy6OJ2Tt9N5QU/7RKylSQgCUgCkoAkkOYJfLdCZ/24bvx5PjTRDbrB5B9+Yv6Wy0QaGRL+9AiLx8zlfkIw5393M9WxRIaGERapxGN8zYIOvdj78ONdxDxYSe/fVxAQES7afjw31vt6PPJXB2bsScUF39eBPC4JSAKSgCQgCXwDBL7o9vK0xMvUwhpzozidp2K8ayNOOvVmwaq22IuBBr80xMzSHINPlYJ6priULa+bcjhm1laYpIK23qML+GUryYpWzT4Ll7GZmF9qLvhZV5GNJQFJQBKQBCSBtE3gUx/jX2hWz9naqBxWenqakPcFy4zgeooWFhWB95/iv20AOTu24bKS7DwVRd9ISRj1ghlFCrPTZRQbV2tFTkpNz/3dlZwF3ShSxJPcdhXZ8TquVhhbB1emoKsXHoVyU3/wXzyJVM69YdHAvgxe7C9eG6PJbqWjHbCxG/YeVVkXl7VT19XzsyvpOGgDEcdnULZGQ44FixOhR+lTtjRuHm7kL9mQaftua2tHPGfmyJ4MnTSaOlVL4FzQg7qd5/FA15f2P90FX2yguL0nA9bd0hy+8mdl8jh54umSn/JdJ3Erlbze6Vq+kQQkAUlAEpAEvgICaVjoxOL7ayvmqGsRosnj84iKr4fTrt86RNrLJOUV86tWoGbryVi+cSGLddLzyd/rGRqijrjN7t+aM9qgHQdX1hUpNpMXfSUt0dEuVFrlzb1rlzh9+jx39uSme7lJBIhT58a0YZD5WK75nePC1Us0tAnh8O034owBxqYmmIhlME3RM8RS5BN9tOlXqs5+xu4Lu2mU/93r2RVuxl9/NMGy+I/47lhPyUhfWrQdjsHAjVy6cIkbG7pwZvoANt4IB1MzrF76s/5eLjbuPs6Va7soHL2dpVu1mdeFNMRYueCDzdSpMZe6e88zvlFenqxtS9WTbbntf57zl28wziOI/ZeevDsQ+U4SkAQkAUlAEvhGCKRhoQOOdbvTvE1ZQjVpR+3wqFAbVbR4yCcrdvS/dpWjk38kb0QoUalIU2ocHcDe8WM5/Dw95lmvclbRJikV4YwcnqEy69d0FNLhLmvmDGL432/IkPGtsNlAOltrMp2cyeLjyjtLWvb7iSZO6cRrbeJFYYgSRYgO4ZB8duUk+u6JZuLijbindC1xLORtBKpI7RzvnjhOhH1dBlbVJWK0r0z3kobM2npO02e4lQs96pcXkkop1jjny83D+9p08EZC4zw7t5I+/XdTYvJiBuoCOVvY5MPiyTYWL9Vad4p3HUWXct9GvOr3IJWHJQFJQBKQBL5jAmlY6OjjUKIuLesUw0IRC+rr3Hv1kq6dmiKe4SmWwJAwxH6pVBVVoIoc2WrQ58+1rCj8D+06LCGlPU6xQjSZFcjJH/VKU8KtFTteFqJpLS+iomJQXIXzdJ7G/IYq2tUtRcUK5Sk3bL3O4qRROLpiQGTgE/avX8bVi7HCQpW6rVwRIZEUzJARw/i7pEfmbBm4/uyZ6FcPtZUheiZxJ2OJEZmrDXRORUbhgRzZv4Hj/hcJD0kYSbpK/TnZPx9tO1SmbCUfyneZzcvUDSfRfORLSUAS+KYIBOyjp0t2sueoxYJzKf0lTO1sHzOlehkccheh29DT4uvd55ZgttesSC4nF9zd3ZP9uLk4UaZ2G36dsAT/V597LaW97noF8pG7fCuWXoj3Ufhg50HnFlDLIQ/O+R2xG77jg3XlyS9PIBXusV9+UO9e8RVLcznT+rkeLdaeYIxnSgtMCS30Nf48Hx9zTMYMOHWqq0ksWmLwKWrYe9GpT2aWTKqG4rmjLXqYCnPJ4Z86ENXtEMd/0KUhfTGfqJi4HVuW5G2zjNg2okXwFYZ0bErVCQ4c6ueWaBAx6Kd3pO/WE1Q+9gtuHUZQY9eIOJed9w5WES2PX4egUoSITs+EhUdQJX9ucUDILM2SXsrmqwiD9DTss4UZVY9Tyq09JW/tpJqCTs8IG5+RqKNGCqPTQyZ0b0OObrZEzGv83nHIE5KAJPBtE/irWyNmXtGatZ+8Te3XxeRMrszrz6BdR8SXPX2u3Q4m5b9Oydu9/4iK1+fPcu/p+0zuouWVqxzZtoTx/XvRdPpOlvUsobNyv7/X959JdL0nVjxLJYuYt0+48PAOj5WO76ROHL1/DPLM/5pAGrboxE01E63uPkcd9oxqa0piV2u42KwtSuB1du04xP2whF8lG0szAsXvqJl2LefDrIRAUEXHxdFJx7iL01Cdn8Qfux9p2mnFkr5GXzy8HEHZfDqRI96vnzILQ9NQjfXo9bkjnLyv8xqydqZnwxLExCrfiN5VW2q1ijDhXJyuTl8aGf3JrxuSexolDFg7p5zuhQgIPcm+GzoP7Ag/Vu99imtBB1H1w1vPFQEUHa5csDazGxrS47dNmu7Dbp9g6xXdL6J+Dvo1r4W3/ofGkjAq+UoSkAS+MQJq4aM3vi4d1sQJCWNhQf60x8K5VcNp2n+FzqJtgpGRQZK/gp/CTg8DY5NUNnzDql7dWHz5A6Looz0lup6JwiIV35pFn/r6hsI9QVfEvGVJWwS+AotOArBy5ZoQNcSfe0KfRG4fQvVWexl+5DbDSmVk2+haTF56mqM3Yqld7STjV+6gRII2SUY9LCSI0MRxauxqMebHf+gyrjEmBtvpm18RJsGECWtKvdm/0KBhfQY2dcPwsRr9ApXJ+GwvV4QPb7nIW6zuvZqtLunRj3zBnefmDB9UTlwvkggljk6EIodiCA0MIkJjx83GpKk9cSrWBFfvtbRyiP/10IxRFRVKkFiCU4pJwRqM+OE24wf/wmXX9DwLDsG6cm86lskoun9GRJiwKkXHCR4Rt0e8fxuuFUWRoYHitdZw7D55mhBHRRni7k2fEkHsmdOXkzYOYpkrhPNXI/ixdyvN9WSRBCSB74fAmyvbmTZ+JCOXnvq8SYffZ9bgboyft5OH2j9dn9ff+1qbO1CnQwcq5rUmJka33q4IjPA7zBo9jWuaa19k5IoLtB+r/A2WRRLQEki7QifsLmPaVuGlzxqmdPPUfDN48+Y5QWZGGIlnedaa4zlwYihOzorjL7hU687gssIyI3RD8Js35DL/8C3uNHUH0Zm1beNqFmowkmVOfgTbmGFoV5XeM4uTUVzYrEA3/vrbCyX8XqwqE97Fs9O+YjssMkCmrG0ZNqYwV4PD0RdWFMvsBXHKpogXA+r06k2kaSbx2ogB+zdhpqw4KSVPXzbv88fQOvk3p3SlBrEjX9zynBme1fsz3fEid4Ij0LPKjEuhXFgofRhnosWPg4UPshL1RymW1Oo5jHKGQgSJUrX/foqZxl0wNwu27uO1oRXpHasxdXAOTt0PxVBPTc02uSmaW+fsrOtJ/icJfLsE1IQ8u83Nx8HoiaXhD31fVyu+dOL3rICTA+YfqvgVwnosls5d6g8nSGfMdcidiwd37v77mdzfSJXGP7P39APR1hCbDKa8DXlLzLtB5/99vym1sMhOtQ796Oae4FwQJO8YxgAAIABJREFUV62YyU2K9tH6xtx/orXKJ+3i+q65TJm5hlN3npKzTBM6/PgTtdw/8G1Y2PPNbDKL76n+DO/2CzsPB5KxZG36jh5Chawf+EAYWWkuvWvqL0xZ68sds1z8NngirXwc3/t5Czq9mjHTlnHk/B0McnnRsc9I2vrkSjKFSM4M78NPK/cR4VCQ8X8vwWLzb/Sauwf74i3p/suPVHP60HySEvl+3qddoaNvQqxjUfSFmAgWvzjBD/bQ73dhARl4FBflSW+RG59iCTfK0bs6jv/ivtnncUleW98CB6fiuuNmZM+bIISyFilG4r1JOV2d4tunK+hKXKuETg3ImC17/Nscbs6JrmdMPg+P5NcXR/StcuCi/T2JP5+5kDvi1+3dIrarZ86qLGHFFX0yZM2JwKUpNtndsEk4ScZ8HmglkJBgWZwpkSXRSflSEvheCEQ84tTxMzwOjcXI4AMPKw0PsfwrrL6vDBtQuYDm68U3UyJe3tGJHEMqjL/A1Azdcev0CUJHuBScOa+IHHBuOIsFbU/StOVf3P+c1aP3URZfJGNVKfsPZcpomdAq2X29R5t8uVii3WiqqXf+6gg2/Tka946zOTC3MxlSWm0yVnHhz+ZYTltJfAz966fZ+fcUxl4MYGBiN8zEYw4/Qt+CdZh0Pe7gOdrsX89vwu1ix8phOCcaKrxkUdtStFusDQuiaeHvz9HtyxhQsS/blo+jiF3c4NS8uXmFYzdEx48fMatjI/bt3osm0c+NOTQfKL74ypIigbQrdEyz8tuoUYzs2Zliw56gly47rTYEMqj0O5+SFCclD0oCkoAkkCIB0xyULurMriMXRNgKk0Q7GpPWFj58Kj0y5HGnZP5vS+QoM9UzMMQgRxkGT1nIiIb5ODv+E/PiRauxz5eH8o2ms2RkDUyPniD8v7DmKIOOCuDCgS3seZ2RmCiVkKF6KC40kUF+/N51TfwNrFs8cfCO58xqUFQrcvStcSlWhFy2VoS9uMLxEze5uKALFbM6c35EqaQfAHh6innTTuHo7UPlrOa8vnueU35PhFNCIMPq9KPhvQkkCYWm7WPJH0yyzke5agWwMYjk4fn9nHsSy4Ntw+k0qqAIa9JEa5UnjG1Dm+pEjh4O7mVxdUiHQcwrDu88xov9E2nY05FTa7provUrfp8GRkaazTLhoaFs2r0Px8LlKZk+lkI+E2gQZ8BPPpPv/kjaFTrKrTHJzdA/9zH0u79NEoAkIAn8rwiYZHOlfNFojp69SlCMWApPYgFQHPlVKjXpcrhSuriTNrzF/+riaaSfzKU6cfK4N4WzaR8B0UocjU8osXblmL++PqUKaU3EQZH/YayK4Oss6NeSBR8aZ/Y29KtTKL5G8IFpjN78Urw3xL3DZPb82UFrHY++yrjGNRi4+R4XRg7Gf8RBEmz0CRfIU2ccW9cPoJCC6c4Gqtdoxa7rwhkoeD1+j4XQyZbSYByYsO84fYtobehRl6ZTwP0n7omqxxeuF+E9GlAhoxFRN3cwe/kBTQem5YawY8dInHUuF5t+9qDRtIs8XDubdeda08MriZlftMnk3YrFuxdTNs6Mn9JQ5DENgeROIhKMJCAJSALfOIF0wg+ipLczVgZRwp8/4SGvETlRYZjYu1O2lBPWafur4CffJcucxeNFzid3ojxA7JzjRc7n9PO/aJulZHe27JlKKbu4x1o4x1Yd47WivWyy8stwnchRLmZUiO7t2qGVRIdYdDyFERiJsCZdW2hFjnLawZMsuXJqKsbERhCQKD7ZO63L/BwvcpTjxm69GFpfV+P1Nc7f0gaEvX34GNfvaI93npggcpQj9caOpqLmlD9Ldl/VNU78nzGueRrjLUVOCmySH5JCJzkTeUQSkAS+AwI2jh5ULO6KlaFKI3YU5+NYVTT6mQvTwKcQlh9z4fkOGKW1KRoam2JmZiZS6yR6dFlX5GSwmidHZ1K7UGLPxNdcfhaMZiUt6AFts2lzJip5E5Uf63rDiJMQq/yUrSZJSjorrNMn2toeqyI2Pm6ZuP57Ph/e1b2T9oRz8cK6Y35cvaNNLvhQ+NnEuU1PL/Lu2PQsarNH1+K0X7yzT0K/+uZkqpqfj+y5STaO7/WAFDrf652X85YEJAHMc7hTtaSzeGBEECH8TSyyeVCnii5fiuSTtghkLsu8y+GEhYWJUB03GN+yoHZ8wWKHqVNj1l5Nkh5IpNK5Fpm6/e6B5xM5A8fNWogaddIlvTjj33tEjtJUE1EkSVHHJjTQdhHDs5BAUsxRnbTxmWtJj2jea3YFypIqAt+oYTZVc5eVJAFJQBLAOKsb5cW2yTvBZuQumDdRZHQJJ00RUEXy5qXI5ZdP7EHVy0P/P1fw+l51/jjyXGRLXkfHVhmw3z0PJcyYppiY42aks3mYWfODCMdRLLNKCJF3/ZFUkaHYlEvRrfiTpn/5TpydJqF5eGRcWg19bKwUK5EhOawyiKAgaHZNVeg+nto5YwmLTiJeYiIIzlH1k8YhGyUQkEJHfhokAUnguydg4+iG13dP4SsDYObJ7zPH4uvVgRNCHwSf/YvhM6qxd3h9nfNpFjw8MmK6XVhZYs1Fkui+9C7zBRYxFq3h2d/NdDultEx918TtbS+Nq7O15mAO1zwifCwoC1ORXp35uX3iZbev7F6k8eF+gbuedglE3txEl1p5cPHwxrtwYQoX9sbDKQ/1Jp9Iu4P+bkYWzZm9O/nnn3uaGd9eP0xkht+jCy//H0CIeM6cMb2Zc1iTrUYWSUASSETgpe8oHHW+LZ5jjqYZNvru7dn0dyPdeGI4MGIE08/FeQnrU7ZtM8Ruck0k+Znt67P09HMUm0n0s8uMaVOJGr3GsuHwba0fz/9sVpvIX2csl14Ky5HqNbuGFGeYv7bzdPXFNbNprUx5S9fGvahW9BztXpKhm28RqTE2qVjZuwylmvzK33su8Eob4P5/NrrvsaPvWujoCc/5oKx1WH/2DGfOnuWs+P+C/xUaHetCy3X/RcSr7/Ej9olzjnrJjs3juW2jtUPnaTiCZROqvDdz/SdeJVEzkQ1eWZN/n4fh519A9iAJfLUElGTJ8UUvbT027FqvZWx88NiL/NJmWIJwyduencNqaoYedmsLrYvaYyDmYpzFlSFL9rNzxmAalm3Mfq1/8P/k/ig7s0K2DsY9s4i8bZiJ6mNOavvNVoPJQ3qROS7rT6YSTBzUFTdFiEVcZVS9fJiKwEB6Ihhs8ylHOLZmPO2r1mXKAfnl63NvTJpfunq4fj6Ttx8n2MAa76pd6Nqo0HseRUFsGPMTW++aoY6JpN3Uvyn3EUug+EihHxtFsJIJNFMcClNaDm7I78N3EtWoqSZRW6CvGMOB5yJZqNh66lydgQ28xQorPL/sx5vgN+w7f4xwlSste1XHjicsmr2ShwHCCU6dgZKNmlGxkNgDGBmA75mTpDPT4+ShkzwPy0CRyu2plu8Msxcc4KVhdso370Q5u7hbGsLePydy7IUJ+iKeumOrYbTKo5wL4+zfJzArrWblX2fwbtiG2pmvMf+ZHYUuLGO7SUUGNq+AjdFb0X5CsvZhN7fxl18mejSIi+Ucw+WFs3lYoRfVcyV8nAIu7WDLAwea1HLR+SxEceXgUZ6nK0QFTxG+Sv2Q9SMXckX8zYvOWY9RrVOO9KzpMegYw6fswVCE3Lcv2ZiOlbSbOl9c8uW2iOVscvo4mx89IVP+ErRoUoUMos/DC8Zx6mY45nP+xGXML7gGHGL7nRw0rJ5Xm5k4+AILpmzmmagbk7suw1vorv/iHPPPp6NBluNM23AbY8Oc1O7eGvf0cX+c33N/xN9xPSX62AecDBPoyFeSwLdFIErkxtOWAEKjknvTqqLDifMyeRP2/oiAqqgQXmv8f8N5ExKpsZ58XlERHqBLQvw6kDARKDCl0mfhEjYXbs1JxfpxeQoV/miLb383za+zc58t7DDpy6xlOzksHHuDNV3oY5e/MEV86tDpl5+pFp854QPXi40m5E2A5vLqoNfvBEaMETkKtWegyqDF1Lw9jTErD3BRFyLarVIHegwcSnuvd9MO5ag7jvWb8jF41AwOnr7EC10I5vTZXPDwqUKrTr1oVzYuWI/IZxjyRpAVRSSODv7PIjNqpvhNlTQtdO5vHc+S9S8p0awFeq98mdKlAg+iDzG2Wf5kz6M/fynBpsz96f2DA8ZXFlKuZA0OHNyBT7LcCcnvn36SbL3Rj06JuAteGpHz8p9JNNkYwR8tqqCOesjqeeMYHjOe0T/kIeDqbgb2PkHR6R2pnKMgduqX/D1oCmdylqZtlWwEXtvJXwOGYbZ4BiVFtvPD8zpwOFMf+jeogb3fMv5oVYP1berzQ+maZPFfwuxBk8gxrQ+5hYfamuEt2Ju+LZ0q58Aw5BC/duxE7lXzRYyISM4vHMmaLbXo3N8Hp5x26F+fyZBfzzGiRx+qO+UWIgfWjmjOHpt32+cRorGk8UumDd9CFSF0NO53aj+GjN1I49q93gGjirwjcrUcwMtnIm5KYNiIV2zdNwfzKn9SQSQpnVG3PaeLd+Onqo5c2fQL7fqPZf4fJTQCMHGJubWULu2XknfIOKqY3mTD/N/4LWwqo+pk5/W1Y/w+bCEO7SfTrpojJzctY8QzPab8UplcbkXJduQS6dxcRCRTfV4e2Mmyg+Wppwid8OPUajwAr4ajqCt2cu6Z0otuhsuZ0yQHvLrMgqEz2N9+DANqO3J26SS6jzHjyMQm4o/DU/4aPIWzSe6P6aLplEoh71iSqci3ksA3S8Cz81p2lw8SX/wsyJ9CcJYM3l3YtduHUP1YbPJ7vpeDTfEx+Pp2IzzSBNvsrv8DC6wNdfb4kjMsHD2T9BR0VXIHJi/Gzi1ZezYXN57HiJyDQu1kyCAWgBSXX6XoU73HZMo1+Zk7Dx/zOkT0pWeDXc5sOIi/n0qk4YTygeuZODLmz638+DIEA+HoXEDzxVNb4viE6KlEJOVy5EtfktIdr3P3yStCDSxwcfIii01KeSb0yFuhIysL1+DG/Se8CgomKtoMO4ccZM+VnXTv/EE1pdiY+fj++JIoQxPsEw8g8RTk62QEkj6XklX4/zsQxc2TvmyNKEWP2hVJjw8vj21izt7dDBFC592g7Pc4MPUa6sXlqVRFmCWqONO4dxZGb7mKT8eEKJnJ56LYdIQXvtiuqLYyFqG9jTB9uZeqI6/SdEYtUf05O1Y/o0mnYcKHR/GPL4qlEC+1zl7SCB09dQTpa1aiW/1qYnzCsnF1FXtNMjCxc12yKgYEV1N2bp7I8dtvKOmpj35oDkrVqkeF0uI3xN2I3Xv64Vy+BZVLiqSabvrsOTGeU08gd/7D7N3lwoATDcirGbQXFea5s+FKqBA6xuLX9jWev/SlUQndjG7GkiW2Hq2aVkQTP1N1iD07k7dffyGMkhWaMsByAgtFgKzxon3IP8u4WaQWLZIIQlunmrgU7MqxSy9xK2HL28fCqnY9K/VGCzPZiUHMD2jBqUENNH/IChdexaV8NVne6YzIKaMbk+a/l6yYIBLPdZ3NwCrKCS8K24VRuPY0etaZgJm+mlcFWjK1V21yi40IhfOa06nZCjY3KEv9kpXItX4FtsWLCSuZ2BFjYIyZqZFGfJ4Y0ZMXDdYxsrOj5iqFF42iiXszDtQ6QgVTsQQVWJrxXaqghPbyzB/JguILOSGETvGbh9iXwv05cTuIUkXSljleMzFZJIEvRMDKoTBVHN5/MUNrB4p/qIKuqYFNQUqW0W37fn93/+KMAZmLl6TyR1vokcO5tPh5f0VzWwdcxM+Hyweup2dGQfEFLKXZJedjRBaRTzFLIjH0oevqp8sq+k6cTTGl2nrYFHTjf4o3pct8g8fSsNAxptLo7VSKhx4kTIU5KV60bBKRo1RwZFV8ICfl/SsUH/cS7u88dZPfPvHwtHx1lKGdW2JtLBLGCUewyIgImi24RidNuhQ72szsz/XL11g/dxHT5l8nnfkzwko00PSlhIl3yJ4+3ophVKgpczvf4sb5C/z9ew12hXsReltNByOh5GNjUTlkJItj3HqaDVm9MpExoza0ZYywFusbGgjxpJiFyzBzczqu+K7hl7mruRUYyYu3GamsuVt6xIjrFtCYY3QlOgaj8oW0Ikc5ZFBOtE+fQnvFJG1Ny7GelJuzWQCqyY5VjylbrVOiznQvLbJSOJcrGw5dEPUqc+Lv+dz1Gq/5JT+8YQ/G1UoJIXqEgAiV2MWZkfSVQzhxK0AInUShOiNecCagIM6uibKjF/ChlvVvbH4xgSrCMlStqBN2cTG5MuanfC5Tnj0V9tus0SL6aKzIgpzYTK6IkQj89kXQcJFjwpjFfEt4BrLhVCQVcqqJKe+kETmaotYT+YyEnFWc/AqkfH/aGylg32+Oj+tK/i8JSAKSgCTw9RFIw0InDmYoZ0b8zoQH17Es3Jh5PyZO2JYC8GfrGNrtAAUmTGKox0emJ+IyhNhVYtbMKRQUyz3JSxDLB/djXXAmEZDKiwnHZuK8uzdFTiS4wavEwzguKkPs/d10/O0v7LMVxKmuWA9ulZPhbQcRGa1bV1bEjkq3aq1EYRUxE2I17xWTptKLWFHWVwbiT8vq7clc7weyNR7MlPpeLOzgxtWYBAcSRRglLmohduKL+vJ72mtrmJafSJUxvfC9noOD4VZULCOWfJIVE7y9c7F8xUmxNu/OvuOPKTNHy17fxILwayc4IP4PVeI+CJFpUXQ8rd2SJFxVXF70TDA1TOz4EiNsaAWwE3pP4NAEvYrjh8gR/Dg0TNjVEtdPOjBhhRN6x1Qx7SQqxoZGZE8nFJOiVhP7GGgEsDb5Hw/F/Rmc0v1J7pOQ9KryvSQgCUgCksDXSeAjSiAtTMqIzMVK0sDZSTjxrmTIAjtGdawiHobJy8qBFdkQ7km9lr8wUmTkTVVRRQkHs8TOyIlaiQy3+4Nz0//3oZTQGGKiOXD2qXi4J3nK6ppcP3mKrHnqMmlYc63D7OuDvHh6l4ziIZzaoqdUPb0cfyEc1g6tqGt2n8PnjcjaXrFopMK979iH2itdZqFCtVjmiHgPmQoWpHiWlLMz23oUwfKvlWxcMZdTQQ3pobMiZbJ+hVmRLvz0U/b4aR2f153gqHrvTtPEipxGV7jzVIw5bgUx8AbHXxaig0CoJxTLqXtBCbaUt2+4ZZmOeiJTMKoQRT9p6iQURbSYkKWQijnXovkpfxzXe1zzU1EppzitSWyTvChS8u577k8Gzf1JVYzS5B3LI5KAJCAJSAJpmsBX4JhgjEO1GjRp1JxueTMwY/pa7otn2ZsDg7CyKcLca9qw3yt+1uNqpfUs/2M8LYTIiYkSyfoSWzlSuA1qkbskSiyNJOQvSVLJypZMwbtZvk9ZCIMnp1bx1859BF2+o3mvp4ohJkYVb5FIn8OOW5eOcvp5hNAjIWxcvIiNZ09y93GwJn2qsgyjLHdpirBkxIjdVCrdkpti2YiOjhLHxDnh2Bx6ajT/KEl3Re/Hf+/KzqBYwu89Vq5KrJhbojyEQhTECCNGogd8jgIfaK+9vGdFHx7P341J9nLYvy9hSjpPmuYIZXKvSRj26U6crCnQb5twwK7Pr9oBEnVoMF0XF8RTuEe9Wxxo19GNXd1acUgxgqkfs3TwTNKJXVBK1RhjC8I2/8aYrQ/Eu0gOL56HcTZPyjoIy4xKWMHUKiLDdSHcY2OIFnCUBaaao/pzbnAlVl3RXu3gkBacqTSDOspOdGHNiRL3JL4IrlFRgrM48P77o427oRL9q5KGfE/oSb6SBCQBSUAS+AoJpF2LTmw4N88dJTJjEZxzpdMsZuiZmqN6LDzThY6wiTLGRIRrt9YsU5xl0/LcnNvhxRKx/TBWPKyiRZ4T56ptmCe2aOdRPGZTKHoWdrg6FcTa6D1LJWb5+WP6BH7q058qc4OxK9GMX2dNJt0fL4Q7MFja5yJPtF28j459ic5Mrj2Roa1r80psLa/RtBcrJzpyIEQROunJVcATG2VLlFIMzMiVxxU7C+219YysKegk3huLR7l9K06PuU7z5lUZp4rAc9Bujmdpx9IAJVi4AdmLlCA2zq9F6St9Porli98fKbLsthXtb6XQPlRjt1DsUVaOJfD22SecrAsm2ymlGZ+mGFGyZUlK3XlA89qJ/GyETJl9dQEjqzelykR9It7W4dyxnlorVkJjzav0PuM5uW8lPlUrorjCFO86jg2NimjOxUSE497jV4psG4XPtDsUqtCCUb810YRFx8KRFnWaMHToD4SP20kXId5c8+v8fxza8WSPLd1aVmSRnhCA9WdxrLtue7nwLSrmlMjfxiA93iVcsBA60KbYe+7PW3F/RIzS7I7CZGWTGKxmmLJIApKAJCAJfMUE9ESQtAQXibQ0kZDrtK7mTWy7CyzrqLiuBzCpYiHG2QzGf10vbN+jTdLSFNLyWN6enUWXMWGMXd+PnP9PLK+tHs3Ew1mYOrODVtykZWBibFEaK2E0fn5+RAin9aRhCd43/FjhjGRqaoqrqytGRmLnmHHKS5+J2yttAgMDU7yGck7JvqyUuNeaYIfiR6VYwkRRXivn4n5ihLXK2toaW9vEgvV9I5bHJQFJQBL4dgikXYuOVQFGTpzNL6ObU3BiCFHim3vW0gPwHdNFipzP+vzdY0G3oWx7ZEubSb//v4kcZQrR4W9FwMVgEaBMWMc+/uz/rFnLxpKAJCAJSALfJ4G0a9HR3Y+It0GERopvqfqGWKVPp1l2keVzCIilnjfBRBtaYG2Reifpz7ni+9qqVdHCn0YPE5O0q7cTj11adN53J+VxSUASkATSLoE0/4QxtbTBNMmu5bSL82sYmT5m6WySRAP9/xm3noERJsp2KFkkAUlAEpAEJIH/iMBXsOvqP5q57FYSkAQkAUlAEpAEvnkCUuh887dYTlASkAQkAUlAEvh+CUih8/3eezlzSUASkAQkAUngmycghc43f4vlBP9nBDTpOWSRBCQBSUAS+JoIfNdCJ+zJJdb/c4I3/2X0/0B/lv/lixLq7+MlDP+96/G9+ebjVWWNL0tA7BDj5XkUB2pZJAFJQBKQBL4eAt+10Am5fYhpK7drIi3/Z+X5MUYPXicSY6amhHBs6TTWnX2VmsqyzhckEHB1PVv/XI5J0myiX3AM8lKSgCQgCUgC/57Ady109A2NMTczweC/pGBgjKWVRSq3c5tibmmJqZHcc/3vP8r/bYuYt4958DgqxTQX/+2VZe+SgCQgCUgCn0Pgv3zEf864NG3VUddZXbc82c2tMTMyJY97D04qSaZSKI/PzuEHN0Ms09trwuP33v4qPtlmCtVTcSiGs5t/54dKRShX3oeiZUvTdellbbvYfTTI2pDfJw6nQVkfvHKba87tmdafOmVK45K9BMuux2XW0MfcKpIFM9pSskwZvPLUYfKum/HXVz3aSfeyFSkl+m/R8SeO3I7F0Eh7W9QBZ5ne+Qd8SpWjbKmiVG3SlYNKXs8k5eXiEmRrtfmd+S5sm5mf9msTnkb6/0Wl3EXwKV+SQs1+ZeeVgKRdaN+rg9g+rQtVfUrhU7YkTlWbMvvQU825N7dW0dOnJsN69Kd2mbJ4FfOm3Yqr8f0EXtpBv7p5KFa+CqWd7RiyP+4agcx0zU3PRRvoWawUFYoVwOCHyZp26hsrqVGvOXsexZnU3rKqTQ0aTxOcn26gl08tRvQcQO2yZXH39qLtskNsG9yTqqXKULpUcRb7xV8evx2TqZPHi/KVy+Ns34gDATr+r7eQL/NP3I+v6k8PRxtmPFAORHNxVQ9qVClBuTIlKF+vtbCmpcDmxWZKt5nHS5uUs7wnjEK+kgQkAUlAEkhrBNKw0Inl4JAf+VOvGg/DggmPfkA9oz/5afhKkq80BTDQ+0dsl8bwNvAZav/OTKlly7KEp9u/5h50ZR2TFz8Sguk0hw7+w6ntw4haP4YdD0VX+pZEx/oTmqUTG3z/4dy6bqzo04Bz2fuz5fARLm9yY2jDP9BIBD0RkzFiLy/yTOPY4cOcu9iGo+26s1vJ5h16lt/6z8R+6GqO+h5hSZ/GvHjiz1sRBVqcZMW0yTwo1pt/jh7C9+gpBnlFsWLpDrTyJWFKtq3HUej4Sg6Hxh07wa6j1ela0Uz4laylUZuV9Lt0mn8OHuPqwJyMateNa8mIqLm0fCrzHxZl4z9H+cf3GCd/9WLXyqU8FXlTzczMCbofgW3zAWw97MvpBZ14sfkPfDWrbNfp1m4k2bqd5eTBPRy5cpIrI72Yc145Z4x15ozcvGTK5JNHOXDyGINCp9LrqECTvxLVrA3Ye/qZdjSvz7MnJhtN6joJxiY8uBmMSYNf2Orry4HhJTgxZDj3qw9n99HDrOtbjHVjfkejV66Ppt3IG3Q/d46Dew9y5aQrIzx7ckFzeVMy2lqJ9KRxxQjrTJmxFmiizy+k7/50LNlznEOHj7N2UG2iHl0nPGn2t8x1ubjhF7KG6DKpx/clX0gCkoAkIAmkdQJpWOjo4dRmBP371tFk3IYMFChWE5GzIgWmxnT9azXNsui8igv9hI+opf6M2ZlnLcGYSdMobhLN7hH9aNF5NpcMLAjXXcLKNiNlamTTjsW5GmVzlKd2w0za99lLY2AaqHVAVkUSmqcpI2uk056zbMiITq+YsS0M9b1LvM5Tjg5lte0MCnnjU6IAhlFK9m1zSrcfw7AOxeH1blq1bMG0PZdQGYQjEnG/W/TK0dT7JLsPaa0RT/6eyJVGP1NI1Dr312ZoNJaqcdGl3box3OMKK04l7SSW7GXaMX9YB3HlV0xu1ZKuM3ZzLUZfJIYUySNjVGQv7IaPd0bdHIuR2yqMJ0rib781nNVrSZtqNrpOHRnbtiQ7hf9TrBA6MeER1Pq5hk5sZKSupz0nrz0SdW2pW9GIf/Yd1rR7evYsMRa5KJldXyTQjCaTyCxfwsVec86oQGlqFvHEp6j2+sY5cmGvfomSu96xWaqBAAAKdElEQVRvzTpoNZCqOsTkHEbbMrtZuU04dYv0EinlLFU+Rkbpc5Ap6BRdm6/SXMO2aGOa1y2BWQoNgoLD0abL1FSVRRKQBCQBSeArIfAZUuC/nqEeds6lqVraCRPlUm9OcetNAAN+bo5psktbUrLdD5TOrM2E9XJhGY4OP0PrHMkqpvqAoamKNYO98BQP22aP3Jk//ifcbYTI0OgsNQq4eFcaYyPs1BkSHqhih46eqKGBG6siNnNmEi962OUzJSA8iFd3n6N+kwGT+LsgxJxFBiw0Yk6P8PNraObhSQGPZhTpO58eNd0xj4pNcUmuXL3qnNl5SJwLYNHcU3Tu7Cn6iBJJM4VsWdKJIkW8KVy4MN5Fi/HzbmFrUrTUO8UAw/CLDG/qjnsBTzYV68/4HrVxMI/SzFnkxsZACIA4DaDkqYoVMzRQ3ImC32JdzoX0ifqzSO9IxOtXhGkoqN9J9RAZoxbstJPO2borRYSF5oqodf7cPcycSmMnDFoxqljMRZ14NoYmmOsliNxYkaVbrWeg6f1NiD7lXXO+M5sMjmpevwoUliGlRmLloqd5F6soJMearJzQlXsXRuLq5YFrlc5s9pc73t4BKd9IApKAJPCVE0jDQieO7GtWueYRyxxted5wBlWyvH/54NnxmVTMoUfmFYO43iM7oZ/xFfz62gkczDaB8/63CZjfUvjZmKGviAPdM1N55MYbl8QLlTplASIchtALfnf/+uUT4ViaWJIxZ2aMM4USE2+iCeROWCARyhbmyFssF8swbdaf5/rDAHp5mGNmqq+xKqRgcMChfEPcH29n7+blrI7tRpdcCj999FRvyNpjDadPn+GssJicOXUS/0s3GFQqySc3NpB1y3Zh0XoDF68/xLeHm7ieKSJpvDKF+JIgNXSHlAPmpoT6XiOxRIgMDSaDbR4sxYg1QilZQ117vaJ0b3aVCYvPcTXwJmXLe2ocfhUkSpvEjDXME4aieaW8tzBVc0hjIUooocHGZMrnKBRTjOgrOpE1Rk2oItjiOnJsyBl/f/zOXWBxS0PaDJrMjTfJbGbv9C3fSAKSgCQgCXw9BL4CoZORpn63UT+/QZ2dDXBo+DsvBd/YZ6f5e+E6/IMTHkr2JXqw/6GwPewvh2smewYeSEX0GmEpEBudkpWIyBCM0ilf+7Xl9OJR7LsqlkGEhUaRGimJjWSdKAeMTDA7t5U/rylOOaJE72f5dms6VrRGP0d+DK8dZN15nUS4fwXfi3eINBImjdgIDN4aYRw3hDenWb16H/fV4spJn/aiW5MMHuT1esboyfOw7VhJt8vLEK9G5XixeyrX4/oR/kItytTjSEiS0QoLSrThW+HSEmfqCWb3qhVcvRerE1cpz1hjGfGsTW7VRracjhN0L/lj+Wa8anorE05puO9c3KVZe87NHM5dg9J45bdKMrAPvVVrDFOedcoTu+5PzsZd/tVclmwsTG0vcVIsN9rFHOGEDnH4gf3se/UGE8Vp59k51hw8Fy+CvErWpGl2M6K0ZrsPXViekwQkAUlAEvhKCKT57OWJORYtXhvVZn/uiQda5O6xtO+4n6H5yjKibOYkuL0ZWBQ2rj5PTOUyvG+SMcL5RHViOd1a38DGWC0sD+LBGf6W0r3n07lWF/IOGEat5luwNw3BvlAVSpkv5fqVJ5AvhuCAQCLjLEaxUYQEvk1YDYoJ43Xce9Hfm4L5CN7Un1bXQwiNMaDM6En8kEEZcmmG9r1Df+F03T6bMenMDVCFmxEbJtyNzZypVDovM/rWYoO9PVaG9ti6luLRueu8FkYti6QbgIwz4JmtAKN8H/LbrPzxPKy9u7Ky81g6+zQju5MFr96qKT1pAZWS6gmjjNQRrHqLnWPNNthhZWWMY2YPcvqe4cprNXbC1+jtm5B461OsKorg4DdERCgCzptZv9dnyvhK7MhQCLNHweT8cQPdyyiLjIGEBQrfoQTNSNTbAALDEx1w+IE6piN4YDuEAubaoauiIwgJCiZKxzj2/9o729C2yiiO/6NNmiZLmreblxXXqTAmtbjpxthE8MOY6ETFytwUHNPRYREG0ug+TLAIzjJfNlBQwbKCL0xRv/hp/VK31g0Gs1IVXLWypqVpsuXmtUnuzYvnSRNtzcICZTTrPQ9cuHl57jnn9yTcP+c5z3NzmSX280oKcfInKyrTt/TjWNebeHtnF5z32DEd1+HwdyfxIBUcA1vxcd8DeOjJ5zB0twt3bdqA7WoBcaGQWs2InHsPB09l0NSkw0zqNuzc+zrutVcv7xf20ok6hPO/5PmECTABJsAEGoEA1fbWnFRYWf9SE+h9fBPCu4cx2Lu15MvP/c/g/gEzfr00iA59FH+HFXjb3GgZ8aPp6W9xbnIS20vZmTj261rx5/FLGO0VtSrXb0W6ecYiESSp7qXSCvkczNIdcJLoUJNXEZTTKJIgcq5rhz4eRtbghKWlAHlOhsktobmU6FAgh9KwuFsXRFVhHnNXc3C5rbidRE843QypWcaV2RR0RgfWeZaqjPnwLH1HpekxK8xUCJM3rIHFKG62KiLBIPlHNS1GJzySHpFIFnaHpVQv8/9WVOYRuabC6mtdtMpo4VvXpq7QlA11Mtir7C++TjIShJxUoKPl/G6PhCzx0TucVBeVQTyahclRiVFFlIRGs8WBlrKSTMsBhBNCMJqwvr1cmE35nFQoBLg8MJfzh2o8hGiTC5KpklCM4+hGWiL/zW94uXPBm2KexkbOwOS0wSCSWPQ6EfvPfkElAZnIw1Lxhyao5MA0EmSvaPSiXSpVdpVbDtOBGSqq1sPW5oUxHkHO5kLJvBLHbChKAo6MtFjglWxV7MRFCmoKsWgaRssa/DI2RgIvQ+U/9SVEC/T7MdI0YGdnJ/R6ytIZFmrJFjlYdSr6yLJ8XRviM7GFQsmv8rn4G4sjT7VLoolz8VnlyNEUntVqhSRJVbb4DSbABJjAaibQuEJHCePDD97CX+7dOLClDbGZYbzxUh+2HTuL/hfEeqJFbe40fJsDGBzZBV/ahPET9+HQ2A5cGB1Cx43vKat5fBs8NhJysyEkL36K57/egeHPH2noDfmEWMhmsxgfH2eh0+C/LHaPCTABJlAhUGtWZ+UJGSS88qofH/Udhf90iLau8WHfDwEc2ly95gqeZxEYGsCug72leptU+jMkLu5d+RjYgxsQSOH3M1/iix9tVAjd2CJHBCKyI9yYABNgAkzg1iLQuBmdW4sje6sBAoqiQFVVzuhoYKw5RCbABFYPgfqKDFZPvBwJE2ACTIAJMAEmoCECLHQ0NNgcKhNgAkyACTABrRFgoaO1Eed4mQATYAJMgAloiAALHQ0NNofKBJgAE2ACTEBrBFjoaG3EOV4mwAQ0TuA8HtbZsefkaNUj76Ij3Vhr6sFUHYT+GHgN+w+8j2DVc/Pq6KyGcOJF2jrk3WofRO93nnBg36nLNS40hR7TWnSfp41V02exwduF0WU87qeGEUwOHkHHo0cwUfupQ7W63vT3J77qQcdj3Zgsb7i/xOBPfjju9KMWveU5l8fl749jG+3s6lu/EU8d/gQTsZsAf3lOVvX+B9uqclv5B/9iAAAAAElFTkSuQmCC)" ] }, { "cell_type": "markdown", "metadata": { "id": "al7V5l2PNP0g" }, "source": [ "NOT: Yukarıdaki ekran görüntüsü gibi resimleri kolayca notebookunuz içine ekleyebiliyorsunuz. Sadece bir Markdown tipli hücre açıp içine girin ve clipboarda aldığınız resmi yapıştırın." ] }, { "cell_type": "markdown", "metadata": { "id": "RlVMY4HwNP0g" }, "source": [ "### Çoklu output" ] }, { "cell_type": "markdown", "metadata": { "id": "sukkjEEUNP0g" }, "source": [ "Normalde bir hücrede \"print\" ifadesi kullanmazsak sadece son değişken çıktı olarak gösterilir. Ancak aşağıdaki kod bloğu ile tüm değişkenler çıktı olarak elde edilebilmektedir.\n", "\n", "
\n",
        "from IPython.core.interactiveshell import InteractiveShell\n",
        "InteractiveShell.ast_node_interactivity = \"all\"\n",
        "
\n", "\n", "Örneğin bu interactive kodları girilmeden aşağıdaki kod çalışıtırılırsa sadece 2 sonucunu alırken\n", "
\n",
        "a=1\n",
        "b=2\n",
        "a\n",
        "b\n",
        "
\n", "\n", "Yukarıdaki iki satırlık kod girilirse hem 1 hem 2 sonucu görünür." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:32:54.059281Z", "start_time": "2021-05-15T15:32:54.055292Z" }, "id": "3zhPcl7VNP0h" }, "outputs": [], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "id": "RkfLENr4NP0i", "outputId": "07ef44cc-1992-4f73-f19c-33619a12cfe3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1" ] }, "metadata": {}, "execution_count": 6 }, { "output_type": "execute_result", "data": { "text/plain": [ "2" ] }, "metadata": {}, "execution_count": 6 } ], "source": [ "a=1\n", "b=2\n", "a\n", "b" ] }, { "cell_type": "markdown", "metadata": { "id": "EEPX3axvNP0i" }, "source": [ "## Çeşitli operatörler" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "rsnrNJINNP0i", "outputId": "678084f6-0737-4a0d-a16e-2c5f3d879975", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "drive sample_data\n" ] } ], "source": [ "#! işareti ile işletim sistemi komutları kullanılabilir. Windows'ta cmd'den, Linux'ta terminalden yazar gibi olur\n", "# !dir #windowsta olsaydım\n", "!ls #colab'te olduğum için, colabde Linux üzerinde çalıştığı için ls" ] }, { "cell_type": "code", "source": [ "!pwd" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "MDmA-sdXCLMF", "outputId": "820a5932-a2e9-4c7a-a9a8-8e6c3c56bb58" }, "execution_count": 8, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content\n" ] } ] }, { "cell_type": "code", "source": [ "%cd sample_data #! ile dğeil % ile. sebebi: The !cd command only changes the directory for that specific line. To change the directory for the whole notebook, use the %cd command instead.\n", "!ls" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "AZwHtBQDCAYx", "outputId": "1d45d904-00a3-418a-9ff9-d0c157fc5e14" }, "execution_count": 9, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[Errno 2] No such file or directory: 'sample_data #! ile dğeil % ile. sebebi: The !cd command only changes the directory for that specific line. To change the directory for the whole notebook, use the %cd command instead.'\n", "/content\n", "drive sample_data\n" ] } ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "ZbIQGdp4NP0j" }, "outputs": [], "source": [ "# \"#\" işareti ile yorum yazarız" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "mFFxeJGrNP0j", "outputId": "3aa3274d-fdc9-4619-c9bb-2f2df01be85c", "colab": { "base_uri": "https://localhost:8080/", "height": 34 } }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "Farklı dil seçeneklerin kullanabiliyoruz. Burada HTML kullanmış olduk.\n" ] }, "metadata": {} } ], "source": [ "#çeşitli dillerden metin yazılabilir, html, javascript v.s. Bunun için ilgili dil için geçerli olan magic command kullanılır\n", "%%HTML\n", "Farklı dil seçeneklerin kullanabiliyoruz. Burada HTML kullanmış olduk." ] }, { "cell_type": "markdown", "metadata": { "id": "0cRLxshSNP0k" }, "source": [ "## Matematiksel ifadeler" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true, "id": "Ce2m9Fj8NP0k", "outputId": "539cfb6a-4808-4117-b3cf-b70e8eb2f203", "colab": { "base_uri": "https://localhost:8080/", "height": 52 } }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/latex": "$$E=mc^2$$\n$sin(x)/x$\n" }, "metadata": {} } ], "source": [ "%%latex #Latex ile matematiksel formüller girebiliyoruz\n", "$$E=mc^2$$\n", "$sin(x)/x$" ] }, { "cell_type": "markdown", "metadata": { "id": "T-UEWeG9NP0k" }, "source": [ "Hizalama
\n", "Yukarıdaki code hücresiyidi, bu ise markdown hücresidir
\n", "$$ ile yazım formülü ortalar
\n", "\\$ ile yazımda ise sola dayalı ve küçük
\n", "\n", "$$\\Pi p(n)$$\n", "$$\\Pi \\pi$$\n", "\n", "$\\frac \\pi 2$" ] }, { "cell_type": "markdown", "metadata": { "id": "hiV4Vj6fNP0l" }, "source": [ "Diğer ifadeler\n", "\n", "\\frac ifadesi ile kesirler
\n", "_ karakteri ile indis(subscript)
\n", "\\pi, \\sum, \\bar ve \\hat gibi özel ifadeler
\n", "\n", "$$\\sum p(n)$$\n", "\n", "$$y_i, \\bar{y}_i, \\hat{y}_i$$\n", "\n", "$$TSS=\\sum_{i=1}^n(y_i-\\bar{y}_i)^2$$\n", "\n", "$$P(c|x)=\\frac {P(x|c).P(c)}{P(x)}$$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "id": "j5kmptbQNP0l", "outputId": "dc958be6-a850-430f-9cd9-fce3732ab46d", "colab": { "base_uri": "https://localhost:8080/", "height": 57 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/latex": "$\\displaystyle F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$" }, "metadata": {}, "execution_count": 13 } ], "source": [ "#bu modül ile de daha gösterişli matematiksel formüller girebiliyoruz\n", "from IPython.display import Math\n", "Math(r'F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "id": "1G6puqzhNP0m", "outputId": "036f1de0-41bf-4374-fcbb-913469905642", "colab": { "base_uri": "https://localhost:8080/", "height": 61 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {}, "execution_count": 14 } ], "source": [ "#dahası da var, müzik ve video da ekleyebiliyoruz\n", "from IPython.display import Audio\n", "Audio(url=\"http://www.nch.com.au/acm/8k16bitpcm.wav\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "id": "iYTTHXH5NP0m", "outputId": "17ed7d57-f0f7-4541-9594-251b5d369988", "colab": { "base_uri": "https://localhost:8080/", "height": 321 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ], "image/jpeg": "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\n" }, "metadata": {}, "execution_count": 15 } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('agj3AxNPDWU')" ] }, { "cell_type": "markdown", "metadata": { "id": "2GTYZP03NP0n" }, "source": [ "Latex ve Ipython.display hakkında daha fazla bilgi için\n", "\n", "- https://nbviewer.jupyter.org/github/ipython/ipython/blob/2.x/examples/Notebook/Display%20System.ipynb\n", "- https://towardsdatascience.com/write-markdown-latex-in-the-jupyter-notebook-10985edb91fd\n", "- https://stackoverflow.com/questions/13208286/how-to-write-latex-in-ipython-notebook" ] }, { "cell_type": "markdown", "metadata": { "id": "ccCaHGjMNP0o" }, "source": [ "## Genel syntax" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "id": "WZ3c6eKeNP0o" }, "outputs": [], "source": [ "sayi=1 #değişkenler doğrudan atanır. türkçe karakter kullanmamaya çalışın" ] }, { "cell_type": "markdown", "metadata": { "id": "TPMaeUYPNP0o" }, "source": [ "### Değişkenlerde çoklu satır kullanımı" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "id": "DXlmk9HbNP0p", "outputId": "cd02598c-a76b-454f-d9b0-c832d35fefd9", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "merhaba burada line contination uygulandıama sonuç yine de bitişik yazar\n" ] } ], "source": [ "linecont=\"merhaba burada line \"+ \\\n", "\" contination uygulandı\" + \\\n", "\"ama sonuç yine de bitişik yazar\"\n", "print(linecont)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "id": "OTeWsfftNP0p", "outputId": "1d3f7f7d-4342-44dd-9423-eb0ac8783ee4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "bu satırlar\n", "ise satırlara\n", "yayılmış durum\n", "\n" ] } ], "source": [ "satırayaygın=\"\"\"\n", "bu satırlar\n", "ise satırlara\n", "yayılmış durum\n", "\"\"\"\n", "print(satırayaygın)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "id": "xPoeFmqrNP0p", "outputId": "53e2ead8-6c38-4476-c230-6fc123564476", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['Pzt', 'salı', 'çar', 'perş']\n" ] } ], "source": [ "#veri yapıları için ise yukarıdaki iki yönteme de gerek olmadan kaydırabiliriz\n", "gunler=[\"Pzt\",\"salı\",\n", " \"çar\",\"perş\"]\n", "print(gunler)" ] }, { "cell_type": "markdown", "metadata": { "id": "Yfwp7ThyNP0q" }, "source": [ "### Başlıklar" ] }, { "cell_type": "markdown", "metadata": { "id": "S3JVHBJUNP0q" }, "source": [ "Başlıklar normalde #, ##, ###,... ifadeleriyle HTML'deki h1,h2,h3...'e denk gelecek şekilde oluşturulur. Bu dokümandaki tüm başlıklar da böyle oluşuturuldu. Dokümanı kendi jupyterinizde açtıysanız, herhangi bir başlık hücresine gelip Enter'a basın. Enter ile hücreyi edit moduna sokmuş oluruz. Böylece başlığın nasıl yazıldığını da görmüş olursunuz. Mesela bu paragrafın başlığı aşağıdaki gibidir" ] }, { "cell_type": "markdown", "metadata": { "id": "4n6D1-n2NP0q" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "nxhWGDtaNP0r" }, "source": [ "Bu tür başlıklar, eğer nbextension kurduysanız 1.1.2 gibi indeksli şekilde görünür. Eğerki bu dokümana bir notebook gösterici(github veya nbviewer gibi) üzerinden bakıyorsanız 1.1.2 şeklindeki gösterimi görmüyorsunuzdur. Detaylar için en baştaki Rehber kısmına bakınız" ] }, { "cell_type": "markdown", "metadata": { "id": "bmfGvWUDNP0r" }, "source": [ "Bu ise html(strong tag'i) kullanılarak oluşturulmuş kalın bi başlık. Sol paneldeki \"İçindekiler\" paneline girmesini istemediğiniz başlıkları bu şekilde oluşturabilirsiniz." ] }, { "cell_type": "markdown", "metadata": { "id": "SJz6PZhCNP0r" }, "source": [ "Diğer başlık türleri\n", "\n", "***üç yıldız ile bold&italik***
\n", "**iki yıldız ile bold yapma**
\n", "*tek yıldız ile italik yapma*
\n", "`sağa dönük tek tırnak ile` vurgulu yapma. Bu karakteri Alt+96 ile yazabilirsiniz." ] }, { "cell_type": "markdown", "metadata": { "id": "GgAukwoINP0r" }, "source": [ "### Paragraf, satır geçme ve html kullanımı" ] }, { "cell_type": "markdown", "metadata": { "id": "_PtCNL1fNP0r" }, "source": [ "Üst paragraf\n", "\n", "İki kere entera basarak paragraf açabilirsiniz(bu satırda olduğu gibi. hücreye çift tıklayın ve görün)
\n", "veya bi satırın sonunda \"br\" tagi ekleyerek bir alt satıra geçebilrsiniz. (bu satırda olduğu gibi. hücreye çift tıklayın ve görün)\n", "\n", "NOT:Bu kolaylıkları öğrenene/keşfedene kadar ben bu paragraf ve bi alt satır işlerini Markdown değil de Raw NB Convert hücre tipi ile yapıyordum. Bunu öğrendikten sonra Raw NB Covnert tipli hücrelere pek ihtiyaç duymadım." ] }, { "cell_type": "markdown", "metadata": { "id": "BURPZ7aQNP0r" }, "source": [ "### Naming convention" ] }, { "cell_type": "markdown", "metadata": { "id": "ZMY65lLwNP0s" }, "source": [ "\"Pep 008 python\" araması yapın ve tüm detayları görün. aşağıda sadece \"_\" kullanımını koydum" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "id": "aUgXGQjANP0s", "outputId": "1338d0de-e3ab-4d8e-f9a2-67d7a1ff3a38", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "ad\n", "soyad\n" ] } ], "source": [ "_privatevariable=3\n", "#_privatemethod()\n", "list_=[1,2,3] #rezerv keylerin sonuna _ gelir. list diye bir değişken adı kullanamayız, list_ olabilir\n", "dict_={\"ad\":\"ali\",\"soyad\":\"yılmaz\"}\n", "for x,_ in dict_.items(): #ilgilenmediğimiz değerler için \"_\"\n", " print(x)" ] }, { "cell_type": "markdown", "metadata": { "id": "Vl3lloNKNP0t" }, "source": [ "Bununu dışında sklearn(Machine Learning kütüphanesi)de bazı propertylerin _ ile bittiğini görürsünüz. bunların anlamı da, ilgili propertyle ulaşmak için öncelikle modelin eğitilmesi(fit edilmesi) gerekmekte, eğitilmemiş modelde bu bilgiye ulaşamak anlamsızdır demek." ] }, { "cell_type": "markdown", "metadata": { "id": "LUhV93q8NP0t" }, "source": [ "# Modül, Package, Class" ] }, { "cell_type": "markdown", "metadata": { "id": "kg0ki9ZfNP0t" }, "source": [ "Bu 3 kavram hiyerarşik olarak şöyle sıralanır. Package>module>class.\n", "\n", "Yani her sınıf bir modül içindedir. modüller py uzantılı dosylardır. birkaç modül biraraya gelerek bir paket oluşturur. Ör: DataScience çalışmalarında pandas paketi kullanılır, bu anaconda sürümü ile birlikte gelir.\n", "\n", "Bir de kütüphane kavramı var. Python'daki kütüphane(library) kavramı C/C# gibi dillerdeki dll dosyalarından farklı bir anlama sahiptir. Burada daha çok belirli modüllerin veya package'ların biraraya gelerek kavramsal bir topluluk oluşturumasından bahsediyoruz. Ör:Makine öğrenme kütüphanesi gibi. Bu arada ille bir fiziksel karşılık aranacaksa package'lar gibi düşünülebilirler." ] }, { "cell_type": "markdown", "metadata": { "id": "G-2im5BGNP0t" }, "source": [ "**DİKKAT:Kafa karışıtırıcı bir paragraf, isterseniz şimdilik atlayın ma sonra mutlaka glin ve özellikle alttaki linki okuyun**\n", "\n", "Yeni bir paket kurmak istediğinizde;\n", "\n", "conda install paketadı demeniz yeterlidir. Eğer bu yeterli gelmezse;
\n", "pip install paketadı diyebilirsiniz. Bunu bazen başında ! olacak şekilde yapmak gerekebiliyor. ! varsa aslında komut satırı komutu gibi çalışmış oluyor, ! yoksa da % işareti varmış gibi çalışıyor. % işareti olması automagic olarak çalışması anlmamına gleiyor. automagic konusunu araştırrsanız anlarsınız.\n", "\n", "Ama şimdi bu yukarıdaki iki yöntemi de unutun ve aşağıdaki şu linke bakın. kurulumları nasıl yapmanız gerektiğini göreceksiniz.\n", "\n", "Daha detaylı bilgiyi aşağıdaki linkten edinebilirsiniz:
\n", "https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/" ] }, { "cell_type": "code", "source": [ "#uzun uzun kurulum bilgisi yazmasın diye -q ekleriz\n", "!pip -q install forbiddenfruit" ], "metadata": { "id": "y1w7BXFDFdxC" }, "execution_count": 21, "outputs": [] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2020-10-06T20:09:52.718668Z", "start_time": "2020-10-06T20:09:52.712650Z" }, "id": "Mm52LU4gNP0u" }, "outputs": [], "source": [ "#örnek olarak şimdi DeepLearning paketi olan kerası kuruyorum\n", "#conda install keras" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "id": "uqqa5TaUNP0u", "outputId": "82aed378-8263-4823-deca-b747ea6da6e6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Package Version\n", "-------------------------------- ---------------------\n", "absl-py 1.4.0\n", "accelerate 0.34.2\n", "aiohappyeyeballs 2.4.0\n", "aiohttp 3.10.5\n", "aiosignal 1.3.1\n", "alabaster 0.7.16\n", "albucore 0.0.16\n", "albumentations 1.4.15\n", "ERROR: Pipe to stdout was broken\n", "Exception ignored in: <_io.TextIOWrapper name='' mode='w' encoding='utf-8'>\n", "BrokenPipeError: [Errno 32] Broken pipe\n" ] } ], "source": [ "#mevcut packageların listesi\n", "!pip list | head -n 10 #ilk 10u gelsin diye sınırladım(| ve sonrası Linux komutudur, windows için more veya less olması lazım)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "id": "gmSg1OyhNP0u", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "045b5c23-be8a-4a76-cefd-6c1a5d1fbd44" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Name: keras\n", "Version: 3.4.1\n", "Summary: Multi-backend Keras.\n", "Home-page: https://github.com/keras-team/keras\n", "Author: Keras team\n", "Author-email: keras-users@googlegroups.com\n", "License: Apache License 2.0\n", "Location: /usr/local/lib/python3.10/dist-packages\n", "Requires: absl-py, h5py, ml-dtypes, namex, numpy, optree, packaging, rich\n", "Required-by: tensorflow\n" ] } ], "source": [ "#bi paket hakkında bilgi\n", "!pip show keras" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "id": "heyt5rURNP0v", "outputId": "e227d09b-f7b5-482c-9401-a3b311b2dd28", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (2.1.1)\n" ] } ], "source": [ "#eğer, daha üst sürümü varsa ona upgrade etmek için\n", "!pip install numpy --upgrade\n", "#veya conda update numpy" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "id": "RWA29wrHNP0v" }, "outputs": [], "source": [ "#yeni sürümle çalışıtırma sıkıntısı yaşarsanız eski sürüme dönebilirsiniz\n", "#!pip install --upgrade paketadı=versiyonno #(Ör:pip install --upgrade werkzeug==0.12.2)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "id": "A4sLIE9JNP0v" }, "outputs": [], "source": [ "#paketi komple kaldırmak için\n", "#!pip uninstall paketadı" ] }, { "cell_type": "markdown", "metadata": { "id": "872p2Pk4NP0w" }, "source": [ "Bu komut, sadece paketi kaldırır, ama bi paket kurlurken birçok dependency ile kurlur, yani o paketin çalışması için gerekli olan başka paketler. Bunların bazılarını başka paketler de kullanıyor olabilir, bazılarını ise sadece bu kaldırmak istediğinzi paket kullanıyordur, işte bu son grup için de kaldırma işlemini tek tek yapmanız gerekir, ama neyseki bunun için da başka bir paket var, bunu kurup aşağıdaki gibi çalışıtırırsanız, kaldırmak istediğnzi paket ve onunla gelen gereksiz paketler de kaldırılır. şurada detaylı bilgi var." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "id": "g8U3N5-fNP0w", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "a2937875-8b25-492c-8427-8b8e57dcf6f1" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: pip-autoremove in /usr/local/lib/python3.10/dist-packages (0.10.0)\n", "Requirement already satisfied: pip in /usr/local/lib/python3.10/dist-packages (from pip-autoremove) (24.1.2)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from pip-autoremove) (71.0.4)\n" ] } ], "source": [ "!pip install pip-autoremove" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "id": "sSz2VzLZNP0x", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "9e469c18-9fc5-4ddf-af1d-daa3f77dc70f" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "somepackage is not an installed pip module, skipping\n", "numpy 2.1.1 is installed but numpy<2.0a0,>=1.23 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<1.27,>=1.20 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2.0,>=1.18.5 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2,>=1 is required\n", "Redoing requirement with just package name...\n", "The 'jedi>=0.16' distribution was not found and is required by the application\n", "Skipping jedi\n", "numpy 2.1.1 is installed but numpy<2.1,>=1.22 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2,>=1.22.4; python_version < \"3.11\" is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2,>=1.17.0 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2.0a0,>=1.23 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2.0,>=1.17.3 is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2.0.0,>=1.23.5; python_version <= \"3.11\" is required\n", "Redoing requirement with just package name...\n", "numpy 2.1.1 is installed but numpy<2.0.0,>=1.19.0; python_version >= \"3.9\" is required\n", "Redoing requirement with just package name...\n", "The 'pycairo>=1.16.0' distribution was not found and is required by the application\n", "Skipping pycairo\n" ] } ], "source": [ "!pip-autoremove somepackage -y #remove \"somepackage\" plus its dependencies:" ] }, { "cell_type": "markdown", "metadata": { "id": "olXV9pE4NP0x" }, "source": [ "Bu arada bu dependencyler nedir görmek isterseniz, şu komutu çalıştırın." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "id": "BpjYWRBONP0x", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "04230509-114e-47ec-9e1f-8289404df40d" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "geopandas==1.0.1\n", "pandas==2.1.4\n", "pandas-datareader==0.10.0\n", "pandas-gbq==0.23.1\n", "pandas-stubs==2.1.4.231227\n", "sklearn-pandas==2.2.0\n" ] } ], "source": [ "!pip freeze | grep -i pandas" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "id": "hrDc8NU9NP0x", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "e90fbf40-748e-4bb5-947a-789cd9ddf3ae" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[31mERROR: Operation cancelled by user\u001b[0m\u001b[31m\n", "\u001b[0m^C\n" ] } ], "source": [ "#tüm outofdate paktleri görmek için, çok uzun sürebiliyor\n", "# !pip list --outdated" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "id": "0tTzGvk8NP0y", "outputId": "20491419-7038-42f4-f0b2-21bb4260fd93", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Python 3.10.12\n" ] } ], "source": [ "#python versiyonu öğrenmek\n", "!python --version" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "id": "s4FkMHDgNP0y" }, "outputs": [], "source": [ "#python'ın versiyonunu yükseltmek\n", "#!conda update python" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "id": "TbRMQRqQNP0y", "outputId": "ba1771d3-774c-449a-91e7-05bc6d639d09", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['/content',\n", " '/env/python',\n", " '/usr/lib/python310.zip',\n", " '/usr/lib/python3.10',\n", " '/usr/lib/python3.10/lib-dynload',\n", " '',\n", " '/usr/local/lib/python3.10/dist-packages',\n", " '/usr/lib/python3/dist-packages',\n", " '/usr/local/lib/python3.10/dist-packages/IPython/extensions',\n", " '/usr/local/lib/python3.10/dist-packages/setuptools/_vendor',\n", " '/root/.ipython']" ] }, "metadata": {}, "execution_count": 34 } ], "source": [ "#packageler hangi klasörlere kuruluyor\n", "import sys\n", "sys.path" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "id": "KKOwSxU_NP0y", "outputId": "dfd493d4-fba1-4ca9-ea56-2f754a3806c0", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.10/dist-packages']\n" ] } ], "source": [ "import site\n", "print(site.getsitepackages())" ] }, { "cell_type": "markdown", "metadata": { "id": "6tTwotkfNP0z" }, "source": [ "Özel kurulum şekillleri" ] }, { "cell_type": "markdown", "metadata": { "id": "LRuvt2JPNP0z" }, "source": [ "In IPython (jupyter) 7.3 and later, there is a magic %pip and %conda command that will install into the current kernel (rather than into the instance of Python that launched the notebook).\n", "\n", "%pip install geocoder\n", "\n", "! pip install --user (The ! tells the notebook to execute the cell as a shell command.)" ] }, { "cell_type": "markdown", "metadata": { "id": "1pmHX6_fNP0z" }, "source": [ "## Modül ve sınıflar(ve hatta fonksiyonları) kodumuza dahil etme" ] }, { "cell_type": "markdown", "metadata": { "id": "0GJH1mGGNP0z" }, "source": [ "* Modül referansı: import x, kullanımı: x'i takipeden üye şeklinde. x.falanmetod, x.falanproperty, x.falanfalan
\n", "* Modüldeki herşeyi dahil etme: from x import * , kullanımı: falanca(...)
\n", "* Tek birşeyi dahil etme: from x import falanca. falanca doğrudan kullanılabilir, x.falanca demeye gerek yok(üsstekinden farkı daha az şey importladık)" ] }, { "cell_type": "markdown", "metadata": { "id": "-mcfgHkjNP00" }, "source": [ "NOT: Performans açısından mümkün mertebe az şey import etmeye çalışın." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "id": "UaNmaSjUNP00", "outputId": "15302623-417b-4154-d641-a5eb03d55200", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "4.0" ] }, "metadata": {}, "execution_count": 36 } ], "source": [ "from math import sqrt #math modülünden sqrt fonksiyonu\n", "kök=sqrt(16)\n", "kök" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "scrolled": true, "id": "ks1w8Y0aNP00", "outputId": "4c87ae5b-ef1e-4f6c-94c7-06d82e97e2ed", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "drive sample_data\n" ] } ], "source": [ "from os import * # os modülündeki herşeyi\n", "mkdir(\"test\") #os dememize gerek yok. test diye bi klasör yarattık\n", "removedirs(\"test\") #hemen arkadan bu klasörü sildik\n", "!dir" ] }, { "cell_type": "markdown", "metadata": { "id": "okB1H3TMNP00" }, "source": [ "## Kendi modüllerinizi import etme" ] }, { "cell_type": "markdown", "metadata": { "id": "2dqwX3UoNP01" }, "source": [ "Zaman geçtiktçe, bazı işleri sık yaptığınızı farkedeceksiniz ve bunları(sınıflar, fonkisyonlar) kendinize ait bir modülde toplayacaksınız. Sonrasında bunu normal bir modül import eder gibi ederiz." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "id": "R5xgkco3NP01" }, "outputs": [], "source": [ "# mypythonutility.py isminde bir dosyanız olduğunuzu düşünrsek\n", "# import mypythonutility" ] }, { "cell_type": "markdown", "metadata": { "id": "aNJK8hsfNP01" }, "source": [ "Ancak bazen, kodlarımızda sık güncelleme yapmak durumunda kalabiliyoruz. o sırada da bu modülümü import ettiğimiz bir başka notebookta çalışırken güncel halini dikkate almasını isteriz. Bu işi, notebooku restart etmeden yapmanın bir yolu var:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "ExecuteTime": { "end_time": "2020-07-07T08:46:49.796354Z", "start_time": "2020-07-07T08:46:49.732490Z" }, "id": "HtrnCd63NP01" }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": { "id": "bnsjjA8HNP01" }, "source": [ "## Kendi modülünüzü paket gibi kullanma" ] }, { "cell_type": "markdown", "metadata": { "id": "madB5No8NP02" }, "source": [ "Burayı daha ileride okuyun, şimdilik aklınızda bulunması için ve konu bütünlüğü adına burda olması daha iyi diye düşündüm. Yoksa bi üstteki maddeyi bilmeniz şimdilik yeterli." ] }, { "cell_type": "markdown", "metadata": { "id": "AhLgG4W7NP02" }, "source": [ "Yazdığınız modülü çağırmak istediğinizde ya onunla aynı klasörde olmanız ya da os.chdir() yaparak ilgili klasöre konumlanmanız gerekir. Sürekli bununla uğraşmamak için modülünüzü bir package haline getirmeniz faydalı olacaktır.\n", "\n", "Bunun için bir klasör yaratın ve içine bu py dosyanızı koyun. Bu klasöre bir de içi boş bir `'__init__.py'` dosyası koyun. Sonra bu klasörü tüm python paketlerinin olduğu klasöre(site-packages) taşıyın.\n", "\n", "Eğer ki jupyterhub gibi yetkilerinizin sınırlı olduğ bir ortamda çalışıyorsanız, ve site-packages'ta klasöre açma yetkiniz yoksa, kendinize ayrılmış alanda bu klasörü oluşturup sistem pathine ekleyin. Bunu da aşağıdaki komutla yapabilirsiniz." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "id": "DDXg5fiENP02" }, "outputs": [], "source": [ "# import sys\n", "# sys.path += \"klasörün konumu\"\n", "# print(sys.path) #path'e eklenmiş mi görmek için bunu da yazalım" ] }, { "cell_type": "markdown", "source": [ "colabde işler biraz daha fakrlı tabi, önce colab'e drive bağlanması için izin vermeniz gerekir. bunun için aşağıdaki hücre çalışıtırılrve izinler verilir" ], "metadata": { "id": "zDaFrPfMGbG1" } }, { "cell_type": "code", "source": [ "#Önce bu\n", "from google.colab import drive\n", "drive.mount(\"/content/drive/\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "zGNsNNXHGUzP", "outputId": "6f96224c-38e3-438f-fbfc-8d221f90daae" }, "execution_count": 41, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Drive already mounted at /content/drive/; to attempt to forcibly remount, call drive.mount(\"/content/drive/\", force_remount=True).\n" ] } ] }, { "cell_type": "code", "source": [ "#sonra da bu\n", "import sys\n", "sys.path.insert(0,'/content/drive/MyDrive/Programming/PythonRocks/') #mypyext isimli pkaet bu folderda" ], "metadata": { "id": "ZVMq4wsOGXk-" }, "execution_count": 42, "outputs": [] }, { "cell_type": "code", "source": [ "#artık kendi paketimi kullanabilirim\n", "import mypyext" ], "metadata": { "id": "V2S4SVZeGxBe" }, "execution_count": 43, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "h7KieE6uNP02" }, "source": [ "## Virtual Environment" ] }, { "cell_type": "markdown", "metadata": { "id": "YR5zjTzfNP02" }, "source": [ "https://realpython.com/python-virtual-environments-a-primer/ sayfasında güzel anlatılmış." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:11:20.772078Z", "start_time": "2020-07-16T11:11:17.510325Z" }, "id": "r5o3HFN0NP02", "outputId": "70fe006c-5e78-4eb3-c3fa-bf532a57a8cd", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/bin/bash: line 1: py: command not found\n" ] } ], "source": [ "#En güncel pip'i kuralım\n", "!py -m pip install --upgrade pip" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:11:54.505302Z", "start_time": "2020-07-16T11:11:45.665263Z" }, "id": "ASySAc96NP02", "outputId": "e52c8489-ab84-4f94-98c3-ed9a506a8faf", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/bin/bash: line 1: py: command not found\n" ] } ], "source": [ "#înstalling\n", "!py -m pip install --user virtualenv" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:13:17.716666Z", "start_time": "2020-07-16T11:13:04.387067Z" }, "id": "r7yrAOiPNP03", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "edb55d1d-d4f6-489b-cf44-ec18d278433c" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/bin/bash: line 1: py: command not found\n" ] } ], "source": [ "#yaratma\n", "!py -m venv env #bulunduğumuz aktif klasör içinde yaratır" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:20:21.083130Z", "start_time": "2020-07-16T11:20:20.978406Z" }, "id": "ZCKKAOIHNP03", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "5ad42391-a865-4aa9-eacc-980225767e12" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/bin/bash: line 1: .envScriptsactivate: command not found\n" ] } ], "source": [ "#aktivasyon\n", "!.\\env\\Scripts\\activate" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:32:39.163270Z", "start_time": "2020-07-16T11:32:39.139368Z" }, "id": "Qr0NOscHNP03", "outputId": "687402a1-7c2e-4082-b9be-e86a9044ff0a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[\"['/bin/bash: line 1: PATH: command not found']\"]" ] }, "metadata": {}, "execution_count": 48 } ], "source": [ "#bakalım PATH'e eklenmiş mi\n", "p=!PATH\n", "str(p).split(\";\")" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:26:46.667387Z", "start_time": "2020-07-16T11:26:46.567600Z" }, "id": "tQRZEtUsNP03", "outputId": "43fa1970-61f0-4285-e422-ec782fdd2628", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/bin/bash: line 1: where: command not found\n" ] } ], "source": [ "!where python" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "ExecuteTime": { "end_time": "2020-07-16T11:34:58.198185Z", "start_time": "2020-07-16T11:34:58.120395Z" }, "id": "UIQA98IANP04", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "942c2e5e-338f-4ce2-e590-6cd9ec1c38cc" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/bin/bash: line 1: deactivate: command not found\n" ] } ], "source": [ "!deactivate" ] }, { "cell_type": "markdown", "metadata": { "id": "GU0wvIngNP05" }, "source": [ "# Veri Tipleri" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:25:19.504151Z", "start_time": "2021-05-15T15:25:19.499164Z" }, "id": "naqpUbfiNP06", "outputId": "02067706-ec4f-4f20-f8c1-dda57a202102", "colab": { "base_uri": "https://localhost:8080/", "height": 89 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'\\nmerhaba\\nBu 3 tırnak ifadesi fonksiyonların docstringi amaçlı kullanılır\\nAnkca çok satıra yayılan yorumlar için de kullanılabilir\\n'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 51 }, { "output_type": "stream", "name": "stdout", "text": [ "\n", "\n", "\n" ] } ], "source": [ "i=1\n", "f=1.0\n", "s=\"merhaba\"\n", "#bu bir yorum\n", "\"\"\"\n", "merhaba\n", "Bu 3 tırnak ifadesi fonksiyonların docstringi amaçlı kullanılır\n", "Ankca çok satıra yayılan yorumlar için de kullanılabilir\n", "\"\"\"\n", "print(type(i))\n", "print(type(f))\n", "print(type(s))" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:25:35.993553Z", "start_time": "2021-05-15T15:25:35.988568Z" }, "id": "EzMolcdhNP06" }, "outputs": [], "source": [ "#Legal variable names:\n", "myvar = \"John\"\n", "my_var = \"John\"\n", "_my_var = \"John\"\n", "myVar = \"John\"\n", "MYVAR = \"John\"\n", "myvar2 = \"John\"" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:25:38.825715Z", "start_time": "2021-05-15T15:25:38.822723Z" }, "id": "lZLcQX6GNP07" }, "outputs": [], "source": [ "#Illegal variable names:\n", "# 2myvar = \"John\"\n", "# my-var = \"John\"\n", "# my var = \"John\"" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:25:39.549119Z", "start_time": "2021-05-15T15:25:39.545090Z" }, "id": "HBFwPMj-NP07", "outputId": "60b8697e-7f96-49fb-b9c4-d12820db9522", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Orange\n", "Banana\n", "Cherry\n" ] } ], "source": [ "#çoklu değer atama\n", "x, y, z = \"Orange\", \"Banana\", \"Cherry\"\n", "print(x)\n", "print(y)\n", "print(z)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:25:42.188664Z", "start_time": "2021-05-15T15:25:42.184639Z" }, "id": "MJi7krowNP07", "outputId": "aa3dfb6f-ef05-49c9-b6e8-74a9d3102296", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1000000000.0" ] }, "metadata": {}, "execution_count": 55 }, { "output_type": "execute_result", "data": { "text/plain": [ "123000000000.0" ] }, "metadata": {}, "execution_count": 55 } ], "source": [ "#exponential\n", "x = 1e9\n", "y = 123E9\n", "x\n", "y" ] }, { "cell_type": "markdown", "metadata": { "id": "aXlnpOTXNP07" }, "source": [ "## Veri tipi dönüştürme" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "ExecuteTime": { "end_time": "2020-11-23T07:25:00.681052Z", "start_time": "2020-11-23T07:25:00.672077Z" }, "id": "E_LZ52ObNP08", "outputId": "985d4982-3237-42c3-b00e-d8185614d42f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(1.0, float)" ] }, "metadata": {}, "execution_count": 56 }, { "output_type": "execute_result", "data": { "text/plain": [ "(2, int)" ] }, "metadata": {}, "execution_count": 56 }, { "output_type": "execute_result", "data": { "text/plain": [ "('1.0', str)" ] }, "metadata": {}, "execution_count": 56 }, { "output_type": "stream", "name": "stdout", "text": [ "1.0 \n" ] } ], "source": [ "y=float(1)\n", "z=int(2.8)\n", "s=str(y)\n", "\n", "y,type(y)\n", "z,type(z)\n", "s,type(s)\n", "print(s,type(s))" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "ExecuteTime": { "end_time": "2020-11-23T07:26:26.792404Z", "start_time": "2020-11-23T07:26:26.788377Z" }, "id": "d29OHFN5NP08", "outputId": "3186d6a9-9def-4286-d7d8-e63a6f1ebf0b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "int" ] }, "metadata": {}, "execution_count": 57 } ], "source": [ "z=\"1\"\n", "y=int(z)\n", "type(y)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "ExecuteTime": { "end_time": "2020-11-23T07:26:41.582918Z", "start_time": "2020-11-23T07:26:41.577930Z" }, "id": "PiMmMGVJNP08", "outputId": "34dc0e74-8792-490a-e13d-d2ce3c953573", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "True\n" ] } ], "source": [ "x=1\n", "print(isinstance(x,int))" ] }, { "cell_type": "markdown", "metadata": { "id": "wL53qi48NP08" }, "source": [ "# Fonksiyonlar" ] }, { "cell_type": "markdown", "metadata": { "id": "FjXVoYagNP09" }, "source": [ "## Klasik fonksiyon" ] }, { "cell_type": "markdown", "metadata": { "id": "KFq885x5NP09" }, "source": [ "Genel olarak fonksiyonların ne olduğunu başka bir dokümandan öğrenmiş olmanız beklenimektedir. Başta da belirttiğim gibi bu dokümanın amacı büyük bir cheatsheet sağlamak." ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "id": "VFsn7nMeNP09", "outputId": "0b9a6e68-5e5a-4d81-aa9d-7f0d024a3c6b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "selam\n" ] } ], "source": [ "def islem_yapan_parametresiz_fonksiyon(): #c tabanlı dillerdeki void dönüş tipi\n", " print(\"selam\")\n", "\n", "islem_yapan_parametresiz_fonksiyon()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "ExecuteTime": { "end_time": "2020-11-21T17:03:37.328846Z", "start_time": "2020-11-21T17:03:37.324822Z" }, "id": "w0pvtc7YNP09", "outputId": "071a1d2f-43b4-4113-cd7e-43304454242f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "16\n" ] } ], "source": [ "def sonuc_donduren_ve_parametre_almis_fonksiyon(karesi_alinacak_sayi):\n", " \"\"\"\n", " bu fonksiyon kendisine gelen sayının karesini döndürür\n", " Args:\n", " karesi_alinacak_sayi: sayı\n", " \"\"\"\n", " return karesi_alinacak_sayi**2\n", "\n", "sonuc=sonuc_donduren_ve_parametre_almis_fonksiyon(4) #dönen sonucu bi dğeişkene atıyorum\n", "print(sonuc)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "id": "bAwhbhJNNP09", "outputId": "ac420b3c-4347-40ce-88b7-04b69fb73b74", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "50\n", "5\n" ] } ], "source": [ "#pythonda fonksiyonlar bazı dillerdeki durumun aksine çok değer döndürülebilir.\n", "def cokdegerdondur(sayı):\n", " return sayı,sayı*10,sayı*100\n", "\n", "kendi,onkat,yuzkat=cokdegerdondur(5)\n", "print(onkat)\n", "print(kendi)" ] }, { "cell_type": "markdown", "metadata": { "id": "45R5XYhVNP0-" }, "source": [ "## Paramarray ile esnek sayıda parametre kullanımı ve default değer kavramı" ] }, { "cell_type": "markdown", "metadata": { "id": "iVx5DrgbNP0-" }, "source": [ "Parametreler belirlenmiş sayıda olmak zorunda değil. Esnek sayıda parametre alma imkanı var." ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "ExecuteTime": { "end_time": "2020-11-21T17:03:09.037233Z", "start_time": "2020-11-21T17:03:09.015293Z" }, "id": "ggvC9iCnNP0-", "outputId": "53ddd144-1479-4360-e5ed-a9b7f72c6e48", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "5.5\n", "5.5\n" ] } ], "source": [ "def SayılarıToplaXeBöl(arg1,*args): #arg1 olmak zorunda değil, ama olacaksa paramarrayden önce olmalı\n", " \"\"\"\n", " Bu fonksiyon ilk parametreden sonrakileri toplayıp ilk parametreye böler\n", " \"\"\"\n", " Toplam=0\n", " for a in args:\n", " Toplam+=a\n", " return Toplam/arg1\n", "\n", "x=SayılarıToplaXeBöl(10,1,2,3,4,5,6,7,8,9,10) #parametreler hardcoded yazıldıysa \"*\" yazmıyoruz.\n", "print(x)\n", "y=SayılarıToplaXeBöl(10,*range(1,11)) #parametreler bir fonksiyon ile dönüyorsa veya bir değişkense \"*\" var\n", "print(y)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "id": "QCVh9P3VNP0-", "outputId": "44159cc0-ebd6-4b7e-f4ff-70f7f8e333e2", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "ad Volkan\n", "soyad Yurtseven\n", "ad Volkan\n", "soyad Yurtseven\n" ] } ], "source": [ "def dictparametreli(**kwargs): #** olursa parametre olarak dictionary veya daha genel olarak keyworded arguments alır\n", " for k,v in kwargs.items():\n", " print(k,v)\n", "\n", "dict_={}\n", "dict_[\"ad\"]=\"Volkan\"\n", "dict_[\"soyad\"]=\"Yurtseven\"\n", "dictparametreli(**dict_) #değişken şeklinde olduğu için ** ile\n", "#veya\n", "dictparametreli(ad=\"Volkan\",soyad=\"Yurtseven\")" ] }, { "cell_type": "markdown", "metadata": { "id": "qhqxgPqnNP0_" }, "source": [ "Bazı parametreler default değerleriyle yazılırlar. Fonksiyona ilgili değer geçirilimezse bu default değer kullanılır" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "id": "a11oPHXQNP0_", "outputId": "25d44ff0-24fd-4e25-c56c-90d04ebd377f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "100 5 10\n" ] } ], "source": [ "def opsiyonelli(adet,min_=1, max_=10):\n", " print(adet,min_,max_)\n", "\n", "opsiyonelli(100,5) #son parametre 10 geçer" ] }, { "cell_type": "markdown", "metadata": { "id": "hpsrLM2NNP0_" }, "source": [ "## Lambda ve anonymous function" ] }, { "cell_type": "markdown", "metadata": { "id": "Oh8NTAtQNP0_" }, "source": [ "Lambda ifadeler, fonksiyon tanımlamak yerine inline şekilde işlem yapmaya imkan verir" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "id": "9brn9m6tNP0_", "outputId": "77899572-821d-4de2-d8d8-38b6afa5ab72", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "100\n", "100\n" ] } ], "source": [ "def kareal(sayı):\n", " return sayı**2\n", "\n", "#yukarıdaki fonksiyonu tanımlamak yerine lambda yazabilriz\n", "kareal2=lambda x:x**2\n", "\n", "print(kareal(10))\n", "print(kareal2(10))" ] }, { "cell_type": "markdown", "metadata": { "id": "z0FTYzdfNP1A" }, "source": [ "# Stringler" ] }, { "cell_type": "markdown", "metadata": { "id": "2IGiLuDJNP1A" }, "source": [ "## Slicing" ] }, { "cell_type": "code", "source": [], "metadata": { "id": "mwb4VAMlGLmO" }, "execution_count": 65, "outputs": [] }, { "cell_type": "code", "execution_count": 66, "metadata": { "id": "fgPi68hyNP1A" }, "outputs": [], "source": [ "from mypyext.pythonutility import * #kendi yazdığım utility modülünü import ediyorum.\n", "#burada farklı print şekilleri var. print ederken satır numarsını da yazdıran printy gibi.\n", "#View menüsünden Toggle Line Numbers yapmış olmanız lazım." ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "id": "O9FdQke2NP1A", "outputId": "0e50ad19-2dc7-44e0-868b-26450dea0b9f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(2, ['printy(metin[0])\\n']) \n", "----------\n", "v\n", " \n", "(3, ['printy(metin[:3]) #left 3\\n']) \n", "----------\n", "vol\n", " \n", "(4, ['printy(metin[4:]) #substr\\n']) \n", "----------\n", "an yurtseven\n", " \n", "(5, ['printy(metin[2:5]) #substr\\n']) \n", "----------\n", "lka\n", " \n", "(6, ['printy(metin[-1]) #son\\n']) \n", "----------\n", "n\n", " \n", "(7, ['printy(metin[-3:]) #right 3\\n']) \n", "----------\n", "ven\n", " \n", "(8, ['printy(metin[::-1]) #ters\\n']) \n", "----------\n", "nevestruy naklov\n", " \n" ] } ], "source": [ "metin=\"volkan yurtseven\"\n", "printy(metin[0])\n", "printy(metin[:3]) #left 3\n", "printy(metin[4:]) #substr\n", "printy(metin[2:5]) #substr\n", "printy(metin[-1]) #son\n", "printy(metin[-3:]) #right 3\n", "printy(metin[::-1]) #ters" ] }, { "cell_type": "markdown", "metadata": { "id": "pLFNMOsqNP1A" }, "source": [ "## String formatlama" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "id": "mI86HBbSNP1B", "outputId": "a8810db4-ad6b-4696-d72c-7ec7b255fee0", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'İnsanların yaklaşık yarısı kadın olup kalanı erkektir'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 68 } ], "source": [ "mesaj=\"İnsanların yaklaşık %s kadın olup %s erkektir\" % (\"yarısı\",\"kalanı\")\n", "mesaj\n", "#s:string, d:sayı" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "id": "mqxUUWDsNP1B", "outputId": "c02d5403-8e73-4820-83b3-d4483de67308", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'Python güzel bir dildir'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 69 } ], "source": [ "#daha çok bu yöntem, {}\n", "mesaj=\"Python {} bir dildir\".format(\"güzel\")\n", "mesaj" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "id": "dNuqh78-NP1B", "outputId": "6ddcdb5b-9140-42d2-8c86-de32607c33f2", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'python güzel bir dildir'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 70 } ], "source": [ "# ya da + ile basit concat\n", "mesaj=\"python\"\n", "mesaj=mesaj + \" güzel bir dildir\"\n", "mesaj" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "ExecuteTime": { "end_time": "2020-11-21T17:05:12.848696Z", "start_time": "2020-11-21T17:05:12.843709Z" }, "id": "E_PnUV8MNP1B", "outputId": "4dd41758-c611-46a3-a539-07cb28557f97", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Benim adım volkan olup yaşım 41\n" ] } ], "source": [ "#en son yöntem: f-string / f-literal olarak da geçer\n", "ad=\"volkan\"\n", "yas=41\n", "print(f\"Benim adım {ad} olup yaşım {yas}\")" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "id": "0JMEH0lQNP1B", "outputId": "c5d8f596-e9f4-44f9-8048-d8b505545b2e", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "pi sayısı yaklaşık olarak 3.14 olup dünyada yaklaşık 8,000,000,000 kişi yaşamaktadır\n" ] } ], "source": [ "#f ilteral ile binlik ayraç ve küsurat işleri\n", "dunyanufusu=8000000000\n", "pi=3.14159\n", "print(f\"pi sayısı yaklaşık olarak {pi:.2f} olup dünyada yaklaşık {dunyanufusu:,} kişi yaşamaktadır\")" ] }, { "cell_type": "markdown", "metadata": { "id": "qf6LA4sjNP1B" }, "source": [ "## metinsel fonksiyonlar" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "id": "_M9CGD7qNP1C", "outputId": "bbe4728c-26cc-40fd-d3c3-01dd3fb53630", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['volkan', 'yurtseven']" ] }, "metadata": {}, "execution_count": 73 } ], "source": [ "parçalı=metin.split()\n", "parçalı" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "id": "dnEvfAL2NP1D", "outputId": "a9713ac0-e508-415c-b8f4-5f209069d62d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "volkan yurtsevenvolkan yurtsevenvolkan yurtseven\n" ] } ], "source": [ "print(metin*3)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "id": "MvXaA9DINP1D", "outputId": "e6de7903-0628-4aed-b9e7-8c490e6af669", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'volkan yurtsivin'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 75 } ], "source": [ "metin.replace(\"e\",\"i\")" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "id": "DNDoJ0JNNP1D", "outputId": "85032865-c373-475a-967b-a22489ee2ebc", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "VOLKAN YURTSEVEN volkan yurtseven Volkan yurtseven Volkan Yurtseven\n" ] } ], "source": [ "print(metin.upper(), metin.lower(), metin.capitalize(), metin.title())" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "id": "YbKcPR6ANP1D", "outputId": "eea277cf-e0f7-4423-8731-da242e989cc0", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "True False\n" ] } ], "source": [ "print(metin.startswith(\"v\"),metin.endswith(\"d\"))" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "id": "Y5UV3hBTNP1D", "outputId": "6d3ccbc1-690f-4a34-df7d-7db95a11869e", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "yeni:naber dostum.\n" ] } ], "source": [ "kelime=\" naber dostum \"\n", "print(\"yeni:\"+kelime.strip()+\".\") #ortadakini silmez" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "id": "V30U1mtGNP1D", "outputId": "251c210a-f3dc-428f-fdff-126583c603fb", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "True True True False\n", "True False False False\n", "False False True False\n", "True True True True\n" ] } ], "source": [ "isim=\"Volkan\"\n", "user=\"ABC123\"\n", "yas=\"42\" #tırnak içinde olmalı\n", "mail=\"volkan.yurtseven@hotmail.com\"\n", "\n", "print(isim.isalnum(),user.isalnum(),yas.isalnum(),mail.isalnum())\n", "print(isim.isalpha(),user.isalpha(),yas.isalpha(),mail.isalpha())\n", "print(isim.isdigit(),user.isdigit(),yas.isdigit(),mail.isdigit()) #isnumeric de olur. fark için https://stackoverflow.com/questions/44891070/whats-the-difference-between-str-isdigit-isnumeric-and-isdecimal-in-python\n", "print(isim.isprintable(),user.isprintable(),yas.isprintable(),mail.isprintable())" ] }, { "cell_type": "markdown", "metadata": { "id": "2PHUf6e9NP1D" }, "source": [ "Tüm diğer string metodları için şuraya bakabilirsiniz: https://www.w3schools.com/python/python_ref_string.asp" ] }, { "cell_type": "markdown", "metadata": { "id": "JeHAxJp_NP1D" }, "source": [ "## özel karekterler ve literaller" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:14:48.704386Z", "start_time": "2021-05-15T15:14:48.698402Z" }, "id": "H79D3lBENP1E", "outputId": "8b9deac7-603a-4852-b5b8-2b88edfab22c", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Şifre:\"abc123\"\n", "c:\\python\\abc\\xyz\\sdf\n", "c:\\python\\abc\\xyz\\sdf\n" ] } ], "source": [ "#escape\n", "print(\"Şifre:\\\"abc123\\\"\")\n", "print(\"c:\\\\python\\\\abc\\\\xyz\\\\sdf\")\n", "print(r\"c:\\python\\abc\\xyz\\sdf\") #r:raw, escape char'ı görmezden gel demek" ] }, { "cell_type": "markdown", "metadata": { "id": "NAozOYcFNP1E" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:15:28.241971Z", "start_time": "2021-05-15T15:15:28.237943Z" }, "id": "-i7-rY96NP1E", "outputId": "7aa91e98-74a2-4c44-9628-1b006fb71141", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "\n" ] } ], "source": [ "#literaller: b,r,f\n", "a=b\"volkan\"\n", "b=\"volkan\"\n", "print(type(a))\n", "print(type(b))" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:15:36.168794Z", "start_time": "2021-05-15T15:15:36.163806Z" }, "id": "J2Fz9zf4NP1F", "outputId": "31bfebe2-979b-4661-c88f-4a9a224f7647", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "39" ] }, "metadata": {}, "execution_count": 82 }, { "output_type": "execute_result", "data": { "text/plain": [ "55" ] }, "metadata": {}, "execution_count": 82 } ], "source": [ "import sys\n", "sys.getsizeof(a)\n", "sys.getsizeof(b)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:17:16.459938Z", "start_time": "2021-05-15T15:17:16.455911Z" }, "id": "A6FqM3guNP1F", "outputId": "ecf9afd1-e922-4d00-e5ac-1d9efcffd778", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "True" ] }, "metadata": {}, "execution_count": 83 } ], "source": [ "adres1=\"c:\\\\falanca\\\\filanca\"\n", "adres2=r\"c:\\falanca\\filanca\"\n", "adres1==adres2" ] }, { "cell_type": "markdown", "metadata": { "id": "rZFts1OyNP1F" }, "source": [ "## diğer işlemler" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "id": "9FtcLg35NP1F", "outputId": "70a43165-68d9-47ed-bcac-427422201cfc", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['v', 'o', 'l', 'k', 'a', 'n', ' ', 'y', 'u', 'r', 't', 's', 'e', 'v', 'e', 'n']\n" ] } ], "source": [ "#liste çevirme\n", "liste=list(metin)\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "id": "DfD4cy0BNP1G", "outputId": "70708cf6-e380-41f0-d012-cf83afa80708", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "True\n", "-1\n", "bulamadı\n" ] } ], "source": [ "#içinde var mı kontrolü\n", "print(\"l\" in metin)\n", "print(metin.find(\"z\")) #bulamazsa -1\n", "try:\n", " print(metin.index(\"z\")) #bulamazsa hata alır\n", "except:\n", " print(\"bulamadı\")" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "id": "n9BcQcjXNP1G", "outputId": "f5d2f00d-35d7-44a4-9940-ef77a0c81039", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "v\n", "o\n", "l\n", "k\n", "a\n", "n\n", " \n", "y\n", "u\n", "r\n", "t\n", "s\n", "e\n", "v\n", "e\n", "n\n" ] } ], "source": [ "for m in metin:\n", " print(m,end=\"\\n\")" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "id": "66Wn-besNP1G" }, "outputs": [], "source": [ "#aralarda boşluk falan varsa \"r\" başta olacak şekilde kullanırız. c#'taki @ gibi\n", "path=r\"E:\\falan filan klasörü\\sub klasör\"" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "id": "hs_mPp5pNP1G", "outputId": "d1021801-1c58-4aad-8894-fce92e82168f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "2" ] }, "metadata": {}, "execution_count": 88 } ], "source": [ "metin.count(\"e\") #metin değişkeninde e harfi kaç kez geçiyor" ] }, { "cell_type": "markdown", "metadata": { "id": "Vty7-uAxNP1I" }, "source": [ "## string modülü" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:32:18.288235Z", "start_time": "2021-05-15T15:32:18.284245Z" }, "id": "YBv1iAbcNP1I" }, "outputs": [], "source": [ "import string" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:33:28.223886Z", "start_time": "2021-05-15T15:33:28.213888Z" }, "id": "EP_ozwnPNP1I", "outputId": "98c31afe-43ca-40c0-e5b7-8b5d05a1a8ac", "colab": { "base_uri": "https://localhost:8080/", "height": 108 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 90 }, { "output_type": "execute_result", "data": { "text/plain": [ "'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~ \\t\\n\\r\\x0b\\x0c'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 90 }, { "output_type": "execute_result", "data": { "text/plain": [ "' \\t\\n\\r\\x0b\\x0c'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 90 }, { "output_type": "execute_result", "data": { "text/plain": [ "'0123456789'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 90 }, { "output_type": "execute_result", "data": { "text/plain": [ "'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 90 } ], "source": [ "string.punctuation\n", "string.printable\n", "string.whitespace\n", "string.digits\n", "string.ascii_letters" ] }, { "cell_type": "markdown", "metadata": { "id": "qG9v0uzDNP1I" }, "source": [ "# Koşullu yapılar" ] }, { "cell_type": "markdown", "metadata": { "id": "ARz6Uo5sNP1I" }, "source": [ "Koşullu yapılar, döngüler ve veri yapıları tüm programalama dillerinin ortak özellikleri olup iyi kavranması gerekirler. Bu konuda kendinizi test edeceğiniz güzel bir site var. Burada çeştli konularda kolaydan zora kadar farklı seviyelerde sorular var, bunları çözüp gönderiyorsunuz, puan kazanıyorsunuz. bu siteyi kullanmanızı tavsiye ederim.\n", "\n", "https://www.hackerrank.com" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "id": "FefBC14HNP1I", "outputId": "45b5fea9-ae3d-4347-8487-ae56e6b4a468", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "20den küçük\n" ] } ], "source": [ "i=10 #bunu sırasıyla 10,20 ve 30 yapark çalışıtırın\n", "if i<20:\n", " print(\"20den küçük\")\n", "elif i==20: #çift =\n", " print(\"tam 20\")\n", "else:\n", " print(\"20den büyük\")" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "id": "7C5VTOawNP1I", "outputId": "bf7c6a4b-549e-4920-b08e-062cbabf2fa6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "low\n" ] } ], "source": [ "#one-liner -(ternary) if-else\n", "x=3\n", "sonuc=\"high\" if x>10 else \"low\"\n", "print(sonuc)" ] }, { "cell_type": "markdown", "metadata": { "id": "mpsWNlVDNP1J" }, "source": [ "# Döngüler" ] }, { "cell_type": "markdown", "metadata": { "id": "cqV15EutNP1J" }, "source": [ "Genelde list, dict gibi veri yapıları içinde dolaşmaya yararlar. Bu veri yapılarını az aşağıda detaylı göreceğiz\n", "\n", "iki tür döngü yapımız var. while ve for.
\n", "for, foreach şeklindedir, klasik for yok. onun yerine range fonksiyonundan yararlanılabilir." ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "id": "ezJYB-fpNP1J", "outputId": "9e6e1330-9603-47f3-ada5-2b839b488a93", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "apple\n", "banana\n", "cherry\n" ] } ], "source": [ "fruits = [\"apple\", \"banana\", \"cherry\"]\n", "for x in fruits:\n", " print(x)" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "id": "Y6BS_0tBNP1J", "outputId": "5084f3d4-552b-4da5-c35a-389bdbb3ec84", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "apple\n", "banana\n", "cherry\n" ] } ], "source": [ "#klasik for için range kullanımı.\n", "for i in range(len(fruits)):\n", " print(fruits[i])" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "id": "lrVY0sbPNP1J", "outputId": "098a446c-a9b8-4aef-8992-f09764a96aa3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "v-o-l-k-a-n-" ] } ], "source": [ "#metinler de loop ile dolaşılabilir\n", "isim=\"volkan\"\n", "for i in isim:\n", " print(i,end=\"-\")" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "scrolled": true, "id": "wi7ZbMWRNP1K", "outputId": "c4fa016f-2d84-4e73-d2b7-d724cd94a1b3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "apple\n", "banana\n" ] } ], "source": [ "#döngüden çıkış\n", "fruits = [\"apple\", \"banana\", \"cherry\"]\n", "for x in fruits:\n", " print(x)\n", " if x == \"banana\":\n", " break" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "id": "duYtOUPmNP1K", "outputId": "4aa20531-981f-46c2-e0bd-00e8fae18e52", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1\n", "2\n", "3\n", "4\n", "5\n" ] } ], "source": [ "#while ile bir şart gerçekleş(me)tiği sürece döngüde kalırız\n", "i = 1\n", "while i < 6:\n", " print(i)\n", " i += 1" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "scrolled": true, "id": "eQCKgDWBNP1K", "outputId": "bda3c61c-0e5a-4508-af7e-db42ab154e8b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1\n", "2\n", "3\n" ] } ], "source": [ "#belirli bir ara şart gerçekleşirse döngüden çıkabiliriz\n", "i = 1\n", "while i < 6:\n", " print(i)\n", " if i == 3:\n", " break\n", " i += 1" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "id": "NiAEG1r2NP1K", "outputId": "cfbf00d3-4cd9-4bd8-b464-fa833ced013d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Karesi alınacak bir sayı giriniz, çıkış için q tuşuna basın:5\n", "25\n", "Karesi alınacak bir sayı giriniz, çıkış için q tuşuna basın:q\n", "Hoşçakalın\n" ] } ], "source": [ "#while'ın en sık kullanımlarından biri, kullanıcıdan exit/quit yazana kadar hep girdi almak\n", "while True:\n", " rakam=input(\"Karesi alınacak bir sayı giriniz, çıkış için q tuşuna basın:\")\n", " if rakam==\"q\":\n", " print(\"Hoşçakalın\")\n", " break\n", " else:\n", " print(str(int(rakam)**2))" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "id": "2q8p5EGKNP1M", "outputId": "72421a0e-219d-4a2e-befe-6e6e7299d228", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " #\n", " ##\n", " ###\n", " ####\n", " #####\n", "######\n" ] } ], "source": [ "#hackerrank sitesindeki bir ödev\n", "def staircase(n):\n", " for i in range(n):\n", " print((n-i-1)*\" \"+\"#\"*(i+1))\n", "staircase(6)" ] }, { "cell_type": "markdown", "metadata": { "id": "thKPyBMYNP1M" }, "source": [ "## Döngü içinde \"else\" kullanımı" ] }, { "cell_type": "markdown", "metadata": { "id": "yhSKM3FZNP1M" }, "source": [ "### for döngülerinde" ] }, { "cell_type": "markdown", "metadata": { "id": "j5R8PGCcNP1M" }, "source": [ "tüm liste bittiğinde son olarak bu kısım yürütülür" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "scrolled": true, "id": "pqzWbd1dNP1M", "outputId": "6805cdf4-f681-4b0b-ba97-e61d2427aabc", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0\n", "1\n", "2\n", "3\n", "bitti\n" ] } ], "source": [ "for i in range(4):\n", " print(i)\n", "else:\n", " print(\"bitti\")" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "id": "vU1wyjcWNP1M", "outputId": "2067ad18-08a8-431d-bb14-e1d6a59e773a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "10 equals 2*5.0\n", "11 bir asal sayıdır\n", "12 equals 2*6.0\n", "13 bir asal sayıdır\n", "14 equals 2*7.0\n", "15 equals 3*5.0\n", "16 equals 2*8.0\n", "17 bir asal sayıdır\n", "18 equals 2*9.0\n", "19 bir asal sayıdır\n" ] } ], "source": [ "for num in range(10,20):\n", " for i in range(2,num):\n", " if num%i==0:\n", " j=num/i\n", " print(\"{} equals {}*{}\".format(num,i,j))\n", " break\n", " else:\n", " print(num,\" bir asal sayıdır\")" ] }, { "cell_type": "markdown", "metadata": { "id": "DHG9LJg6NP1M" }, "source": [ "### while döngülerinde" ] }, { "cell_type": "markdown", "metadata": { "id": "7MvPwcywNP1M" }, "source": [ "koşul sağlanmadığında yürütülür" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "id": "8Ue-TWCGNP1N", "outputId": "fcb8535b-6fc5-4c86-eb3c-72c024687600", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "5\n", "4\n", "3\n", "2\n", "1\n", "artık sağlanmıyor\n" ] } ], "source": [ "n=5\n", "while n!=0:\n", " print(n)\n", " n-=1\n", "else:\n", " print(\"artık sağlanmıyor\")" ] }, { "cell_type": "markdown", "metadata": { "id": "FWBgR1YXNP1O" }, "source": [ "## içiçe döngülerden çıkış" ] }, { "cell_type": "markdown", "metadata": { "id": "ESmXvmWeNP1O" }, "source": [ "içiçe döngü varsa, break ifadesi en içteki döngüden çıkar ve o bloktan sonraki ilk satırdan devam eder" ] }, { "cell_type": "markdown", "metadata": { "id": "qbdFuaC8NP1O" }, "source": [ "### iç döngüden çıkış, dış döngüye devam" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T20:42:53.102424Z", "start_time": "2020-11-22T20:42:53.093449Z" }, "id": "xNf-LiZoNP1O", "outputId": "30b19ac0-f428-4393-dcd4-2f9f44c045fb", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "b ali\n", "b dursun\n", "b ıtır\n", "b emel\n", "b cemil\n", "b için iç döngüde eşleşme bulunamadı\n", "\n", "a ali\n", "ali ekleniyor ve iç döngüden çıkış yapılacak\n", "\n", "c ali\n", "c dursun\n", "c ıtır\n", "c emel\n", "c cemil\n", "cemil ekleniyor ve iç döngüden çıkış yapılacak\n", "\n", "d ali\n", "d dursun\n", "dursun ekleniyor ve iç döngüden çıkış yapılacak\n", "\n", "e ali\n", "e dursun\n", "e ıtır\n", "e emel\n", "emel ekleniyor ve iç döngüden çıkış yapılacak\n", "\n", "['ali', 'cemil', 'dursun', 'emel']\n" ] } ], "source": [ "liste=[]\n", "for x in list(\"bacde\"):\n", " for z in [\"ali\",\"dursun\",\"ıtır\",\"emel\",\"cemil\"]:\n", " print(x,z) #kontrol için\n", " if x in z:\n", " print(f\"{z} ekleniyor ve iç döngüden çıkış yapılacak\\n\")\n", " liste.append(z)\n", " break #bir kez ekledikten sonra çıkıyorum, o yüzden mükerrer ekleme olmuyor, comment/uncomment\n", " else:\n", " print(f\"{x} için iç döngüde eşleşme bulunamadı\\n\")\n", "print(liste)" ] }, { "cell_type": "markdown", "metadata": { "id": "mjNopJQ0NP1P" }, "source": [ "### tüm döngüden çıkış" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T20:44:32.757763Z", "start_time": "2020-11-22T20:44:32.751738Z" }, "id": "5LPNfTxlNP1P", "outputId": "e27fdd14-4783-42e3-ebe1-064a39ca2466", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "b ali\n", "b dursun\n", "b ıtır\n", "b emel\n", "b cemil\n", "dış döngüdeki b için tur tamamlandı,sonraki için devam\n", "\n", "k ali\n", "k dursun\n", "k ıtır\n", "k emel\n", "k cemil\n", "dış döngüdeki k için tur tamamlandı,sonraki için devam\n", "\n", "c ali\n", "c dursun\n", "c ıtır\n", "c emel\n", "c cemil\n", "cemil ekleniyor ve tüm döngüden çıkış yapılacak\n", "\n", "['cemil']\n" ] } ], "source": [ "#herhangi birinin olması yeterliyse, ilk gördüğümü ekleyip çıkayım\n", "liste=[]\n", "for x in list(\"bkcde\"): #a'yı k yapalım\n", " for z in [\"ali\",\"dursun\",\"ıtır\",\"emel\",\"cemil\"]:\n", " print(x,z) #kontrol için\n", " if x in z:\n", " print(f\"{z} ekleniyor ve tüm döngüden çıkış yapılacak\\n\")\n", " liste.append(z)\n", " break\n", " else:\n", " print(f\"dış döngüdeki {x} için tur tamamlandı,sonraki için devam\\n\")\n", " continue\n", " break #iç döngüden çıkıldığında buraya gelinir\n", "\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "id": "2dGQViEzNP1P", "outputId": "9360eadf-ac5f-419c-ad33-6a48897c0aaf", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[(11, 15, 26)]" ] }, "metadata": {}, "execution_count": 106 } ], "source": [ "#iki dizidekilerin toplamı 20den büyük olduğunda çık\n", "dizi=[[11,21,3],[5,15,6]]\n", "records=[]\n", "\n", "for j in dizi[0]:\n", " for i in dizi[1]:\n", " if j+i>20:\n", " records.append((j,i,j+i))\n", " break\n", " else:\n", " continue\n", " break\n", "\n", "records" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "id": "8hlKXqK3NP1P", "outputId": "4a648c40-68e2-4d6f-c45d-daca2aa3c36d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[(11, 15, 26)]\n" ] } ], "source": [ "#2.yöntem. bi fonk içinte return kullanmak\n", "records=[]\n", "def myfonk():\n", " dizi=[[11,21,3],[5,15,6]]\n", " for j in dizi[0]:\n", " for i in dizi[1]:\n", " if j+i>20:\n", " records.append((j,i,j+i))\n", " return\n", "\n", "myfonk()\n", "print(records)" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "id": "VARt3zaENP1P", "outputId": "e65a123a-995d-4851-a388-e0aea5dfd300", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[(11, 15, 26)]" ] }, "metadata": {}, "execution_count": 108 } ], "source": [ "#3.yöntem: exception\n", "records=[]\n", "try:\n", " dizi=[[11,21,3],[5,15,6]]\n", " for j in dizi[0]:\n", " for i in dizi[1]:\n", " if j+i>20:\n", " records.append((j,i,j+i))\n", " raise StopIteration\n", "except StopIteration: pass\n", "records" ] }, { "cell_type": "markdown", "metadata": { "id": "mIcwJJuCNP1Q" }, "source": [ "# Data Structures(Veri yapıları)" ] }, { "cell_type": "markdown", "metadata": { "id": "nUevNH8LNP1Q" }, "source": [ "## List" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "scrolled": true, "id": "I_Hf_FrTNP1Q", "outputId": "4385ba8d-80bc-4afd-aa6d-f2d75fb44d3a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0, 1]\n", "True\n" ] } ], "source": [ "liste=[0,1,2,3,4,5]\n", "liste.append(6)\n", "print(liste[:2]) #stringler gibi slicing yapılır\n", "print(3 in liste) #üyelik kontrolü" ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "scrolled": false, "id": "ygjFXReJNP1Q", "outputId": "24d861e5-c0c8-4f20-f640-8cd268bf9a89", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "6\n", "[0, 1, 2, 3, 4, 5]\n" ] } ], "source": [ "son=liste.pop() #son elemanı çıkarıp buna atar\n", "print(son)\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "id": "5bHi_KxkNP1Q", "outputId": "f8bb9e39-d281-491a-cb39-43a800b00a33", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]\n" ] } ], "source": [ "rangelist=list(range(0,100,3))\n", "print(rangelist)" ] }, { "cell_type": "markdown", "metadata": { "id": "9rkABXr-NP1Q" }, "source": [ "### Sıralama" ] }, { "cell_type": "markdown", "metadata": { "id": "iX56CAqLNP1Q" }, "source": [ "Sort metodu bir listeyi kendi üstünde sıralar, sonuç olarak birşey döndürmez. yani sıralanmış listeyi bir değişkene atayamayız. sıralanmış halini başka bir değişkene atamak istersek sorted fonkisyonunu kullanırız." ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "id": "2ze6WFidNP1Q", "outputId": "66c38f63-ec72-4838-c8dd-e1340b3cc9aa", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(2, ['printy(meyveler.index(\"muz\")) #ilk gördüğün indeksi\\n']) \n", "----------\n", "1\n", " \n", "(3, ['printy(meyveler.count(\"muz\"))\\n']) \n", "----------\n", "2\n", " \n", "(5, ['printy(meyveler)\\n']) \n", "----------\n", "['armut', 'elma', 'muz', 'muz', 'portakal', 'çilek', 'üzüm']\n", " \n", "(7, ['printy(meyveler)\\n']) \n", "----------\n", "['üzüm', 'çilek', 'portakal', 'muz', 'muz', 'elma', 'armut']\n", " \n" ] } ], "source": [ "meyveler=[\"elma\",\"muz\",\"portakal\",\"çilek\",\"üzüm\",\"armut\",\"muz\"]\n", "printy(meyveler.index(\"muz\")) #ilk gördüğün indeksi\n", "printy(meyveler.count(\"muz\"))\n", "meyveler.sort()\n", "printy(meyveler)\n", "meyveler.reverse()\n", "printy(meyveler)" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "id": "ZUj2kZ3mNP1R", "outputId": "896a2021-d601-4dcf-e923-3897dc97eb3d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['üzüm', 'çilek', 'portakal', 'muz', 'muz', 'elma', 'armut']\n" ] } ], "source": [ "siralimeyveler=sorted(meyveler,reverse=True) #ayrıca tersten sırala demiş olduk. bu parametre normal sort metodunda da var\n", "print(siralimeyveler)" ] }, { "cell_type": "markdown", "metadata": { "id": "D71LXmr0NP1R" }, "source": [ "## Tuple" ] }, { "cell_type": "markdown", "metadata": { "id": "49NGZPaZNP1R" }, "source": [ "List gibi ama değişmez yapılardır yani eleman eklenip çıkarılamaz. [] yerine () veya parantezsiz" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "id": "L1XIQZIhNP1R", "outputId": "d6306de5-37e1-4010-af09-fe1a6f8afad2", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n" ] } ], "source": [ "tpl=(1,2,3)\n", "tpl2=1,2,3\n", "print(type(tpl2))" ] }, { "cell_type": "markdown", "metadata": { "id": "Gyq28VgrNP1S" }, "source": [ "## Comprehension" ] }, { "cell_type": "markdown", "metadata": { "id": "SLQwqaX-NP1S" }, "source": [ "tüm veri yapılarıyla uygulanabilir. uzun döngü yazmaktan kurtarır. c#'taki LINQ işlemlerinin benzer hatta daha güzel alternatifi" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "id": "NqPd0hjyNP1S", "outputId": "c91b871e-6f35-4792-f37c-118843c0fa38", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162, 168, 174, 180, 186, 192, 198]\n" ] } ], "source": [ "rangelistinikikatı=[x*2 for x in rangelist]\n", "print(rangelistinikikatı)" ] }, { "cell_type": "markdown", "metadata": { "id": "pxwrKmaWNP1S" }, "source": [ "### koşullu comprehension" ] }, { "cell_type": "markdown", "metadata": { "id": "1WQWgwHqNP1S" }, "source": [ "[x for x in datastruct if x ...]
\n", "[x if ... else y for x in datastruct]" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "id": "HRX1WVkpNP1S", "outputId": "d6f82004-2737-45b7-b734-8643d70c7f3f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['üzüm', 'muz', 'muz', 'elma']" ] }, "metadata": {}, "execution_count": 116 } ], "source": [ "kısaisimlimeyveler=[x for x in meyveler if len(x)<5]\n", "kısaisimlimeyveler" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "scrolled": true, "id": "JVjanVF3NP1T", "outputId": "9d2fa365-40ef-415a-d66e-56d12bf2578f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[1, 3, 5, 7, 9]\n", "[1, '', 3, '', 5, '', 7, '', 9]\n" ] } ], "source": [ "liste=range(1,10)\n", "sadecetekler=[sayı for sayı in liste if sayı % 2 !=0] #tek if\n", "tekler=[sayı if sayı%2!=0 else \"\" for sayı in liste] #if-else\n", "print(sadecetekler)\n", "print(tekler)" ] }, { "cell_type": "markdown", "metadata": { "id": "IheriaOWNP1T" }, "source": [ "### içiçe(nested) list comprehension" ] }, { "cell_type": "markdown", "metadata": { "id": "EmbFdo9XNP1T" }, "source": [ "****syntax:[x for iç in dış for x in iç]****" ] }, { "cell_type": "markdown", "metadata": { "id": "0TagRdcuNP1T" }, "source": [ "2 boyutlu bir matrisi düzleştirmek istiyorum
\n", "matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
\n", "Beklediğimiz çıktı: flatten_matrix = [1, 2, 3, 4, 5, 6, 7, 8, 9]" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "id": "jPpkAqNKNP1T", "outputId": "921ba5ce-8183-4552-85b8-29a770fdc6d6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[1, 2, 3, 4, 5, 6, 7, 8, 9]\n" ] } ], "source": [ "# 2-D List\n", "matrix = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]\n", "\n", "flatten_matrix = []\n", "\n", "for sublist in matrix:\n", "\tfor val in sublist:\n", "\t\tflatten_matrix.append(val)\n", "\n", "print(flatten_matrix)\n" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "id": "7z41QOV3NP1U", "outputId": "320e7517-697b-4ffc-bdf5-f5c0dc3293b2", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[1, 2, 3, 4, 5, 6, 7, 8, 9]\n" ] } ], "source": [ "# 2-D List\n", "matrix = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]\n", "\n", "# Nested List Comprehension to flatten a given 2-D matrix\n", "flatten_matrix = [val for sublist in matrix for val in sublist]\n", "\n", "print(flatten_matrix)" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "id": "-hA1EVDlNP1U", "outputId": "7ee51822-27c3-4c44-8ac0-1b1ab3a05da4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['Venus', 'Earth', 'Mars', 'Pluto']\n" ] } ], "source": [ "# 2-D List of planets\n", "planets = [['Mercury', 'Venus', 'Earth'], ['Mars', 'Jupiter', 'Saturn'], ['Uranus', 'Neptune', 'Pluto']]\n", "\n", "flatten_planets = []\n", "\n", "for sublist in planets:\n", "\tfor planet in sublist:\n", "\n", "\t\tif len(planet) < 6:\n", "\t\t\tflatten_planets.append(planet)\n", "\n", "print(flatten_planets)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "scrolled": true, "id": "3sF4mxwgNP1U", "outputId": "d19e9fec-d249-47b5-c1e3-dcbf37908ad0", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['Venus', 'Earth', 'Mars', 'Pluto']\n" ] } ], "source": [ "flatten_planets = [planet for sublist in planets for planet in sublist if len(planet) < 6]\n", "print(flatten_planets)" ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "id": "Gm5-pZTzNP1U", "outputId": "be895b8d-96f0-432b-adaf-9ce6107b7515", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['Venus', 'Earth', 'Mars', 'Pluto']" ] }, "metadata": {}, "execution_count": 122 } ], "source": [ "kısalar=[p for iç in planets for p in iç if len(p)<6]\n", "kısalar" ] }, { "cell_type": "markdown", "metadata": { "id": "0JOWbgJqNP1V" }, "source": [ "Daha genel bir gösterim için https://stackoverflow.com/questions/18072759/list-comprehension-on-a-nested-list sayfasındaki gif animasyonlu açıklamaya bakınız" ] }, { "cell_type": "markdown", "metadata": { "id": "8gG0zt1xNP1V" }, "source": [ "### Matrisler ve matrislerde comprehension" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "id": "Mne2ty4qNP1V", "outputId": "b953d00f-fa5f-409b-ba93-f2348694a4d6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "3\n", "(7, ['printy([satır for satır in matris]) #satır satır\\n']) \n", "----------\n", "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n", " \n", "(8, ['printy([satır[0] for satır in matris]) #ilk sütun\\n']) \n", "----------\n", "[1, 4, 7]\n", " \n", "(9, ['printy([[satır[i] for satır in matris] for i in range(3)]) #sütun sütun, transpozesi\\n']) \n", "----------\n", "[[1, 4, 7], [2, 5, 8], [3, 6, 9]]\n", " \n", "(10, ['printy([x for iç in matris for x in iç]) #nested\\n']) \n", "----------\n", "[1, 2, 3, 4, 5, 6, 7, 8, 9]\n", " \n" ] } ], "source": [ "matris=[\n", " [1,2,3],\n", " [4,5,6],\n", " [7,8,9]\n", "]\n", "print(len(matris))\n", "printy([satır for satır in matris]) #satır satır\n", "printy([satır[0] for satır in matris]) #ilk sütun\n", "printy([[satır[i] for satır in matris] for i in range(3)]) #sütun sütun, transpozesi\n", "printy([x for iç in matris for x in iç]) #nested" ] }, { "cell_type": "markdown", "metadata": { "id": "_LEp7Ue3NP1V" }, "source": [ "amaç aşağıdakini elde etmek olsun\n", "
\n",
        "matrix = [[0, 1, 2, 3, 4],\n",
        "          [0, 1, 2, 3, 4],\n",
        "          [0, 1, 2, 3, 4],\n",
        "          [0, 1, 2, 3, 4],\n",
        "          [0, 1, 2, 3, 4]]\n",
        "
" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "id": "OFfwnWT5NP1V", "outputId": "6d14e9aa-858d-4ba9-8a3a-495f7e807a1b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]\n" ] } ], "source": [ "matrix = []\n", "\n", "for i in range(5):\n", "\n", "\t# Append an empty sublist inside the list\n", "\tmatrix.append([])\n", "\n", "\tfor j in range(5):\n", "\t\tmatrix[i].append(j)\n", "\n", "print(matrix)\n" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "id": "pTZObgruNP1V", "outputId": "87fc9d2b-96d8-4a04-824d-c914309e2a6d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]\n" ] } ], "source": [ "# Nested list comprehension\n", "matrix = [[j for j in range(5)] for i in range(5)]\n", "\n", "print(matrix)" ] }, { "cell_type": "markdown", "metadata": { "id": "bOPaavfoNP1W" }, "source": [ "### Generators" ] }, { "cell_type": "markdown", "metadata": { "id": "JVGurksxNP1W" }, "source": [ "Bu konu biraz daha advanced bi konu olup ben sadece toplam alınması gereken durumlar için bir öenride bulunucam. Bi list comprehension sonunda(özellikle çok büyük bi list sözkonusuya) toplam alınacaksa [] kullanamya gerek yok, böylece memory tasarrufu yapmış olursunuz. Detaylar için şu sayfaya bakabilirsiniz: https://www.johndcook.com/blog/2020/01/15/generator-expression/" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "id": "5wo-U8QoNP1X", "outputId": "a535516b-294b-47ab-d45b-ae7ebfc5bcb7", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "285" ] }, "metadata": {}, "execution_count": 126 } ], "source": [ "#list comprehension: tüm liste elemanları bellekte tutuluyor\n", "sum([x**2 for x in range(10)])" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "id": "tVNCqHRENP1X", "outputId": "93732567-cba1-476c-a131-381e128270c6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "285" ] }, "metadata": {}, "execution_count": 127 } ], "source": [ "#generator expression: liste elemanları bellekte tutulmuyor\n", "sum(x**2 for x in range(10))" ] }, { "cell_type": "markdown", "metadata": { "id": "w_aH2KmvNP1X" }, "source": [ "## Stack" ] }, { "cell_type": "markdown", "metadata": { "id": "koT7RrSyNP1X" }, "source": [ "Normalde böyle bi sınıf yok. list'i stack gibi kullanırız. append ve pop sayesinde. ilk giren ilk çıkar" ] }, { "cell_type": "code", "execution_count": 128, "metadata": { "id": "AOYlOLN2NP1X", "outputId": "b546321f-c5e3-41a5-914f-cf564248245d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "4" ] }, "metadata": {}, "execution_count": 128 }, { "output_type": "execute_result", "data": { "text/plain": [ "[1, 2, 3]" ] }, "metadata": {}, "execution_count": 128 } ], "source": [ "stack=[1,2,3]\n", "stack.append(4)\n", "stack.pop()\n", "stack" ] }, { "cell_type": "markdown", "metadata": { "id": "m9mI5senNP1Y" }, "source": [ "## Queue" ] }, { "cell_type": "markdown", "metadata": { "id": "fhGjV581NP1Y" }, "source": [ "Bunu da istersek listten yaparız, ilk giren son çıkar. ama bunun için collections modülünde bi sınıf var" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "id": "yWhScMN7NP1Y", "outputId": "76ffb7b1-8748-426f-bf3d-33c5331c3868", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1\n", "deque([2, 3, 4])\n" ] } ], "source": [ "from collections import deque\n", "kuyruk=deque([1,2,3])\n", "kuyruk.append(4)\n", "sıradaki=kuyruk.popleft()\n", "print(sıradaki)\n", "print(kuyruk)" ] }, { "cell_type": "markdown", "metadata": { "id": "Cdl9pcc0NP1Y" }, "source": [ "## Dictionary" ] }, { "cell_type": "markdown", "metadata": { "id": "SUa2Se8GNP1Y" }, "source": [ "Key-value ikililerini tutarlar. Sırasızdırlar(EDIT:Python 3.7den itibaren girdilen sırayı korur), indeksle ulaşamayız. key'lerle valuelara ulaşırız veya döngü içinde dolanarak ikisine birden tek seferde de ulaşabiliriz." ] }, { "cell_type": "markdown", "metadata": { "id": "kwb7sDe9NP1Y" }, "source": [ "### Yaratım" ] }, { "cell_type": "markdown", "metadata": { "id": "nJUUXyxBNP1Z" }, "source": [ "#### Klasik" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "id": "o_7JO3-LNP1Z", "outputId": "ab3f9c0c-f6c8-4e24-a158-9a6a4a603349", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(5, ['printy(dict_.keys())\\n']) \n", "----------\n", "dict_keys(['one', 'two'])\n", " \n", "(6, ['printy(dict_.values())\\n']) \n", "----------\n", "dict_values(['bir', 'zwei'])\n", " \n", "(7, ['printy(dict_.items())\\n']) \n", "----------\n", "dict_items([('one', 'bir'), ('two', 'zwei')])\n", " \n", "bir\n", "N/A\n" ] } ], "source": [ "dict_={}\n", "dict_[\"one\"]=\"bir\" #add,append, insert gibi bir metodu yok, direkt atanıyor\n", "dict_[\"two\"]=\"iki\"\n", "dict_[\"two\"]=\"zwei\"\n", "printy(dict_.keys())\n", "printy(dict_.values())\n", "printy(dict_.items())\n", "print(dict_[\"one\"])\n", "#print(dict_[\"three\"]) # hata alır, almaması için get kullan\n", "print(dict_.get(\"three\",\"N/A\"))" ] }, { "cell_type": "markdown", "metadata": { "id": "uDsCwp-BNP1Z" }, "source": [ "#### dict metodu ile ikili elemanlardan oluşan bir yapıdan" ] }, { "cell_type": "markdown", "metadata": { "id": "knXEsR2TNP1Z" }, "source": [ "bu ikili yapılar genelde zip veya enumerate olacaktır. bakınız ilgili fonksiyonar." ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "id": "I4q3Wwo7NP1Z", "outputId": "1388f47f-3570-4675-dfba-2ce248167b92", "colab": { "base_uri": "https://localhost:8080/", "height": 53 } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "'bir'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 131 } ], "source": [ "tpl=[(\"one\",\"bir\"),(\"two\",\"iki\"),(\"three\",\"üç\")]\n", "dict_=dict(tpl)\n", "print(type(dict_))\n", "dict_[\"one\"]" ] }, { "cell_type": "markdown", "metadata": { "id": "l4Z0Cw0PNP1Z" }, "source": [ "#### comprehension ile" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "id": "2cwYcIVFNP1Z", "outputId": "17ba06de-e090-4352-d7ed-90b2a88419e4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "dict_items([(0, 0), (2, 4), (4, 16), (6, 36), (8, 64)])\n" ] } ], "source": [ "sayılar=list(range(10))\n", "ciftlerinkaresi={x: x**2 for x in sayılar if x%2==0}\n", "print(ciftlerinkaresi.items())" ] }, { "cell_type": "markdown", "metadata": { "id": "qncIYxruNP1a" }, "source": [ "### elemanlarda dolaşma" ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "id": "TSXUJrk_NP1a", "outputId": "e427ec17-1015-41d3-bc73-de3470135ec6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0 0\n", "2 4\n", "4 16\n", "6 36\n", "8 64\n" ] } ], "source": [ "for k,v in ciftlerinkaresi.items():\n", " print(k,v)" ] }, { "cell_type": "markdown", "metadata": { "id": "nadIvmlzNP1a" }, "source": [ "### çeşitli metodlar" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "id": "V9iUJKtpNP1a", "outputId": "b1a454ed-a461-4dc4-d4bd-834c0242ff72", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "dict_items([])" ] }, "metadata": {}, "execution_count": 134 }, { "output_type": "stream", "name": "stdout", "text": [ "name 'ciftlerinkaresi' is not defined\n" ] } ], "source": [ "try:\n", " ciftlerinkaresi.clear()\n", " ciftlerinkaresi.items()\n", " del ciftlerinkaresi\n", " ciftlerinkaresi #hata verir, artık bellekten uçtu\n", "except Exception as err:\n", " print(err)" ] }, { "cell_type": "markdown", "metadata": { "id": "6M08JSXFNP1a" }, "source": [ "## Set" ] }, { "cell_type": "markdown", "metadata": { "id": "H8O819D9NP1a" }, "source": [ "Bunlar da dict gibi sırasızdır. dict gibi {} içinde tanımlanırlar. uniqe değerleri tutarlar. bir listteki duplikeleri ayırmak ve membership kontrolü için çok kullanılırlar" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "id": "tYuMoLaTNP1a", "outputId": "c5ed3a78-a497-4df3-b7b9-0a392b43b42b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{1, 2, 3, 4, 5}" ] }, "metadata": {}, "execution_count": 135 } ], "source": [ "liste=[1,1,2,3,4,4,5]\n", "set_=set(liste)\n", "set_" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "scrolled": true, "id": "PLLzA6DqNP1b", "outputId": "638755e6-20ea-4fef-dcc9-30f9bd21df7b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(5, ['printy(set1,set2,set3)\\n']) \n", "----------\n", "{1, 2, 3, 4, 5} {2, 3, 4} {2, 3, 4, 5, 6}\n", " \n", "(6, ['printy(\"----diff\")\\n']) \n", "----------\n", "----diff\n", " \n", "(7, ['printy(set1.difference(set2))\\n']) \n", "----------\n", "{1, 5}\n", " \n", "(8, ['printy(set1.difference(set3))\\n']) \n", "----------\n", "{1}\n", " \n", "(9, ['printy(set2.difference(set1))\\n']) \n", "----------\n", "set()\n", " \n", "(10, ['printy(set2.difference(set3))\\n']) \n", "----------\n", "set()\n", " \n", "(11, ['printy(set3.difference(set1))\\n']) \n", "----------\n", "{6}\n", " \n", "(12, ['printy(set3.difference(set2))\\n']) \n", "----------\n", "{5, 6}\n", " \n", "(13, ['printy(\"- intersection----\")\\n']) \n", "----------\n", "- intersection----\n", " \n", "(14, ['printy(set1.intersection(set2))\\n']) \n", "----------\n", "{2, 3, 4}\n", " \n", "(15, ['printy(set1.intersection(set3))\\n']) \n", "----------\n", "{2, 3, 4, 5}\n", " \n", "(16, ['printy(set2.intersection(set1))\\n']) \n", "----------\n", "{2, 3, 4}\n", " \n", "(17, ['printy(set2.intersection(set3))\\n']) \n", "----------\n", "{2, 3, 4}\n", " \n", "(18, ['printy(set3.intersection(set1))\\n']) \n", "----------\n", "{2, 3, 4, 5}\n", " \n", "(19, ['printy(set3.intersection(set2))\\n']) \n", "----------\n", "{2, 3, 4}\n", " \n", "(20, ['printy(\"----union---\")\\n']) \n", "----------\n", "----union---\n", " \n", "(21, ['printy(set1.union(set2))\\n']) \n", "----------\n", "{1, 2, 3, 4, 5}\n", " \n", "(22, ['printy(set1.union(set3))\\n']) \n", "----------\n", "{1, 2, 3, 4, 5, 6}\n", " \n", "(23, ['printy(set2.union(set1))\\n']) \n", "----------\n", "{1, 2, 3, 4, 5}\n", " \n", "(24, ['printy(set2.union(set3))\\n']) \n", "----------\n", "{2, 3, 4, 5, 6}\n", " \n", "(25, ['printy(set3.union(set1))\\n']) \n", "----------\n", "{1, 2, 3, 4, 5, 6}\n", " \n", "(26, ['printy(set3.union(set2))\\n']) \n", "----------\n", "{2, 3, 4, 5, 6}\n", " \n" ] } ], "source": [ "set1={1,2,3,4,5}\n", "set2={2,3,4}\n", "set3={2,3,4,5,6}\n", "\n", "printy(set1,set2,set3)\n", "printy(\"----diff\")\n", "printy(set1.difference(set2))\n", "printy(set1.difference(set3))\n", "printy(set2.difference(set1))\n", "printy(set2.difference(set3))\n", "printy(set3.difference(set1))\n", "printy(set3.difference(set2))\n", "printy(\"- intersection----\")\n", "printy(set1.intersection(set2))\n", "printy(set1.intersection(set3))\n", "printy(set2.intersection(set1))\n", "printy(set2.intersection(set3))\n", "printy(set3.intersection(set1))\n", "printy(set3.intersection(set2))\n", "printy(\"----union---\")\n", "printy(set1.union(set2))\n", "printy(set1.union(set3))\n", "printy(set2.union(set1))\n", "printy(set2.union(set3))\n", "printy(set3.union(set1))\n", "printy(set3.union(set2))" ] }, { "cell_type": "markdown", "metadata": { "id": "g2M7EbFbNP1b" }, "source": [ "Not: Yukarıdaki altalta aynı hizada olan tüm printy ifadesini tek seferde yapmanın yolu var. ben mesela bunların hepsi print iken printy'yi tek seferde yaptım. Alt tuşuna basarak seçmek. aşağıdaki gibi seçip t tuşuna basarsam tüm ty'ler t olur." ] }, { "cell_type": "markdown", "metadata": { "id": "SgE1e1v8NP1b" }, "source": [ "![resim.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ0AAAA1CAYAAABbTL58AAAABHNCSVQICAgIfAhkiAAAC5JJREFUeF7tXW1oVFcafuYjkxFTStYfcXXBgbrruHU71S5mYX84IFRFMWtYjCgkYQu2ZemGsLBqS0Ow0JgfJeRHtRa6xMDaJCxJRyrJLrjEH4IJ3cYsdo3YwoSo67BokDU437PvzJz7MZMzk3vNJLnJvAcGZ957zvvxnHvfe85zzjG2FBVwYQQYAUbAIAJ2g/W4GiPACDACGQQ4afCNwAgwAqYQcJqqvUyVw+EwZmZmMDc3t0wW2QwjwAgYRcBmRU7j3r17qKqqQnV1tdE4Vqzew4cPsWnTphWzz4YZgeVGwJLTk/QIYzUkjOXuLLbHCFgBAUsmDSsAwz4wAoyAHAFOGnJcWMoIMAIFEOCkUQAYFjMCjIAcAU4aclxYyggwAgUQ4KRRABgWMwKMgBwBThpyXFjKCDACBRDgpFEAmCUTf1sJzzo31q2rRP+0sKLK3Oj5Id+yA4G30vXpc7ZCXNTJ3q9AOL+JaRt5CsYrs/Yyfhb4eNw4cKgSnVeceJpvf1l+V6BT9Y2wfLCw0bEOXSwdCpbF2pm3UUzbWrnGSWOZezI4BYTSNmsA75ascVWGFLa/ku+QHROXs7KGHUlxUZPV7UjBndfEvI18mwZ+UxCj12xob3DC95YLQQNNuMraQICTxrL2ox3B27asxboUPJlvOtlxRaZz6gcbxsTPnVsT2W96mTeuq5ynz6iNPA1mf4Yu29Haa8kTCWZD4foGEOCkYQCk0lWxY/IfWW1+XxIvZ75qMt/ryfQAJKc8nbJhNCNJwfez7KUcmWRkYtZGnsncn/VJBJ+H8TznE8Hs/QQuHNeqjgxQ8iuqiC+uFQTKPGk8wdhgL3p7ezE4/mTp+zRE04rJrJlarxg16GT+nyvTD82V4L/FyOQwjULEPESV7U3Bm808WoMXsGE+cJoSbYih+f0k/Epjmqpkpl1c1jwCZZs0nowPUrIYBX6xDVVL2M2hAR2p6LGjX9jq3CvkOln3IRfWnajEhzry8VdtosEVO7YLuSq7lpV92GHWhqv0DzglsNxRkg1Pv3Oh8203dlK2UwjVnfsr0Xq+AqH8WRW0+v4dRuoX6jQn+k9o7TvHC9XTyZ8R4blHa+MnktQQuRuqwGctldD7u530vNvhwtRTkeyFGf19cGzAicnzlSouaUzG5rHZBvxeoSrlORG993d8fX8zDjXW4kePxzC4QuCvXrN2hKcd6D5lF1MnoK4xKTiabFThcRfq9mh8jBLr1HUbpq47MPRPuvZFVCQaG4IDLvib5o9W1PqUNANfReDLZ30XC+IzJ3paHGgXycVDcfSciYmpYxHl0y4076GXQN7wKkh6esbt6Blx4ebf5P4GP3WijuophLivMYHaUsdVxPXFXirPkcZP30RjPSWMxaJnoH3N0YjgA2IYOikatCYwm+EIdLKTSTxKy/4SwUcKfzCWhE80uXBb8Ao62Tl6PaW5ho/OmLWhPKwGAhi0iyVi/dKrC9VeetCuZtunH7RzR/VDhwpc/INIGL4Uhu9HyU/iQW4nUSdMpsnTYWV5OUwP7p9EwtiXxGimPsU2G0eP4E1ClGza6Q1d2kKjkhYn3hWrUzXHkxi+GM1JfnJ7tOT9sZIwUrhwW/hLPM8ppcPGbfjyhvzxmqSE4WlLZPs7GKYY5w275GYtIpVHZRHn1pYbRHgGshH5tyrLpDqZSoxqUYe+tyFLgRCfsTkr18sUYlRrYd7GojHelsI7xxO5Dxq9absEd+M/mYB/Q5qroZhfSeJIvS6+x+L7Yxp9KG/sWRueK1XccTToeJOR8xTfoh0WCmI2jPzRiWZdwhjpNpIwqP0DB77sFXpakzhGcWUK8TwHlKxIP4OPCz1eKbS3GhjNCBNW+6fUqdtq8VnHn2kbJsSDoZKgMpnqMQ3ZleVZlQSVyXQhyvTJZKVE5a4Np/dXYKjNjhEa1mdG2bsjtOIijMTtCN2tIAKYVoGu2tEnmwsSqfRjxSd6Qx/4iQs1rwIH3iSilUYefbP0gLlL/P9fd9hxRIdDe1sUXqPk1uYo+tTMZsfT6QrcTMdHHFP/5wbAraf9OKtoOpIfUaFUmF+Pf78gAioB5qU5udChkqAymUqEEsHWIRqoJKhM5oZKhMr0yWQnTBCh0iVXmjr8N4aJ/hRqhYtjZx24+C+F/BOkZpMbnpdc8LzuwJEmO7oHxDw+H8uXY2i5lEukhr4jbqDLjub9TmysJtKwichCGpEsVfnssmRnbTFjGRLUTeS0CxtpqnagwY5OShjBYm2Ua1tSC3MmRvSsUB1OGisE/Ko3W5WA93AUncrqDgU08o0jE1b4WyJBf2knDiKbJLxHU+i6lMDEfeIodNMTDQOafh2NYvKbJNobab4vAWdqwAb/Gy6MKFMaSR3TItrj4hVLPpM5SW8BTQ+IBK11oFUkCc++FE5dTOLmVBTDOjwKankJ83bxFqxrwQucNJa4U7JEaAx9ykYoHQk6X6YjQm9ob16VBJXJVCLUjA0TROgC+Lh1w+w7mZGAA6OXtFWTui/imLgUwTtHY/BuKKaM3r6vRunhC+PO/6II3kqg7yLxJQczO+6zJWRDH628lKTUpNBzNYLRTzWcT3fSUrAB5ZNEDiurJr4zlAxpVae9MQrfliTWGWi/2qtw0liWHpSdFZHJNGdk51FkMq2FTJ9MVqKAiasIXnehvVvTdySzOc2GR9OabOdW3cpAmHgdCacR7NVWZjzpg2RO2hm7LUbLuBF0/TWC/jOavnC8RFOUt5NoSE8TDibQqYx+KBl0ES9RvNgx+x+thserP/vjxJ0bxVuvhavlSYSm92ZcvYtn+h6c+hq9dJgMtNVr28F61BZ9K5rsetlZEZlMVSs7jyKT6fyQ6ZPJTLoOseS6YDN6c9ftTe9ydWCjOIiXbjP0VQWad8VQE3ci8AHt7ZAo8tQn0NJG1+g1H6JpQvuuFE7vi9MQ3obwAyeGr2mN9r9R6uVJWqGh/SYXKM4xMtP9QQWO/DpSZN9EEtUqawsEAnZM7bPBu57aXyDfdb5KQl0TovJMGhtqUU8bu5aryM6KyGSaP7LzKDKZ1kKmTyZbqpjbB2LwZ6YqtMTa5ETt59kpymSXAx76KMVDPEJQ7M+Y+J5uv92UBKpiaL9iw93DtAJDiaPzN050Yv6t2XApjuZ5Z21KENFrceJmaHPZWdJFqyDnLjsx9LvCyclH5HDDJ2KKQslm52Cl6kQN+VdD8aWnOQE6N7QWy0JjsbUY87LHJDsrIpOpjsnOo8hkukhk+mSyUgbv2Q000z6F4SBxEbu1czPuXVEEiNRs0fERtbTM2DUSw51AEvuFEwHdITf3a1EMTcbR9zGNWEivUtJLr3W08W3odgw9ORvIShlJErXv0WhHkCcjNNoJFPv/OWjJtWcsgXM60ta7h/Ze9McxeTOBZoWE+TPtmM0ZzpbS55XTZck/lnTr1i14vd6VQ8WEZf5jSSbAMlyVdoj+1pnZcZp+Y3sP0gP5CXEcRDRyWXkEeKSx8n3AHsxDgHZZ9oVpg1gEj0ZSqLxqw7HfO43tgZiniwWlRoCTRqkRZX2LRCB9SybhzlAaRISK4X2aK6hepGZuXhoE5rNNpdHLWhiBF0OAVkuObdV2z2a2k7cRP/JedFXvonwxMKzZipOGNfulfL3KOddRvjBYOXKenli5d9g3RsCCCHDSsGCnsEuMgJUR4KRh5d5h3xgBCyLAScOCncIuMQJWRoCThpV7h31jBCyIACcNC3YKu8QIWBkBSyaN9evXY3Z21sq4sW+MQNkiYMmzJ+FwGDMzM5ibmyvbjuHAGQGrImDJpGFVsNgvRoARSP8hUS6MACPACJhAgJOGCbC4KiPACPBIg+8BRoARMIkAjzRMAsbVGYFyR4CTRrnfARw/I2ASAU4aJgHj6oxAuSPASaPc7wCOnxEwiQAnDZOAcXVGoNwR4KRR7ncAx88ImESAk4ZJwLg6I1DuCPwfNyIvZqNDnRwAAAAASUVORK5CYII=)" ] }, { "cell_type": "markdown", "metadata": { "id": "BNbPUbLBNP1b" }, "source": [ "## Zip" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "id": "PEvEjCdmNP1c" }, "outputs": [], "source": [ "x=[1,2,3]\n", "y=[10,20,30]\n", "onkatlar=zip(x,y)\n", "#print(list(onkatlar)) #yazdırmak için liste çevir. bi kez liste çevirlince artık zip özelliği kalmaz,\n", "#o yüzden alttaki blok çalışmaz,o yüzden geçici olarak commentledim. deneyin ve görün" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "id": "O7BG__WUNP1c", "outputId": "4ccf793d-465e-4ebe-d047-99ef439b8b40", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(1, 2, 3)" ] }, "metadata": {}, "execution_count": 138 } ], "source": [ "#tekrar ayırmak için\n", "x2, y2 = zip(*onkatlar)\n", "x2" ] }, { "cell_type": "markdown", "metadata": { "id": "JGOPan-RNP1c" }, "source": [ "### Zip vs Dict" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "id": "rzotDh-vNP1c", "outputId": "5627cbb1-ca84-4325-f235-61737dc2d5f5", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1 10\n", "2 20\n", "3 30\n" ] } ], "source": [ "a=[1,2,3]\n", "b=[10,20,30]\n", "c=zip(a,b)\n", "for i,j in c:\n", " print(i,j)" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "id": "yaVPVoMiNP1d", "outputId": "0910ea05-e1fe-462a-d98e-65f5548e1f13", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n" ] } ], "source": [ "a=[1,2,3]\n", "b=[10,20,30]\n", "c=zip(a,b)\n", "print(type(list(c)[0]))\n", "dict_=dict(c) #zipten dict üretimi\n", "for k,v in dict_.items():\n", " print(k,v)" ] }, { "cell_type": "markdown", "metadata": { "id": "DAIKLenQNP1d" }, "source": [ "## Listlerle kullanılan önemli fonksiyonlar" ] }, { "cell_type": "markdown", "metadata": { "id": "7Ik8QJWvNP1d" }, "source": [ "### Map ve Reduce" ] }, { "cell_type": "markdown", "metadata": { "id": "feqvx2VsNP1d" }, "source": [ "Map: bir veri yapısındaki elemanları sırayla bir fonksiyona gönderir ve sonuç yine bir veri yapısıdır
\n", "Reduce: elemanları sırayla gönderir, bir eritme mantığı var, her bir önceki elamnını sonucyla bir sonraki eleman işleme girer" ] }, { "cell_type": "markdown", "metadata": { "id": "aTuNdPsxNP1d" }, "source": [ "#### Map" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "id": "A5_yqtr9NP1e", "outputId": "92a6faa2-d3f2-400d-bf19-1da66ae9744a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[1, 4, 9, 16, 25]" ] }, "metadata": {}, "execution_count": 141 } ], "source": [ "items=[1,2,3,4,5]\n", "def kareal(sayı):\n", " return sayı**2\n", "\n", "kareler=map(kareal,items) #lambdalı da olur. map(lambda x: x**2, items)\n", "list(kareler) #yazdırmak için liste çevir\n" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "id": "aAd1opFtNP1e", "outputId": "ab89bb40-c032-4755-efbc-337228e912ac", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1\n", "6\n", "15\n", "28\n", "45\n", "66\n", "91\n", "120\n", "153\n" ] } ], "source": [ "#birden fazla veri yapısı da girebilir işleme\n", "range1=range(1,10)\n", "range2=range(1,20,2)\n", "\n", "mymap=map(lambda x,y:x*y,range1,range2)\n", "for i in mymap:\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "id": "XCiepbUMNP1e", "outputId": "aebaa2d4-038b-435f-9d61-8f8decdfc920", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[1, 6, 15, 28, 45, 66, 91, 120, 153]" ] }, "metadata": {}, "execution_count": 143 } ], "source": [ "#comprehensionla da yapılabilir.\n", "çarpım=[x*y for x,y in zip(range1,range2)]\n", "çarpım" ] }, { "cell_type": "code", "execution_count": 144, "metadata": { "scrolled": true, "id": "8a4dlVGBNP1e", "outputId": "33d10e22-9ea5-4e5a-f610-5fcf372d1830", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o']" ] }, "metadata": {}, "execution_count": 144 } ], "source": [ "harfler=map(chr,range(97,112))\n", "list(harfler)" ] }, { "cell_type": "code", "execution_count": 145, "metadata": { "id": "GQa0tF0xNP1e", "outputId": "c8eef550-d3b7-40c0-fd43-7d7d2c7ca4e4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o']" ] }, "metadata": {}, "execution_count": 145 } ], "source": [ "harfler2=[chr(x) for x in range(97,112)]\n", "harfler2" ] }, { "cell_type": "markdown", "metadata": { "id": "hsRSWXPYNP1f" }, "source": [ "#### Reduce" ] }, { "cell_type": "code", "execution_count": 146, "metadata": { "id": "k-33ZD62NP1f", "outputId": "bbf6ec4f-8b8d-4f9a-bb64-a0e294142b28", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "362880" ] }, "metadata": {}, "execution_count": 146 } ], "source": [ "from functools import reduce\n", "def faktoriyel(sayı1,sayı2):\n", " return sayı1*sayı2\n", "\n", "sayılar=range(1,10)\n", "fakt=reduce(faktoriyel,sayılar)\n", "fakt" ] }, { "cell_type": "markdown", "metadata": { "id": "wx8xOTGGNP1f" }, "source": [ "#### Filter" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "ExecuteTime": { "end_time": "2020-12-04T17:50:33.788733Z", "start_time": "2020-12-04T17:50:33.783746Z" }, "id": "tQB2akYENP1f", "outputId": "b90a7a49-d3c6-4c28-a9f8-dcd583b16bef", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "18\n", "24\n", "32\n" ] } ], "source": [ "ages = [5, 12, 17, 18, 24, 32]\n", "\n", "def myFunc(x):\n", " if x < 18:\n", " return False\n", " else:\n", " return True\n", "\n", "adults = filter(myFunc, ages)\n", "\n", "for x in adults:\n", " print(x)" ] }, { "cell_type": "code", "execution_count": 148, "metadata": { "ExecuteTime": { "end_time": "2020-12-04T17:51:27.064547Z", "start_time": "2020-12-04T17:51:27.060518Z" }, "id": "4F6I7k98NP1f", "outputId": "0af51789-c6f1-4b02-8a53-dbd2bd39af36", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[18, 24, 32]" ] }, "metadata": {}, "execution_count": 148 } ], "source": [ "#veya lambda ile\n", "list(filter(lambda x:x>=18,ages))" ] }, { "cell_type": "markdown", "metadata": { "id": "FmA92zRANP1f" }, "source": [ "### Enumerate" ] }, { "cell_type": "code", "execution_count": 149, "metadata": { "scrolled": true, "id": "WMSPL5qrNP1g", "outputId": "1bc437fa-9a6f-402a-869e-cfa3f97e40d6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[(1, 'Ocak'), (2, 'Şubat'), (3, 'Mart')]\n", "1 Ocak\n", "2 Şubat\n", "3 Mart\n" ] } ], "source": [ "aylar=[\"Ocak\",\"Şubat\",\"Mart\"]\n", "print(list(enumerate(aylar,start=1)))\n", "dict_=dict(enumerate(aylar,start=1))\n", "for k,v in dict_.items():\n", " print(k,v)" ] }, { "cell_type": "markdown", "metadata": { "id": "y41iO0qPNP1g" }, "source": [ "### All ve Any" ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "id": "vjuEJ-uPNP1g", "outputId": "0c136fee-c30e-4df5-c75d-d635a15afd6f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "False\n", "True\n", "True\n" ] } ], "source": [ "liste1=[True,True,False]\n", "liste2=[True,True,True]\n", "print(all(liste1))\n", "print(any(liste1))\n", "print(all(liste2))" ] }, { "cell_type": "markdown", "metadata": { "id": "GOOpbi13NP1g" }, "source": [ "# Date Time işlemleri" ] }, { "cell_type": "markdown", "metadata": { "id": "0nLGJSCiNP1g" }, "source": [ "## Modüller ve üyeleri" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "id": "u9LRhmkENP1g" }, "outputs": [], "source": [ "import datetime\n", "import time\n", "import timeit\n", "import dateutil\n", "import calendar\n", "#import timer as tr #bu threadlerle ilgili kullanma, settimer ve killtimer var" ] }, { "cell_type": "markdown", "source": [ "bunlardan en çok kullanılan datetime olup, bu modül içinde bir de datetime tipi vardır. HAngisini import edeceğinize karar vermek önemli. ernizde olsam sadece modül olanı import eder, sonraki alt tip ve diğer üyeleri bunun üzeirnden çağırırım" ], "metadata": { "id": "ABTWlGHd8PiA" } }, { "cell_type": "markdown", "metadata": { "id": "ogHsS-WWNP1h" }, "source": [ "### datetime" ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "id": "KuI7TPyGNP1h", "outputId": "01d3bd66-b733-4d74-a905-c7bb1d6bf53f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['MAXYEAR', 'MINYEAR', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']\n" ] } ], "source": [ "print([i for i in dir(datetime) if not \"__\" in i])" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "id": "XMeABvTLNP1i", "outputId": "52fe2452-770a-4d64-9be8-2c5f4f7056b5", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "datetime.datetime(2024, 9, 22, 15, 25, 25, 30003)" ] }, "metadata": {}, "execution_count": 153 }, { "output_type": "execute_result", "data": { "text/plain": [ "15" ] }, "metadata": {}, "execution_count": 153 }, { "output_type": "execute_result", "data": { "text/plain": [ "datetime.date(2024, 9, 22)" ] }, "metadata": {}, "execution_count": 153 }, { "output_type": "execute_result", "data": { "text/plain": [ "2024" ] }, "metadata": {}, "execution_count": 153 }, { "output_type": "execute_result", "data": { "text/plain": [ "datetime.date(2019, 4, 3)" ] }, "metadata": {}, "execution_count": 153 } ], "source": [ "datetime.datetime.now()\n", "datetime.datetime.now().hour #saliseden yıla kadar hepsi elde edilebili\n", "datetime.date.today()\n", "datetime.date.today().year\n", "datetime.date(2019,4,3)" ] }, { "cell_type": "code", "source": [ "datetime.datetime.now().day # yada dt.date.today().day" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "OLx1qWvFUANF", "outputId": "32a42b07-955e-42a7-ff89-b1358fe450db" }, "execution_count": 154, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "22" ] }, "metadata": {}, "execution_count": 154 } ] }, { "cell_type": "markdown", "metadata": { "id": "Zx00B2efNP1i" }, "source": [ "### time (süre ölçümlerinde bunu kullancaz, bundaki time metodunu)" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "id": "o4y2YQ-4NP1i", "outputId": "7c121e27-cf33-4adb-97e2-64b755f4d742", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['CLOCK_BOOTTIME', 'CLOCK_MONOTONIC', 'CLOCK_MONOTONIC_RAW', 'CLOCK_PROCESS_CPUTIME_ID', 'CLOCK_REALTIME', 'CLOCK_TAI', 'CLOCK_THREAD_CPUTIME_ID', '_STRUCT_TM_ITEMS', 'altzone', 'asctime', 'clock_getres', 'clock_gettime', 'clock_gettime_ns', 'clock_settime', 'clock_settime_ns', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'pthread_getcpuclockid', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname', 'tzset']\n" ] } ], "source": [ "print([i for i in dir(time) if not \"__\" in i])" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "id": "qCo8RMt8NP1i", "outputId": "1136be26-57ad-4342-d58f-11359319431d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['Timer', '_globals', 'default_number', 'default_repeat', 'default_timer', 'dummy_src_name', 'gc', 'itertools', 'main', 'reindent', 'repeat', 'sys', 'template', 'time', 'timeit']\n" ] } ], "source": [ "print([i for i in dir(timeit) if not \"__\" in i])" ] }, { "cell_type": "markdown", "metadata": { "id": "pS9EitMsNP1i" }, "source": [ "### dateutil" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "id": "flMnC1jgNP1i", "outputId": "6a2d948d-df98-4cac-e53c-1633d214e6f5", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['_common', '_version', 'parser', 'relativedelta', 'tz']\n" ] } ], "source": [ "print([i for i in dir(dateutil) if not \"__\" in i])" ] }, { "cell_type": "markdown", "source": [ "### Calendar" ], "metadata": { "id": "LgyH2682UQhd" } }, { "cell_type": "code", "source": [ "calendar.mdays" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Q7L5Sj7nUQAa", "outputId": "005203f0-d728-42ed-b805-37916fea1b3e" }, "execution_count": 158, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]" ] }, "metadata": {}, "execution_count": 158 } ] }, { "cell_type": "code", "source": [ "calendar.Calendar().monthdayscalendar(datetime.date.today().year,datetime.date.today().month)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "tIvUKaF4UaX8", "outputId": "17fcb4fa-827b-4e7e-f56b-29e28fff1dcf" }, "execution_count": 159, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[[0, 0, 0, 0, 0, 0, 1],\n", " [2, 3, 4, 5, 6, 7, 8],\n", " [9, 10, 11, 12, 13, 14, 15],\n", " [16, 17, 18, 19, 20, 21, 22],\n", " [23, 24, 25, 26, 27, 28, 29],\n", " [30, 0, 0, 0, 0, 0, 0]]" ] }, "metadata": {}, "execution_count": 159 } ] }, { "cell_type": "code", "source": [ "#bu aydaki gün sayısı\n", "calendar.mdays[datetime.date.today().month]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "NfRlfsy55_W8", "outputId": "02f4c58c-1d6d-4227-ee8c-e72652b8e3db" }, "execution_count": 160, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "30" ] }, "metadata": {}, "execution_count": 160 } ] }, { "cell_type": "markdown", "source": [ "### Tarih farkları" ], "metadata": { "id": "iCldvgMoTMx0" } }, { "cell_type": "code", "source": [ "datetime.date.today()-datetime.date(2024,4,3)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "QCoSkQIKTMV4", "outputId": "ba10e902-b1fd-4bda-ace6-8b27a375941c" }, "execution_count": 161, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "datetime.timedelta(days=172)" ] }, "metadata": {}, "execution_count": 161 } ] }, { "cell_type": "code", "source": [ "#gün farkını alalım\n", "(datetime.date.today()-datetime.date(2024,4,3)).days" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cHH11kgV6nn6", "outputId": "89f9132a-2171-4a68-fa02-70d131b0c10a" }, "execution_count": 162, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "172" ] }, "metadata": {}, "execution_count": 162 } ] }, { "cell_type": "code", "source": [ "#30 gün sonrası\n", "datetime.date.today()+datetime.timedelta(days=30)\n", "#1 ay sonra(bazen 30, bazen 31, hatta 28/29 olabilir)\n", "datetime.date.today()+datetime.timedelta(days=calendar.mdays[datetime.date.today().month])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "G3c0_TWmTUhk", "outputId": "fdba2571-5c11-43e3-a4f4-52e8e231f1b3" }, "execution_count": 163, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "datetime.date(2024, 10, 22)" ] }, "metadata": {}, "execution_count": 163 }, { "output_type": "execute_result", "data": { "text/plain": [ "datetime.date(2024, 10, 22)" ] }, "metadata": {}, "execution_count": 163 } ] }, { "cell_type": "markdown", "source": [ "### Dönüşümler" ], "metadata": { "id": "FgQkOvgZ7TKO" } }, { "cell_type": "code", "source": [ "# strftime: datetime nesnesini string'e dönüştürme\n", "now = datetime.datetime.now()\n", "date_string = now.strftime(\"%Y-%m-%d %H:%M:%S\")\n", "print(date_string)\n", "\n", "# strptime: string'i datetime nesnesine dönüştürme\n", "date_string = \"2023-10-26 15:30:00\"\n", "datetime_object = datetime.datetime.strptime(date_string, \"%Y-%m-%d %H:%M:%S\")\n", "print(datetime_object, type(datetime_object))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4ob8gIMu7XP4", "outputId": "d650b3ac-2d5b-434e-99fd-394927d8a177" }, "execution_count": 164, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "2024-09-22 15:25:25\n", "2023-10-26 15:30:00 \n" ] } ] }, { "cell_type": "markdown", "source": [ "**datetime.strptime** fonksiyonu, belirli bir formattaki tarih ve saat bilgilerini ayrıştırmak için kullanılırken, yukarıda gördüğümüz **dateutil.parser** fonksiyonu daha genel bir ayrıştırıcıdır ve birçok farklı formatı tanıyabilir.\n", "\n", "**dateutil.parser** fonksiyonu, **datetime.strptime** fonksiyonundan daha esnektir ve daha fazla tarih ve saat formatını destekler. Ayrıca, dateutil.parser fonksiyonu, bilinmeyen formattaki tarih ve saat bilgilerini ayrıştırmak için de kullanılabilir.\n" ], "metadata": { "id": "x8FxG4UrA5ka" } }, { "cell_type": "code", "source": [ "from_util = dateutil.parser.parse(date_string)\n", "print(from_util, type(from_util))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "P4IavL9iAAFe", "outputId": "d2a3bcfc-ca74-4b10-c9dd-8a5d6fb5761e" }, "execution_count": 165, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "2023-10-26 15:30:00 \n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "UK2fWkAVNP1j" }, "source": [ "## Süre ölçümü" ] }, { "cell_type": "markdown", "metadata": { "id": "bhG0hYSwNP1j" }, "source": [ "### Performans amaçlı süre ölçümü(sonuçtan bağımsız)" ] }, { "cell_type": "markdown", "metadata": { "id": "MMxYbw0eNP1j" }, "source": [ "- `%'li` olanı bir fonksiyon takip eder, `%%'li` kullanımda ise alt satırdan yazarsın.\n", "- `Time` olan tek seferlik run'ın süresini verirken `timeit` onlarca kez çalıştırıp ortalama süre verir" ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "id": "dBc-f8JzNP1j", "outputId": "565ae13b-c342-404f-a191-f82fbf2b3d80", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "37.7 ms ± 2.34 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" ] } ], "source": [ "%%timeit\n", "x=sum(range(1000000))" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "ExecuteTime": { "end_time": "2020-09-02T18:59:00.443453Z", "start_time": "2020-09-02T18:59:00.277897Z" }, "id": "QBiH7YAkNP1j", "outputId": "b5a5a8d6-4608-4660-be9d-04603599e209", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "CPU times: user 35.5 ms, sys: 0 ns, total: 35.5 ms\n", "Wall time: 35.6 ms\n" ] } ], "source": [ "%%time\n", "x=sum(range(1000000))" ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "id": "2PXDCsVTNP1k", "outputId": "4293a549-6a2f-490e-ad2d-c9feff7fd4fa", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "25.7 ms ± 7.89 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" ] } ], "source": [ "def hesapla():\n", " y=sum(range(1000000))\n", "\n", "%timeit hesapla()" ] }, { "cell_type": "markdown", "metadata": { "id": "ubb3G85qNP1k" }, "source": [ "### Süreyle birlikte sonuç görme" ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "id": "4h98INXtNP1k", "outputId": "27237b24-a405-4a5e-ccb7-cbeead847909", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "hey\n", "süre:0.019402027130126953\n" ] } ], "source": [ "bas=time.time()\n", "print(\"hey\")\n", "hesapla()\n", "bit=time.time()\n", "print(\"süre:{}\".format(bit-bas))" ] }, { "cell_type": "markdown", "metadata": { "id": "VSthGf9ZNP1k" }, "source": [ "### jupyter nbextensions" ] }, { "cell_type": "markdown", "metadata": { "id": "hmbvwVIcNP1k" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "DJqzb_e3NP1l" }, "source": [ "nbextensionsı hala kurmadıysanız alın size bir sebep daha. bu süre ölçümü kodlarına gerek yok. yukarıdaki eklentiyle her hücrenin çalışma süresini veriyor. Bir örnek:" ] }, { "cell_type": "markdown", "metadata": { "id": "ku4FWmrvNP1l" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "5jd7IUY-NP1l" }, "source": [ "# Önemli bazı modüller" ] }, { "cell_type": "markdown", "metadata": { "id": "9flgVhIsNP1l" }, "source": [ "Aşağıda önemli olduğunu düşündüğüm bazı modülleri bulacaksınız. Tabiki bunların dışında da başak kütüphaneler/modüller var, bunları da zamanla öğreneceksiniz." ] }, { "cell_type": "markdown", "metadata": { "id": "zIBmaEyINP1l" }, "source": [ "## os" ] }, { "cell_type": "markdown", "metadata": { "id": "ETNToPtcNP1m" }, "source": [ "İşletim sisteminden bağımsız çalışacak bir koda(dosyalama sistemi v.s ile ilgili) ihtiyacımız olduğunda os modülünü kullanırız." ] }, { "cell_type": "markdown", "metadata": { "id": "hvw5ofEoNP1m" }, "source": [ "### Klasör ve dosya işlemleri" ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "id": "idhsE3pENP1m", "outputId": "72ec3d22-1dc3-46c1-b56e-ac3f98e17786", "colab": { "base_uri": "https://localhost:8080/", "height": 53 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'/content'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 170 }, { "output_type": "execute_result", "data": { "text/plain": [ "'.'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 170 } ], "source": [ "import os\n", "os.getcwd() #o anki aktif folder\n", "os.curdir #mevcut dizini temsil eden karakter, genelde bu . oluyor. Bunu daha çok prefix path olarak kullanırız" ] }, { "cell_type": "code", "source": [ "os.listdir() #o anki aktif folderdaki dosyaları listeler" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "YRnxg8nGITn8", "outputId": "978b5141-6a0d-45a9-b24f-9c2df3dbbe1e" }, "execution_count": 171, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['.config', 'drive', 'sample_data']" ] }, "metadata": {}, "execution_count": 171 } ] }, { "cell_type": "code", "execution_count": 172, "metadata": { "id": "0oHJDb3zNP1m", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "2a8c7a49-1c9f-4bcd-ae15-61eee8b06a4e" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['Othercomputers',\n", " '.file-revisions-by-id',\n", " 'MyDrive',\n", " '.shortcut-targets-by-id',\n", " '.Trash-0']" ] }, "metadata": {}, "execution_count": 172 } ], "source": [ "os.chdir(\"drive\") #aktif klasörü değiştiriyoruz\n", "os.listdir()" ] }, { "cell_type": "code", "execution_count": 173, "metadata": { "id": "MJ9SFSM1NP1m", "outputId": "274ebbb8-ea9d-4cd2-9290-b1ebd7033088", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'..'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 173 } ], "source": [ "os.pardir #parent klasörü temsil eden karakter" ] }, { "cell_type": "code", "execution_count": 174, "metadata": { "id": "Ey3N5KpINP1n", "outputId": "83ec6a2f-9800-417d-dad9-266ce94edb9c", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['.config', 'drive', 'sample_data']" ] }, "metadata": {}, "execution_count": 174 } ], "source": [ "os.listdir(os.pardir)" ] }, { "cell_type": "code", "execution_count": 175, "metadata": { "id": "n3LZWSB3NP1n", "outputId": "afccb4c8-66e6-40a5-81b3-34f2d3a74a7c", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "False" ] }, "metadata": {}, "execution_count": 175 } ], "source": [ "os.path.exists('Python Genel.ipynb') #bir dosya/klasör mevcut mu" ] }, { "cell_type": "code", "execution_count": 176, "metadata": { "id": "ZnWb90SkNP1n", "outputId": "2fdc4f0c-407c-465a-c648-f689bc660556", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "False" ] }, "metadata": {}, "execution_count": 176 } ], "source": [ "os.path.isfile('olmayandosya.txt') #parametredeki bir dosya mı? veya bir dosya mevcut mu anlamında da kullanılabilir." ] }, { "cell_type": "code", "execution_count": 177, "metadata": { "id": "XhSxCvnqNP1n", "outputId": "fd06880b-bbd7-4773-aa31-482526f71ca4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "False" ] }, "metadata": {}, "execution_count": 177 } ], "source": [ "os.path.isdir(\"klasor\")" ] }, { "cell_type": "code", "execution_count": 178, "metadata": { "id": "9TEIONcbNP1n", "outputId": "7e1d8090-d275-48ff-c63a-6908af1cac11", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[]\n" ] } ], "source": [ "# list all files in a directory in Python.\n", "from os import listdir\n", "from os.path import isfile, join\n", "p=os.getcwd()\n", "files_list = [f for f in listdir(p) if isfile(join(p, f))]\n", "print(files_list);" ] }, { "cell_type": "code", "execution_count": 179, "metadata": { "scrolled": true, "id": "pjdzqreQNP1o", "outputId": "87141785-3f64-4fe3-cd05-8acf35fb12ab", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content/drive/MyDrive/Colab Notebooks\n", "/content/drive/MyDrive/Colab Notebooks/.config\n", "/content/drive/MyDrive/Colab Notebooks/.config/startup\n" ] } ], "source": [ "dizin= \"/content/drive/MyDrive/Colab Notebooks\"\n", "for kökdizin, altdizinler, dosyalar in os.walk(dizin):\n", " print(kökdizin)" ] }, { "cell_type": "code", "execution_count": 180, "metadata": { "id": "uBHDharYNP1o", "outputId": "390d5cbc-b628-4c14-e6ae-a18c11c88a57", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content/drive/MyDrive/Colab Notebooks/Snippets: Drive adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/Snippets: Accessing files adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/Data Table Display adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/Forms adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/gemini.ipynb adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/Harici veriler: Yerel Dosyalar, Drive, E-Tablolar ve Cloud Storage adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/_My Custom Snippets.ipynb\n", "/content/drive/MyDrive/Colab Notebooks/_Colab Aboneliğinizden En İyi Şekilde Yararlanma\n", "/content/drive/MyDrive/Colab Notebooks/_pathler, drive, github.ipynb\n", "/content/drive/MyDrive/Colab Notebooks/pandas.ipynb adlı not defterinin kopyası\n", "/content/drive/MyDrive/Colab Notebooks/.config/startup/starters.py\n" ] } ], "source": [ "for kökdizin, altdizinler, dosyalar in os.walk(dizin):\n", " for dosya in dosyalar:\n", " print(os.sep.join([kökdizin, dosya]))" ] }, { "cell_type": "code", "source": [ "%cd \"MyDrive\"" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_UCgZfRxJX2f", "outputId": "81d5ee3e-bdb6-45ef-bcf1-84b5e89f6dec" }, "execution_count": 181, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content/drive/MyDrive\n" ] } ] }, { "cell_type": "code", "source": [ "!touch abc.txt #dosya yaratalım" ], "metadata": { "id": "5_X3DvwpIrwo" }, "execution_count": 182, "outputs": [] }, { "cell_type": "code", "execution_count": 183, "metadata": { "scrolled": true, "id": "qluw2XfeNP1o", "outputId": "d35987c6-867c-462e-b4c1-4be768a54ea2", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Last modified: 1727018731.0\n", "Created: Sun Sep 22 15:25:31 2024\n" ] } ], "source": [ "import os.path, time, datetime\n", "print(\"Last modified: %s\" % os.path.getmtime(\"abc.txt\")) #formatlanmamış\n", "print(\"Created: %s\" % time.ctime(os.path.getctime(\"abc.txt\")))" ] }, { "cell_type": "code", "source": [ "!rm abc.txt #tekrar silelim" ], "metadata": { "id": "cBXWgS90JqmK" }, "execution_count": 184, "outputs": [] }, { "cell_type": "code", "execution_count": 185, "metadata": { "id": "WyqHfL5gNP1o" }, "outputs": [], "source": [ "#Sadece windowsta. Linux için-->https://stackoverflow.com/questions/17317219/is-there-an-platform-independent-equivalent-of-os-startfile\n", "# os.startfile('calc.exe') #dosya açar, program başaltır, internet sitesine gider v.s" ] }, { "cell_type": "code", "execution_count": 186, "metadata": { "id": "YM8SBcjENP1o" }, "outputs": [], "source": [ "# os.startfile(\"/falanca/klasördeki/filanca/dosya\")" ] }, { "cell_type": "code", "execution_count": 187, "metadata": { "id": "NgmG0Uw_NP1p" }, "outputs": [], "source": [ "# os.startfile(\"www.volkanyurtseven.com\")" ] }, { "cell_type": "markdown", "metadata": { "id": "qwCvraQ9NP1p" }, "source": [ "### Sistem ve Environment bilgileri" ] }, { "cell_type": "code", "execution_count": 188, "metadata": { "scrolled": true, "id": "kLkITj7VNP1p", "outputId": "e2edc182-1e94-4361-8007-a142c568a7b6", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "posix\n", "Linux\n", "6.1.85+\n" ] } ], "source": [ "import platform, os\n", "print(os.name)\n", "print(platform.system())\n", "print(platform.release())" ] }, { "cell_type": "code", "execution_count": 189, "metadata": { "id": "B7-oLbonNP1p", "outputId": "7cb1bc7e-8f7a-461d-86a8-d493052061c4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'SHELL': '/bin/bash',\n", " 'NV_LIBCUBLAS_VERSION': '12.2.5.6-1',\n", " 'NVIDIA_VISIBLE_DEVICES': 'all',\n", " 'COLAB_JUPYTER_TRANSPORT': 'ipc',\n", " 'NV_NVML_DEV_VERSION': '12.2.140-1',\n", " 'NV_CUDNN_PACKAGE_NAME': 'libcudnn8',\n", " 'CGROUP_MEMORY_EVENTS': '/sys/fs/cgroup/memory.events /var/colab/cgroup/jupyter-children/memory.events',\n", " 'NV_LIBNCCL_DEV_PACKAGE': 'libnccl-dev=2.19.3-1+cuda12.2',\n", " 'NV_LIBNCCL_DEV_PACKAGE_VERSION': '2.19.3-1',\n", " 'VM_GCE_METADATA_HOST': '169.254.169.253',\n", " 'HOSTNAME': '51c8695c6b32',\n", " 'LANGUAGE': 'en_US',\n", " 'TBE_RUNTIME_ADDR': '172.28.0.1:8011',\n", " 'COLAB_TPU_1VM': '',\n", " 'GCE_METADATA_TIMEOUT': '3',\n", " 'NVIDIA_REQUIRE_CUDA': 'cuda>=12.2 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=525,driver<526 brand=unknown,driver>=525,driver<526 brand=nvidia,driver>=525,driver<526 brand=nvidiartx,driver>=525,driver<526 brand=geforce,driver>=525,driver<526 brand=geforcertx,driver>=525,driver<526 brand=quadro,driver>=525,driver<526 brand=quadrortx,driver>=525,driver<526 brand=titan,driver>=525,driver<526 brand=titanrtx,driver>=525,driver<526',\n", " 'NV_LIBCUBLAS_DEV_PACKAGE': 'libcublas-dev-12-2=12.2.5.6-1',\n", " 'NV_NVTX_VERSION': '12.2.140-1',\n", " 'COLAB_JUPYTER_IP': '172.28.0.12',\n", " 'NV_CUDA_CUDART_DEV_VERSION': '12.2.140-1',\n", " 'NV_LIBCUSPARSE_VERSION': '12.1.2.141-1',\n", " 'COLAB_LANGUAGE_SERVER_PROXY_ROOT_URL': 'http://172.28.0.1:8013/',\n", " 'NV_LIBNPP_VERSION': '12.2.1.4-1',\n", " 'NCCL_VERSION': '2.19.3-1',\n", " 'KMP_LISTEN_PORT': '6000',\n", " 'TF_FORCE_GPU_ALLOW_GROWTH': 'true',\n", " 'ENV': '/root/.bashrc',\n", " 'PWD': '/',\n", " 'TBE_EPHEM_CREDS_ADDR': '172.28.0.1:8009',\n", " 'COLAB_LANGUAGE_SERVER_PROXY_REQUEST_TIMEOUT': '30s',\n", " 'TBE_CREDS_ADDR': '172.28.0.1:8008',\n", " 'NV_CUDNN_PACKAGE': 'libcudnn8=8.9.6.50-1+cuda12.2',\n", " 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility',\n", " 'COLAB_JUPYTER_TOKEN': '',\n", " 'LAST_FORCED_REBUILD': '20240627',\n", " 'NV_NVPROF_DEV_PACKAGE': 'cuda-nvprof-12-2=12.2.142-1',\n", " 'NV_LIBNPP_PACKAGE': 'libnpp-12-2=12.2.1.4-1',\n", " 'NV_LIBNCCL_DEV_PACKAGE_NAME': 'libnccl-dev',\n", " 'TCLLIBPATH': '/usr/share/tcltk/tcllib1.20',\n", " 'NV_LIBCUBLAS_DEV_VERSION': '12.2.5.6-1',\n", " 'NVIDIA_PRODUCT_NAME': 'CUDA',\n", " 'COLAB_KERNEL_MANAGER_PROXY_HOST': '172.28.0.12',\n", " 'NV_LIBCUBLAS_DEV_PACKAGE_NAME': 'libcublas-dev-12-2',\n", " 'NV_CUDA_CUDART_VERSION': '12.2.140-1',\n", " 'COLAB_WARMUP_DEFAULTS': '1',\n", " 'HOME': '/root',\n", " 'LANG': 'en_US.UTF-8',\n", " 'COLUMNS': '100',\n", " 'CUDA_VERSION': '12.2.2',\n", " 'CLOUDSDK_CONFIG': '/content/.config',\n", " 'NV_LIBCUBLAS_PACKAGE': 'libcublas-12-2=12.2.5.6-1',\n", " 'NV_CUDA_NSIGHT_COMPUTE_DEV_PACKAGE': 'cuda-nsight-compute-12-2=12.2.2-1',\n", " 'COLAB_RELEASE_TAG': 'release-colab_20240919-060125_RC00',\n", " 'KMP_TARGET_PORT': '9000',\n", " 'KMP_EXTRA_ARGS': '--logtostderr --listen_host=172.28.0.12 --target_host=172.28.0.12 --tunnel_background_save_url=https://colab.research.google.com/tun/m/cc48301118ce562b961b3c22d803539adc1e0c19/m-s-2x16lz196cw9 --tunnel_background_save_delay=10s --tunnel_periodic_background_save_frequency=30m0s --enable_output_coalescing=true --output_coalescing_required=true --gorilla_ws_opt_in --log_code_content',\n", " 'NV_LIBNPP_DEV_PACKAGE': 'libnpp-dev-12-2=12.2.1.4-1',\n", " 'COLAB_LANGUAGE_SERVER_PROXY_LSP_DIRS': '/datalab/web/pyright/typeshed-fallback/stdlib,/usr/local/lib/python3.10/dist-packages',\n", " 'NV_LIBCUBLAS_PACKAGE_NAME': 'libcublas-12-2',\n", " 'COLAB_KERNEL_MANAGER_PROXY_PORT': '6000',\n", " 'CLOUDSDK_PYTHON': 'python3',\n", " 'NV_LIBNPP_DEV_VERSION': '12.2.1.4-1',\n", " 'NO_GCE_CHECK': 'False',\n", " 'PYTHONPATH': '/env/python',\n", " 'NV_LIBCUSPARSE_DEV_VERSION': '12.1.2.141-1',\n", " 'LIBRARY_PATH': '/usr/local/cuda/lib64/stubs',\n", " 'NV_CUDNN_VERSION': '8.9.6.50',\n", " 'SHLVL': '0',\n", " 'NV_CUDA_LIB_VERSION': '12.2.2-1',\n", " 'COLAB_LANGUAGE_SERVER_PROXY': '/usr/colab/bin/language_service',\n", " 'NVARCH': 'x86_64',\n", " 'NV_CUDNN_PACKAGE_DEV': 'libcudnn8-dev=8.9.6.50-1+cuda12.2',\n", " 'NV_CUDA_COMPAT_PACKAGE': 'cuda-compat-12-2',\n", " 'NV_LIBNCCL_PACKAGE': 'libnccl2=2.19.3-1+cuda12.2',\n", " 'LD_LIBRARY_PATH': '/usr/local/nvidia/lib:/usr/local/nvidia/lib64',\n", " 'COLAB_GPU': '',\n", " 'NV_CUDA_NSIGHT_COMPUTE_VERSION': '12.2.2-1',\n", " 'GCS_READ_CACHE_BLOCK_SIZE_MB': '16',\n", " 'NV_NVPROF_VERSION': '12.2.142-1',\n", " 'LC_ALL': 'en_US.UTF-8',\n", " 'COLAB_FILE_HANDLER_ADDR': 'localhost:3453',\n", " 'PATH': '/opt/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin',\n", " 'NV_LIBNCCL_PACKAGE_NAME': 'libnccl2',\n", " 'COLAB_DEBUG_ADAPTER_MUX_PATH': '/usr/local/bin/dap_multiplexer',\n", " 'NV_LIBNCCL_PACKAGE_VERSION': '2.19.3-1',\n", " 'PYTHONWARNINGS': 'ignore:::pip._internal.cli.base_command',\n", " 'DEBIAN_FRONTEND': 'noninteractive',\n", " 'COLAB_BACKEND_VERSION': 'next',\n", " 'OLDPWD': '/',\n", " 'JPY_PARENT_PID': '92',\n", " 'TERM': 'xterm-color',\n", " 'CLICOLOR': '1',\n", " 'PAGER': 'cat',\n", " 'GIT_PAGER': 'cat',\n", " 'MPLBACKEND': 'module://ipykernel.pylab.backend_inline',\n", " 'ENABLE_DIRECTORYPREFETCHER': '1',\n", " 'USE_AUTH_EPHEM': '1',\n", " 'PYDEVD_USE_FRAME_EVAL': 'NO'}" ] }, "metadata": {}, "execution_count": 189 } ], "source": [ "dict(os.environ)" ] }, { "cell_type": "code", "execution_count": 190, "metadata": { "id": "PrSwwZeBNP1p" }, "outputs": [], "source": [ "# print(dict(os.environ)[\"HOMEPATH\"])\n", "# print(dict(os.environ)[\"USERNAME\"])" ] }, { "cell_type": "markdown", "metadata": { "id": "QkXjdGPuNP1p" }, "source": [ "## random" ] }, { "cell_type": "code", "execution_count": 191, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T15:44:49.592635Z", "start_time": "2020-11-22T15:44:49.579668Z" }, "id": "3rj9nepQNP1q", "outputId": "3fff8a56-1bb1-45bf-9dce-6e95b2f5eee2", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "10\n", "13\n", "8\n", "[3, 1, 3]\n", "0.37961522332372777\n", "2.6298644191144316\n", "[3, 3]\n" ] } ], "source": [ "import random\n", "dizi=[3,5,8,3,2,1,9]\n", "random.seed(1)\n", "print(random.randint(2,48)) #2 ile 48 arasında\n", "print(random.randrange(1,100,3))\n", "print(random.choice(dizi))\n", "print(random.choices(dizi,k=3)) #çektiğini geri koyar, sampledan farkı bu, o yüzden aynısı çıkabilir\n", "print(random.random()) #0-1 arası\n", "print(random.uniform(2,5)) #2-5 arası küsurlu sayı\n", "print(random.sample(dizi,2)) #çektiğini geri koymaz, choicestan farkı bu" ] }, { "cell_type": "code", "execution_count": 192, "metadata": { "id": "Chjq0qoINP1r", "outputId": "45695dcb-97e3-44a1-df0d-64479541b198", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[2, 5, 8, 3, 1, 3, 9]" ] }, "metadata": {}, "execution_count": 192 } ], "source": [ "#liste karıştırmak\n", "random.shuffle(dizi)\n", "dizi" ] }, { "cell_type": "markdown", "metadata": { "id": "zIVd55b_NP1r" }, "source": [ "## array" ] }, { "cell_type": "markdown", "metadata": { "id": "yEQlL9_LNP1r" }, "source": [ "listin hemen hemen aynısı olup önemli bir farkı, içine sadece belli tipte eleman almasıdır. Bu yüzden memory performansı açısından liste göre daha iyidir.ancak list'ler daha hızlıdır. Ayrıca sayısal bir dizi kullanacaksanız numpy kullanmanızı tavsiye ederim. Bunun dışıdna çok büyük metinsel diziler oluşturacaksanız array kullanabilirsinz." ] }, { "cell_type": "code", "execution_count": 193, "metadata": { "id": "Aehg6NoUNP1r", "outputId": "67cb0480-235a-4ccc-9e7f-99631a36be54", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "92 88\n" ] } ], "source": [ "from array import array\n", "import sys\n", "arr=array('i',[1,2,3])\n", "lst=[1,2,3]\n", "print(sys.getsizeof(arr),sys.getsizeof(lst)) #arr'ın memory kullanımı daha düşüktür" ] }, { "cell_type": "markdown", "metadata": { "id": "Wwf1DhqXNP1r" }, "source": [ "## collections" ] }, { "cell_type": "code", "execution_count": 194, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T12:42:13.976560Z", "start_time": "2020-11-22T12:42:13.970578Z" }, "id": "OigSvt6TNP1r", "outputId": "03e468fd-4d7e-4764-ca7a-2dad1d4a37fb", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "2" ] }, "metadata": {}, "execution_count": 194 } ], "source": [ "my_list = [\"a\",\"b\",\"c\",\"c\",\"e\",\"c\",\"b\",\"b\",\"a\"]\n", "my_list.count(\"a\")" ] }, { "cell_type": "code", "execution_count": 195, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T12:42:42.671252Z", "start_time": "2020-11-22T12:42:42.668256Z" }, "id": "MKziwSJ3NP1r", "outputId": "1aa014a1-2768-4f65-e9fd-fdea33bf3fb8", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Counter({'b': 3, 'c': 3, 'a': 2, 'e': 1})\n", "2\n" ] } ], "source": [ "from collections import Counter\n", "\n", "cn = Counter(my_list) #dictionary benzeri bir yapı. tüm dictionary metodları kullanılabilir\n", "print(cn)\n", "print(cn[\"a\"]) #yukarda list ile yaptığımızın aynısı" ] }, { "cell_type": "code", "execution_count": 196, "metadata": { "id": "29BWc8LiNP1r", "outputId": "66290e3b-9233-4adb-9629-606a4b561366", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Counter({'sen': 3, 'seni': 2, 'bil': 1, 'bilmezsen': 1, 'kendini': 1})" ] }, "metadata": {}, "execution_count": 196 } ], "source": [ "str_ = \"sen seni bil sen seni sen bilmezsen kendini\"\n", "cn = Counter(str_.split(' '))\n", "cn" ] }, { "cell_type": "code", "execution_count": 197, "metadata": { "id": "y0tSvEiiNP1s", "outputId": "533830e2-2567-4395-a2a7-a9890728fc31", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[('sen', 3), ('seni', 2)]\n", "['sen', 'seni', 'bil', 'bilmezsen', 'kendini']\n", "{'sen': 3, 'seni': 2, 'bil': 1, 'bilmezsen': 1, 'kendini': 1}\n" ] } ], "source": [ "print(cn.most_common(2)) #en çok kullanılan 2 kelime\n", "print(list(cn)) #key değerlerinin listeye çevrilmiş hali\n", "print(dict(cn)) #key-value değerlerinin sözlüğe çevrilmiş hali" ] }, { "cell_type": "code", "execution_count": 198, "metadata": { "id": "0yot3vKfNP1s", "outputId": "c4d448b4-05e1-46c3-cc0a-23b8600d4c62", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "a 4\n", "c 3\n", "b 2\n", "----\n", "a 4\n", "c 3\n", "b 2\n" ] } ], "source": [ "#OrderDict'e artık ihtiyaç yoktur. Python 3.7den itibaren de dictioanryye girilen sırayı korumaktadır\n", "#aşağıdaki örnekten de görebiliyoruz\n", "from collections import OrderedDict\n", "liste = [\"a\",\"c\",\"c\",\"a\",\"b\",\"a\",\"a\",\"b\",\"c\"]\n", "cnt = Counter(liste)\n", "od = OrderedDict(cnt.most_common())\n", "d=dict(cnt.most_common())\n", "for key, value in od.items():\n", " print(key, value)\n", "print(\"----\")\n", "for key, value in d.items():\n", " print(key, value)" ] }, { "cell_type": "code", "execution_count": 199, "metadata": { "id": "stMs_GdcNP1s", "outputId": "620cbbeb-3e0c-49cf-8f92-8d9a2fe84fad", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "John\n" ] } ], "source": [ "from collections import namedtuple\n", "\n", "Student = namedtuple('Student', 'fname, lname, age') #class yapısına benzer bir kullanım. indeks ezberlemeye son!\n", "s1 = Student('John', 'Clarke', '13')\n", "print(s1.fname)" ] }, { "cell_type": "markdown", "metadata": { "id": "by8Up3HxNP1s" }, "source": [ "## itertools" ] }, { "cell_type": "markdown", "metadata": { "id": "XjRcEeAlNP1s" }, "source": [ "### Permütasyon" ] }, { "cell_type": "code", "execution_count": 200, "metadata": { "id": "NCwAzv4bNP1t", "outputId": "728eec2b-54e6-4dc2-d4bf-8df05907000e", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]\n", "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n" ] } ], "source": [ "from itertools import permutations #sadece tekrarsızlar yapılabiliyor. n!/(n-r)!\n", "liste=[\"A\",\"B\",\"C\"]\n", "per1=list(permutations(liste))\n", "per2=list(permutations(liste,2))\n", "print(per1)\n", "print(per2)" ] }, { "cell_type": "markdown", "metadata": { "id": "oYYgBnk7NP1t" }, "source": [ "### Kombinasyon" ] }, { "cell_type": "code", "execution_count": 201, "metadata": { "id": "jpiwGFjSNP1t", "outputId": "105dd14f-1704-4385-f7a9-6b2482333805", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[('A', 'B'), ('A', 'C'), ('B', 'C')]" ] }, "metadata": {}, "execution_count": 201 } ], "source": [ "from itertools import combinations #n!/(r!*(n-r)!)\n", "com=list(combinations(liste,2))\n", "com" ] }, { "cell_type": "markdown", "metadata": { "id": "oySaIniiNP1t" }, "source": [ "### Kartezyen çarpım" ] }, { "cell_type": "code", "execution_count": 202, "metadata": { "id": "imyEWmAzNP1t", "outputId": "fa1d5c39-5245-4174-a288-040494180a60", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[('A', 2000),\n", " ('A', 2001),\n", " ('A', 2002),\n", " ('A', 2003),\n", " ('B', 2000),\n", " ('B', 2001),\n", " ('B', 2002),\n", " ('B', 2003),\n", " ('C', 2000),\n", " ('C', 2001),\n", " ('C', 2002),\n", " ('C', 2003)]" ] }, "metadata": {}, "execution_count": 202 } ], "source": [ "from itertools import product\n", "list1=[\"A\",\"B\",\"C\"]\n", "list2=[2000,2001,2002,2003]\n", "krt=list(product(list1,list2))\n", "krt" ] }, { "cell_type": "markdown", "metadata": { "id": "8c-v2GPbNP1u" }, "source": [ "## Regex (Düzenli ifadeler)" ] }, { "cell_type": "markdown", "metadata": { "id": "T7ffL3MvNP1u" }, "source": [ "Pythona özgü değildir, hemen her dilde implementasyonu vardır. Başlı başına büyük bi konudur. Burada özet vermeye çalışıcam. İleride Text mining, NLP v.s çalışacaksanız iyi öğrenmenizde fayda var" ] }, { "cell_type": "markdown", "metadata": { "id": "yYTdlQvRNP1u" }, "source": [ "### Isınma" ] }, { "cell_type": "code", "execution_count": 203, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T14:55:50.942122Z", "start_time": "2020-11-22T14:55:50.939128Z" }, "id": "LstCA0g5NP1u" }, "outputs": [], "source": [ "import re" ] }, { "cell_type": "code", "execution_count": 204, "metadata": { "id": "cp0dScCoNP1u" }, "outputs": [], "source": [ "a=\"benim adım volkan\"" ] }, { "cell_type": "code", "execution_count": 205, "metadata": { "id": "bc2oiGJMNP1u" }, "outputs": [], "source": [ "#match: başında var mı diye kontrol eder\n", "re.match(\"volkan\",a) #eşleşme yok, sonuç dönmez" ] }, { "cell_type": "code", "execution_count": 206, "metadata": { "id": "A2r-VT66NP1v", "outputId": "3e901d97-7e7e-481d-b3bb-fcf0084d58ac", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 206 } ], "source": [ "re.match(\"ben\",a) #var" ] }, { "cell_type": "code", "execution_count": 207, "metadata": { "id": "vGUREnelNP1v", "outputId": "c09044fe-487a-403d-b212-e1ebabf6fb01", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "True" ] }, "metadata": {}, "execution_count": 207 } ], "source": [ "a.startswith(\"ben\") #bu daha kullanışlıdır." ] }, { "cell_type": "code", "execution_count": 208, "metadata": { "id": "_43rk05kNP1v", "outputId": "91555923-4984-46f5-de5c-a83218bde2e9", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 208 } ], "source": [ "#search, herhangi bi yerde var mı, matche göre daha yavaş çalışır\n", "re.search(\"volkan\",a)" ] }, { "cell_type": "code", "execution_count": 209, "metadata": { "id": "eINL0Yl7NP1v", "outputId": "aefcdf3c-561f-43e3-9e87-c3df2d851fb3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "True" ] }, "metadata": {}, "execution_count": 209 } ], "source": [ "\"volkan\" in a #bu daha pratik" ] }, { "cell_type": "code", "execution_count": 210, "metadata": { "id": "hHIC0gVqNP1v", "outputId": "b85a86b4-f2bb-4088-cf10-fd8f2d4b52b8", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['sen', 'sen', 'sen', 'sen']\n", "4\n", "4\n" ] } ], "source": [ "b=\"sen seni bil sen seni\"\n", "bul=re.findall(\"sen\", b)\n", "\n", "print(bul)\n", "print(len(bul))\n", "print(b.count(\"sen\"))" ] }, { "cell_type": "markdown", "metadata": { "id": "hiAVtFvyNP1w" }, "source": [ "### Metakarakter kullanımı" ] }, { "cell_type": "code", "execution_count": 211, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T14:56:00.364786Z", "start_time": "2020-11-22T14:56:00.361819Z" }, "id": "YIAHevecNP1w" }, "outputs": [], "source": [ "isimler=[\"123a\",\"ali\",\"veli\",\"hakan\",\"volkan\",\"osman\",\"kandemir\",\"VOLkan\"]" ] }, { "cell_type": "code", "execution_count": 212, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T14:56:03.790850Z", "start_time": "2020-11-22T14:56:03.785864Z" }, "id": "5IurCv6oNP1w", "outputId": "bf8c26f5-ccfc-47e0-dae7-805166919943", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['hakan', 'volkan', 'VOLkan']" ] }, "metadata": {}, "execution_count": 212 } ], "source": [ "#kan ile bitenler, regex olmadan\n", "kan=[x for x in isimler if x[-3:]==\"kan\"]\n", "kan" ] }, { "cell_type": "markdown", "metadata": { "id": "wPMAW5iXNP1w" }, "source": [ "![resim.png](data:image/png;base64,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)" ] }, { "cell_type": "markdown", "metadata": { "id": "BkbwbRCTNP1w" }, "source": [ "#### [ ] Köşeli parantez" ] }, { "cell_type": "markdown", "metadata": { "id": "fw-efq3_NP1x" }, "source": [ "[] işareti, \"içine giren karakterleri içeren\" filtresi uygular. Burada önemli olan [] içinde gördügümüz tüm karaktereleri tek tek uyguluyor olmasıdır. Ör: [abc]: a veya b veya c içeren demek. [a-z]: A ile Z arasındakiler demek" ] }, { "cell_type": "code", "execution_count": 213, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T14:56:09.039799Z", "start_time": "2020-11-22T14:56:09.035811Z" }, "id": "ov68JgukNP1x", "outputId": "7dee106c-f324-4279-ae9b-4e0437b0824f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "hakan\n", "volkan\n" ] } ], "source": [ "#regex ile\n", "for i in isimler:\n", " if re.search(\"[a-z]kan\",i):\n", " print(i)\n", "#başta veya ortada bir yerde a-z arasında bir karekter olsun, sonu kan olsun demiş olduk. yani \"kan\"ın önünde bir harf\n", "#olsun da nerede olursa olsun, bşta mı ortada mı önemli değil, önemli olan kan'ın öncesinde olmaslı" ] }, { "cell_type": "code", "execution_count": 214, "metadata": { "id": "Fsvv35iGNP1y", "outputId": "384c7687-3e20-4112-ea72-3f63886637d1", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['veli', 'osman', 'kandemir']" ] }, "metadata": {}, "execution_count": 214 } ], "source": [ "#içinde e veya m geçenler, bu sefer list comprehension ile yapalım\n", "[i for i in isimler if re.search(\"[em]\",i)]" ] }, { "cell_type": "code", "execution_count": 215, "metadata": { "id": "WCYR4kscNP1y", "outputId": "02899ce3-f02f-4869-dfe1-c67cc809ef0b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['123a', 'b123', '1234']" ] }, "metadata": {}, "execution_count": 215 } ], "source": [ "#rakam içerenler\n", "liste = [\"123a\",\"b123\",\"1234\",\"volkan\"]\n", "sayıiçerenler=[x for x in liste if re.search(\"[0-9]\",x)]\n", "sayıiçerenler" ] }, { "cell_type": "code", "execution_count": 216, "metadata": { "id": "SnmWLT3YNP1y", "outputId": "111b849b-581f-4867-f9a0-e00aae075f6d", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['123a', '1234']" ] }, "metadata": {}, "execution_count": 216 } ], "source": [ "#rakam ile başlayanları bulma\n", "rakamlabaşlayanlar=[x for x in liste if re.match(\"[0-9]\",x)] #yukardakinden farklı olarak match kullandık, daha hızlı çalışır\n", "rakamlabaşlayanlar" ] }, { "cell_type": "code", "execution_count": 217, "metadata": { "id": "GcqMsXEENP1y", "outputId": "aba87780-4f1b-47be-8dc8-c20fe2c4ed94", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "['ABC', 'Abc', 'abc', '12a', 'A12', 'Ab1', 'Ab23']\n", "['Abc', 'Ab1', 'Ab23']\n", "['ABC', 'Abc', 'abc', '12a', 'A12', '123', 'Ab1', 'Ab23']\n", "['Ab1', 'Ab23']\n" ] } ], "source": [ "liste=[\"ABC\",\"Abc\",\"abc\",\"12a\",\"A12\",\"123\",\"Ab1\",\"Ab23\"]\n", "print([x for x in liste if re.search(\"[A-Za-z]\",x)]) #büyük veya küçük harf içerenler\n", "print([x for x in liste if re.search(\"[A-Z][a-z]\",x)]) #ilki büyük ikincisi küçük harf içerenler\n", "print([x for x in liste if re.search(\"[A-Za-z0-9]\",x)]) #büyük veya küçük harf veya sayı içerenler\n", "print([x for x in liste if re.search(\"[A-Z][a-z][0-9]\",x)]) #ilki büyük ikincisi küçük üçüncüsü sayı olanlar" ] }, { "cell_type": "markdown", "metadata": { "id": "9giRPBb3NP1y" }, "source": [ "#### . Nokta" ] }, { "cell_type": "markdown", "metadata": { "id": "Bo5mfg5cNP1y" }, "source": [ "\".\" tek karekteri için joker anlamındadır" ] }, { "cell_type": "code", "execution_count": 218, "metadata": { "id": "ZsSkaV5qNP1z" }, "outputs": [], "source": [ "isimler=[\"arhan\",\"volkan\",\"osman\",\"hakan\",\"demirhan\",\"1ozan\"]" ] }, { "cell_type": "code", "execution_count": 219, "metadata": { "id": "ApljdIy-NP1z", "outputId": "9f03dac5-a52a-4cb2-9197-d070c67cffa3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['arhan', 'osman', 'hakan']" ] }, "metadata": {}, "execution_count": 219 } ], "source": [ "#5 karekterli olup an ile biten gerçek isimler(gerçek isim: sayı ile başlayan birşey isim olamaz)\n", "liste=[x for x in isimler if re.match(\"[a-z]..an\",x)]\n", "liste" ] }, { "cell_type": "markdown", "metadata": { "id": "lfCcup0ANP1z" }, "source": [ "#### * Yıldız" ] }, { "cell_type": "markdown", "metadata": { "id": "Yb-V7AdfNP1z" }, "source": [ "Kendinden önce gelen 1 ifadeyi en az 0(evet 0, 1 değil) sayıda eşleştirir. Özellikle bir ifadenin yazılamayabildiği durumları da kapsamak için kullanılır. Aşağıdkai örnek gayet açıklayıcıdır." ] }, { "cell_type": "code", "execution_count": 220, "metadata": { "id": "nw9onGxYNP1z", "outputId": "6e1b138e-f400-4caa-8b2b-30adc79e354a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['kıral', 'kral', 'kıro', 'kro', 'kritik', 'kıritik', 'kııral']" ] }, "metadata": {}, "execution_count": 220 } ], "source": [ "liste = [\"kıral\", \"kral\", \"kıro\", \"kro\", \"kırmızı\",\"kırçıllı\",\"kritik\",\"kıritik\",\"kııral\"]\n", "[x for x in liste if re.match(\"kı*r[aeıioöuü]\",x)]" ] }, { "cell_type": "markdown", "metadata": { "id": "wEXQD-HtNP10" }, "source": [ "Bu örnekte, yabancı dilden geçen kelimelerden \"kr\" ile başlayanları inceledik. Bunlar bazen aralarına ı harfi girilerek yazılabiliyor. Bu kelimelerde genelde r'den sonra sesli bi harf gelir. Biz de bunları yakalamaya çalıştık." ] }, { "cell_type": "markdown", "metadata": { "id": "LC-ketd1NP10" }, "source": [ "#### + Artı" ] }, { "cell_type": "markdown", "metadata": { "id": "WU2zW6m5NP10" }, "source": [ "Yıldıza benzer, ancak bu sefer en az 1 sayıda eşleşme yapar." ] }, { "cell_type": "code", "execution_count": 221, "metadata": { "id": "YHDg_aX3NP11", "outputId": "13cd2b57-c1eb-456e-cdd8-75010ab5629e", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['kıral', 'kıro', 'kıritik', 'kııral']" ] }, "metadata": {}, "execution_count": 221 } ], "source": [ "liste = [\"kıral\", \"kral\", \"kıro\", \"kro\", \"kırmızı\",\"kırçıllı\",\"kritik\",\"kıritik\",\"kııral\"]\n", "[x for x in liste if re.match(\"kı+r[aeıioöuü]\",x)]" ] }, { "cell_type": "code", "execution_count": 222, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T14:57:05.136600Z", "start_time": "2020-11-22T14:57:05.132611Z" }, "id": "KObxbEcsNP11", "outputId": "4ef84528-d5fe-4f7c-ad91-6697ca046e15", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "volkan\n", "hakan\n" ] } ], "source": [ "#yukardaki kan'la biten isimler örneğin. bu sefer VOLkan yazdırılır\n", "for i in isimler:\n", " if re.search(\".+kan\",i):\n", " print(i)" ] }, { "cell_type": "markdown", "metadata": { "id": "rV6ooe6aNP11" }, "source": [ "#### ? Soru işareti" ] }, { "cell_type": "markdown", "metadata": { "id": "ekAtIxZnNP11" }, "source": [ "Kendinden önce gelen karakterin 0 veya 1 kez geçtiği durumları eşleştirir." ] }, { "cell_type": "code", "execution_count": 223, "metadata": { "id": "yu6V0LzTNP11", "outputId": "aca00f6a-c436-42a9-e8b7-097197983682", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['kıral', 'kral', 'kıro', 'kro', 'kritik', 'kıritik']" ] }, "metadata": {}, "execution_count": 223 } ], "source": [ "liste = [\"kıral\", \"kral\", \"kıro\", \"kro\", \"kırmızı\",\"kırçıllı\",\"kritik\",\"kıritik\",\"kııral\"]\n", "[x for x in liste if re.match(\"kı?r[aeıioöuü]\",x)]" ] }, { "cell_type": "markdown", "metadata": { "id": "E4bdPfQoNP12" }, "source": [ "#### {} süslü parantez" ] }, { "cell_type": "markdown", "metadata": { "id": "gf5Uj6JPNP12" }, "source": [ "bir karekterin n adet geçtiği durumlar eşleştirilir." ] }, { "cell_type": "code", "execution_count": 224, "metadata": { "id": "ujabWlTENP12", "outputId": "7521267c-e0b1-49f2-ad64-353a46a5b2a9", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['kııral']" ] }, "metadata": {}, "execution_count": 224 } ], "source": [ "liste = [\"kıral\", \"kral\", \"kıro\", \"kro\", \"kırmızı\",\"kırçıllı\",\"kritik\",\"kıritik\",\"kııral\"]\n", "[x for x in liste if re.match(\"kı{2}r[aeıioöuü]\",x)]" ] }, { "cell_type": "code", "execution_count": 225, "metadata": { "id": "DXKgN-erNP12", "outputId": "cda37a34-912f-408e-d0f9-23b61883985c", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['kııral']" ] }, "metadata": {}, "execution_count": 225 } ], "source": [ "#böyle de yapılabilirdi ama n sayısı yükseldikçe {} ile yapmak daha mantıklı\n", "[x for x in liste if re.match(\"kıır[aeıioöuü]\",x)]" ] }, { "cell_type": "code", "execution_count": 226, "metadata": { "id": "lJ2-PlDENP12", "outputId": "5327b5f8-4a10-4055-d192-1af27c6ad563", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['gool', 'gooool']" ] }, "metadata": {}, "execution_count": 226 } ], "source": [ "#{min,max}\n", "liste=[\"gol\",\"gool\",\"gooool\",\"gööl\",\"gooooooool\"]\n", "[x for x in liste if re.match(\"[a-z]o{2,5}l\",x)] #en az 2 en çok 5 oo içersin" ] }, { "cell_type": "markdown", "metadata": { "id": "KNreV4PoNP12" }, "source": [ "##### Çeşitli linkler" ] }, { "cell_type": "markdown", "metadata": { "id": "MGQ1_VJ_NP12" }, "source": [ "Regex dünyası çok büyük bi dünya, burada hepsini anlatmak yerine kısa bir girizgah yapmış olduk. Öncelikle genel oalrak regexi kavramanız sonrasında da python implementasonunu kavramanız gerekiyor. Aşağıdaki linkleri incelemenizi tavisye ederim.\n", "\n", "**Genel bilgi**\n", "- https://en.wikipedia.org/wiki/Regular_expression\n", "- https://regexr.com/ (pratik amaçlı)\n", "\n", "**Python**\n", "- https://docs.python.org/3/howto/regex.html\n", "- https://docs.python.org/3/library/re.html" ] }, { "cell_type": "markdown", "metadata": { "id": "GwqZZyGrNP12" }, "source": [ "## json" ] }, { "cell_type": "markdown", "metadata": { "id": "MH6E3UfyNP13" }, "source": [ "### jsondan pythona" ] }, { "cell_type": "markdown", "metadata": { "id": "ZN4qHLaRNP13" }, "source": [ "json yapısı python dictionary'lerine çok benzer. elde edeceğimiz nesne de bir dictionary olacaktır" ] }, { "cell_type": "code", "execution_count": 227, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:50:09.106861Z", "start_time": "2021-04-11T10:50:09.100878Z" }, "id": "oJVvrFqFNP13" }, "outputs": [], "source": [ "import json" ] }, { "cell_type": "code", "execution_count": 228, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:50:09.603020Z", "start_time": "2021-04-11T10:50:09.595037Z" }, "id": "wP1nOj35NP13", "outputId": "5edbf058-7746-4e12-fe4a-33643d07acf3", "colab": { "base_uri": "https://localhost:8080/", "height": 71 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "str" ] }, "metadata": {}, "execution_count": 228 }, { "output_type": "execute_result", "data": { "text/plain": [ "dict" ] }, "metadata": {}, "execution_count": 228 }, { "output_type": "execute_result", "data": { "text/plain": [ "'John'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 228 } ], "source": [ "#örnek bir json stringden\n", "x = '{ \"name\":\"John\", \"age\":30, \"city\":\"New York\"}'\n", "y=json.loads(x) #dcitionary olarak yükler\n", "type(x)\n", "type(y)\n", "y[\"name\"]" ] }, { "cell_type": "code", "execution_count": 231, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:51:12.111273Z", "start_time": "2021-04-11T10:51:12.102295Z" }, "id": "9TkJmx4gNP13", "outputId": "26a2d4ba-7607-418e-b62d-8f903cec694c", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "dict" ] }, "metadata": {}, "execution_count": 231 }, { "output_type": "execute_result", "data": { "text/plain": [ "{'Bolge': {'0': 'Akdeniz', '1': 'Marmara', '2': 'Akdeniz', '3': 'Marmara'},\n", " 'Yil': {'0': 2020, '1': 2020, '2': 2021, '3': 2021},\n", " 'Satis': {'0': 10, '1': 15, '2': 42, '3': 56}}" ] }, "metadata": {}, "execution_count": 231 } ], "source": [ "#veya json dosyadan. ama bu indenti dikkate almıyor, çünkü elde edilen nesne bi string değil, dictionary\n", "import io\n", "with io.open(\"/content/drive/MyDrive/Programming/PythonRocks/dataset/json/indentli_bolgesatis.json\", 'r') as f:\n", " data = json.load(f)\n", "type(data)\n", "data" ] }, { "cell_type": "code", "execution_count": 232, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:52:53.530875Z", "start_time": "2021-04-11T10:52:53.525888Z" }, "scrolled": true, "id": "hRNmBbs7NP13", "outputId": "114afbfe-5d59-4643-ba51-3020d03313f5", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{\n", " \"Bolge\":{\n", " \"0\":\"Akdeniz\",\n", " \"1\":\"Marmara\",\n", " \"2\":\"Akdeniz\",\n", " \"3\":\"Marmara\"\n", " },\n", " \"Yil\":{\n", " \"0\":2020,\n", " \"1\":2020,\n", " \"2\":2021,\n", " \"3\":2021\n", " },\n", " \"Satis\":{\n", " \"0\":10,\n", " \"1\":15,\n", " \"2\":42,\n", " \"3\":56\n", " }\n", "}\n" ] } ], "source": [ "#indentli formatı yazdırmak istersek dosya okuması yaparak bi string içine okuruz\n", "with io.open(\"/content/drive/MyDrive/Programming/PythonRocks/dataset/json/indentli_bolgesatis.json\", mode='r') as f:\n", " content=f.read() # bu stringdir, ve indentli yapı korunmuştur\n", "print(content)" ] }, { "cell_type": "code", "execution_count": 233, "metadata": { "scrolled": true, "id": "1KVAmiwdNP14", "outputId": "4b240885-5cbc-4d9a-d41c-91efb1b36097", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{\n", " \"columns\":[\n", " \"Bolge\",\n", " \"Yil\",\n", " \"Satis\"\n", " ],\n", " \"data\":[\n", " [\n", " \"Akdeniz\",\n", " 2020,\n", " 10\n", " ],\n", " [\n", " \"Marmara\",\n", " 2020,\n", " 15\n", " ],\n", " [\n", " \"Akdeniz\",\n", " 2021,\n", " 42\n", " ],\n", " [\n", " \"Marmara\",\n", " 2021,\n", " 56\n", " ]\n", " ]\n", "}\n" ] } ], "source": [ "#split oriented kaydedilmiş dosyadan\n", "with io.open(\"/content/drive/MyDrive/Programming/PythonRocks/dataset/json/indentli_bolgesatis_split.json\", mode='r') as f:\n", " content=f.read()\n", "print(content)" ] }, { "cell_type": "code", "execution_count": 234, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:54:03.948942Z", "start_time": "2021-04-11T10:54:03.598989Z" }, "scrolled": true, "id": "5G-iiEBINP14", "outputId": "17d65dbf-4a64-417c-f105-e290fedf1853", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{\n", " \"schema\":{\n", " \"fields\":[\n", " {\n", " \"name\":\"Bolge\",\n", " \"type\":\"string\"\n", " },\n", " {\n", " \"name\":\"Yil\",\n", " \"type\":\"integer\"\n", " },\n", " {\n", " \"name\":\"Satis\",\n", " \"type\":\"integer\"\n", " }\n", " ],\n", " \"pandas_version\":\"0.20.0\"\n", " },\n", " \"data\":[\n", " {\n", " \"Bolge\":\"Akdeniz\",\n", " \"Yil\":2020,\n", " \"Satis\":10\n", " },\n", " {\n", " \"Bolge\":\"Marmara\",\n", " \"Yil\":2020,\n", " \"Satis\":15\n", " },\n", " {\n", " \"Bolge\":\"Akdeniz\",\n", " \"Yil\":2021,\n", " \"Satis\":42\n", " },\n", " {\n", " \"Bolge\":\"Marmara\",\n", " \"Yil\":2021,\n", " \"Satis\":56\n", " }\n", " ]\n", "}\n" ] } ], "source": [ "#table oriented kaydedilmiş dosyadan\n", "with io.open(\"/content/drive/MyDrive/Programming/PythonRocks/dataset/json/indentli_bolgesatis_table.json\", mode='r') as f:\n", " content=f.read()\n", "print(content)" ] }, { "cell_type": "code", "execution_count": 235, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:54:05.350155Z", "start_time": "2021-04-11T10:54:05.343174Z" }, "id": "Q_41Obj_NP14", "outputId": "3c9d6fb0-5467-4f71-951c-71aec5aa7a26", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "dict" ] }, "metadata": {}, "execution_count": 235 }, { "output_type": "execute_result", "data": { "text/plain": [ "{'schema': {'fields': [{'name': 'Bolge', 'type': 'string'},\n", " {'name': 'Yil', 'type': 'integer'},\n", " {'name': 'Satis', 'type': 'integer'}],\n", " 'pandas_version': '0.20.0'},\n", " 'data': [{'Bolge': 'Akdeniz', 'Yil': 2020, 'Satis': 10},\n", " {'Bolge': 'Marmara', 'Yil': 2020, 'Satis': 15},\n", " {'Bolge': 'Akdeniz', 'Yil': 2021, 'Satis': 42},\n", " {'Bolge': 'Marmara', 'Yil': 2021, 'Satis': 56}]}" ] }, "metadata": {}, "execution_count": 235 } ], "source": [ "c=json.loads(content)\n", "type(c)\n", "c" ] }, { "cell_type": "code", "execution_count": 236, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:54:13.377699Z", "start_time": "2021-04-11T10:54:13.369758Z" }, "id": "k2jY8dmbNP14", "outputId": "5cc913d8-e0b6-400f-99c4-4a5de5ac1f09", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'Akdeniz'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 236 } ], "source": [ "#içteki tek bir bilgiye ulaşma\n", "c[\"data\"][0][\"Bolge\"] #dict of list of dict" ] }, { "cell_type": "code", "execution_count": 237, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T10:54:14.362891Z", "start_time": "2021-04-11T10:54:14.358940Z" }, "id": "9THsxWPVNP15", "outputId": "d7b24dfc-50a4-4fda-945e-9d2cfd4525ca", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Akdeniz\n", "Marmara\n", "Akdeniz\n", "Marmara\n" ] } ], "source": [ "#tüm bölgeleri alma\n", "for l in c[\"data\"]:\n", " print(l[\"Bolge\"])" ] }, { "cell_type": "markdown", "metadata": { "id": "ycJ0g1LtNP15" }, "source": [ "### pythondan jsona" ] }, { "cell_type": "code", "execution_count": 238, "metadata": { "id": "6XY4uNXINP15", "outputId": "67beeaef-c239-480b-9da9-7efb469075be", "colab": { "base_uri": "https://localhost:8080/", "height": 71 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "dict" ] }, "metadata": {}, "execution_count": 238 }, { "output_type": "execute_result", "data": { "text/plain": [ "str" ] }, "metadata": {}, "execution_count": 238 }, { "output_type": "execute_result", "data": { "text/plain": [ "'{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 238 } ], "source": [ "x = {\n", " \"name\": \"John\",\n", " \"age\": 30,\n", " \"city\": \"New York\"\n", "}\n", "\n", "j = json.dumps(x)\n", "type(x)\n", "type(j)\n", "j" ] }, { "cell_type": "code", "execution_count": 239, "metadata": { "id": "ZtP7EQwpNP16", "outputId": "79ad0169-ff34-4ebb-dde9-e20dd2fb54be", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{\"name\": \"John\", \"age\": 30, \"married\": true, \"divorced\": false, \"children\": [\"Ann\", \"Billy\"], \"pets\": null, \"cars\": [{\"model\": \"BMW 230\", \"mpg\": 27.5}, {\"model\": \"Ford Edge\", \"mpg\": 24.1}]}\n" ] } ], "source": [ "#komplike(nested) json\n", "x = {\n", " \"name\": \"John\",\n", " \"age\": 30,\n", " \"married\": True,\n", " \"divorced\": False,\n", " \"children\": (\"Ann\",\"Billy\"),\n", " \"pets\": None,\n", " \"cars\": [\n", " {\"model\": \"BMW 230\", \"mpg\": 27.5},\n", " {\"model\": \"Ford Edge\", \"mpg\": 24.1}\n", " ]\n", "}\n", "\n", "print(json.dumps(x))" ] }, { "cell_type": "code", "execution_count": 240, "metadata": { "id": "Z9HyTevzNP16", "outputId": "349dbdf7-2774-4bce-eda3-3ed06f8e6525", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{\n", " \"name\": \"John\",\n", " \"age\": 30,\n", " \"married\": true,\n", " \"divorced\": false,\n", " \"children\": [\n", " \"Ann\",\n", " \"Billy\"\n", " ],\n", " \"pets\": null,\n", " \"cars\": [\n", " {\n", " \"model\": \"BMW 230\",\n", " \"mpg\": 27.5\n", " },\n", " {\n", " \"model\": \"Ford Edge\",\n", " \"mpg\": 24.1\n", " }\n", " ]\n", "}\n" ] } ], "source": [ "#bu da şık hali\n", "print(json.dumps(x,indent=4))" ] }, { "cell_type": "code", "execution_count": 241, "metadata": { "id": "KdCqAtjUNP16", "outputId": "33cb15d7-09c7-4631-ee98-87696ab386b5", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "{\n", " \"age\": 30,\n", " \"cars\": [\n", " {\n", " \"model\": \"BMW 230\",\n", " \"mpg\": 27.5\n", " },\n", " {\n", " \"model\": \"Ford Edge\",\n", " \"mpg\": 24.1\n", " }\n", " ],\n", " \"children\": [\n", " \"Ann\",\n", " \"Billy\"\n", " ],\n", " \"divorced\": false,\n", " \"married\": true,\n", " \"name\": \"John\",\n", " \"pets\": null\n", "}\n" ] } ], "source": [ "print(json.dumps(x,indent=4,sort_keys=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "t0GIaoxuNP16" }, "source": [ "Bunları aşağıdaki I/O işlemleriyle bir dosyaya da yazdırabilirsiniz." ] }, { "cell_type": "markdown", "metadata": { "id": "W_Azx01eNP16" }, "source": [ "## Request" ] }, { "cell_type": "markdown", "metadata": { "id": "c9pQ-nD9NP17" }, "source": [ "https://realpython.com/python-requests/ sitesinden faydalandım" ] }, { "cell_type": "markdown", "metadata": { "id": "sLIO_t5oNP17" }, "source": [ "### Basics" ] }, { "cell_type": "code", "execution_count": 242, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:34:22.862704Z", "start_time": "2021-05-15T15:34:22.641341Z" }, "id": "p9pEubABNP17" }, "outputs": [], "source": [ "import requests" ] }, { "cell_type": "code", "execution_count": 243, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:34:24.362239Z", "start_time": "2021-05-15T15:34:24.358213Z" }, "id": "kFF-hydsNP17" }, "outputs": [], "source": [ "httpget0=r\"https://www.excelinefendisi.com/httpapiservice/ResponseveRequestTarget.aspx\" #buna parametre verebiliyoruz, Anakonu=VBAMakro, Altkonu=Temeller\n", "httpget0j=r\"https://www.excelinefendisi.com/httpapiservice/ReturnJson.aspx\" #tüm duyurlar as json\n", "httpget3=r\"https://httpbin.org/get\" #as json\n", "httpget4img=r\"https://httpbin.org/image\"\n", "httpget5=r\"https://www.google.com/search?q=excel&oq=excel&aqs=chrome..69i57j35i39l2j0i433l4j46i433l2j0.839j0j15&sourceid=chrome&ie=UTF-8\"\n", "httpget6githubjson=r\"https://raw.githubusercontent.com/VolkiTheDreamer/dataset/master/json/bolgesatis.json\"\n", "\n", "httppost3=r\"https://httpbin.org/post\"" ] }, { "cell_type": "code", "execution_count": 244, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:34:29.194045Z", "start_time": "2021-05-15T15:34:28.511013Z" }, "id": "suK8G-UYNP17" }, "outputs": [], "source": [ "r=requests.get(httpget3)" ] }, { "cell_type": "code", "execution_count": 245, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:34:32.053841Z", "start_time": "2021-05-15T15:34:32.048854Z" }, "id": "NFHER8uYNP17", "outputId": "3f1885af-8b11-4b33-ed6e-d151b5974f01", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'Date': 'Sun, 22 Sep 2024 15:26:54 GMT', 'Content-Type': 'application/json', 'Content-Length': '307', 'Connection': 'keep-alive', 'Server': 'gunicorn/19.9.0', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true'}" ] }, "metadata": {}, "execution_count": 245 } ], "source": [ "r.headers" ] }, { "cell_type": "code", "execution_count": 246, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:34:36.018195Z", "start_time": "2021-05-15T15:34:34.687476Z" }, "id": "vMb7XEH2NP18", "outputId": "bdcb0f0a-276e-4f2f-f171-d6b08c5933e3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 246 } ], "source": [ "requests.get('http://volkanyurtseven.com')" ] }, { "cell_type": "code", "execution_count": 247, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:18:33.490545Z", "start_time": "2021-04-12T11:18:32.595460Z" }, "id": "mSrSW1NGNP18", "outputId": "3d5d55ab-4d91-4742-bdfd-f98dda647142", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "site çalışmıyor\n" ] } ], "source": [ "try:\n", " requests.get('https://volkanyurtseven.com') #https versiyonu yok, hata alcaz\n", " print(\"site çalışıyor\")\n", "except:\n", " print(\"site çalışmıyor\")" ] }, { "cell_type": "code", "execution_count": 248, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:18:46.903444Z", "start_time": "2021-04-12T11:18:46.773750Z" }, "id": "t1BPrEGDNP18", "outputId": "e1bde44f-db1b-42a1-dfe9-2aa3ad1ce70b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 248 } ], "source": [ "requests.get('http://volkanyurtseven.com/olmayansayfa') #bu sefer site doğru ama bahsekonu sayfa yoksa 404" ] }, { "cell_type": "code", "execution_count": 249, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:18:52.376056Z", "start_time": "2021-04-12T11:18:52.246402Z" }, "id": "9gXqkxYYNP18", "outputId": "4cf9fce1-905a-4810-d32f-b5059d3e11e7", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "200" ] }, "metadata": {}, "execution_count": 249 } ], "source": [ "response = requests.get('http://volkanyurtseven.com')\n", "response.status_code" ] }, { "cell_type": "code", "execution_count": 250, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:50:00.510411Z", "start_time": "2021-04-12T11:50:00.239067Z" }, "scrolled": true, "id": "qVhplpG1NP19", "outputId": "595db2ba-8acb-4079-d6ee-cc1e8d78d275", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "b'{\\n \"args\": {}, \\n \"headers\": {\\n \"Accept\": \"*/*\", \\n \"Accept-Encoding\": \"gzip, deflate\", \\n \"Host\": \"httpbin.org\", \\n \"User-Agent\": \"python-requests/2.32.3\", \\n \"X-Amzn-Trace-Id\": \"Root=1-66f03742-6923173002866a3c50f6dfc5\"\\n }, \\n \"origin\": \"34.16.168.234\", \\n \"url\": \"https://httpbin.org/get\"\\n}\\n'" ] }, "metadata": {}, "execution_count": 250 } ], "source": [ "response = requests.get(httpget3)\n", "response.content #byte olarak" ] }, { "cell_type": "code", "execution_count": 251, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:50:02.611257Z", "start_time": "2021-04-12T11:50:02.604275Z" }, "id": "CC-Ru5WBNP19", "outputId": "45bf2b51-72e2-40b7-b3f8-6c69ce234f2e", "colab": { "base_uri": "https://localhost:8080/", "height": 53 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'{\\n \"args\": {}, \\n \"headers\": {\\n \"Accept\": \"*/*\", \\n \"Accept-Encoding\": \"gzip, deflate\", \\n \"Host\": \"httpbin.org\", \\n \"User-Agent\": \"python-requests/2.32.3\", \\n \"X-Amzn-Trace-Id\": \"Root=1-66f03742-6923173002866a3c50f6dfc5\"\\n }, \\n \"origin\": \"34.16.168.234\", \\n \"url\": \"https://httpbin.org/get\"\\n}\\n'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 251 } ], "source": [ "response.text #string olarak" ] }, { "cell_type": "code", "execution_count": 252, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:50:07.692493Z", "start_time": "2021-04-12T11:50:07.689491Z" }, "id": "dQuY_FaMNP19", "outputId": "69ef30ae-edcb-41db-9ed1-876230c534b1", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 252 } ], "source": [ "response.raw" ] }, { "cell_type": "markdown", "metadata": { "id": "aT_D0icCNP19" }, "source": [ "Böyle çok karışık oldu, bunu json olarak okuyalım. ama tabi önce bunun son versiyonuna tekrar bi get atalım." ] }, { "cell_type": "code", "execution_count": 253, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:50:45.445755Z", "start_time": "2021-04-12T11:50:45.165506Z" }, "id": "w_4RI0kZNP1-", "outputId": "805a936b-4645-4d61-ae0c-ead5c614035a", "colab": { "base_uri": "https://localhost:8080/", "height": 53 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'{\\n \"args\": {}, \\n \"headers\": {\\n \"Accept\": \"*/*\", \\n \"Accept-Encoding\": \"gzip, deflate\", \\n \"Host\": \"httpbin.org\", \\n \"User-Agent\": \"python-requests/2.32.3\", \\n \"X-Amzn-Trace-Id\": \"Root=1-66f03743-514f57731ffeb7ce34129485\"\\n }, \\n \"origin\": \"34.16.168.234\", \\n \"url\": \"https://httpbin.org/get\"\\n}\\n'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 253 } ], "source": [ "#hala biraz okunaklı değil gibi\n", "response = requests.get(httpget3)\n", "response.text" ] }, { "cell_type": "code", "execution_count": 254, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:50:31.769676Z", "start_time": "2021-04-12T11:50:31.761693Z" }, "id": "WQ895eaFNP1-", "outputId": "0ae60c50-7a8e-4edd-f5c1-0c25a66aea06", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'args': {},\n", " 'headers': {'Accept': '*/*',\n", " 'Accept-Encoding': 'gzip, deflate',\n", " 'Host': 'httpbin.org',\n", " 'User-Agent': 'python-requests/2.32.3',\n", " 'X-Amzn-Trace-Id': 'Root=1-66f03743-514f57731ffeb7ce34129485'},\n", " 'origin': '34.16.168.234',\n", " 'url': 'https://httpbin.org/get'}" ] }, "metadata": {}, "execution_count": 254 } ], "source": [ "json.loads(response.text)" ] }, { "cell_type": "code", "execution_count": 255, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:49:39.489580Z", "start_time": "2021-04-12T11:49:39.480603Z" }, "id": "K_c3PGEENP1-", "outputId": "0bf71ddb-0530-401e-86d2-0d70fa5ead3f", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'args': {},\n", " 'headers': {'Accept': '*/*',\n", " 'Accept-Encoding': 'gzip, deflate',\n", " 'Host': 'httpbin.org',\n", " 'User-Agent': 'python-requests/2.32.3',\n", " 'X-Amzn-Trace-Id': 'Root=1-66f03743-514f57731ffeb7ce34129485'},\n", " 'origin': '34.16.168.234',\n", " 'url': 'https://httpbin.org/get'}" ] }, "metadata": {}, "execution_count": 255 } ], "source": [ "#veya responseun json metopdunu kullanabiliriz\n", "response.json()" ] }, { "cell_type": "markdown", "metadata": { "id": "oQpsp8BiNP1-" }, "source": [ "It should be noted that the success of the call to r.json() does not indicate the success of the response. Some servers may return a JSON object in a failed response (e.g. error details with HTTP 500). Such JSON will be decoded and returned. To check that a request is successful, use r.raise_for_status() or check r.status_code is what you expect." ] }, { "cell_type": "code", "execution_count": 256, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:51:01.521114Z", "start_time": "2021-04-12T11:51:01.517158Z" }, "id": "Y-yvVvIFNP1-", "outputId": "2f259fb0-8286-4ec4-aec1-c225ec78b0bf", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "200" ] }, "metadata": {}, "execution_count": 256 } ], "source": [ "response.raise_for_status()\n", "response.status_code" ] }, { "cell_type": "code", "execution_count": 257, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:51:09.536268Z", "start_time": "2021-04-12T11:51:09.531280Z" }, "id": "MRIBCQXlNP1_", "outputId": "d42a67b4-76b0-44d6-c3b4-e00c1f39f527", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'Date': 'Sun, 22 Sep 2024 15:26:59 GMT',\n", " 'Content-Type': 'application/json',\n", " 'Content-Length': '307',\n", " 'Connection': 'keep-alive',\n", " 'Server': 'gunicorn/19.9.0',\n", " 'Access-Control-Allow-Origin': '*',\n", " 'Access-Control-Allow-Credentials': 'true'}" ] }, "metadata": {}, "execution_count": 257 } ], "source": [ "dict(response.headers)" ] }, { "cell_type": "code", "execution_count": 258, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:51:15.329872Z", "start_time": "2021-04-12T11:51:15.323889Z" }, "id": "pCFUpP0ONP1_", "outputId": "90b9edf9-e069-43e3-a532-d0f0f3d8d795", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'application/json'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 258 } ], "source": [ "response.headers['Content-Type']" ] }, { "cell_type": "markdown", "metadata": { "id": "OZXIKvJiNP1_" }, "source": [ "### QueryString parameters" ] }, { "cell_type": "code", "execution_count": 259, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:51:35.981224Z", "start_time": "2021-04-12T11:51:34.739424Z" }, "id": "A8MuEWfwNP1_", "outputId": "2b4745f4-53d3-44d2-a5bc-4a45db5a2750", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Repository name: secrules-language-evaluation\n", "Repository description: Set of Python scripts to perform SecRules language evaluation on a given http request.\n", "https://api.github.com/search/repositories?q=requests%2Blanguage%3Apython\n" ] } ], "source": [ "# Search GitHub's repositories for requests\n", "response = requests.get(\n", " 'https://api.github.com/search/repositories',\n", " params={'q': 'requests+language:python'},\n", ")\n", "\n", "# Inspect some attributes of the `requests` repository\n", "json_response = response.json()\n", "repository = json_response['items'][0]\n", "print(f'Repository name: {repository[\"name\"]}') # Python 3.6+\n", "print(f'Repository description: {repository[\"description\"]}') # Python 3.6+\n", "print(response.url)" ] }, { "cell_type": "code", "execution_count": 260, "metadata": { "ExecuteTime": { "end_time": "2021-04-12T11:51:36.220773Z", "start_time": "2021-04-12T11:51:35.991157Z" }, "id": "gji0Xwf1NP1_", "outputId": "2920a2bd-235f-4cbf-ba34-f42f7a03f573", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "https://www.excelinefendisi.com/httpapiservice/ResponseveRequestTarget.aspx?Anakonu=VBAMakro&Altkonu=Temeller\n" ] } ], "source": [ "response = requests.get(\n", " 'https://www.excelinefendisi.com/httpapiservice/ResponseveRequestTarget.aspx',\n", " params={'Anakonu':'VBAMakro', 'Altkonu':'Temeller'},\n", ")\n", "\n", "print(response.url)" ] }, { "cell_type": "code", "execution_count": 261, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T11:54:43.262529Z", "start_time": "2021-04-11T11:54:43.257543Z" }, "id": "5irgpaj_NP2A", "outputId": "2c6f96ae-621c-4582-82d8-f89887510002", "colab": { "base_uri": "https://localhost:8080/", "height": 125 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Genel bilgier

\\r\\n VBAMakro anakousu ve Temeller altkonusu altında toplam 5 adet konu var

\\r\\n
\\r\\n
\\r\\n

Data bölgesi

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 261 } ], "source": [ "response.text" ] }, { "cell_type": "code", "execution_count": 262, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T11:48:29.128562Z", "start_time": "2021-04-11T11:48:28.375577Z" }, "id": "wedIz7JuNP2A" }, "outputs": [], "source": [ "payload = {'key1': 'value1', 'key2': 'value2'}\n", "r = requests.get('https://httpbin.org/get', params=payload)" ] }, { "cell_type": "markdown", "metadata": { "id": "Zg-_6jfqNP2A" }, "source": [ "### Headers" ] }, { "cell_type": "code", "execution_count": 263, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T11:49:45.766142Z", "start_time": "2021-04-11T11:49:45.761157Z" }, "id": "sevAAWy_NP2A", "outputId": "13cd6f19-cfd0-4a5b-8918-db616b4d6fa4", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'Date': 'Sun, 22 Sep 2024 15:27:02 GMT', 'Content-Type': 'application/json', 'Content-Length': '378', 'Connection': 'keep-alive', 'Server': 'gunicorn/19.9.0', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true'}" ] }, "metadata": {}, "execution_count": 263 } ], "source": [ "r.headers" ] }, { "cell_type": "code", "execution_count": 264, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:30:34.969712Z", "start_time": "2021-04-11T15:30:33.026070Z" }, "id": "Kj9A2F0lNP2A", "outputId": "a096b30e-00fb-4753-d627-de922d43acef", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Text matches: [{'object_url': 'https://api.github.com/repositories/33210074', 'object_type': 'Repository', 'property': 'description', 'fragment': 'Set of Python scripts to perform SecRules language evaluation on a given http request.', 'matches': [{'text': 'Python', 'indices': [7, 13]}, {'text': 'language', 'indices': [42, 50]}, {'text': 'request', 'indices': [78, 85]}]}]\n" ] } ], "source": [ "#custimize header\n", "response = requests.get(\n", " 'https://api.github.com/search/repositories',\n", " params={'q': 'requests+language:python'},\n", " headers={'Accept': 'application/vnd.github.v3.text-match+json'},\n", ")\n", "\n", "# View the new `text-matches` array which provides information\n", "# about your search term within the results\n", "json_response = response.json()\n", "repository = json_response['items'][0]\n", "print(f'Text matches: {repository[\"text_matches\"]}')" ] }, { "cell_type": "code", "execution_count": 265, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:32:08.420664Z", "start_time": "2021-04-11T15:32:04.440680Z" }, "id": "J8llQRkZNP2B", "outputId": "6be386b6-0ab9-4389-9880-e13c803bad38", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 265 }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 265 }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 265 }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 265 }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 265 }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 265 } ], "source": [ "requests.post('https://httpbin.org/post', data={'key':'value'})\n", "requests.put('https://httpbin.org/put', data={'key':'value'})\n", "requests.delete('https://httpbin.org/delete')\n", "requests.head('https://httpbin.org/get')\n", "requests.patch('https://httpbin.org/patch', data={'key':'value'})\n", "requests.options('https://httpbin.org/get')" ] }, { "cell_type": "code", "execution_count": 266, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:38:34.572083Z", "start_time": "2021-04-11T15:38:33.892213Z" }, "id": "d5dkc-WuNP2B", "outputId": "7ff58a19-b1b7-43b7-b015-38caa766d0d4", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'application/json'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 266 } ], "source": [ "response = requests.head('https://httpbin.org/get')\n", "response.headers['Content-Type']" ] }, { "cell_type": "code", "execution_count": 267, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:38:35.242197Z", "start_time": "2021-04-11T15:38:34.581059Z" }, "id": "WYFFyWK5NP2B", "outputId": "c28564c0-9cfa-41be-c4ae-50360092a752", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{}" ] }, "metadata": {}, "execution_count": 267 } ], "source": [ "response = requests.delete('https://httpbin.org/delete')\n", "json_response = response.json()\n", "json_response['args']" ] }, { "cell_type": "code", "execution_count": 267, "metadata": { "id": "uBIXUnWINP2B" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "JBq0Jus3NP2B" }, "source": [ "According to the HTTP specification, POST, PUT, and the less common PATCH requests pass their data through the message body rather than through parameters in the query string." ] }, { "cell_type": "code", "execution_count": 268, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:42:05.930360Z", "start_time": "2021-04-11T15:42:05.214746Z" }, "id": "TEJ5QWWINP2B", "outputId": "c5b8451b-8960-4af7-ab43-7156f92fa0e2", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 268 } ], "source": [ "requests.post('https://httpbin.org/post', data={'key':'value'}) #veya data=[('key', 'value')]" ] }, { "cell_type": "code", "execution_count": 269, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:42:05.930360Z", "start_time": "2021-04-11T15:42:05.214746Z" }, "id": "mzxTUWMyNP2C", "outputId": "061fdd6b-ef46-42ad-ed26-cbf287da833f", "colab": { "base_uri": "https://localhost:8080/", "height": 53 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'{\"key\": \"value\"}'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 269 }, { "output_type": "execute_result", "data": { "text/plain": [ "'application/json'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 269 } ], "source": [ "response = requests.post('https://httpbin.org/post', json={'key':'value'})\n", "json_response = response.json()\n", "json_response['data']\n", "json_response['headers']['Content-Type']" ] }, { "cell_type": "code", "execution_count": 270, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:43:12.381811Z", "start_time": "2021-04-11T15:43:10.781580Z" }, "id": "HkoeyFP8NP2C", "outputId": "a44efcf5-d338-4e21-a047-706fa48e8471", "colab": { "base_uri": "https://localhost:8080/", "height": 71 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'application/json'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 270 }, { "output_type": "execute_result", "data": { "text/plain": [ "'https://httpbin.org/post'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 270 }, { "output_type": "execute_result", "data": { "text/plain": [ "b'{\"key\": \"value\"}'" ] }, "metadata": {}, "execution_count": 270 } ], "source": [ "response = requests.post('https://httpbin.org/post', json={'key':'value'})\n", "response.request.headers['Content-Type']\n", "response.request.url\n", "response.request.body" ] }, { "cell_type": "code", "execution_count": 271, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:44:21.560506Z", "start_time": "2021-04-11T15:44:21.551487Z" }, "id": "WkwQy86INP2C", "outputId": "cb742d6b-a725-47a0-cbc8-5a4780d4d3fd", "colab": { "base_uri": "https://localhost:8080/", "height": 125 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'https://httpbin.org/post'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 271 }, { "output_type": "execute_result", "data": { "text/plain": [ "{'Date': 'Sun, 22 Sep 2024 15:27:06 GMT', 'Content-Type': 'application/json', 'Content-Length': '481', 'Connection': 'keep-alive', 'Server': 'gunicorn/19.9.0', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true'}" ] }, "metadata": {}, "execution_count": 271 }, { "output_type": "execute_result", "data": { "text/plain": [ "'https://httpbin.org/post'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 271 }, { "output_type": "execute_result", "data": { "text/plain": [ "{'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '16', 'Content-Type': 'application/json'}" ] }, "metadata": {}, "execution_count": 271 } ], "source": [ "response.url\n", "response.headers\n", "response.request.url\n", "response.request.headers" ] }, { "cell_type": "code", "execution_count": 272, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T15:46:11.366531Z", "start_time": "2021-04-11T15:46:07.443303Z" }, "id": "Ar-7Lm2INP2C", "outputId": "66148973-0f66-4780-9b7c-134a196d23e0", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "··········\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 272 } ], "source": [ "#authentication\n", "from getpass import getpass\n", "requests.get('https://api.github.com/user', auth=('username', getpass()))" ] }, { "cell_type": "markdown", "metadata": { "id": "UEBYM_WtNP2C" }, "source": [ "### webserive" ] }, { "cell_type": "markdown", "metadata": { "id": "TxzHfG0uNP2D" }, "source": [ "## BeautifulSoup" ] }, { "cell_type": "markdown", "metadata": { "id": "vx_97dK0NP2D" }, "source": [ "https://realpython.com/beautiful-soup-web-scraper-python/" ] }, { "cell_type": "code", "execution_count": 273, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:36:30.137338Z", "start_time": "2021-05-15T15:36:28.992174Z" }, "id": "Si95rGouNP2D" }, "outputs": [], "source": [ "URL = 'https://www.monster.com/jobs/search/?q=Software-Developer&where=Australia'\n", "page = requests.get(URL)" ] }, { "cell_type": "code", "execution_count": 274, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:36:31.477395Z", "start_time": "2021-05-15T15:36:30.887143Z" }, "id": "GJ-K5HruNP2D" }, "outputs": [], "source": [ "import requests\n", "from bs4 import BeautifulSoup\n", "\n", "URL = 'https://www.excelinefendisi.com/Konular/Excel/Giris_PratikKisayollar.aspx'\n", "page = requests.get(URL)\n", "\n", "soup = BeautifulSoup(page.content, 'html.parser')" ] }, { "cell_type": "code", "execution_count": 275, "metadata": { "ExecuteTime": { "end_time": "2021-05-15T15:36:33.839511Z", "start_time": "2021-05-15T15:36:33.831531Z" }, "scrolled": true, "id": "K-NWhchbNP2E", "outputId": "cb6ba55a-a6af-4558-ff6d-9aa2b4f646b1", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
AmaçKısayol
Sayfalar arasında dolaşmakCTRL + PgUp/PgDn
Bugünün Tarihini yazmakCTRL + SHIFT +,
Tüm açık dosyalarda calculation yapmakF9
Seçili kısmın değerini hesaplayıp göstermekHücre içindeki formül seçilip F9
Aktif sayfada calculation yapmakSHIFT+F9
Sadece belli range için calculation yapmakVBA ile yapılır. Burdan bakın.
Bulunduğun hücrenin CurrentRegion'ını seçmeCTRL+ A
Bulunduğun hücreden CurrentRegion'ın uç noktlarına gitmekCTRL+ Ok tuşları
Bulunduğun hücreden itibaren belli bir yöne doğru seçim yapmakSHIFT+Ok tuşları
Bulunduğun hücreden itibaren CurrentRegion bir ucuna doğru toplu seçim yapmakCTRL+SHIFT+Ok tuşları
Bulunduğun hücreden CurrentRegion'ın Sağ Aşağı uç noktlasına gitmekCTRL+END
Bulunduğun hücreden CurrentRegion'ın Sağ Aşağı uç noktlasına kadar seçmekCTRL+SHIFT+END
Bulunduğun hücreden A1 hücresine kadar olan alanı(sol yukarı) seçmekCTRL+SHIFT+HOME
Bir hücre içinde veri girerken, aynı hücre içinde yeni bir satır açıp oradan devam etmekALT+ENTER
Veri/Formül girişi yaptığınız hücrede alt hücreye geçmeden giriş tamamlamak CTRL+ENTER
Ekranda bir sayfa sağa kaymak.ALT+PGE DOWN
AutoFilter'ı aktif/pasif hale getirmekCTRL+SHIFT+L
Bulunduğunuz hücrenin satır ve sütununa aynı anda freeze uygulamak/kaldırmakAlt+W+FF
VBA editörünü açmakAlt+F11
Ribbonu küçültüp/büyütmekCTRL+F1
Üst hücrelerdeki tüm rakamların toplamını almakALT+=
Flash Fill uygulamakCTRL+E
Sadece görünen hücreleri seçmekALT+;
\n", "\n" ] } ], "source": [ "results = soup.find_all(class_='alterantelitable')\n", "for r in results:\n", " print(r, end='\\n'*2)" ] }, { "cell_type": "markdown", "metadata": { "id": "51f4k7lrNP2E" }, "source": [ "Gereksiz elementlerden ve taglerden kurtulalım" ] }, { "cell_type": "code", "execution_count": 276, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T16:29:28.266800Z", "start_time": "2021-04-11T16:29:28.257824Z" }, "scrolled": true, "id": "pYqhdq3DNP2E", "outputId": "226501c1-8de7-4801-cac5-05b138ffbb53", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Sayfalar arasında dolaşmak\n", "CTRL + PgUp/PgDn\n", "Bugünün Tarihini yazmak\n", "CTRL + SHIFT +, \n", "Tüm açık dosyalarda calculation yapmak\n", "F9\n", "Seçili kısmın değerini hesaplayıp göstermek\n", "Hücre içindeki formül seçilip F9\n", "Aktif sayfada calculation yapmak\n", "SHIFT+F9\n", "Sadece belli range için calculation yapmak\n", "VBA ile yapılır. Burdan bakın.\n", "Bulunduğun hücrenin CurrentRegion'ını seçme\n", "CTRL+ A\n", "Bulunduğun hücreden CurrentRegion'ın uç noktlarına gitmek\n", "CTRL+ Ok tuşları\n", "Bulunduğun hücreden itibaren belli bir yöne doğru seçim yapmak\n", "SHIFT+Ok tuşları\n", "Bulunduğun hücreden itibaren CurrentRegion bir ucuna doğru toplu seçim yapmak\n", "CTRL+SHIFT+Ok tuşları\n", "Bulunduğun hücreden CurrentRegion'ın Sağ Aşağı uç noktlasına gitmek\n", "CTRL+END\n", "Bulunduğun hücreden CurrentRegion'ın Sağ Aşağı uç noktlasına kadar seçmek\n", "CTRL+SHIFT+END\n", "Bulunduğun hücreden A1 hücresine kadar olan alanı(sol yukarı) seçmek\n", "CTRL+SHIFT+HOME\n", "Bir hücre içinde veri girerken, aynı hücre içinde yeni bir satır açıp oradan devam etmek\n", "ALT+ENTER\n", "Veri/Formül girişi yaptığınız hücrede alt hücreye geçmeden giriş tamamlamak \n", "CTRL+ENTER\n", " Ekranda bir sayfa sağa kaymak.\n", "ALT+PGE DOWN\n", "AutoFilter'ı aktif/pasif hale getirmek\n", "CTRL+SHIFT+L\n", "Bulunduğunuz hücrenin satır ve sütununa aynı anda freeze uygulamak/kaldırmak\n", "Alt+W+FF\n", "VBA editörünü açmak\n", "Alt+F11\n", "Ribbonu küçültüp/büyütmek\n", "CTRL+F1\n", "Üst hücrelerdeki tüm rakamların toplamını almak\n", "ALT+=\n", "Flash Fill uygulamak\n", "CTRL+E\n", "Sadece görünen hücreleri seçmek\n", "ALT+;\n" ] } ], "source": [ "results = soup.find_all(class_='alterantelitable')\n", "for r in results:\n", " tds=r.find_all(\"td\")\n", " for td in tds:\n", " print(td.text)" ] }, { "cell_type": "markdown", "metadata": { "id": "8R_PjPfHNP2E" }, "source": [ "İşlemle ilgili kısayolu altalta değil de yanyana yazmasını sağlayalım," ] }, { "cell_type": "code", "execution_count": 277, "metadata": { "ExecuteTime": { "end_time": "2021-04-11T16:43:05.446075Z", "start_time": "2021-04-11T16:43:05.431291Z" }, "id": "csDNZGeHNP2F", "outputId": "de4eefe6-b523-4db6-e90d-d0d269f85f8b", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Sayfalar arasında dolaşmak : CTRL + PgUp/PgDn\n", "Bugünün Tarihini yazmak : CTRL + SHIFT +, \n", "Tüm açık dosyalarda calculation yapmak : F9\n", "Seçili kısmın değerini hesaplayıp göstermek : Hücre içindeki formül seçilip F9\n", "Aktif sayfada calculation yapmak : SHIFT+F9\n", "Sadece belli range için calculation yapmak : VBA ile yapılır. Burdan bakın.\n", "Bulunduğun hücrenin CurrentRegion'ını seçme : CTRL+ A\n", "Bulunduğun hücreden CurrentRegion'ın uç noktlarına gitmek : CTRL+ Ok tuşları\n", "Bulunduğun hücreden itibaren belli bir yöne doğru seçim yapmak : SHIFT+Ok tuşları\n", "Bulunduğun hücreden itibaren CurrentRegion bir ucuna doğru toplu seçim yapmak : CTRL+SHIFT+Ok tuşları\n", "Bulunduğun hücreden CurrentRegion'ın Sağ Aşağı uç noktlasına gitmek : CTRL+END\n", "Bulunduğun hücreden CurrentRegion'ın Sağ Aşağı uç noktlasına kadar seçmek : CTRL+SHIFT+END\n", "Bulunduğun hücreden A1 hücresine kadar olan alanı(sol yukarı) seçmek : CTRL+SHIFT+HOME\n", "Bir hücre içinde veri girerken, aynı hücre içinde yeni bir satır açıp oradan devam etmek : ALT+ENTER\n", "Veri/Formül girişi yaptığınız hücrede alt hücreye geçmeden giriş tamamlamak : CTRL+ENTER\n", " Ekranda bir sayfa sağa kaymak. : ALT+PGE DOWN\n", "AutoFilter'ı aktif/pasif hale getirmek : CTRL+SHIFT+L\n", "Bulunduğunuz hücrenin satır ve sütununa aynı anda freeze uygulamak/kaldırmak : Alt+W+FF\n", "VBA editörünü açmak : Alt+F11\n", "Ribbonu küçültüp/büyütmek : CTRL+F1\n", "Üst hücrelerdeki tüm rakamların toplamını almak : ALT+=\n", "Flash Fill uygulamak : CTRL+E\n", "Sadece görünen hücreleri seçmek : ALT+;\n" ] } ], "source": [ "results = soup.find_all(class_='alterantelitable')\n", "for r in results:\n", " trs=r.find_all(\"tr\")\n", " for tr in trs:\n", " td1=tr.select(\"td\")[0] #tr.find(\"td\") de olurdu ama aşağıdakiyle bütünlük olması adına ikisini de select ile yaptık\n", " td2=tr.select(\"td\")[1]\n", " print(td1.text,\":\",td2.text)" ] }, { "cell_type": "markdown", "metadata": { "id": "UAMBIdNvNP2G" }, "source": [ "Bunun bir de MechanicalSoup versiyonu var, onda websitelerindeki formları da otomatik doldurma işlemi yaptırabiliyorsunuz." ] }, { "cell_type": "markdown", "metadata": { "id": "MhE55BdvNP2G" }, "source": [ "## Logging" ] }, { "cell_type": "markdown", "metadata": { "id": "bka1Z3k2NP2G" }, "source": [ "Programınızı test ederken print değil bunu kullanmanız önerilir." ] }, { "cell_type": "code", "execution_count": 278, "metadata": { "ExecuteTime": { "end_time": "2021-05-12T20:51:08.220308Z", "start_time": "2021-05-12T20:51:08.214322Z" }, "scrolled": true, "id": "5O9wEIgdNP2G", "outputId": "f041b6b9-13a9-48f0-9ea3-601527e97c13", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "WARNING:root:This is a warning message\n", "ERROR:root:This is an error message\n", "CRITICAL:root:This is a critical message\n" ] } ], "source": [ "import logging\n", "\n", "logging.debug('This is a debug message')\n", "logging.info('This is an info message')\n", "#by default, the logging module logs the messages with a severity level of WARNING or above\n", "logging.warning('This is a warning message')\n", "logging.error('This is an error message')\n", "logging.critical('This is a critical message')" ] }, { "cell_type": "markdown", "metadata": { "id": "xk3DLOV3NP2G" }, "source": [ "root= default logger" ] }, { "cell_type": "code", "execution_count": 279, "metadata": { "ExecuteTime": { "end_time": "2021-05-12T20:55:46.385664Z", "start_time": "2021-05-12T20:55:46.381676Z" }, "id": "mg7IqQ4ONP2G", "outputId": "be829d2c-5910-4b89-c11c-833dc01ecd5a", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "DEBUG:root:This will get logged\n" ] } ], "source": [ "logging.basicConfig(level=logging.DEBUG,force=True) #son parametre gerekli. Detay için: https://stackoverflow.com/questions/30861524/logging-basicconfig-not-creating-log-file-when-i-run-in-pycharm/42210221\n", "logging.debug('This will get logged')" ] }, { "cell_type": "code", "execution_count": 280, "metadata": { "ExecuteTime": { "end_time": "2021-05-12T20:56:20.598673Z", "start_time": "2021-05-12T20:56:20.592689Z" }, "id": "wfoAAVXPNP2G" }, "outputs": [], "source": [ "logging.basicConfig(filename='app.log', filemode='w', format='%(name)s - %(levelname)s - %(message)s',force=True)\n", "logging.warning('This will get logged to a file')" ] }, { "cell_type": "code", "execution_count": 281, "metadata": { "ExecuteTime": { "end_time": "2021-05-12T21:01:25.865412Z", "start_time": "2021-05-12T21:01:25.861458Z" }, "id": "4Pr6c5K-NP2G", "outputId": "669451d9-de35-47b3-db05-3cc28263ecab", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "root - INFO - 2024-09-22 15:27:21,768 - Admin logged in\n" ] } ], "source": [ "logging.basicConfig(format='%(name)s - %(levelname)s - %(asctime)s - %(message)s', level=logging.INFO,force=True)\n", "logging.info('Admin logged in')" ] }, { "cell_type": "code", "execution_count": 282, "metadata": { "ExecuteTime": { "end_time": "2021-05-12T21:01:28.566129Z", "start_time": "2021-05-12T21:01:28.561176Z" }, "id": "7ix2oUooNP2H", "outputId": "680775a0-88d8-48ea-a7d3-2ca323bbf378", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "root - ERROR - 2024-09-22 15:27:21,801 - John raised an error\n" ] } ], "source": [ "name = 'John'\n", "logging.error(f'{name} raised an error')" ] }, { "cell_type": "code", "execution_count": 283, "metadata": { "ExecuteTime": { "end_time": "2021-05-12T21:02:03.896954Z", "start_time": "2021-05-12T21:02:03.892964Z" }, "id": "e8kdrYAINP2H", "outputId": "84511400-71fb-4713-cd41-66df36e571e3", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "root - ERROR - 2024-09-22 15:27:21,848 - Exception occurred\n", "Traceback (most recent call last):\n", " File \"\", line 5, in \n", " c = a / b\n", "ZeroDivisionError: division by zero\n" ] } ], "source": [ "a = 5\n", "b = 0\n", "\n", "try:\n", " c = a / b\n", "except Exception as e:\n", " logging.error(\"Exception occurred\", exc_info=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "LshsfDgTNP2H" }, "source": [ "## tqdm" ] }, { "cell_type": "markdown", "metadata": { "id": "DJtLjr4tNP2H" }, "source": [ "Döngüsel işlemlerde progressbar sağlar" ] }, { "cell_type": "code", "execution_count": 284, "metadata": { "id": "KrYPCMN9NP2H", "outputId": "1761a60f-4bc2-4b90-a2bb-e356dd9132fd", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████| 10/10 [00:01<00:00, 9.61it/s]\n" ] } ], "source": [ "from tqdm import tqdm, trange\n", "from time import sleep\n", "\n", "for i in tqdm(range(10)):\n", " sleep(.1)" ] }, { "cell_type": "code", "execution_count": 285, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "UKdGnJCmNP2I", "outputId": "4dc2bbd6-2e97-4188-ceb3-27059532243d" }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████| 100/100 [00:01<00:00, 96.83it/s]\n" ] } ], "source": [ "# Simple loop\n", "for i in range(100):\n", " pass\n", "\n", "# Loop with a progress bar\n", "for i in trange(100):\n", " time.sleep(0.01)" ] }, { "cell_type": "code", "execution_count": 286, "metadata": { "colab": { "referenced_widgets": [ "751edc7876624c858be3920a656bbe5a", "a17d5706940d471c8def62d24b380451", "94759083162b4ba7882beb31f5f5c0e6", "da19b67ccfca40f0ac6fea0079279b45", "451f673b411e45c89ba06581e24f3632", "34289f2781b94924ab52dcc7accc4f9b", "1178361d7b984b039fd0e5ee6a569adb", "125bc33900574ed692c44040871f04d0", "c26eb70f93b248e2b78df67a5b6ccc65", "13308604b83b4ff881bf2e86f199a654", "286b1c469c4f48c9b4dca098d506e0e2", "4b45e53206ac4335ad64c1bc76cf0a54", "94b5dcb00309447db4caf1ca5f2bca6c", "f34d953ef0f04222800959bad565983a", "4a35b3bf482b483bbe7f3979968b2b57", "f21bf8ef6c2543e5b9bd3a2006f37d99", "898d07425ae6424d9b373bcb23388625", "2ce64cb4ef464074a58d8d3985b7a4c3", "a30f9a14b37949aea2fe0577940e22d3", "803c924d944242399095d29937f7e046", "bd81728b56694c7493e07276209917a8", "e1a40e5aab3f40ebbb01cd40c1994a8b", "55a59a782aa84a98a6ae9a131707e7e4", "a2adb592ff3245869a0d6379148a97fa", "d9fb51af123045bfb01c0ca4ff71aadf", "f057770d640d4d768887b58b24a05698", "b2b1f12e421249369d42dee4ee11ff55", "c017e47d80f04575872ee21fa7dc9271", "1f31528beea8479db1929519dc36ebe0", "ff25dde586244614852fb29ffd51dac9", "2ad95d0a26034b62ad7a0941045a8bd6", "5dc1487f2b6a4a339d103355b6209569", "2193d83b7019419c86f9915866b79247", "a57d90da18644950b9ffc8517fe1df7b", "da5f50d542c14d8f898c9f76abd9709d", "8e86a15ad03845ed93fc85c7b82487d4", "0aa16e4c1d1d4059841e36d8b325971f", "9fd3dc999c6d4270a9ecfe2d8e8f5e1d", "6ec9be16d0354a8d87c177f2f68c49da", "10a3331d6fec4345a45b8f8f9d0a8146", "f125a24c6cf347a3b296a2906556be7a", "e618cb21d1d6458ca0374e8618dd4ca8", "2ddf420ed3dc4d429495f5ba7f922956", "1516a50c3d4342f693aefe40460d6dd2" ], "base_uri": "https://localhost:8080/", "height": 145 }, "id": "wgi0kDEPNP2J", "outputId": "a1d4a42d-6796-4150-e40e-65b47545c015" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "1st loop: 0%| | 0/3 [00:00Görsel bu sayfadan alınmıştır

\"\"\")\n", " \n", "def pythonSomeInfo():\n", " print(\"system packages folder:\",sys.prefix, end=\"\\n\\n\")\n", " print(\"pip install folder:\",site.getsitepackages(), end=\"\\n\\n\") \n", " print(\"python version:\", sys.version, end=\"\\n\\n\")\n", " print(\"executables location:\",sys.executable, end=\"\\n\\n\")\n", " print(\"pip version:\", os.popen('pip version').read(), end=\"\\n\\n\")\n", " pathes= sys.path\n", " print(\"Python pathes\")\n", " for p in pathes:\n", " print(p)\n", "\n", "\n", "def showMemoryUsage():\n", " dict_={}\n", " global_vars = list(globals().items())\n", " for var, obj in global_vars:\n", " if not var.startswith('_'):\n", " dict_[var]=sys.getsizeof(obj)\n", " \n", " final={k: v for k, v in sorted(dict_.items(), key=lambda item: item[1],reverse=True)} \n", " print(final)\n", " \n", "def readfile(path,enc='cp1254'):\n", " with io.open(path, \"r\", encoding=enc) as f:\n", " return f.read()\n", "\n", "def getFirstItemFromDictionary(dict_):\n", " return next(iter(dict_)),next(iter(dict_.values()))\n", " \n", "\n", "\n", "def removeItemsFromList(self,list2,inplace=True): \n", " \"\"\"\n", " Extension method for list type. Removes items from list2 from list1.\n", " First, forbiddenfruit must be installed via https://pypi.org/project/forbiddenfruit/\n", " \"\"\" \n", " if inplace:\n", " for x in set(list2):\n", " self.remove(x)\n", " return self\n", " else:\n", " temp=self.copy()\n", " for x in set(list2):\n", " temp.remove(x)\n", " return temp\n", " \n", "curse(list, \"removeItemsFromList\", removeItemsFromList)\n", "\n", "\n", "\n", "\n", "\n", "\n", "----\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "0" ] }, "metadata": {}, "execution_count": 294 }, { "output_type": "stream", "name": "stdout", "text": [ "fr\n" ] } ], "source": [ "#oku\n", "#import io #normalde bu satıra gerek yok, open=io.open için bi alias\n", "dosya = io.open(\"pythonutility.py\", \"r\") #yine bunda da başta io yazmazdık normalde ama os'nin open'ından ayırmak için ekledik\n", "print(dosya.readline(1))\n", "print(\"----\")\n", "print(dosya.read()) #ilk satırı okuduğumuz için ikinci satırdan okumaya devam ediyor\n", "print(\"----\")\n", "dosya.seek(0) #başa konumlanalım tekrar\n", "print(dosya.readline(2)) #baştan ilk 2 karakter" ] }, { "cell_type": "code", "execution_count": 295, "metadata": { "id": "NYJPrI_9NP2M", "outputId": "cda78192-025c-4574-baa5-472ee9fc3b99", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0" ] }, "metadata": {}, "execution_count": 295 }, { "output_type": "stream", "name": "stdout", "text": [ "1-from __future__ import print_function\n", "2-import inspect\n", "3-import os, sys, site\n", "4-import functools\n", "5-import time\n", "6-from forbiddenfruit import curse\n", "7-\n", "8-try:\n", "9- import __builtin__\n", "10-except ImportError:\n", "11- import builtins as __builtin__\n", "12-\n", "13-# *************************************************************************************************************\n", "14-#Module level methods\n", "15-\n", "16- \n", "17-def lineno():\n", "18- previous_frame = inspect.currentframe().f_back.f_back\n", "19- (filename, line_number, function_name, lines, index) = inspect.getframeinfo(previous_frame)\n", "20- return (line_number, lines)\n", "21- #return inspect.currentframe().f_back.f_back.f_lineno, str(inspect.currentframe().f_back)\n", "22-\n", "23-def printy(*args, **kwargs):\n", "24- print(lineno(),\"\\n----------\")\n", "25- print(*args, **kwargs)\n", "26- print(\" \",end=\"\\n\")\n", "27-\n", "28-\n", "29-def timeElapse(func):\n", "30- \"\"\"\n", "31- usage:\n", "32- @timeElapse\n", "33- def somefunc():\n", "34- ...\n", "35- ...\n", "36-\n", "37- somefunc()\n", "38- \"\"\"\n", "39- @functools.wraps(func)\n", "40- def wrapper(*args,**kwargs):\n", "41- start=time.time()\n", "42- value=func(*args,**kwargs)\n", "43- func()\n", "44- finito=time.time()\n", "45- print(\"Time elapsed:{}\".format(finito-start))\n", "46- return value\n", "47- return wrapper \n", "48-\n", "49-\n", "50-def multioutput(type=\"all\"):\n", "51- from IPython.core.interactiveshell import InteractiveShell\n", "52- InteractiveShell.ast_node_interactivity = type\n", "53- \n", "54-def scriptforReload():\n", "55- print(\"\"\"\n", "56- %load_ext autoreload\n", "57- %autoreload 2\"\"\")\n", "58- \n", "59-def scriptforTraintest():\n", "60- print(\"X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=42)\")\n", "61- \n", "62-def scriptForCitation():\n", "63- print(\"\"\"

Görsel bu sayfadan alınmıştır

\"\"\")\n", "64- \n", "65-def pythonSomeInfo():\n", "66- print(\"system packages folder:\",sys.prefix, end=\"\\n\\n\")\n", "67- print(\"pip install folder:\",site.getsitepackages(), end=\"\\n\\n\") \n", "68- print(\"python version:\", sys.version, end=\"\\n\\n\")\n", "69- print(\"executables location:\",sys.executable, end=\"\\n\\n\")\n", "70- print(\"pip version:\", os.popen('pip version').read(), end=\"\\n\\n\")\n", "71- pathes= sys.path\n", "72- print(\"Python pathes\")\n", "73- for p in pathes:\n", "74- print(p)\n", "75-\n", "76-\n", "77-def showMemoryUsage():\n", "78- dict_={}\n", "79- global_vars = list(globals().items())\n", "80- for var, obj in global_vars:\n", "81- if not var.startswith('_'):\n", "82- dict_[var]=sys.getsizeof(obj)\n", "83- \n", "84- final={k: v for k, v in sorted(dict_.items(), key=lambda item: item[1],reverse=True)} \n", "85- print(final)\n", "86- \n", "87-def readfile(path,enc='cp1254'):\n", "88- with io.open(path, \"r\", encoding=enc) as f:\n", "89- return f.read()\n", "90-\n", "91-def getFirstItemFromDictionary(dict_):\n", "92- return next(iter(dict_)),next(iter(dict_.values()))\n", "93- \n", "94-\n", "95-\n", "96-def removeItemsFromList(self,list2,inplace=True): \n", "97- \"\"\"\n", "98- Extension method for list type. Removes items from list2 from list1.\n", "99- First, forbiddenfruit must be installed via https://pypi.org/project/forbiddenfruit/\n", "100- \"\"\" \n", "101- if inplace:\n", "102- for x in set(list2):\n", "103- self.remove(x)\n", "104- return self\n", "105- else:\n", "106- temp=self.copy()\n", "107- for x in set(list2):\n", "108- temp.remove(x)\n", "109- return temp\n", "110- \n", "111-curse(list, \"removeItemsFromList\", removeItemsFromList)\n", "112-\n", "113-\n", "114-\n", "115-\n", "116-\n" ] } ], "source": [ "#her satırın başına satır no ekleyelim\n", "dosya.seek(0)\n", "i=1\n", "for satır in dosya.readlines():\n", " print(\"{}-{}\".format(i,satır),end=\"\")\n", " i+=1" ] }, { "cell_type": "code", "execution_count": 296, "metadata": { "id": "Obwq_iNjNP2M" }, "outputs": [], "source": [ "#yarat\n", "yenidosya=io.open(\"test.txt\",\"w\")\n", "yenidosya.close()" ] }, { "cell_type": "code", "execution_count": 297, "metadata": { "id": "jWwIjeIKNP2M", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "f2b5d520-bd8a-49f1-87e1-deb9155ba69e" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "6" ] }, "metadata": {}, "execution_count": 297 } ], "source": [ "#varolana yaz, sonuna ekleme\n", "yenidosya=io.open(\"test.txt\",\"a\")\n", "yenidosya.write(\"\\nselam\")\n", "yenidosya.flush() #hemen yazsın. bunu kullanmazsak yaptığımız değişiklikleri hemen görmeyiz" ] }, { "cell_type": "markdown", "metadata": { "id": "_FPZJr39NP2N" }, "source": [ "Güvenli dosya işlemleri" ] }, { "cell_type": "markdown", "metadata": { "id": "xjGs2hFlNP2N" }, "source": [ "Dosyalarla işiniz bitince kapatmak önemlidir. Kapandığından emin olmak için with bloğu içinde yazmak gerekir" ] }, { "cell_type": "code", "execution_count": 298, "metadata": { "scrolled": true, "id": "TuNhM5TlNP2N", "outputId": "7fed268e-fadd-4228-dcc9-cc917e176789", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "selam\n" ] } ], "source": [ "with io.open(\"test.txt\", \"r\") as dosya:\n", " print(dosya.read())" ] }, { "cell_type": "code", "execution_count": 299, "metadata": { "id": "gefRFUIKNP2N", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "6228198b-92de-4558-e601-4e48c71e5477" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0" ] }, "metadata": {}, "execution_count": 299 }, { "output_type": "execute_result", "data": { "text/plain": [ "13" ] }, "metadata": {}, "execution_count": 299 } ], "source": [ "#hem okuma hem yazma moduyla açıp başa bilgi ekleme\n", "with io.open(\"test.txt\", \"r+\") as f:\n", " content = f.read()\n", " f.seek(0) #Dosyayı başa sarıyoruz\n", " f.write(\"volkan\\n\"+content)" ] }, { "cell_type": "code", "source": [ "!rm test.txt" ], "metadata": { "id": "6tyKo6fQSnRi" }, "execution_count": 300, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "OijGzgTxNP2N" }, "source": [ "**Türkçe karakter**" ] }, { "cell_type": "markdown", "metadata": { "id": "WJ1vPazkNP2O" }, "source": [ "
\n", "utf-8 mi cp1254 mü?
\n", "\n", "https://python-istihza.yazbel.com/karakter_kodlama.html" ] }, { "cell_type": "code", "execution_count": 301, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T13:53:00.576889Z", "start_time": "2020-11-22T13:53:00.572903Z" }, "id": "Yn5SWIheNP2O", "outputId": "89047128-7dba-4908-c962-37a3d4994ab1", "colab": { "base_uri": "https://localhost:8080/", "height": 35 } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'UTF-8'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 301 } ], "source": [ "import locale\n", "locale.getpreferredencoding()" ] }, { "cell_type": "code", "execution_count": 302, "metadata": { "ExecuteTime": { "end_time": "2020-11-22T13:53:07.023663Z", "start_time": "2020-11-22T13:53:07.017681Z" }, "id": "nzTj3YM8NP2O", "outputId": "4d1b3682-7a90-4162-b804-34518a74cc23", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "import numpy as np\n", "import pandas as pd\n", "from sklearn.metrics import silhouette_samples, silhouette_score\n", "from sklearn.metrics import confusion_matrix, accuracy_score, recall_score, precision_score, f1_score\n", "from sklearn.metrics import roc_curve, precision_recall_curve, auc\n", "from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score\n", "import matplotlib.cm as cm\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from sklearn.cluster import KMeans\n", "from sklearn.neighbors import NearestNeighbors\n", "from sklearn.preprocessing import LabelEncoder, OneHotEncoder,binarize\n", "from sklearn.pipeline import Pipeline \n", "import os, sys, site\n", "import itertools \n", "from numpy.random import uniform\n", "from random import sample, seed\n", "from math import isnan\n", "from multiprocessing import Pool\n", "from scipy.spatial import distance\n", "from sklearn.metrics.pairwise import cosine_similarity\n", "from sklearn.model_selection import learning_curve\n", "import networkx as nx\n", "from sklearn.experimental import enable_halving_search_cv \n", "from sklearn.model_selection import RandomizedSearchCV,GridSearchCV,HalvingGridSearchCV,HalvingRandomSearchCV\n", "import warnings\n", "import statsmodels.api as sm\n", "import statsmodels.stats.api as sms\n", "import statsmodels.formula.api as smf\n", "\n", "def adjustedr2(R_sq,y,y_pred,x):\n", " return 1 - (1-R_sq)*(len(y)-1)/(len(y_pred)-x.shape[1]-1)\n", "\n", "def calculate_aic_bic(n, mse, num_params):\n", " \"\"\"\n", " n=number of instances in y \n", " \"\"\" \n", " aic = n *np.log(mse) + 2 * num_params\n", " bic = n * np.log(mse) + num_params * np.log(n)\n", " # ssr = fitted.ssr #residual sum of squares\n", " # AIC = N + N*np.log(2.0*np.pi*ssr/N)+2.0*(p+1)\n", " # print(AIC)\n", " # BIC = N + N*np.log(2.0*np.pi*ssr/N) + p*np.log(N)\n", " # print(BIC)\n", " return aic, bic \n", "\n", " \n", "def printScores(y_test,y_pred,x=None,*, alg_type='c',f1avg=None):\n", " \"\"\" \n", " prints the available performanse scores.\n", " Args:\n", " alg_type: c for classfication, r for regressin\n", " f1avg: if None, taken as binary.\n", " \"\"\"\n", " if alg_type=='c':\n", " acc=accuracy_score(y_test,y_pred)\n", " print(\"Accuracy:\",acc)\n", " recall=recall_score(y_test,y_pred)\n", " print(\"Recall:\",recall)\n", " precision=precision_score(y_test,y_pred)\n", " print(\"Precision:\",precision)\n", " if f1avg is None:\n", " f1=f1_score(y_test,y_pred)\n", " else:\n", " f1=f1_score(y_test,y_pred,average=f1avg)\n", " print(\"F1:\",f1)\n", " return acc,recall,precision,f1\n", " else:\n", " mse=mean_squared_error(y_test,y_pred) #RMSE için squared=False yapılabilir ama bize mse de lazım\n", " rmse=round(np.sqrt(mse),2)\n", " print(\"RMSE:\",rmse)\n", " mae=round(mean_absolute_error(y_test,y_pred),2)\n", " print(\"MAE:\",mae) \n", " r2=round(r2_score(y_test,y_pred),2)\n", " print(\"r2:\",r2)\n", " adjr2=round(adjustedr2(r2_score(y_test,y_pred),y_test,y_pred,x),2)\n", " print(\"Adjusted R2:\",adjr2)\n", " aic, bic=calculate_aic_bic(len(y_test),mse,len(x))\n", " print(\"AIC:\",round(aic,2))\n", " print(\"BIC:\",round(bic,2))\n", " return (rmse,mae,r2,adjr2,round(aic,2),round(bic,2))\n", "\n", "def draw_sihoutte(range_n_clusters,data,isbasic=True,printScores=True,random_state=42):\n", " \"\"\"\n", " - isbasic:if True, plots scores as line chart whereas false, plots the sihoutte chart.\n", " - taken from https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html and modified as needed.\n", " \"\"\"\n", " if isbasic==False:\n", " silhouette_max=0\n", " for n_clusters in range_n_clusters:\n", " # Create a subplot with 1 row and 2 columns\n", " fig, (ax1, ax2) = plt.subplots(1, 2)\n", " fig.set_size_inches(12,4)\n", "\n", " ax1.set_xlim([-1, 1])\n", " # The (n_clusters+1)*10 is for inserting blank space between silhouette\n", " # plots of individual clusters, to demarcate them clearly.\n", " ax1.set_ylim([0, len(data) + (n_clusters + 1) * 10])\n", "\n", " # Initialize the clusterer with n_clusters value and a random generator\n", " # seed of 10 for reproducibility.\n", " clusterer = KMeans(n_clusters=n_clusters, random_state=random_state)\n", " cluster_labels = clusterer.fit_predict(data)\n", "\n", " # The silhouette_score gives the average value for all the samples.\n", " # This gives a perspective into the density and separation of the formed\n", " # clusters\n", " silhouette_avg = silhouette_score(data, cluster_labels)\n", " if silhouette_avg>silhouette_max:\n", " silhouette_max,nc=silhouette_avg,n_clusters\n", " print(\"For n_clusters =\", n_clusters,\n", " \"The average silhouette_score is :\", silhouette_avg)\n", "\n", " # Compute the silhouette scores for each sample\n", " sample_silhouette_values = silhouette_samples(data, cluster_labels)\n", "\n", " y_lower = 10\n", " for i in range(n_clusters):\n", " # Aggregate the silhouette scores for samples belonging to\n", " # cluster i, and sort them\n", " ith_cluster_silhouette_values = \\\n", " sample_silhouette_values[cluster_labels == i]\n", "\n", " ith_cluster_silhouette_values.sort()\n", "\n", " size_cluster_i = ith_cluster_silhouette_values.shape[0]\n", " y_upper = y_lower + size_cluster_i\n", "\n", " color = cm.nipy_spectral(float(i) / n_clusters)\n", " ax1.fill_betweenx(np.arange(y_lower, y_upper),\n", " 0, ith_cluster_silhouette_values,\n", " facecolor=color, edgecolor=color, alpha=0.7)\n", "\n", " # Label the silhouette plots with their cluster numbers at the middle\n", " ax1.text(-0.05, y_lower + 0.5 * size_cluster_i, str(i))\n", "\n", " # Compute the new y_lower for next plot\n", " y_lower = y_upper + 10 # 10 for the 0 samples\n", "\n", " ax1.set_title(\"The silhouette plot for the various clusters.\")\n", " ax1.set_xlabel(\"The silhouette coefficient values\")\n", " ax1.set_ylabel(\"Cluster label\")\n", "\n", " # The vertical line for average silhouette score of all the values\n", " ax1.axvline(x=silhouette_avg, color=\"red\", linestyle=\"--\")\n", "\n", " ax1.set_yticks([]) # Clear the yaxis labels / ticks\n", " ax1.set_xticks([-0.1, 0, 0.2, 0.4, 0.6, 0.8, 1])\n", "\n", " # 2nd Plot showing the actual clusters formed\n", " colors = cm.nipy_spectral(cluster_labels.astype(float) / n_clusters)\n", " ax2.scatter(data[:, 0], data[:, 1], marker='.', s=30, lw=0, alpha=0.7,\n", " c=colors, edgecolor='k')\n", "\n", " # Labeling the clusters\n", " centers = clusterer.cluster_centers_\n", " # Draw white circles at cluster centers\n", " ax2.scatter(centers[:, 0], centers[:, 1], marker='o',\n", " c=\"white\", alpha=1, s=200, edgecolor='k')\n", "\n", " for i, c in enumerate(centers):\n", " ax2.scatter(c[0], c[1], marker='$%d$' % i, alpha=1,\n", " s=50, edgecolor='k')\n", "\n", " ax2.set_title(\"The visualization of the clustered data.\")\n", " ax2.set_xlabel(\"Feature space for the 1st feature\")\n", " ax2.set_ylabel(\"Feature space for the 2nd feature\")\n", "\n", " plt.suptitle((\"Silhouette analysis for KMeans clustering on sample data \"\n", " \"with n_clusters = %d\" % n_clusters),\n", " fontsize=14, fontweight='bold') \n", " plt.show()\n", " print(f\"Best score is {silhouette_max} for {nc}\")\n", " else:\n", " ss = []\n", " for n in range_n_clusters:\n", " kmeans = KMeans(n_clusters=n, random_state=random_state)\n", " kmeans.fit_transform(data)\n", " labels = kmeans.labels_\n", " score = silhouette_score(data, labels)\n", " ss.append(score)\n", " if printScores==True:\n", " print(n,score)\n", " plt.plot(range_n_clusters,ss)\n", " plt.xticks(range_n_clusters) #so it shows all the ticks\n", "\n", "def drawEpsilonDecider(data,n):\n", " \"\"\"\n", " for DBSCAN\n", " n: # of neighbours(in the nearest neighbour calculation, the point itself will appear as the first nearest neighbour. so, this should be\n", " given as min_samples+1.\n", " data:numpy array\n", " \"\"\"\n", " neigh = NearestNeighbors(n_neighbors=n)\n", " nbrs = neigh.fit(data)\n", " distances, indices = nbrs.kneighbors(data)\n", " distances = np.sort(distances, axis=0)\n", " distances = distances[:,1]\n", " plt.ylabel(\"eps\")\n", " plt.xlabel(\"number of data points\")\n", " plt.plot(distances)\n", " \n", "def draw_elbow(ks,data):\n", " wcss = []\n", " for i in ks:\n", " kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0) \n", " kmeans.fit(data)\n", " wcss.append(kmeans.inertia_)\n", " plt.plot(ks, wcss)\n", " plt.title('Elbow Method')\n", " plt.xlabel('# of clusters')\n", " plt.ylabel('WCSS')\n", " plt.xticks(ks)\n", " plt.show()\n", " \n", "def biplot(score,coeff,y,variance,labels=None):\n", " \"\"\"\n", " PCA biplot.\n", " Found at https://stackoverflow.com/questions/39216897/plot-pca-loadings-and-loading-in-biplot-in-sklearn-like-rs-autoplot\n", " \"\"\"\n", " xs = score[:,0]\n", " ys = score[:,1]\n", " n = coeff.shape[0]\n", " scalex = 1.0/(xs.max() - xs.min())\n", " scaley = 1.0/(ys.max() - ys.min())\n", " plt.scatter(xs * scalex,ys * scaley, c = y)\n", " for i in range(n):\n", " plt.arrow(0, 0, coeff[i,0], coeff[i,1],color = 'r',alpha = 0.5)\n", " if labels is None:\n", " plt.text(coeff[i,0]* 1.15, coeff[i,1] * 1.15, \"Var\"+str(i+1), color = 'g', ha = 'center', va = 'center')\n", " else:\n", " plt.text(coeff[i,0]* 1.15, coeff[i,1] * 1.15, labels[i], color = 'g', ha = 'center', va = 'center')\n", " plt.xlim(-1,1)\n", " plt.ylim(-1,1)\n", " plt.xlabel(\"PC{},Variance:{}\".format(1,variance[0]))\n", " plt.ylabel(\"PC{},Variance:{}\".format(2,variance[1]))\n", " plt.grid()\n", "\n", " \n", " \n", "\n", "def get_feature_names_from_columntransformer(ct):\n", " \"\"\"\n", " returns feature names in a dataframe passet to a column transformer. Useful if you have lost the names due to conversion to numpy.\n", " if it doesn't work, try out the one at https://johaupt.github.io/blog/columnTransformer_feature_names.html or at https://lifesaver.codes/answer/cannot-get-feature-names-after-columntransformer-12525\n", " \"\"\"\n", " final_features=[]\n", " try:\n", " \n", " for trs in ct.transformers_:\n", " trName=trs[0]\n", " trClass=trs[1]\n", " features=trs[2]\n", " if isinstance(trClass,Pipeline): \n", " n,tr=zip(*trClass.steps)\n", " for t in tr: #t is a transformator object, tr is the list of all transoformators in the pipeline \n", " if isinstance(t,OneHotEncoder):\n", " for f in t.get_feature_names_out(features):\n", " final_features.append(\"OHE_\"+f) \n", " break\n", " else: #if not found onehotencoder, add the features directly\n", " for f in features:\n", " final_features.append(f) \n", " elif isinstance(trClass,OneHotEncoder): #?type(trClass)==OneHotEncoder:\n", " for f in trClass.get_feature_names_out(features):\n", " final_features.append(\"OHE_\"+f) \n", " else:\n", " #remainders\n", " if trName==\"remainder\":\n", " for i in features:\n", " final_features.append(ct.feature_names_in_[i])\n", " #all the others\n", " else:\n", " for f in features:\n", " final_features.append(f) \n", " except AttributeError:\n", " print(\"Your sklearn version may be old and you may need to upgrade it via 'python -m pip install scikit-learn -U'\")\n", "\n", " return final_features \n", "\n", "def featureImportanceEncoded(feature_importance_array,feature_names,figsize=(8,6)):\n", " \"\"\"\n", " plots the feature importance plot.\n", " feature_importance_array:feature_importance_ attribute\n", " \"\"\"\n", " plt.figure(figsize=figsize)\n", " dfimp=pd.DataFrame(feature_importance_array.reshape(-1,1).T,columns=feature_names).T\n", " dfimp.index.name=\"Encoded\"\n", " dfimp.rename(columns={0: \"Importance\"},inplace=True)\n", " dfimp.reset_index(inplace=True)\n", " dfimp[\"Feature\"]=dfimp[\"Encoded\"].apply(lambda x:x[4:].split('_')[0] if \"OHE\" in x else x)\n", " dfimp.groupby(by='Feature')[\"Importance\"].sum().sort_values().plot(kind='barh');\n", " \n", " \n", "def compareEstimatorsInGridSearch(gs,tableorplot='plot',figsize=(10,5),est=\"param_clf\"):\n", " \"\"\"\n", " Gives a comparison table/plot of the estimators in a gridsearch.\n", " \"\"\"\n", " cvres = gs.cv_results_\n", " cv_results = pd.DataFrame(cvres)\n", " cv_results[est]=cv_results[est].apply(lambda x:str(x).split('(')[0])\n", " cols={\"mean_test_score\":\"MAX of mean_test_score\",\"mean_fit_time\":\"MIN of mean_fit_time\"}\n", " summary=cv_results.groupby(by=est).agg({\"mean_test_score\":\"max\", \"mean_fit_time\":\"min\"}).rename(columns=cols)\n", " summary.sort_values(by='MAX of mean_test_score', ascending=False,inplace=True)\n", " \n", " \n", " if tableorplot=='table':\n", " return summary\n", " else:\n", " _, ax1 = plt.subplots(figsize=figsize)\n", " color = 'tab:red'\n", " ax1.xaxis.set_ticks(range(len(summary)))\n", " ax1.set_xticklabels(summary.index, rotation=45,ha='right')\n", " \n", " ax1.set_ylabel('MAX of mean_test_score', color=color)\n", " ax1.bar(summary.index, summary['MAX of mean_test_score'], color=color)\n", " ax1.tick_params(axis='y', labelcolor=color)\n", " ax1.set_ylim(0,summary[\"MAX of mean_test_score\"].max()*1.1)\n", "\n", " ax2 = ax1.twinx() \n", " color = 'tab:blue'\n", " ax2.set_ylabel('MIN of mean_fit_time', color=color) \n", " ax2.plot(summary.index, summary['MIN of mean_fit_time'], color=color)\n", " ax2.tick_params(axis='y', labelcolor=color) \n", " ax2.set_ylim(0,summary[\"MIN of mean_fit_time\"].max()*1.1)\n", "\n", " plt.show() \n", "\n", "def plot_confusion_matrix(cm, classes,\n", " normalize=False,\n", " title='Confusion matrix',\n", " cmap=plt.cm.Blues):\n", " \"\"\"\n", " Depreceated. use 'sklearn.metrics.ConfusionMatrixDisplay(cm).plot();'\n", " \"\"\"\n", " warnings.warn(\"use 'sklearn.metrics.ConfusionMatrixDisplay(cm).plot();'\") \n", " \n", "def CheckForClusteringTendencyWithHopkins(X,random_state=42): \n", " \"\"\"\n", " taken from https://matevzkunaver.wordpress.com/2017/06/20/hopkins-test-for-cluster-tendency/\n", " X:numpy array or dataframe\n", " the closer to 1, the higher probability of clustering tendency \n", " X must be scaled priorly.\n", " \"\"\"\n", " \n", " d = X.shape[1]\n", " #d = len(vars) # columns\n", " n = len(X) # rows\n", " m = int(0.1 * n) # heuristic from article [1]\n", " if type(X)==np.ndarray:\n", " nbrs = NearestNeighbors(n_neighbors=1).fit(X)\n", " else:\n", " nbrs = NearestNeighbors(n_neighbors=1).fit(X.values)\n", " seed(random_state) \n", " rand_X = sample(range(0, n, 1), m)\n", " \n", " ujd = []\n", " wjd = []\n", " for j in range(0, m):\n", " #-------------------bi ara random state yap----------\n", " u_dist, _ = nbrs.kneighbors(uniform(np.amin(X,axis=0),np.amax(X,axis=0),d).reshape(1, -1), 2, return_distance=True)\n", " ujd.append(u_dist[0][1])\n", " if type(X)==np.ndarray:\n", " w_dist, _ = nbrs.kneighbors(X[rand_X[j]].reshape(1, -1), 2, return_distance=True)\n", " else:\n", " w_dist, _ = nbrs.kneighbors(X.iloc[rand_X[j]].values.reshape(1, -1), 2, return_distance=True)\n", " wjd.append(w_dist[0][1])\n", " \n", " H = sum(ujd) / (sum(ujd) + sum(wjd))\n", " if isnan(H):\n", " print(ujd, wjd)\n", " H = 0\n", " \n", " return H \n", "\n", "def getNumberofCatsAndNumsFromDatasets(path,size=10_000_000):\n", " \"\"\"\n", " returns the number of features by their main type(i.e categorical or numeric or datetime)\n", " args:\n", " path:path of the files residing in.\n", " size:size of the file(default is ~10MB). if chosen larger, it will take longer to return.\n", " \"\"\"\n", " os.chdir(path)\n", " files=os.listdir()\n", " liste=[]\n", " for d in files: \n", " try:\n", " if os.path.isfile(d) and os.path.getsize(d)` for the various\n", " cross-validators that can be used here.\n", "\n", " n_jobs : int or None, default=None\n", " Number of jobs to run in parallel.\n", " ``None`` means 1 unless in a :obj:`joblib.parallel_backend` context.\n", " ``-1`` means using all processors. See :term:`Glossary `\n", " for more details.\n", "\n", " train_sizes : array-like of shape (n_ticks,)\n", " Relative or absolute numbers of training examples that will be used to\n", " generate the learning curve. If the ``dtype`` is float, it is regarded\n", " as a fraction of the maximum size of the training set (that is\n", " determined by the selected validation method), i.e. it has to be within\n", " (0, 1]. Otherwise it is interpreted as absolute sizes of the training\n", " sets. Note that for classification the number of samples usually have\n", " to be big enough to contain at least one sample from each class.\n", " (default: np.linspace(0.1, 1.0, 5))\n", " \"\"\"\n", " if axes is None:\n", " _, axes = plt.subplots(1, 3, figsize=(20, 5))\n", "\n", " axes[0].set_title(title)\n", " if ylim is not None:\n", " axes[0].set_ylim(*ylim)\n", " axes[0].set_xlabel(\"Training examples\")\n", " axes[0].set_ylabel(\"Score\")\n", "\n", " train_sizes, train_scores, test_scores, fit_times, _ = learning_curve(\n", " estimator,\n", " X,\n", " y,\n", " cv=cv,\n", " n_jobs=n_jobs,\n", " train_sizes=train_sizes,\n", " return_times=True,\n", " random_state=random_state\n", " )\n", " train_scores_mean = np.mean(train_scores, axis=1)\n", " train_scores_std = np.std(train_scores, axis=1)\n", " test_scores_mean = np.mean(test_scores, axis=1)\n", " test_scores_std = np.std(test_scores, axis=1)\n", " fit_times_mean = np.mean(fit_times, axis=1)\n", " fit_times_std = np.std(fit_times, axis=1)\n", "\n", " # Plot learning curve\n", " axes[0].grid()\n", " axes[0].fill_between(\n", " train_sizes,\n", " train_scores_mean - train_scores_std,\n", " train_scores_mean + train_scores_std,\n", " alpha=0.1,\n", " color=\"r\",\n", " )\n", " axes[0].fill_between(\n", " train_sizes,\n", " test_scores_mean - test_scores_std,\n", " test_scores_mean + test_scores_std,\n", " alpha=0.1,\n", " color=\"g\",\n", " )\n", " axes[0].plot(\n", " train_sizes, train_scores_mean, \"o-\", color=\"r\", label=\"Training score\"\n", " )\n", " axes[0].plot(\n", " train_sizes, test_scores_mean, \"o-\", color=\"g\", label=\"Cross-validation score\"\n", " )\n", " axes[0].legend(loc=\"best\")\n", "\n", " # Plot n_samples vs fit_times\n", " axes[1].grid()\n", " axes[1].plot(train_sizes, fit_times_mean, \"o-\")\n", " axes[1].fill_between(\n", " train_sizes,\n", " fit_times_mean - fit_times_std,\n", " fit_times_mean + fit_times_std,\n", " alpha=0.1,\n", " )\n", " axes[1].set_xlabel(\"Training examples\")\n", " axes[1].set_ylabel(\"fit_times\")\n", " axes[1].set_title(\"Scalability of the model\")\n", "\n", " # Plot fit_time vs score\n", " fit_time_argsort = fit_times_mean.argsort()\n", " fit_time_sorted = fit_times_mean[fit_time_argsort]\n", " test_scores_mean_sorted = test_scores_mean[fit_time_argsort]\n", " test_scores_std_sorted = test_scores_std[fit_time_argsort]\n", " axes[2].grid()\n", " axes[2].plot(fit_time_sorted, test_scores_mean_sorted, \"o-\")\n", " axes[2].fill_between(\n", " fit_time_sorted,\n", " test_scores_mean_sorted - test_scores_std_sorted,\n", " test_scores_mean_sorted + test_scores_std_sorted,\n", " alpha=0.1,\n", " )\n", " axes[2].set_xlabel(\"fit_times\")\n", " axes[2].set_ylabel(\"Score\")\n", " axes[2].set_title(\"Performance of the model\")\n", "\n", " plt.show()\n", "\n", "\n", "def drawNeuralNetwork(layers,figsize=(10,8)):\n", " \"\"\"\n", " Draws a represantion of the neural network using networkx.\n", " layers:list of the # of layers including input and output.\n", " \"\"\" \n", " plt.figure(figsize=figsize)\n", " pos={} \n", " for e,l in enumerate(layers):\n", " for i in range(l):\n", " pos[str(l)+\"_\"+str(i)]=((e+1)*50,i*5+50)\n", "\n", "\n", " X=nx.Graph()\n", " nx.draw_networkx_nodes(X,pos,nodelist=pos.keys(),node_color='r')\n", " X.add_nodes_from(pos.keys())\n", "\n", " edgelist=[] #list of tuple\n", " for e,l in enumerate(layers):\n", " for i in range(l):\n", " try:\n", " for k in range(layers[e+1]):\n", " try:\n", " edgelist.append((str(l)+\"_\"+str(i),str(layers[e+1])+\"_\"+str(k)))\n", " except:\n", " pass\n", " except:\n", " pass\n", "\n", "\n", " X.add_edges_from(edgelist)\n", " for n, p in pos.items():\n", " X.nodes[n]['pos'] = p \n", "\n", " nx.draw(X, pos); \n", "\n", "def draw_network_graph(ws):\n", " \"\"\"\n", " Draws a network graph of a neural network with dynamic weights.\n", "\n", " Args:\n", " ws: A list of weight matrices.\n", " \"\"\"\n", " # Create a directed graph\n", " G = nx.DiGraph()\n", "\n", " # Add nodes\n", " layer_count = len(ws) + 1 # Include input layer\n", " node_count = [ws[0].shape[0]] + [w.shape[1] for w in ws]\n", "\n", " for layer in range(layer_count):\n", " if layer == 0:\n", " for i in range(node_count[layer]):\n", " G.add_node(f\"Input {i+1}\", layer=layer)\n", " elif layer == layer_count - 1:\n", " for i in range(node_count[layer]):\n", " G.add_node(f\"Output {i+1}\", layer=layer)\n", " else:\n", " for i in range(node_count[layer]):\n", " G.add_node(f\"Hidden {layer}_{i+1}\", layer=layer)\n", "\n", " # Add edges with weights\n", " for layer in range(layer_count - 1):\n", " for i in range(node_count[layer]):\n", " for j in range(node_count[layer + 1]):\n", " if layer == 0:\n", " G.add_edge(f\"Input {i+1}\", f\"Hidden {layer + 1}_{j+1}\", weight=ws[layer][i, j])\n", " elif layer == layer_count - 2:\n", " G.add_edge(f\"Hidden {layer}_{i+1}\", f\"Output {j+1}\", weight=ws[layer][i, j])\n", " else:\n", " G.add_edge(f\"Hidden {layer}_{i+1}\", f\"Hidden {layer + 1}_{j+1}\", weight=ws[layer][i, j])\n", "\n", " # Draw the graph\n", " pos = {}\n", " pos.update({node: (0, i) for i, node in enumerate(\n", " [f\"Input {i+1}\" for i in range(node_count[0])]\n", " )})\n", " pos.update({node: (layer, i) for layer in range(1, layer_count -1) for i, node in enumerate(\n", " [f\"Hidden {layer}_{i+1}\" for i in range(node_count[layer])]\n", " )})\n", " pos.update({node: (layer_count - 1, i) for i, node in enumerate(\n", " [f\"Output {i+1}\" for i in range(node_count[-1])]\n", " )})\n", "\n", " nx.draw(G, pos, with_labels=True, node_size=1000, node_color='lightblue', font_size=10)\n", "\n", " # Add edge labels with weights\n", " edge_labels = {(u, v): f\"{d['weight']:.2f}\" for u, v, d in G.edges(data=True)}\n", " nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)\n", "\n", " plt.show()\n", "\n", "def plotROC(y_test,X_test,estimator,pos_label=1,figsize=(6,6)):\n", " cm = confusion_matrix(y_test, estimator.predict(X_test)) \n", " fpr, tpr, _ = roc_curve(y_test, estimator.predict_proba(X_test)[:,1],pos_label=pos_label)\n", " roc_auc = auc(fpr, tpr) #or roc_auc_score(y_test, y_scores)\n", " plt.figure(figsize=figsize)\n", " plt.plot(fpr, tpr, label='(ROC-AUC = %0.2f)' % roc_auc)\n", " plt.plot([0, 1], [0, 1], 'k--')\n", " tn, fp, fn, tp = [i for i in cm.ravel()]\n", " plt.plot(fp/(fp+tn), tp/(tp+fn), 'ro', markersize=8, label='Decision Point(Optimal threshold)')\n", " plt.xlim([0.0, 1.0])\n", " plt.ylim([0.0, 1.05])\n", " plt.xlabel('False Positive Rate(1-sepecifity)')\n", " plt.ylabel('True Positive Rate(Recall/Sensitivity)')\n", " plt.title('ROC Curve (TPR vs FPR at each probability threshold)')\n", " plt.legend(loc=\"lower right\")\n", " plt.show();\n", "\n", "def plot_precision_recall_curve(y_test_encoded,X_test,estimator,threshs=np.linspace(0.0, 0.98, 40),figsize=(16,6)):\n", " \"\"\"\n", " y_test should be labelencoded.\n", " \"\"\"\n", " pred_prob = estimator.predict_proba(X_test) \n", " precision, recall, thresholds = precision_recall_curve(y_test_encoded, pred_prob[:,1])\n", " pr_auc = auc(recall, precision) \n", "\n", " Xt = [] ; Yp = [] ; Yr = [] \n", " for thresh in threshs:\n", " with warnings.catch_warnings():\n", " warnings.filterwarnings(\"error\")\n", " try:\n", " y_pred = binarize(pred_prob, threshold=thresh)[:,1]\n", " Xt.append(thresh)\n", " Yp.append(precision_score(y_test_encoded, y_pred)) #,zero_division=1\n", " Yr.append(recall_score(y_test_encoded, y_pred))\n", " except Warning as e:\n", " print(f\"{thresh:.2f}, error , probably division by zero\")\n", "\n", " \n", " plt.figure(figsize=figsize)\n", " plt.subplot(121)\n", " plt.plot(Xt, Yp, \"--\", label='Precision', color='red')\n", " plt.plot(Xt, Yr, \"--\", label='Recall', color='blue')\n", " plt.title(\"Precision vs Recall based on decision threshold\")\n", " plt.xlabel('Decision threshold') ; plt.ylabel('Precision - Recall')\n", " plt.legend()\n", " plt.subplot(122)\n", " plt.step(Yr, Yp, color='black', label='LR (PR-AUC = %0.2f)' % pr_auc)\n", " # calculate the no skill line as the proportion of the positive class (0.145)\n", " no_skill = len(y_test_encoded[y_test_encoded==1]) / len(y_test_encoded)\n", " # plot the no skill precision-recall curve\n", " plt.plot([0, 1], [no_skill, no_skill], linestyle='--', color='green', label='No Skill')\n", " # plot the perfect PR curve\n", " plt.plot([0, 1],[1, 1], color='blue', label='Perfect')\n", " plt.plot([1, 1],[1, len(y_test_encoded[y_test_encoded==1]) / len(y_test_encoded)], color='blue')\n", " plt.title('PR Curve')\n", " plt.xlabel('Recall: TP / (TP+FN)') ; plt.ylabel('Precison: TP / (TP+FP)')\n", " plt.legend(loc=\"upper right\")\n", " plt.show();\n", "\n", "\n", "def find_best_cutoff_for_classification(estimator, y_test_le, X_test, costlist,threshs=np.linspace(0., 0.98, 20)): \n", " \"\"\"\n", " y_test should be labelencoded as y_test_le\n", " costlist=cost list for TN, TP, FN, FP\n", " \"\"\"\n", " y_pred_prob = estimator.predict_proba(X_test)\n", " y_pred = estimator.predict(X_test)\n", " Xp = [] ; Yp = [] # initialization\n", "\n", " print(\"Cutoff\\t Cost/Instance\\t Accuracy\\t FN\\t FP\\t TP\\t TN\\t Recall\\t Precision F1-score\")\n", " for cutoff in threshs:\n", " with warnings.catch_warnings():\n", " warnings.filterwarnings(\"error\")\n", " try:\n", " y_pred = binarize(y_pred_prob, threshold=cutoff)[:,1]\n", " cm = confusion_matrix(y_test_le, y_pred)\n", " TP = cm[1,1]\n", " TN = cm[0,0]\n", " FP = cm[0,1]\n", " FN = cm[1,0]\n", " cost = costlist[0]*TN + costlist[1]*TP + costlist[2]*FN + costlist[3]*FP\n", " cost_per_instance = cost/len(y_test_le)\n", " Xp.append(cutoff)\n", " Yp.append(cost_per_instance)\n", " acc=accuracy_score(y_test_le, y_pred)\n", " rec = cm[1,1]/(cm[1,1]+cm[1,0])\n", " pre = cm[1,1]/(cm[1,1]+cm[0,1])\n", " f1 = 2*pre*rec/(pre+rec)\n", " print(f\"{cutoff:.2f}\\t {cost_per_instance:.2f}\\t\\t {acc:.3f}\\t\\t {FN}\\t {FP}\\t {TP}\\t {TN}\\t {rec:.3f}\\t {pre:.3f}\\t {f1:.3f}\")\n", " except Warning as e:\n", " print(f\"{cutoff:.2f}\\t {cost_per_instance:.2f}\\t\\t {acc:.3f}\\t\\t {FN}\\t {FP}\\t {TP}\\t {TN}\\t error might have happened from here anywhere\")\n", "\n", " plt.figure(figsize=(10,6))\n", " plt.plot(Xp, Yp)\n", " plt.xlabel('Threshold value for probability')\n", " plt.ylabel('Cost per instance')\n", " plt.axhline(y=min(Yp), xmin=0., xmax=1., linewidth=1, color = 'r')\n", " plt.show();\n", "\n", "\n", "def plot_gain_and_lift(estimator,X_test,y_test,pos_label=\"Yes\",figsize=(16,6)):\n", " \"\"\" \n", " y_test as numpy array\n", " prints the gain and lift values and plots the charts. \n", " \"\"\"\n", " prob_df=pd.DataFrame({\"Prob\":estimator.predict_proba(X_test)[:,1]})\n", " prob_df[\"label\"]=np.where(y_test==pos_label,1,0)\n", " prob_df = prob_df.sort_values(by=\"Prob\",ascending=False)\n", " prob_df['Decile'] = pd.qcut(prob_df['Prob'], 10, labels=list(range(1,11))[::-1])\n", "\n", " #Calculate the actual churn in each decile\n", " res = pd.crosstab(prob_df['Decile'], prob_df['label'])[1].reset_index().rename(columns = {1: 'Number of Responses'})\n", " lg = prob_df['Decile'].value_counts(sort = False).reset_index().rename(columns = {'Decile': 'Number of Cases', 'index': 'Decile'})\n", " lg = pd.merge(lg, res, on = 'Decile').sort_values(by = 'Decile', ascending = False).reset_index(drop = True)\n", " #Calculate the cumulative\n", " lg['Cumulative Responses'] = lg['Number of Responses'].cumsum()\n", " #Calculate the percentage of positive in each decile compared to the total nu\n", " lg['% of Events'] = np.round(((lg['Number of Responses']/lg['Number of Responses'].sum())*100),2)\n", " #Calculate the Gain in each decile\n", " lg['Gain'] = lg['% of Events'].cumsum()\n", " lg['Decile'] = lg['Decile'].astype('int')\n", " lg['lift'] = np.round((lg['Gain']/(lg['Decile']*10)),2)\n", " display(lg)\n", "\n", " plt.figure(figsize=figsize)\n", " plt.subplot(121)\n", " plt.plot(lg[\"Decile\"],lg[\"lift\"],label=\"Model\")\n", " plt.plot(lg[\"Decile\"],[1 for i in range(10)],label=\"Random\")\n", " plt.title(\"Lift Chart\")\n", " plt.legend()\n", " plt.xlabel(\"Decile\")\n", " plt.ylabel(\"Lift\") \n", " \n", " plt.subplot(122)\n", " plt.plot(lg[\"Decile\"],lg[\"Gain\"],label=\"Model\")\n", " plt.plot(lg[\"Decile\"],[10*(i+1) for i in range(10)],label=\"Random\")\n", " plt.title(\"Gain Chart\")\n", " plt.legend()\n", " plt.xlabel(\"Decile\")\n", " plt.ylabel(\"Gain\")\n", " plt.xlim(0,11)\n", " plt.ylim(0,110)\n", " plt.show(); \n", "\n", "def plot_gain_and_lift_orj(estimator,X_test,y_test,pos_label=\"Yes\"):\n", " \"\"\" \n", " y_test as numpy array\n", " prints the gain and lift values and plots the charts. \n", " \"\"\"\n", " prob_df=pd.DataFrame({\"Prob\":estimator.predict_proba(X_test)[:,1]})\n", " prob_df[\"label\"]=np.where(y_test==pos_label,1,0)\n", " prob_df = prob_df.sort_values(by=\"Prob\",ascending=False)\n", " prob_df['Decile'] = pd.qcut(prob_df['Prob'], 10, labels=list(range(1,11))[::-1])\n", "\n", " #Calculate the actual churn in each decile\n", " res = pd.crosstab(prob_df['Decile'], prob_df['label'])[1].reset_index().rename(columns = {1: 'Number of Responses'})\n", " lg = prob_df['Decile'].value_counts(sort = False).reset_index().rename(columns = {'Decile': 'Number of Cases', 'index': 'Decile'})\n", " lg = pd.merge(lg, res, on = 'Decile').sort_values(by = 'Decile', ascending = False).reset_index(drop = True)\n", " #Calculate the cumulative\n", " lg['Cumulative Responses'] = lg['Number of Responses'].cumsum()\n", " #Calculate the percentage of positive in each decile compared to the total nu\n", " lg['% of Events'] = np.round(((lg['Number of Responses']/lg['Number of Responses'].sum())*100),2)\n", " #Calculate the Gain in each decile\n", " lg['Gain'] = lg['% of Events'].cumsum()\n", " lg['Decile'] = lg['Decile'].astype('int')\n", " lg['lift'] = np.round((lg['Gain']/(lg['Decile']*10)),2)\n", " display(lg)\n", " \n", " plt.plot(lg[\"Decile\"],lg[\"lift\"],label=\"Model\")\n", " plt.plot(lg[\"Decile\"],[1 for i in range(10)],label=\"Random\")\n", " plt.title(\"Lift Chart\")\n", " plt.legend()\n", " plt.xlabel(\"Decile\")\n", " plt.ylabel(\"Lift\")\n", " plt.show();\n", " \n", " plt.plot(lg[\"Decile\"],lg[\"Gain\"],label=\"Model\")\n", " plt.plot(lg[\"Decile\"],[10*(i+1) for i in range(10)],label=\"Random\")\n", " plt.title(\"Gain Chart\")\n", " plt.legend()\n", " plt.xlabel(\"Decile\")\n", " plt.ylabel(\"Gain\")\n", " plt.xlim(0,11)\n", " plt.ylim(0,110)\n", " plt.show(); \n", "\n", "def linear_model_feature_importance(estimator,preprocessor,feature_selector=None,clfreg_name=\"clf\"):\n", " \"\"\"\n", " plots the feature importance, namely coefficients for linear models.\n", " args:\n", " estimator:either pipeline or gridsearch/randomizedsearch object\n", " preprocessor:variable name of the preprocessor, which is a columtransformer\n", " feature_selector:if there is a feature selector step, its name.\n", " clfreg_name:name of the linear model, usually clf for a classifier, reg for a regressor \n", " \"\"\"\n", " \n", " if feature_selector is not None:\n", " if isinstance(estimator,GridSearchCV) or isinstance(estimator,RandomizedSearchCV)\\\n", " or isinstance(estimator,HalvingGridSearchCV) or isinstance(estimator,HalvingRandomSearchCV):\n", " est=estimator.best_estimator_\n", " elif isinstance(estimator,Pipeline):\n", " est=estimator\n", " else:\n", " print(\"Either pipeline or gridsearch/randomsearch should be passes for estimator\")\n", " return\n", " \n", " selecteds=est[feature_selector].get_support()\n", " final_features=[x for e,x in enumerate(get_feature_names_from_columntransformer(preprocessor)) if e in np.argwhere(selecteds==True).ravel()]\n", " else:\n", " final_features=get_feature_names_from_columntransformer(preprocessor)\n", "\n", " importance=est[clfreg_name].coef_[0]\n", " plt.bar(final_features, importance)\n", " plt.xticks(rotation= 45,horizontalalignment=\"right\"); \n", "\n", "\n", "\n", "def gridsearch_to_df(searcher,topN=5):\n", " \"\"\"\n", " searcher: any of grid/randomized searcher objects or their halving versions\n", " \"\"\"\n", " cvresultdf = pd.DataFrame(searcher.cv_results_)\n", " cvresultdf = cvresultdf.sort_values(\"mean_test_score\", ascending=False)\n", " cols=[x for x in searcher.cv_results_.keys() if \"param_\" in x]+[\"mean_test_score\",\"std_test_score\"]\n", " return cvresultdf[cols].head(topN) \n", "\n", "\n", "def getAnotherEstimatorFromGridSearch(gs_object,estimator):\n", " cvres = gs_object.cv_results_\n", " cv_results = pd.DataFrame(cvres)\n", " cv_results[\"param_clf\"]=cv_results[\"param_clf\"].apply(lambda x:str(x).split('(')[0])\n", "\n", " dtc=cv_results[cv_results[\"param_clf\"]==estimator]\n", " return dtc.getRowOnAggregation_(\"mean_test_score\",\"max\")[\"params\"].values \n", "\n", "def cooksdistance(X,y,figsize=(8,6),ylim=0.5): \n", " model = sm.OLS(y,X)\n", " fitted = model.fit()\n", " # Cook's distance\n", " pr=X.shape[1]\n", " CD = 4.0/(X.shape[0]-pr-1)\n", " influence = fitted.get_influence()\n", " #c is the distance and p is p-value\n", " (c, p) = influence.cooks_distance\n", " plt.figure(figsize=figsize)\n", " plt.stem(np.arange(len(c)), c, markerfmt=\",\")\n", " plt.axhline(y=CD, color='r')\n", " plt.ylabel('Cook\\'s D')\n", " plt.xlabel('Observation Number')\n", " plt.ylim(0,ylim)\n", " plt.show();\n", "\n" ] } ], "source": [ "with io.open(\"/content/drive/MyDrive/Programming/PythonRocks/mypyext/ml.py\", \"r\", encoding='cp1254') as f:\n", " print(f.read())" ] }, { "cell_type": "markdown", "metadata": { "id": "suEJ8XztNP2O" }, "source": [ "## Yazma" ] }, { "cell_type": "code", "execution_count": 303, "metadata": { "id": "055w2MM7NP2O", "outputId": "8d6326fd-2706-42f4-a5e6-14a43b11e344", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "8" ] }, "metadata": {}, "execution_count": 303 } ], "source": [ "yenidosya=io.open(\"writetest.txt\",\"w\") #x\n", "yenidosya.write(\"merhaba\\n\")\n", "lines=[\"satır1\\n\",\"satır2\\n\"]\n", "yenidosya.writelines(lines)\n", "yenidosya.close()" ] }, { "cell_type": "code", "execution_count": 304, "metadata": { "id": "GUbenUslNP2O", "outputId": "801d967b-4cbb-4f9e-dfd6-cf42afa67d18", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "6" ] }, "metadata": {}, "execution_count": 304 } ], "source": [ "#varolana yaz, sonuna ekleme\n", "yenidosya=io.open(\"writetest.txt\",\"a\")\n", "yenidosya.write(\"\\nselam\")\n", "yenidosya.flush() #hemen yazsın. bunu kullanmazsak yaptığımız değişiklikleri hemen görmeyiz\n", "yenidosya.close()" ] }, { "cell_type": "code", "source": [ "!rm writetest.txt" ], "metadata": { "id": "6e04xrowTOeF" }, "execution_count": 305, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "lofzAC10NP2Q" }, "source": [ "# Veritabanı işlemleri" ] }, { "cell_type": "code", "execution_count": 306, "metadata": { "id": "EgfOzPiPNP2Q" }, "outputs": [], "source": [ "import sqlite3 as sql #python içinde otomatikman gelir" ] }, { "cell_type": "markdown", "metadata": { "id": "7vGExp6mNP2Q" }, "source": [ "sqlite sayfasından chinook databaseini indirin" ] }, { "cell_type": "code", "execution_count": 307, "metadata": { "id": "6pgtkIIlNP2R" }, "outputs": [], "source": [ "vt = sql.connect('/content/drive/MyDrive/Programming/PythonRocks/dataset/chinook.db')" ] }, { "cell_type": "code", "execution_count": 308, "metadata": { "id": "51kSF6MbNP2R" }, "outputs": [], "source": [ "cur=vt.cursor()" ] }, { "cell_type": "code", "execution_count": 309, "metadata": { "scrolled": true, "id": "QYENBSRZNP2R", "outputId": "0bbdea17-d1f4-4637-976b-dd02da428eeb", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 309 } ], "source": [ "cur.execute(\"select * from albums\")" ] }, { "cell_type": "code", "execution_count": 310, "metadata": { "id": "wIlYv6fENP2S", "outputId": "0abaa3e1-62da-4a27-f961-abd80f39e181", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[(1, 'For Those About To Rock We Salute You', 1),\n", " (2, 'Balls to the Wall', 2),\n", " (3, 'Restless and Wild', 2)]" ] }, "metadata": {}, "execution_count": 310 } ], "source": [ "cur.fetchmany(3)" ] }, { "cell_type": "code", "execution_count": 311, "metadata": { "id": "2vkd8fvdNP2S" }, "outputs": [], "source": [ "veriler = cur.fetchall()" ] }, { "cell_type": "code", "execution_count": 312, "metadata": { "scrolled": true, "id": "KpHtTp8GNP2S", "outputId": "fb30f204-9963-41be-b053-82ed1429d974", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[(4, 'Let There Be Rock', 1),\n", " (5, 'Big Ones', 3),\n", " (6, 'Jagged Little Pill', 4),\n", " (7, 'Facelift', 5),\n", " (8, 'Warner 25 Anos', 6)]" ] }, "metadata": {}, "execution_count": 312 } ], "source": [ "veriler[:5] #ilk 3ünü çektiğimiz için 4ten devam ediyor" ] }, { "cell_type": "code", "execution_count": 313, "metadata": { "id": "bbmc2UcjNP2S" }, "outputs": [], "source": [ "vt.close()" ] }, { "cell_type": "markdown", "metadata": { "id": "XF2lNJ1jNP2S" }, "source": [ "

NOT:sqlite3 çok basit bir veritabanı olup, oracle veya sql server gibi güçlü veritabanlarını sorgulamak için sqlalchemy veya pyodbc gibi modülleri kullanırız ve buradan aldığmız datayı pandas ile işleyebiliriz. Bunun için benim github repomdaki Python Veri Analizi notebookuna bakmanızı tavsiye ederim.

" ] }, { "cell_type": "markdown", "metadata": { "id": "7yl4D60NNP2S" }, "source": [ "http://sqlitebrowser.org/. sitesi de incelenebilir" ] }, { "cell_type": "markdown", "metadata": { "id": "aWdQ3O35NP2S" }, "source": [ "# Classlar" ] }, { "cell_type": "markdown", "metadata": { "id": "dsnWXgT5NP2T" }, "source": [ "Python nesne yönelimli(oo) bir dildir ve tüm oo dillerde olduğu gibi sınıflar yaratılabilir. Örnek bir sınıf yaratımı aşağıdaki gibi olup detaylar için googlelamanızı rica ederim." ] }, { "cell_type": "code", "execution_count": 314, "metadata": { "id": "ISjW6xL4NP2T", "outputId": "3a6022fe-62c6-464f-e478-3f7c80b24c16", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "yeni araç hazır\n", "yeni araç hazır\n", "yeni araç hazır\n", "<__main__.Araba object at 0x7d45a4bfff70>\n", "çalışıyor\n", "durdu\n", "Mekanik\n", "Mekanik\n" ] } ], "source": [ "class Araba:\n", " aractipi=\"Mekanik\" #class seviyesinde, tüm Arabalar tarafından paylaşılan bir değer\n", " def __init__(self,model,marka,km):\n", " self.model=model\n", " self.marka=marka\n", " self.km=km\n", " print(\"yeni araç hazır\")\n", " def run(self):\n", " print(\"çalışıyor\")\n", " def stop(self):\n", " print(\"durdu\")\n", "\n", "bmw0=Araba(2011,\"bmw\",0)\n", "bmw1=Araba(2014,\"bmw\",0)\n", "audi=Araba(2011,\"audi\",0)\n", "print(bmw0)\n", "bmw0.run()\n", "bmw0.stop()\n", "print(bmw0.aractipi)\n", "print(audi.aractipi)" ] }, { "cell_type": "markdown", "metadata": { "id": "jy6MGCozNP2T" }, "source": [ "## Paralelleştirme" ] }, { "cell_type": "markdown", "metadata": { "id": "4vVeILX-NP2T" }, "source": [ "Özellikle analitik model kurma sırasında çok işimize yarayan bir olgudur. Bunun için ayrı bir notebook'um olacak. Önden araştırmak isteyenler şu kavramları araştırabilir. Multi-threading, multiprocessing, conccurency ve parallelism" ] }, { "cell_type": "markdown", "metadata": { "id": "fabSEm7ANP2T" }, "source": [ "# Verimlilik ve Diğer" ] }, { "cell_type": "markdown", "metadata": { "id": "ocn1iv8JNP2U" }, "source": [ "## debugging" ] }, { "cell_type": "code", "execution_count": 315, "metadata": { "scrolled": true, "id": "CDamCKWINP2U", "outputId": "ce10d6b7-bded-43af-80a1-84bda466c6ca", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "\n", "PYDEV DEBUGGER WARNING:\n", "sys.settrace() should not be used when the debugger is being used.\n", "This may cause the debugger to stop working correctly.\n", "If this is needed, please check: \n", "http://pydev.blogspot.com/2007/06/why-cant-pydev-debugger-work-with.html\n", "to see how to restore the debug tracing back correctly.\n", "Call Location:\n", " File \"/usr/lib/python3.10/bdb.py\", line 336, in set_trace\n", " sys.settrace(self.trace_dispatch)\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "4\n", "--Call--\n", "> \u001b[0;32m/usr/local/lib/python3.10/dist-packages/IPython/core/displayhook.py\u001b[0m(252)\u001b[0;36m__call__\u001b[0;34m()\u001b[0m\n", "\u001b[0;32m 250 \u001b[0;31m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstdout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0m\u001b[0;32m 251 \u001b[0;31m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0m\u001b[0;32m--> 252 \u001b[0;31m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0m\u001b[0;32m 253 \u001b[0;31m \"\"\"Printing with history cache management.\n", "\u001b[0m\u001b[0;32m 254 \u001b[0;31m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0m\n", "ipdb> c\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "PYDEV DEBUGGER WARNING:\n", "sys.settrace() should not be used when the debugger is being used.\n", "This may cause the debugger to stop working correctly.\n", "If this is needed, please check: \n", "http://pydev.blogspot.com/2007/06/why-cant-pydev-debugger-work-with.html\n", "to see how to restore the debug tracing back correctly.\n", "Call Location:\n", " File \"/usr/lib/python3.10/bdb.py\", line 347, in set_continue\n", " sys.settrace(None)\n", "\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "asda\n" ] } ], "source": [ "import pdb\n", "print(4)\n", "pdb.set_trace() #c devam, n:next gibi seçenekler var\n", "print(\"asda\")" ] }, { "cell_type": "markdown", "metadata": { "id": "won9XpBlNP2U" }, "source": [ "## memory yönetimi" ] }, { "cell_type": "code", "execution_count": 317, "metadata": { "scrolled": true, "id": "AdmijMKPNP2V", "outputId": "e654c22f-8181-4b11-b6fa-64b2e449a166", "colab": { "base_uri": "https://localhost:8080/" } }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "64\n", "88\n", "104\n" ] } ], "source": [ "import sys\n", "import array\n", "t=(1,2,3)\n", "l=[1,2,\"3\"]\n", "a=array.array(\"l\",[1,2,3])\n", "print(sys.getsizeof(t)) #immutabel olduğu için daha az\n", "print(sys.getsizeof(l)) #mutable olduğu için tupldan daha çok, içine farklı tipler alabileceğim için arraydan daha çok\n", "print(sys.getsizeof(a)) #eleman tipi belli olduğu için listten daha az" ] }, { "cell_type": "markdown", "metadata": { "id": "C0XtcQ6ONP2V" }, "source": [ "# Cheatsheet" ] }, { "cell_type": "markdown", "metadata": { "id": "UE-hIG00NP2V" }, "source": [ "![cheatsheet.png](cheatsheet.png)" ] }, { "cell_type": "markdown", "metadata": { "id": "1YeCwWllNP2V" }, "source": [ "# Kendinizi test edin" ] }, { "cell_type": "markdown", "metadata": { "id": "uj1XC9KjNP2V" }, "source": [ "Aşağıdaki adreslerden birinden challange sorularını görebilirsiniz.\n", "* https://mybinder.org/v2/gh/VolkiTheDreamer/PythonRocks/master (Interaktiftir, download etmenize gerek yok)\n", "* üstteki açılmazsa: https://nbviewer.org/github/VolkiTheDreamer/PythonRocks/blob/master/Python%20Challenges.ipynb\n" ] }, { "cell_type": "markdown", "metadata": { "id": "bI3tbqMJNP2V" }, "source": [ "Bunun dışında şu sitelerde de pratik yapma imkanı bulabilirsiniz.\n", "\n", "- https://www.w3resource.com/python-exercises/\n", "- https://www.practicepython.org/\n", "- https://www.w3schools.com/python/python_exercises.asp\n", "- https://pynative.com/python-exercises-with-solutions/" ] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "708px", "left": "300px", "top": "148px", "width": "305.625px" }, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false }, "colab": { "provenance": [], "toc_visible": true, "include_colab_link": true }, "widgets": { "application/vnd.jupyter.widget-state+json": { "751edc7876624c858be3920a656bbe5a": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_a17d5706940d471c8def62d24b380451", "IPY_MODEL_94759083162b4ba7882beb31f5f5c0e6", "IPY_MODEL_da19b67ccfca40f0ac6fea0079279b45" ], "layout": "IPY_MODEL_451f673b411e45c89ba06581e24f3632" } }, "a17d5706940d471c8def62d24b380451": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_34289f2781b94924ab52dcc7accc4f9b", "placeholder": "​", "style": "IPY_MODEL_1178361d7b984b039fd0e5ee6a569adb", "value": "1st loop: 100%" } }, "94759083162b4ba7882beb31f5f5c0e6": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_125bc33900574ed692c44040871f04d0", "max": 3, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_c26eb70f93b248e2b78df67a5b6ccc65", "value": 3 } }, "da19b67ccfca40f0ac6fea0079279b45": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_13308604b83b4ff881bf2e86f199a654", "placeholder": "​", "style": "IPY_MODEL_286b1c469c4f48c9b4dca098d506e0e2", "value": " 3/3 [00:03<00:00,  1.08s/it]" } }, "451f673b411e45c89ba06581e24f3632": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "34289f2781b94924ab52dcc7accc4f9b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1178361d7b984b039fd0e5ee6a569adb": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "125bc33900574ed692c44040871f04d0": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c26eb70f93b248e2b78df67a5b6ccc65": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "13308604b83b4ff881bf2e86f199a654": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "286b1c469c4f48c9b4dca098d506e0e2": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "4b45e53206ac4335ad64c1bc76cf0a54": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_94b5dcb00309447db4caf1ca5f2bca6c", "IPY_MODEL_f34d953ef0f04222800959bad565983a", "IPY_MODEL_4a35b3bf482b483bbe7f3979968b2b57" ], "layout": "IPY_MODEL_f21bf8ef6c2543e5b9bd3a2006f37d99" } }, "94b5dcb00309447db4caf1ca5f2bca6c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_898d07425ae6424d9b373bcb23388625", "placeholder": "​", "style": "IPY_MODEL_2ce64cb4ef464074a58d8d3985b7a4c3", "value": "2nd loop: 100%" } }, "f34d953ef0f04222800959bad565983a": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a30f9a14b37949aea2fe0577940e22d3", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_803c924d944242399095d29937f7e046", "value": 100 } }, "4a35b3bf482b483bbe7f3979968b2b57": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_bd81728b56694c7493e07276209917a8", "placeholder": "​", "style": "IPY_MODEL_e1a40e5aab3f40ebbb01cd40c1994a8b", "value": " 100/100 [00:01<00:00, 97.19it/s]" } }, "f21bf8ef6c2543e5b9bd3a2006f37d99": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "898d07425ae6424d9b373bcb23388625": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2ce64cb4ef464074a58d8d3985b7a4c3": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "a30f9a14b37949aea2fe0577940e22d3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "803c924d944242399095d29937f7e046": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "bd81728b56694c7493e07276209917a8": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e1a40e5aab3f40ebbb01cd40c1994a8b": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "55a59a782aa84a98a6ae9a131707e7e4": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_a2adb592ff3245869a0d6379148a97fa", "IPY_MODEL_d9fb51af123045bfb01c0ca4ff71aadf", "IPY_MODEL_f057770d640d4d768887b58b24a05698" ], "layout": "IPY_MODEL_b2b1f12e421249369d42dee4ee11ff55" } }, "a2adb592ff3245869a0d6379148a97fa": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c017e47d80f04575872ee21fa7dc9271", "placeholder": "​", "style": "IPY_MODEL_1f31528beea8479db1929519dc36ebe0", "value": "2nd loop: 100%" } }, "d9fb51af123045bfb01c0ca4ff71aadf": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_ff25dde586244614852fb29ffd51dac9", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_2ad95d0a26034b62ad7a0941045a8bd6", "value": 100 } }, "f057770d640d4d768887b58b24a05698": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5dc1487f2b6a4a339d103355b6209569", "placeholder": "​", "style": "IPY_MODEL_2193d83b7019419c86f9915866b79247", "value": " 100/100 [00:01<00:00, 94.61it/s]" } }, "b2b1f12e421249369d42dee4ee11ff55": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c017e47d80f04575872ee21fa7dc9271": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1f31528beea8479db1929519dc36ebe0": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ff25dde586244614852fb29ffd51dac9": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2ad95d0a26034b62ad7a0941045a8bd6": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "5dc1487f2b6a4a339d103355b6209569": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2193d83b7019419c86f9915866b79247": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "a57d90da18644950b9ffc8517fe1df7b": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_da5f50d542c14d8f898c9f76abd9709d", "IPY_MODEL_8e86a15ad03845ed93fc85c7b82487d4", "IPY_MODEL_0aa16e4c1d1d4059841e36d8b325971f" ], "layout": "IPY_MODEL_9fd3dc999c6d4270a9ecfe2d8e8f5e1d" } }, "da5f50d542c14d8f898c9f76abd9709d": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6ec9be16d0354a8d87c177f2f68c49da", "placeholder": "​", "style": "IPY_MODEL_10a3331d6fec4345a45b8f8f9d0a8146", "value": "2nd loop: 100%" } }, "8e86a15ad03845ed93fc85c7b82487d4": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f125a24c6cf347a3b296a2906556be7a", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_e618cb21d1d6458ca0374e8618dd4ca8", "value": 100 } }, "0aa16e4c1d1d4059841e36d8b325971f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_2ddf420ed3dc4d429495f5ba7f922956", "placeholder": "​", "style": "IPY_MODEL_1516a50c3d4342f693aefe40460d6dd2", "value": " 100/100 [00:01<00:00, 95.69it/s]" } }, "9fd3dc999c6d4270a9ecfe2d8e8f5e1d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6ec9be16d0354a8d87c177f2f68c49da": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "10a3331d6fec4345a45b8f8f9d0a8146": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f125a24c6cf347a3b296a2906556be7a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e618cb21d1d6458ca0374e8618dd4ca8": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "2ddf420ed3dc4d429495f5ba7f922956": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1516a50c3d4342f693aefe40460d6dd2": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "2a723646e62b4dd0b4f147b66b704a02": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_7f56935b36514d2980be356a24f24b84", "IPY_MODEL_dfcfb947b6824327a3aeeb6461e06165", "IPY_MODEL_8118d9ea4ff74f60819e662d8d5df91f" ], "layout": "IPY_MODEL_8994340799334930b1cd7409ae0b0727" } }, "7f56935b36514d2980be356a24f24b84": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_90169b29d6014841a489708e49a74083", "placeholder": "​", "style": "IPY_MODEL_0776cd338bc1482f965b660491c6afd0", "value": "1st loop: 100%" } }, "dfcfb947b6824327a3aeeb6461e06165": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_e0cd072898dd47c5a217204603ad31c7", "max": 4, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_75b1e79b2bfa42f0a92507207515c487", "value": 4 } }, "8118d9ea4ff74f60819e662d8d5df91f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b474aa16bfd54d168f294424bfee7fe8", "placeholder": "​", "style": "IPY_MODEL_a340f22aac384496a41d9a645ffcb7b7", "value": " 4/4 [00:04<00:00,  1.06s/it]" } }, "8994340799334930b1cd7409ae0b0727": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "90169b29d6014841a489708e49a74083": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "0776cd338bc1482f965b660491c6afd0": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "e0cd072898dd47c5a217204603ad31c7": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "75b1e79b2bfa42f0a92507207515c487": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "b474aa16bfd54d168f294424bfee7fe8": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a340f22aac384496a41d9a645ffcb7b7": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "46b5e5dda0304f758c60b6f94051325f": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d0df97328d7b433dbb72b61b9743a34c", "IPY_MODEL_8268fc90ebd94eab8dddfc11e1bb1aa2", "IPY_MODEL_220049b6b28d405b9d1010805501f50f" ], "layout": "IPY_MODEL_dc194839fc494e5d925d26561f9b32e3" } }, "d0df97328d7b433dbb72b61b9743a34c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_2014f467dc8249e09936b3dff8a4e95e", "placeholder": "​", "style": "IPY_MODEL_10abace2675141db9dcdf6ed9dd7a218", "value": "2nd loop: 100%" } }, "8268fc90ebd94eab8dddfc11e1bb1aa2": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_ef47ccd577ea49a98c99ab3721c3a7f7", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_e7075953580844248beb6a73c7b3bc36", "value": 100 } }, "220049b6b28d405b9d1010805501f50f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_3dbd6933866c45e7b71f0e7c9b22ad02", "placeholder": "​", "style": "IPY_MODEL_03914bef2ebb436ab254aa4f315009e1", "value": " 100/100 [00:01<00:00, 96.32it/s]" } }, "dc194839fc494e5d925d26561f9b32e3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2014f467dc8249e09936b3dff8a4e95e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "10abace2675141db9dcdf6ed9dd7a218": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ef47ccd577ea49a98c99ab3721c3a7f7": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e7075953580844248beb6a73c7b3bc36": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "3dbd6933866c45e7b71f0e7c9b22ad02": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "03914bef2ebb436ab254aa4f315009e1": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "2f7c7946c1fc40388172d25cd16d3f7e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_c2bfc664050b47d888888b8bb0fc08ef", "IPY_MODEL_8ebdf5f0455c489ca970872f0670f1ee", "IPY_MODEL_18c4539041eb48e1a6fc3be4a251eb10" ], "layout": "IPY_MODEL_1f77f1cc085d423a9580200e96c34758" } }, "c2bfc664050b47d888888b8bb0fc08ef": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_9198335e467b43f3b8690c5bbaf58618", "placeholder": "​", "style": "IPY_MODEL_5f6ad924e3dd45d5821e33dbc0249f1c", "value": "2nd loop: 100%" } }, "8ebdf5f0455c489ca970872f0670f1ee": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_71a02681e9264458b860ecca3fb7e69c", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_a59b6f2054dc4e948180bfd09d0ba00b", "value": 100 } }, "18c4539041eb48e1a6fc3be4a251eb10": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_1c2a20f640f242feb3e54612df97f56a", "placeholder": "​", "style": "IPY_MODEL_e3e89e68dc3d4144a9cf20ad8257a9d4", "value": " 100/100 [00:01<00:00, 95.50it/s]" } }, "1f77f1cc085d423a9580200e96c34758": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9198335e467b43f3b8690c5bbaf58618": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5f6ad924e3dd45d5821e33dbc0249f1c": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "71a02681e9264458b860ecca3fb7e69c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a59b6f2054dc4e948180bfd09d0ba00b": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "1c2a20f640f242feb3e54612df97f56a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e3e89e68dc3d4144a9cf20ad8257a9d4": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "4d288466b05f48728173f1351087d17c": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_c4560d87d77a44ed9b5ebdbf994375c6", "IPY_MODEL_a9ad6adbb75447a6884c12a8e7ced40a", "IPY_MODEL_02a9a607bc4041f4ac417118d866b608" ], "layout": "IPY_MODEL_19f3115c55c24bef93ae99e8c5c45529" } }, "c4560d87d77a44ed9b5ebdbf994375c6": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_d6b6d63fe6ed4cb58659ae2711c5a94f", "placeholder": "​", "style": "IPY_MODEL_d4e641c56552460c87905887e70829c2", "value": "2nd loop: 100%" } }, "a9ad6adbb75447a6884c12a8e7ced40a": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_385c2a546fc244f688bfdf32047b2ee3", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_a465664b6da74a9b9913164c05890785", "value": 100 } }, "02a9a607bc4041f4ac417118d866b608": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_384f5336a7f949c586744448645f05df", "placeholder": "​", "style": "IPY_MODEL_b7454e3fc74b4b00b96f407748ec88f2", "value": " 100/100 [00:01<00:00, 97.21it/s]" } }, "19f3115c55c24bef93ae99e8c5c45529": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d6b6d63fe6ed4cb58659ae2711c5a94f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d4e641c56552460c87905887e70829c2": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "385c2a546fc244f688bfdf32047b2ee3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a465664b6da74a9b9913164c05890785": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "384f5336a7f949c586744448645f05df": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b7454e3fc74b4b00b96f407748ec88f2": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "9677ba9be9d143b2930801e7b88f38d3": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d0007ff716e04689855fee5ee46f5d11", "IPY_MODEL_a622553bbe27473dbc5c5b98e9ee7fc6", "IPY_MODEL_f9876579fc9f4273aa4666944675c22a" ], "layout": "IPY_MODEL_ab7d4ac726f34d348159d82b8cceb6e1" } }, "d0007ff716e04689855fee5ee46f5d11": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_29e2fa26a1994d57a2c04a8e2dc1c1af", "placeholder": "​", "style": "IPY_MODEL_2940b68710a34f449e8c37f4fff9b8fc", "value": "2nd loop: 100%" } }, "a622553bbe27473dbc5c5b98e9ee7fc6": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_7ec17ed3d1c148b0920358d15a61c3d3", "max": 100, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f8aab6bc3841431e89899f78a149de09", "value": 100 } }, "f9876579fc9f4273aa4666944675c22a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_077e73ca35334ea993803d0184fa8259", "placeholder": "​", "style": "IPY_MODEL_c99f9790d8ab4455b7cc4cc0761fbe15", "value": " 100/100 [00:01<00:00, 97.15it/s]" } }, "ab7d4ac726f34d348159d82b8cceb6e1": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "29e2fa26a1994d57a2c04a8e2dc1c1af": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2940b68710a34f449e8c37f4fff9b8fc": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "7ec17ed3d1c148b0920358d15a61c3d3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f8aab6bc3841431e89899f78a149de09": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "077e73ca35334ea993803d0184fa8259": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c99f9790d8ab4455b7cc4cc0761fbe15": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "d9b31269f6a44179ae92bf432bd54c5b": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_91af54bc0c9e49629a65cacf67bda104", "IPY_MODEL_b21f17e916c94580b7cfd25805d26323", "IPY_MODEL_3162987da282497bb2f2821cc8f292c7" ], "layout": "IPY_MODEL_ab3eaed1d20547628991f415d5adad0c" } }, "91af54bc0c9e49629a65cacf67bda104": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_545c51443b2a443d9d37eb10b18d35cc", "placeholder": "​", "style": "IPY_MODEL_b32c0170cc1a4dff91ff074d123f9d52", "value": "100%" } }, "b21f17e916c94580b7cfd25805d26323": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f0001ddf3d4a45d2869803414894c983", "max": 10, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_e73c46a77b91498980a942d778d961ba", "value": 10 } }, "3162987da282497bb2f2821cc8f292c7": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_dbd2d97b660d4c9d9de92471b1796331", "placeholder": "​", "style": "IPY_MODEL_1db4bc7a804e41b7838bc069695eddf5", "value": " 10/10 [00:05<00:00,  1.99it/s]" } }, "ab3eaed1d20547628991f415d5adad0c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "545c51443b2a443d9d37eb10b18d35cc": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b32c0170cc1a4dff91ff074d123f9d52": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f0001ddf3d4a45d2869803414894c983": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e73c46a77b91498980a942d778d961ba": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "dbd2d97b660d4c9d9de92471b1796331": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1db4bc7a804e41b7838bc069695eddf5": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "6112246249584fb2a73cbd6e5086c89a": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_f0f7078f01c1405ab75ef477a106cb36", "IPY_MODEL_bf947e1161974b07af1bc216fa50b2aa", "IPY_MODEL_ce038aec570a478c8fd770a7f074722f" ], "layout": "IPY_MODEL_44c1cbfc30b64530a84c464ad263e8df" } }, "f0f7078f01c1405ab75ef477a106cb36": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b00f63067158418db9527771958313c4", "placeholder": "​", "style": "IPY_MODEL_c337f94c20f140cab906d51a2890da49", "value": "Loop 1: 100%" } }, "bf947e1161974b07af1bc216fa50b2aa": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_40af719cb62c49c2a1632876b2ae865f", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_034ed767050d41c7937b0476bfdb3c87", "value": 2 } }, "ce038aec570a478c8fd770a7f074722f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5e1bf1ec9d6048e2b553a72bb3777b0a", "placeholder": "​", "style": "IPY_MODEL_58cdd4903a62471d9ecec9cf40fc0d7a", "value": " 2/2 [00:05<00:00,  2.55s/it]" } }, "44c1cbfc30b64530a84c464ad263e8df": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b00f63067158418db9527771958313c4": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c337f94c20f140cab906d51a2890da49": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "40af719cb62c49c2a1632876b2ae865f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "034ed767050d41c7937b0476bfdb3c87": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "5e1bf1ec9d6048e2b553a72bb3777b0a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "58cdd4903a62471d9ecec9cf40fc0d7a": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "7ec0f3f7a707490da8becdb283ad3b9f": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_3cd168f631ae4ad7be7d36c0ae813c73", "IPY_MODEL_78903c3560be4623acce5faf7d4a3ad8", "IPY_MODEL_3280d0e326ad4a779126819711c92e5c" ], "layout": "IPY_MODEL_e2d46d21e9534ba49d5bee5f8aa3050e" } }, "3cd168f631ae4ad7be7d36c0ae813c73": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_d76b0dac3b4c4b358846f5600e439e85", "placeholder": "​", "style": "IPY_MODEL_77a56e87b70e4d7aa22ca1cf7e575c04", "value": "Loop 2: 100%" } }, "78903c3560be4623acce5faf7d4a3ad8": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_ebdc3f6de85c4b0282da3334f73cfabc", "max": 5, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_276f4f8d45ed4f568c08093803d3ae50", "value": 5 } }, "3280d0e326ad4a779126819711c92e5c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_2bf2bbe865c14190b24c1c0e566d4044", "placeholder": "​", "style": "IPY_MODEL_c2d09620e1e447988e2136a493af25c3", "value": " 5/5 [00:02<00:00,  1.98it/s]" } }, "e2d46d21e9534ba49d5bee5f8aa3050e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d76b0dac3b4c4b358846f5600e439e85": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "77a56e87b70e4d7aa22ca1cf7e575c04": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ebdc3f6de85c4b0282da3334f73cfabc": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "276f4f8d45ed4f568c08093803d3ae50": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "2bf2bbe865c14190b24c1c0e566d4044": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c2d09620e1e447988e2136a493af25c3": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "3ebff4dd167448a4bce6f6bf21760c1e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_e8274af5bb9944bda83685457191eed5", "IPY_MODEL_0904a06cda6f491c943416e11ad262ae", "IPY_MODEL_9e597674145246fba1e2813aa5722ea7" ], "layout": "IPY_MODEL_631ecaafa15d44d6b45a0182f5427e29" } }, "e8274af5bb9944bda83685457191eed5": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a7afbf7a190d412a8a1531576e84383f", "placeholder": "​", "style": "IPY_MODEL_9af068e5e72743dcbc18ed9f6dde794e", "value": "Loop 2: 100%" } }, "0904a06cda6f491c943416e11ad262ae": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a0eb297817774dd8a45e506109c068cd", "max": 5, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_cf27a49e481e47048174be88277fe3be", "value": 5 } }, "9e597674145246fba1e2813aa5722ea7": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_313edfa26f8f43a6835dc5eeb390c152", "placeholder": "​", "style": "IPY_MODEL_a914c7dd6ef64656a6ca0287af2b6c36", "value": " 5/5 [00:02<00:00,  1.99it/s]" } }, "631ecaafa15d44d6b45a0182f5427e29": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a7afbf7a190d412a8a1531576e84383f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9af068e5e72743dcbc18ed9f6dde794e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "a0eb297817774dd8a45e506109c068cd": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "cf27a49e481e47048174be88277fe3be": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "313edfa26f8f43a6835dc5eeb390c152": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a914c7dd6ef64656a6ca0287af2b6c36": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } } } } }, "nbformat": 4, "nbformat_minor": 0 }