For our autonomous driving project, it's very inefficient and slow if we train our model from CPU. If we use Autopilot model, we need around 2 to 3 hours to train the model on CPU. If we use more complex model, such as 3D-CNN or Transfer learning model, it takes up to 6 hours. Besides this, training the model on your local PC will drop down the life cycle of your machine, which is the thing that I care the most! In order to solve this problem, I implemented my training process on different platforms that provided GPU training capability.
This blog will cover following two topics:
1. How to use Google's free GPU to train our autopilot model.
2. How to use local/remote GPU to train the TensorFlow machine learning model.
Google CollaboratoryColaboratory is a free Jupyter notebook environment that requires no setup and runs entirely in the cloud. User only need to upload their model and data to the cloud, then user can easily configure the hardware for the training process. After training, Google Colaboratory provides a simple API to download the trained model. Besides user can get the benefit of "cloud computing", Colaboratory can generate.ipynb file that can makes source code sharing to be very convenient. personally, I think using Goole Colaboratory is an awesome solution if you just want to train some middle-level volume tasks.
- Preparation:
The first step of using Google Colaboratory GPU is to get a google account. As long as you have google account, you can use google Colaboratory by opening your google google drive.
Colaboratory provides you the same API like your Jupyter notebook. One of the significant difference is that Colaboratory gives you the chance to config your harware. Following screenshots can give us a brief introduction of how to configure the GPU for your model training.
- Environment Uploading
After this, you can run your code on the Google GPU for free now! Next, we need to Install Tensor-flow and all dependencies we need in our project:
#install Tensor-flow
!pip install tensorflow==1.8.0
#load donkey car project from git hub
!git clone https://github.com/autorope/donkeycar
You can find all loaded files from "Files" tab:
If we finished all mentioned steps, we need to setup our working environment:
!pip install -e ./donkeycar
!cd /content/projects && git clone https://github.com/autorope/donkeycar
!cd /content/donkeycar && git checkout master && pip install -e . && donkey createcar ~/mycar
After Setting the work environment, we need to upload our training data to the cloud by calling following APIs:
from google.colab import files
# Browser will pop up a window to let user choose the files that user would like to upload
uploaded = files.upload()
#unzip data to correct position
!unzip -o /content/tub1.zip -d /root/mycar/data/tub
Most of times, we would like to customize the default training process or default model structure. the process is the same as uploading the data. we only need to upload the data to the cloud, then use Linux command to replace the old one. we even bale to directly upload files from file navigator:
Last and the most important step: Training Our Model!
!cd /root/mycar/ && python /root/mycar/manage.py train --tub /root/mycar/data/tub/tub --model /root/mycar/models/model1
After the training process, we can just use file navigator to download the trained model to our local storage.
- Pros and Cons
Google Colaboratory is a environment that very easy to use, It's free, and you don't need to worry about hurting your own laptop. the only downside of using this platform is that Google Colaboratory is a shared platform, it didn't persist data for you after you close the session, means that you need to reload whole dataset after you reopen your Colaboratory.
- Full Code
You Can find the full code from Here.
Training ML Model on General GPUThe process of using GPU is not very complex comparing with directly training the model on CPU. I will give a brief introduction for how to train our model on the machine with a Nvidia's GPU device for all tensor-flow based projects.
- Install CUDA
CUDA is a parallel computing platform and application programming interface model created by Nvidia. TensorFlow and Keras use its API to load data to GPU and perform data transformation on GPU. For Donkey car autonomous driving project, tensor flow 8.0 is the based version, so according we need to use CUDA 9 as our base version. Following is the code of install CUDA9:
# Add NVIDIA package repositorysudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pubwget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.debsudo apt install ./cuda-repo-ubuntu1604_9.1.85-1_amd64.debwget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.debsudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.debsudo apt update# Install the NVIDIA driver# Issue with driver install requires creating /usr/lib/nvidiasudo mkdir /usr/lib/nvidiasudo apt-get install --no-install-recommends nvidia-410# Reboot. Check that GPUs are visible using the command: nvidia-smi# Install CUDA and tools. Include optional NCCL 2.xsudo apt install cuda9.0 cuda-cublas-9-0 cuda-cufft-9-0 cuda-curand-9-0 \ cuda-cusolver-9-0 cuda-cusparse-9-0 libcudnn7=7.2.1.38-1+cuda9.0 \ libnccl2=2.2.13-1+cuda9.0 cuda-command-line-tools-9-0# Optional: Install the TensorRT runtime (must be after CUDA install)sudo apt updatesudo apt install libnvinfer4=4.1.2-1+cuda9.0
- Install TensorFlow
After Install CUDA, we need to install special TensorFlow version for running on GPU.
pip install tensorflow-gpu
- Config to use GPU or CPU
We can use following config to decide whether use GPU or CPU for our protect:
#-1: Use CPU
CUDA_VISIBLE_DEVICES="-1"
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "DonkeyCar.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "KUlE6JEla4QP",
"colab_type": "code",
"outputId": "8ca61425-dca7-4d10-fd54-5bbd86cb4107",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 870
}
},
"source": [
"!sudo apt-get install virtualenv build-essential python3-dev gfortran libhdf5-dev\n",
"\n",
"\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Reading package lists... Done\n",
"Building dependency tree \n",
"Reading state information... Done\n",
"build-essential is already the newest version (12.4ubuntu1).\n",
"libhdf5-dev is already the newest version (1.10.0-patch1+docs-4).\n",
"gfortran is already the newest version (4:7.3.0-3ubuntu2.1).\n",
"python3-dev is already the newest version (3.6.7-1~18.04).\n",
"The following package was automatically installed and is no longer required:\n",
" libnvidia-common-410\n",
"Use 'sudo apt autoremove' to remove it.\n",
"The following additional packages will be installed:\n",
" python-pip-whl python3-pkg-resources python3-virtualenv\n",
"Suggested packages:\n",
" python3-setuptools\n",
"The following NEW packages will be installed:\n",
" python-pip-whl python3-pkg-resources python3-virtualenv virtualenv\n",
"0 upgraded, 4 newly installed, 0 to remove and 11 not upgraded.\n",
"Need to get 1,799 kB of archives.\n",
"After this operation, 2,556 kB of additional disk space will be used.\n",
"Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip-whl all 9.0.1-2.3~ubuntu1 [1,652 kB]\n",
"Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-pkg-resources all 39.0.1-2 [98.8 kB]\n",
"Get:3 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-virtualenv all 15.1.0+ds-1.1 [43.4 kB]\n",
"Get:4 http://archive.ubuntu.com/ubuntu bionic/universe amd64 virtualenv all 15.1.0+ds-1.1 [4,476 B]\n",
"Fetched 1,799 kB in 1s (1,987 kB/s)\n",
"debconf: unable to initialize frontend: Dialog\n",
"debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 4.)\n",
"debconf: falling back to frontend: Readline\n",
"debconf: unable to initialize frontend: Readline\n",
"debconf: (This frontend requires a controlling tty.)\n",
"debconf: falling back to frontend: Teletype\n",
"dpkg-preconfigure: unable to re-open stdin: \n",
"Selecting previously unselected package python-pip-whl.\n",
"(Reading database ... 130812 files and directories currently installed.)\n",
"Preparing to unpack .../python-pip-whl_9.0.1-2.3~ubuntu1_all.deb ...\n",
"Unpacking python-pip-whl (9.0.1-2.3~ubuntu1) ...\n",
"Selecting previously unselected package python3-pkg-resources.\n",
"Preparing to unpack .../python3-pkg-resources_39.0.1-2_all.deb ...\n",
"Unpacking python3-pkg-resources (39.0.1-2) ...\n",
"Selecting previously unselected package python3-virtualenv.\n",
"Preparing to unpack .../python3-virtualenv_15.1.0+ds-1.1_all.deb ...\n",
"Unpacking python3-virtualenv (15.1.0+ds-1.1) ...\n",
"Selecting previously unselected package virtualenv.\n",
"Preparing to unpack .../virtualenv_15.1.0+ds-1.1_all.deb ...\n",
"Unpacking virtualenv (15.1.0+ds-1.1) ...\n",
"Setting up python-pip-whl (9.0.1-2.3~ubuntu1) ...\n",
"Setting up python3-pkg-resources (39.0.1-2) ...\n",
"Setting up python3-virtualenv (15.1.0+ds-1.1) ...\n",
"Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n",
"Setting up virtualenv (15.1.0+ds-1.1) ...\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9fh68au6btvA",
"colab_type": "text"
},
"source": [
"# New Section"
]
},
{
"cell_type": "code",
"metadata": {
"id": "FQn8KQAfdsRi",
"colab_type": "code",
"outputId": "ea200ac1-9ab9-4137-d0ad-0ada77ae9025",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
}
},
"source": [
"!virtualenv env -p python3\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Already using interpreter /usr/bin/python3\n",
"Using base prefix '/usr'\n",
"New python executable in /content/env/bin/python3\n",
"Also creating executable in /content/env/bin/python\n",
"Installing setuptools, pkg_resources, pip, wheel...done.\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5jzAI-XRp2V7",
"colab_type": "code",
"colab": {}
},
"source": [
"!source env/bin/activate"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "B1_UT8i_dyNj",
"colab_type": "code",
"outputId": "623328e2-4702-4174-afe2-05a9d8385662",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 751
}
},
"source": [
"!pip install tensorflow==1.8.0\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting tensorflow==1.8.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/22/c6/d08f7c549330c2acc1b18b5c1f0f8d9d2af92f54d56861f331f372731671/tensorflow-1.8.0-cp36-cp36m-manylinux1_x86_64.whl (49.1MB)\n",
"\u001b[K || 49.1MB 1.4MB/s \n",
"\u001b[?25hCollecting tensorboard<1.9.0,>=1.8.0 (from tensorflow==1.8.0)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/59/a6/0ae6092b7542cfedba6b2a1c9b8dceaf278238c39484f3ba03b03f07803c/tensorboard-1.8.0-py3-none-any.whl (3.1MB)\n",
"\u001b[K || 3.1MB 34.3MB/s \n",
"\u001b[?25hRequirement already satisfied: absl-py>=0.1.6 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (0.7.1)\n",
"Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (1.1.0)\n",
"Requirement already satisfied: grpcio>=1.8.6 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (1.15.0)\n",
"Requirement already satisfied: gast>=0.2.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (0.2.2)\n",
"Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (0.33.4)\n",
"Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (1.16.4)\n",
"Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (1.12.0)\n",
"Requirement already satisfied: protobuf>=3.4.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (3.7.1)\n",
"Requirement already satisfied: astor>=0.6.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow==1.8.0) (0.8.0)\n",
"Requirement already satisfied: werkzeug>=0.11.10 in /usr/local/lib/python3.6/dist-packages (from tensorboard<1.9.0,>=1.8.0->tensorflow==1.8.0) (0.15.4)\n",
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.6/dist-packages (from tensorboard<1.9.0,>=1.8.0->tensorflow==1.8.0) (3.1.1)\n",
"Collecting bleach==1.5.0 (from tensorboard<1.9.0,>=1.8.0->tensorflow==1.8.0)\n",
" Downloading https://files.pythonhosted.org/packages/33/70/86c5fec937ea4964184d4d6c4f0b9551564f821e1c3575907639036d9b90/bleach-1.5.0-py2.py3-none-any.whl\n",
"Collecting html5lib==0.9999999 (from tensorboard<1.9.0,>=1.8.0->tensorflow==1.8.0)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/ae/ae/bcb60402c60932b32dfaf19bb53870b29eda2cd17551ba5639219fb5ebf9/html5lib-0.9999999.tar.gz (889kB)\n",
"\u001b[K || 890kB 36.6MB/s \n",
"\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from protobuf>=3.4.0->tensorflow==1.8.0) (41.0.1)\n",
"Building wheels for collected packages: html5lib\n",
" Building wheel for html5lib (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Stored in directory: /root/.cache/pip/wheels/50/ae/f9/d2b189788efcf61d1ee0e36045476735c838898eef1cad6e29\n",
"Successfully built html5lib\n",
"\u001b[31mERROR: magenta 0.3.19 has requirement tensorflow>=1.12.0, but you'll have tensorflow 1.8.0 which is incompatible.\u001b[0m\n",
"Installing collected packages: html5lib, bleach, tensorboard, tensorflow\n",
" Found existing installation: html5lib 1.0.1\n",
" Uninstalling html5lib-1.0.1:\n",
" Successfully uninstalled html5lib-1.0.1\n",
" Found existing installation: bleach 3.1.0\n",
" Uninstalling bleach-3.1.0:\n",
" Successfully uninstalled bleach-3.1.0\n",
" Found existing installation: tensorboard 1.13.1\n",
" Uninstalling tensorboard-1.13.1:\n",
" Successfully uninstalled tensorboard-1.13.1\n",
" Found existing installation: tensorflow 1.13.1\n",
" Uninstalling tensorflow-1.13.1:\n",
" Successfully uninstalled tensorflow-1.13.1\n",
"Successfully installed bleach-1.5.0 html5lib-0.9999999 tensorboard-1.8.0 tensorflow-1.8.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "M2cK3WHSeZcm",
"colab_type": "text"
},
"source": [
"# New Section"
]
},
{
"cell_type": "code",
"metadata": {
"id": "7If5guMAd6Wk",
"colab_type": "code",
"outputId": "eda9f333-7991-4276-ca79-d8bb62981ab0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 136
}
},
"source": [
"!git clone https://github.com/autorope/donkeycar"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Cloning into 'donkeycar'...\n",
"remote: Enumerating objects: 134, done.\u001b[K\n",
"remote: Counting objects: 100% (134/134), done.\u001b[K\n",
"remote: Compressing objects: 100% (91/91), done.\u001b[K\n",
"remote: Total 9022 (delta 51), reused 85 (delta 38), pack-reused 8888\u001b[K\n",
"Receiving objects: 100% (9022/9022), 43.53 MiB | 34.99 MiB/s, done.\n",
"Resolving deltas: 100% (5436/5436), done.\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "D-xldf-8eCTU",
"colab_type": "code",
"outputId": "cd23e2c7-2541-4570-edce-8c4867e6ec0d",
"colab": {
"resources": {
"http://localhost:8080/nbextensions/google.colab/files.js": {
"data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=",
"ok": true,
"headers": [
[
"content-type",
"application/javascript"
]
],
"status": 200,
"status_text": ""
}
},
"base_uri": "https://localhost:8080/",
"height": 71
}
},
"source": [
"from google.colab import files\n",
"uploaded = files.upload()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" <input type=\"file\" id=\"files-a8ee1d18-9846-4bac-97c9-3bbecc3e578f\" name=\"files[]\" multiple disabled />\n",
" <output id=\"result-a8ee1d18-9846-4bac-97c9-3bbecc3e578f\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script src=\"/nbextensions/google.colab/files.js\"></script> "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Saving tub1.zip to tub1.zip\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "s6x3A7HZr5Fx",
"colab_type": "code",
"outputId": "c0c4a8ba-a18a-49e9-9d75-5f6cb75df54a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 20570
}
},
"source": [
"!unzip -o /content/tub1.zip -d /root/mycar/data/tub"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Archive: /content/tub1.zip\n",
" creating: /root/mycar/data/tub/tub/\n",
" inflating: /root/mycar/data/tub/tub/record_581.json \n",
" inflating: /root/mycar/data/tub/tub/record_352.json \n",
" inflating: /root/mycar/data/tub/tub/235_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_217.json \n",
" inflating: /root/mycar/data/tub/tub/426_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/97_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_539.json \n",
" inflating: /root/mycar/data/tub/tub/64_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/507_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_169.json \n",
" inflating: /root/mycar/data/tub/tub/record_493.json \n",
" inflating: /root/mycar/data/tub/tub/record_186.json \n",
" inflating: /root/mycar/data/tub/tub/314_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/190_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/163_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_305.json \n",
" inflating: /root/mycar/data/tub/tub/record_92.json \n",
" inflating: /root/mycar/data/tub/tub/record_240.json \n",
" inflating: /root/mycar/data/tub/tub/record_485.json \n",
" inflating: /root/mycar/data/tub/tub/record_190.json \n",
" inflating: /root/mycar/data/tub/tub/274_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_84.json \n",
" inflating: /root/mycar/data/tub/tub/287_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_313.json \n",
" inflating: /root/mycar/data/tub/tub/494_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/467_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_256.json \n",
" inflating: /root/mycar/data/tub/tub/546_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/25_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_578.json \n",
" inflating: /root/mycar/data/tub/tub/record_128.json \n",
" inflating: /root/mycar/data/tub/tub/122_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_597.json \n",
" inflating: /root/mycar/data/tub/tub/355_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_344.json \n",
" inflating: /root/mycar/data/tub/tub/record_201.json \n",
" inflating: /root/mycar/data/tub/tub/record_446.json \n",
" inflating: /root/mycar/data/tub/tub/record_503.json \n",
" inflating: /root/mycar/data/tub/tub/record_153.json \n",
" inflating: /root/mycar/data/tub/tub/195_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/311_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/166_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_47.json \n",
" inflating: /root/mycar/data/tub/tub/588_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/18_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/92_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_295.json \n",
" inflating: /root/mycar/data/tub/tub/502_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/61_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_6.json \n",
" inflating: /root/mycar/data/tub/tub/368_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/423_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_411.json \n",
" inflating: /root/mycar/data/tub/tub/249_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_104.json \n",
" inflating: /root/mycar/data/tub/tub/230_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_554.json \n",
" inflating: /root/mycar/data/tub/tub/record_387.json \n",
" inflating: /root/mycar/data/tub/tub/record_10.json \n",
" inflating: /root/mycar/data/tub/tub/record_368.json \n",
" inflating: /root/mycar/data/tub/tub/record_407.json \n",
" inflating: /root/mycar/data/tub/tub/record_542.json \n",
" inflating: /root/mycar/data/tub/tub/record_112.json \n",
" inflating: /root/mycar/data/tub/tub/59_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/127_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/350_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_391.json \n",
" inflating: /root/mycar/data/tub/tub/329_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/20_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/543_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/208_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/491_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_450.json \n",
" inflating: /root/mycar/data/tub/tub/462_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_145.json \n",
" inflating: /root/mycar/data/tub/tub/record_515.json \n",
" inflating: /root/mycar/data/tub/tub/271_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/282_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_51.json \n",
" inflating: /root/mycar/data/tub/tub/record_283.json \n",
" inflating: /root/mycar/data/tub/tub/record_329.json \n",
" inflating: /root/mycar/data/tub/tub/record_26.json \n",
" inflating: /root/mycar/data/tub/tub/128_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_562.json \n",
" inflating: /root/mycar/data/tub/tub/record_132.json \n",
" inflating: /root/mycar/data/tub/tub/56_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/535_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_427.json \n",
" inflating: /root/mycar/data/tub/tub/326_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/151_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/207_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_309.json \n",
" inflating: /root/mycar/data/tub/tub/414_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_71.json \n",
" inflating: /root/mycar/data/tub/tub/record_165.json \n",
" inflating: /root/mycar/data/tub/tub/record_535.json \n",
" inflating: /root/mycar/data/tub/tub/record_470.json \n",
" inflating: /root/mycar/data/tub/tub/record_88.json \n",
" inflating: /root/mycar/data/tub/tub/record_67.json \n",
" inflating: /root/mycar/data/tub/tub/574_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/17_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/587_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_523.json \n",
" inflating: /root/mycar/data/tub/tub/169_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_173.json \n",
" inflating: /root/mycar/data/tub/tub/record_489.json \n",
" inflating: /root/mycar/data/tub/tub/110_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/394_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_466.json \n",
" inflating: /root/mycar/data/tub/tub/367_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/246_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_348.json \n",
" inflating: /root/mycar/data/tub/tub/455_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_30.json \n",
" inflating: /root/mycar/data/tub/tub/record_124.json \n",
" inflating: /root/mycar/data/tub/tub/record_574.json \n",
" inflating: /root/mycar/data/tub/tub/record_431.json \n",
" inflating: /root/mycar/data/tub/tub/record_276.json \n",
" inflating: /root/mycar/data/tub/tub/record_299.json \n",
" inflating: /root/mycar/data/tub/tub/record_333.json \n",
" inflating: /root/mycar/data/tub/tub/411_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/288_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/202_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/468_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/323_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/154_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_221.json \n",
" inflating: /root/mycar/data/tub/tub/549_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_364.json \n",
" inflating: /root/mycar/data/tub/tub/530_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/53_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_558.json \n",
" inflating: /root/mycar/data/tub/tub/record_108.json \n",
" inflating: /root/mycar/data/tub/tub/record_237.json \n",
" inflating: /root/mycar/data/tub/tub/record_372.json \n",
" inflating: /root/mycar/data/tub/tub/450_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/429_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/243_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/508_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/98_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_260.json \n",
" inflating: /root/mycar/data/tub/tub/391_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/115_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/362_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_325.json \n",
" inflating: /root/mycar/data/tub/tub/12_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/571_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/582_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_519.json \n",
" inflating: /root/mycar/data/tub/tub/record_149.json \n",
" inflating: /root/mycar/data/tub/tub/522_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/41_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/348_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/146_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/331_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_518.json \n",
" inflating: /root/mycar/data/tub/tub/38_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_148.json \n",
" inflating: /root/mycar/data/tub/tub/record_261.json \n",
" inflating: /root/mycar/data/tub/tub/record_324.json \n",
" inflating: /root/mycar/data/tub/tub/210_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_236.json \n",
" inflating: /root/mycar/data/tub/tub/489_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/403_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/269_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_373.json \n",
" inflating: /root/mycar/data/tub/tub/309_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/590_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/563_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/79_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/370_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_559.json \n",
" inflating: /root/mycar/data/tub/tub/383_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_109.json \n",
" inflating: /root/mycar/data/tub/tub/107_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_220.json \n",
" inflating: /root/mycar/data/tub/tub/record_365.json \n",
" inflating: /root/mycar/data/tub/tub/8_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/.DS_Store \n",
" creating: /root/mycar/data/tub/__MACOSX/\n",
" creating: /root/mycar/data/tub/__MACOSX/tub/\n",
" inflating: /root/mycar/data/tub/__MACOSX/tub/._.DS_Store \n",
" inflating: /root/mycar/data/tub/tub/record_277.json \n",
" inflating: /root/mycar/data/tub/tub/251_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/228_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/442_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_298.json \n",
" inflating: /root/mycar/data/tub/tub/record_332.json \n",
" inflating: /root/mycar/data/tub/tub/record_125.json \n",
" inflating: /root/mycar/data/tub/tub/record_575.json \n",
" inflating: /root/mycar/data/tub/tub/406_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/215_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_430.json \n",
" inflating: /root/mycar/data/tub/tub/record_349.json \n",
" inflating: /root/mycar/data/tub/tub/record_31.json \n",
" inflating: /root/mycar/data/tub/tub/record_522.json \n",
" inflating: /root/mycar/data/tub/tub/record_172.json \n",
" inflating: /root/mycar/data/tub/tub/record_488.json \n",
" inflating: /root/mycar/data/tub/tub/record_467.json \n",
" inflating: /root/mycar/data/tub/tub/record_89.json \n",
" inflating: /root/mycar/data/tub/tub/143_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/334_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_66.json \n",
" inflating: /root/mycar/data/tub/tub/44_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/527_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/447_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_164.json \n",
" inflating: /root/mycar/data/tub/tub/record_534.json \n",
" inflating: /root/mycar/data/tub/tub/254_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_471.json \n",
" inflating: /root/mycar/data/tub/tub/record_308.json \n",
" inflating: /root/mycar/data/tub/tub/record_70.json \n",
" inflating: /root/mycar/data/tub/tub/record_563.json \n",
" inflating: /root/mycar/data/tub/tub/record_133.json \n",
" inflating: /root/mycar/data/tub/tub/record_426.json \n",
" inflating: /root/mycar/data/tub/tub/375_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/102_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/386_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/595_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_27.json \n",
" inflating: /root/mycar/data/tub/tub/566_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/188_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/222_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_50.json \n",
" inflating: /root/mycar/data/tub/tub/448_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/431_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_282.json \n",
" inflating: /root/mycar/data/tub/tub/record_328.json \n",
" inflating: /root/mycar/data/tub/tub/record_451.json \n",
" inflating: /root/mycar/data/tub/tub/record_144.json \n",
" inflating: /root/mycar/data/tub/tub/2_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/__MACOSX/tub/._2_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_514.json \n",
" inflating: /root/mycar/data/tub/tub/record_390.json \n",
" inflating: /root/mycar/data/tub/tub/510_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/73_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_406.json \n",
" inflating: /root/mycar/data/tub/tub/80_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/389_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/174_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/187_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/303_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_543.json \n",
" inflating: /root/mycar/data/tub/tub/569_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_113.json \n",
" inflating: /root/mycar/data/tub/tub/record_386.json \n",
" inflating: /root/mycar/data/tub/tub/409_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/290_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_11.json \n",
" inflating: /root/mycar/data/tub/tub/263_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/470_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/483_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_369.json \n",
" inflating: /root/mycar/data/tub/tub/record_410.json \n",
" inflating: /root/mycar/data/tub/tub/record_105.json \n",
" inflating: /root/mycar/data/tub/tub/record_555.json \n",
" inflating: /root/mycar/data/tub/tub/record_46.json \n",
" inflating: /root/mycar/data/tub/tub/record_294.json \n",
" inflating: /root/mycar/data/tub/tub/record_7.json \n",
" inflating: /root/mycar/data/tub/tub/record_447.json \n",
" inflating: /root/mycar/data/tub/tub/32_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/551_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/528_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_502.json \n",
" inflating: /root/mycar/data/tub/tub/342_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_152.json \n",
" inflating: /root/mycar/data/tub/tub/135_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_345.json \n",
" inflating: /root/mycar/data/tub/tub/171_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/306_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/182_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/108_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_200.json \n",
" inflating: /root/mycar/data/tub/tub/76_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/515_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/85_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_579.json \n",
" inflating: /root/mycar/data/tub/tub/record_129.json \n",
" inflating: /root/mycar/data/tub/tub/record_596.json \n",
" inflating: /root/mycar/data/tub/tub/record_85.json \n",
" inflating: /root/mycar/data/tub/tub/record_312.json \n",
" inflating: /root/mycar/data/tub/tub/7_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_257.json \n",
" inflating: /root/mycar/data/tub/tub/record_484.json \n",
" inflating: /root/mycar/data/tub/tub/434_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/227_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_191.json \n",
" inflating: /root/mycar/data/tub/tub/347_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_304.json \n",
" inflating: /root/mycar/data/tub/tub/130_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_93.json \n",
" inflating: /root/mycar/data/tub/tub/554_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/37_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_241.json \n",
" inflating: /root/mycar/data/tub/tub/149_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_538.json \n",
" inflating: /root/mycar/data/tub/tub/record_168.json \n",
" inflating: /root/mycar/data/tub/tub/record_492.json \n",
" inflating: /root/mycar/data/tub/tub/record_187.json \n",
" inflating: /root/mycar/data/tub/tub/record_353.json \n",
" inflating: /root/mycar/data/tub/tub/record_216.json \n",
" inflating: /root/mycar/data/tub/tub/475_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/486_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/295_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/266_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_580.json \n",
" inflating: /root/mycar/data/tub/tub/record_358.json \n",
" inflating: /root/mycar/data/tub/tub/record_20.json \n",
" inflating: /root/mycar/data/tub/tub/record_564.json \n",
" inflating: /root/mycar/data/tub/tub/247_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_134.json \n",
" inflating: /root/mycar/data/tub/tub/454_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_421.json \n",
" inflating: /root/mycar/data/tub/tub/586_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/575_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/16_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_98.json \n",
" inflating: /root/mycar/data/tub/tub/168_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_77.json \n",
" inflating: /root/mycar/data/tub/tub/366_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/395_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/111_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_163.json \n",
" inflating: /root/mycar/data/tub/tub/record_499.json \n",
" inflating: /root/mycar/data/tub/tub/record_533.json \n",
" inflating: /root/mycar/data/tub/tub/record_476.json \n",
" inflating: /root/mycar/data/tub/tub/record_319.json \n",
" inflating: /root/mycar/data/tub/tub/record_61.json \n",
" inflating: /root/mycar/data/tub/tub/record_525.json \n",
" inflating: /root/mycar/data/tub/tub/record_175.json \n",
" inflating: /root/mycar/data/tub/tub/206_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_460.json \n",
" inflating: /root/mycar/data/tub/tub/415_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/129_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/57_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/534_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_36.json \n",
" inflating: /root/mycar/data/tub/tub/150_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/327_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_122.json \n",
" inflating: /root/mycar/data/tub/tub/record_572.json \n",
" inflating: /root/mycar/data/tub/tub/record_437.json \n",
" inflating: /root/mycar/data/tub/tub/record_270.json \n",
" inflating: /root/mycar/data/tub/tub/record_335.json \n",
" inflating: /root/mycar/data/tub/tub/99_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/509_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/363_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/114_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/390_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_159.json \n",
" inflating: /root/mycar/data/tub/tub/583_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_509.json \n",
" inflating: /root/mycar/data/tub/tub/13_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/570_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_227.json \n",
" inflating: /root/mycar/data/tub/tub/451_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/428_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_362.json \n",
" inflating: /root/mycar/data/tub/tub/242_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_231.json \n",
" inflating: /root/mycar/data/tub/tub/record_374.json \n",
" inflating: /root/mycar/data/tub/tub/155_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/322_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/548_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/531_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/52_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_118.json \n",
" inflating: /root/mycar/data/tub/tub/record_548.json \n",
" inflating: /root/mycar/data/tub/tub/record_266.json \n",
" inflating: /root/mycar/data/tub/tub/410_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/289_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/203_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_323.json \n",
" inflating: /root/mycar/data/tub/tub/469_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_289.json \n",
" inflating: /root/mycar/data/tub/tub/record_138.json \n",
" inflating: /root/mycar/data/tub/tub/record_568.json \n",
" inflating: /root/mycar/data/tub/tub/record_587.json \n",
" inflating: /root/mycar/data/tub/tub/547_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/24_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_354.json \n",
" inflating: /root/mycar/data/tub/tub/354_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/123_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_211.json \n",
" inflating: /root/mycar/data/tub/tub/286_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_495.json \n",
" inflating: /root/mycar/data/tub/tub/275_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/466_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/495_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_180.json \n",
" inflating: /root/mycar/data/tub/tub/record_94.json \n",
" inflating: /root/mycar/data/tub/tub/record_303.json \n",
" inflating: /root/mycar/data/tub/tub/record_246.json \n",
" inflating: /root/mycar/data/tub/tub/record_179.json \n",
" inflating: /root/mycar/data/tub/tub/record_483.json \n",
" inflating: /root/mycar/data/tub/tub/record_529.json \n",
" inflating: /root/mycar/data/tub/tub/record_196.json \n",
" inflating: /root/mycar/data/tub/tub/record_315.json \n",
" inflating: /root/mycar/data/tub/tub/65_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/506_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_82.json \n",
" inflating: /root/mycar/data/tub/tub/96_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_600.json \n",
" inflating: /root/mycar/data/tub/tub/162_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/191_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_250.json \n",
" inflating: /root/mycar/data/tub/tub/315_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/234_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/427_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_591.json \n",
" inflating: /root/mycar/data/tub/tub/record_342.json \n",
" inflating: /root/mycar/data/tub/tub/record_207.json \n",
" inflating: /root/mycar/data/tub/tub/record_440.json \n",
" inflating: /root/mycar/data/tub/tub/record_505.json \n",
" inflating: /root/mycar/data/tub/tub/record_155.json \n",
" inflating: /root/mycar/data/tub/tub/209_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/463_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/490_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_41.json \n",
" inflating: /root/mycar/data/tub/tub/record_339.json \n",
" inflating: /root/mycar/data/tub/tub/283_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/270_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_293.json \n",
" inflating: /root/mycar/data/tub/tub/58_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_417.json \n",
" inflating: /root/mycar/data/tub/tub/351_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/126_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/328_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_102.json \n",
" inflating: /root/mycar/data/tub/tub/record_552.json \n",
" inflating: /root/mycar/data/tub/tub/21_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/542_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_16.json \n",
" inflating: /root/mycar/data/tub/tub/record_381.json \n",
" inflating: /root/mycar/data/tub/tub/record_401.json \n",
" inflating: /root/mycar/data/tub/tub/record_544.json \n",
" inflating: /root/mycar/data/tub/tub/record_114.json \n",
" inflating: /root/mycar/data/tub/tub/record_397.json \n",
" inflating: /root/mycar/data/tub/tub/422_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/248_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/231_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_378.json \n",
" inflating: /root/mycar/data/tub/tub/167_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/310_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_456.json \n",
" inflating: /root/mycar/data/tub/tub/194_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/19_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/589_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/503_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/60_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/93_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_143.json \n",
" inflating: /root/mycar/data/tub/tub/record_513.json \n",
" inflating: /root/mycar/data/tub/tub/369_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_57.json \n",
" inflating: /root/mycar/data/tub/tub/record_285.json \n",
" inflating: /root/mycar/data/tub/tub/record_56.json \n",
" inflating: /root/mycar/data/tub/tub/33_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/550_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_284.json \n",
" inflating: /root/mycar/data/tub/tub/529_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/134_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/343_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_457.json \n",
" inflating: /root/mycar/data/tub/tub/record_142.json \n",
" inflating: /root/mycar/data/tub/tub/record_512.json \n",
" inflating: /root/mycar/data/tub/tub/record_396.json \n",
" inflating: /root/mycar/data/tub/tub/record_379.json \n",
" inflating: /root/mycar/data/tub/tub/408_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_400.json \n",
" inflating: /root/mycar/data/tub/tub/262_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/291_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_545.json \n",
" inflating: /root/mycar/data/tub/tub/record_115.json \n",
" inflating: /root/mycar/data/tub/tub/482_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/471_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/81_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_17.json \n",
" inflating: /root/mycar/data/tub/tub/511_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/72_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_380.json \n",
" inflating: /root/mycar/data/tub/tub/388_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/302_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/186_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/175_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/568_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_416.json \n",
" inflating: /root/mycar/data/tub/tub/record_103.json \n",
" inflating: /root/mycar/data/tub/tub/record_553.json \n",
" inflating: /root/mycar/data/tub/tub/record_40.json \n",
" inflating: /root/mycar/data/tub/tub/record_1.json \n",
" inflating: /root/mycar/data/tub/tub/3_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_338.json \n",
" inflating: /root/mycar/data/tub/tub/record_292.json \n",
" inflating: /root/mycar/data/tub/tub/223_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_441.json \n",
" inflating: /root/mycar/data/tub/tub/449_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/430_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_504.json \n",
" inflating: /root/mycar/data/tub/tub/record_154.json \n",
" inflating: /root/mycar/data/tub/tub/487_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/474_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_343.json \n",
" inflating: /root/mycar/data/tub/tub/267_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_206.json \n",
" inflating: /root/mycar/data/tub/tub/294_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_590.json \n",
" inflating: /root/mycar/data/tub/tub/record_314.json \n",
" inflating: /root/mycar/data/tub/tub/record_83.json \n",
" inflating: /root/mycar/data/tub/tub/record_251.json \n",
" inflating: /root/mycar/data/tub/tub/131_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/346_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_178.json \n",
" inflating: /root/mycar/data/tub/tub/record_482.json \n",
" inflating: /root/mycar/data/tub/tub/record_528.json \n",
" inflating: /root/mycar/data/tub/tub/555_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/36_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_197.json \n",
" inflating: /root/mycar/data/tub/tub/148_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_95.json \n",
" inflating: /root/mycar/data/tub/tub/record_302.json \n",
" inflating: /root/mycar/data/tub/tub/435_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_247.json \n",
" inflating: /root/mycar/data/tub/tub/226_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_494.json \n",
" inflating: /root/mycar/data/tub/tub/6_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_181.json \n",
" inflating: /root/mycar/data/tub/tub/record_355.json \n",
" inflating: /root/mycar/data/tub/tub/record_210.json \n",
" inflating: /root/mycar/data/tub/tub/183_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_139.json \n",
" inflating: /root/mycar/data/tub/tub/307_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_569.json \n",
" inflating: /root/mycar/data/tub/tub/170_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_586.json \n",
" inflating: /root/mycar/data/tub/tub/109_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/84_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/77_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/514_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/250_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/229_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/443_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_267.json \n",
" inflating: /root/mycar/data/tub/tub/9_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_322.json \n",
" inflating: /root/mycar/data/tub/tub/record_288.json \n",
" inflating: /root/mycar/data/tub/tub/record_119.json \n",
" inflating: /root/mycar/data/tub/tub/record_549.json \n",
" inflating: /root/mycar/data/tub/tub/308_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/562_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_230.json \n",
" inflating: /root/mycar/data/tub/tub/591_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/78_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_375.json \n",
" inflating: /root/mycar/data/tub/tub/106_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/382_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/371_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/211_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/488_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/402_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/268_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_226.json \n",
" inflating: /root/mycar/data/tub/tub/record_363.json \n",
" inflating: /root/mycar/data/tub/tub/record_158.json \n",
" inflating: /root/mycar/data/tub/tub/record_508.json \n",
" inflating: /root/mycar/data/tub/tub/523_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/40_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/349_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_271.json \n",
" inflating: /root/mycar/data/tub/tub/330_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/147_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_334.json \n",
" inflating: /root/mycar/data/tub/tub/39_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/387_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/103_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/374_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_123.json \n",
" inflating: /root/mycar/data/tub/tub/record_573.json \n",
" inflating: /root/mycar/data/tub/tub/567_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/594_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_436.json \n",
" inflating: /root/mycar/data/tub/tub/189_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_37.json \n",
" inflating: /root/mycar/data/tub/tub/record_524.json \n",
" inflating: /root/mycar/data/tub/tub/record_174.json \n",
" inflating: /root/mycar/data/tub/tub/record_461.json \n",
" inflating: /root/mycar/data/tub/tub/446_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_318.json \n",
" inflating: /root/mycar/data/tub/tub/255_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_60.json \n",
" inflating: /root/mycar/data/tub/tub/record_162.json \n",
" inflating: /root/mycar/data/tub/tub/record_498.json \n",
" inflating: /root/mycar/data/tub/tub/335_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_532.json \n",
" inflating: /root/mycar/data/tub/tub/142_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_477.json \n",
" inflating: /root/mycar/data/tub/tub/45_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/526_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_99.json \n",
" inflating: /root/mycar/data/tub/tub/record_76.json \n",
" inflating: /root/mycar/data/tub/tub/record_565.json \n",
" inflating: /root/mycar/data/tub/tub/record_135.json \n",
" inflating: /root/mycar/data/tub/tub/record_420.json \n",
" inflating: /root/mycar/data/tub/tub/record_359.json \n",
" inflating: /root/mycar/data/tub/tub/407_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/214_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_21.json \n",
" inflating: /root/mycar/data/tub/tub/record_458.json \n",
" inflating: /root/mycar/data/tub/tub/record_321.json \n",
" inflating: /root/mycar/data/tub/tub/384_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/100_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/377_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/179_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_59.json \n",
" inflating: /root/mycar/data/tub/tub/564_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_264.json \n",
" inflating: /root/mycar/data/tub/tub/597_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/445_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/256_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_376.json \n",
" inflating: /root/mycar/data/tub/tub/record_399.json \n",
" inflating: /root/mycar/data/tub/tub/record_233.json \n",
" inflating: /root/mycar/data/tub/tub/record_419.json \n",
" inflating: /root/mycar/data/tub/tub/record_360.json \n",
" inflating: /root/mycar/data/tub/tub/336_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/141_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/46_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_18.json \n",
" inflating: /root/mycar/data/tub/tub/525_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_225.json \n",
" inflating: /root/mycar/data/tub/tub/138_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/404_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/217_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_337.json \n",
" inflating: /root/mycar/data/tub/tub/record_272.json \n",
" inflating: /root/mycar/data/tub/tub/record_435.json \n",
" inflating: /root/mycar/data/tub/tub/record_120.json \n",
" inflating: /root/mycar/data/tub/tub/record_570.json \n",
" inflating: /root/mycar/data/tub/tub/253_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_209.json \n",
" inflating: /root/mycar/data/tub/tub/record_34.json \n",
" inflating: /root/mycar/data/tub/tub/439_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/440_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_462.json \n",
" inflating: /root/mycar/data/tub/tub/record_198.json \n",
" inflating: /root/mycar/data/tub/tub/561_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/592_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/105_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/381_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/372_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_527.json \n",
" inflating: /root/mycar/data/tub/tub/518_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/88_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_177.json \n",
" inflating: /root/mycar/data/tub/tub/record_63.json \n",
" inflating: /root/mycar/data/tub/tub/record_474.json \n",
" inflating: /root/mycar/data/tub/tub/record_161.json \n",
" inflating: /root/mycar/data/tub/tub/record_531.json \n",
" inflating: /root/mycar/data/tub/tub/478_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_248.json \n",
" inflating: /root/mycar/data/tub/tub/record_75.json \n",
" inflating: /root/mycar/data/tub/tub/212_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/298_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/401_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/record_423.json \n",
" inflating: /root/mycar/data/tub/tub/record_589.json \n",
" inflating: /root/mycar/data/tub/tub/520_cam-image_array_.jpg \n",
" inflating: /root/mycar/data/tub/tub/43_cam-image_array_.jpg \n",
...
This file has been truncated, please download it to see its full contents.
Comments