├── .github └── workflows │ ├── master_diseasedetection1.yml │ ├── master_doctorplants.yml │ ├── master_pep-doctor.yml │ ├── master_pepcodingdoctor.yml │ ├── master_plantdisease.yml │ └── master_plantdisease2.yml ├── Disease Detection.ipynb ├── app.py ├── model.pkl ├── readme.md ├── requirements.txt ├── static ├── css │ ├── b4.jpg │ ├── front.jpg │ ├── grid.css │ ├── image1.jpg │ ├── image2.jpg │ ├── material-design-iconic-font.min.css │ ├── normalize.css │ ├── style.css │ └── styleSucc.css └── images │ ├── PotatoHealthy2.jpg │ ├── TomatoEarlyBlight5.jpg │ └── d4d1d6c9-e09c-4179-80c1-ca0924816772.jpg ├── templates ├── index.html ├── liveDetection.html └── success.html └── test ├── AppleCedarRust1.jpg ├── AppleCedarRust2.jpg ├── AppleCedarRust3.jpg ├── AppleCedarRust4.jpg ├── AppleScab1.jpg ├── AppleScab2.JPG ├── AppleScab3.jpg ├── CornCommonRust1.JPG ├── CornCommonRust2.JPG ├── CornCommonRust3.JPG ├── PotatoEarlyBlight1.JPG ├── PotatoEarlyBlight2.JPG ├── PotatoEarlyBlight3.JPG ├── PotatoEarlyBlight4.JPG ├── PotatoEarlyBlight5.JPG ├── PotatoHealthy1.JPG ├── PotatoHealthy2.JPG ├── TomatoEarlyBlight1.JPG ├── TomatoEarlyBlight2.JPG ├── TomatoEarlyBlight3.JPG ├── TomatoEarlyBlight4.JPG ├── TomatoEarlyBlight5.JPG ├── TomatoEarlyBlight6.JPG ├── TomatoHealthy1.jpg ├── TomatoHealthy2.JPG ├── TomatoHealthy3.JPG ├── TomatoHealthy4.JPG ├── TomatoYellowCurlVirus1.JPG ├── TomatoYellowCurlVirus2.JPG ├── TomatoYellowCurlVirus3.JPG ├── TomatoYellowCurlVirus4.JPG ├── TomatoYellowCurlVirus5.JPG └── t.jpg /.github/workflows/master_diseasedetection1.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions 4 | 5 | name: Build and deploy Python app to Azure Web App - diseaseDetection1 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Set up Python version 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: '3.8' 24 | 25 | - name: Create and start virtual environment 26 | run: | 27 | python -m venv venv 28 | source venv/bin/activate 29 | 30 | - name: Install dependencies 31 | run: pip install -r requirements.txt 32 | 33 | # Optional: Add step to run tests here (PyTest, Django test suites, etc.) 34 | 35 | - name: Upload artifact for deployment jobs 36 | uses: actions/upload-artifact@v2 37 | with: 38 | name: python-app 39 | path: | 40 | . 41 | !venv/ 42 | 43 | deploy: 44 | runs-on: ubuntu-latest 45 | needs: build 46 | environment: 47 | name: 'Production' 48 | url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} 49 | 50 | steps: 51 | - name: Download artifact from build job 52 | uses: actions/download-artifact@v2 53 | with: 54 | name: python-app 55 | path: . 56 | 57 | - name: 'Deploy to Azure Web App' 58 | uses: azure/webapps-deploy@v2 59 | id: deploy-to-webapp 60 | with: 61 | app-name: 'diseaseDetection1' 62 | slot-name: 'Production' 63 | publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_2794C19C61ED4CD4A38948E184F9F905 }} 64 | -------------------------------------------------------------------------------- /.github/workflows/master_doctorplants.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions 4 | 5 | name: Build and deploy Python app to Azure Web App - doctorPlants 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Set up Python version 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: '3.7' 24 | 25 | - name: Create and start virtual environment 26 | run: | 27 | python -m venv venv 28 | source venv/bin/activate 29 | 30 | - name: Install dependencies 31 | run: pip install -r requirements.txt 32 | 33 | # Optional: Add step to run tests here (PyTest, Django test suites, etc.) 34 | 35 | - name: Upload artifact for deployment jobs 36 | uses: actions/upload-artifact@v2 37 | with: 38 | name: python-app 39 | path: | 40 | . 41 | !venv/ 42 | 43 | deploy: 44 | runs-on: ubuntu-latest 45 | needs: build 46 | environment: 47 | name: 'Production' 48 | url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} 49 | 50 | steps: 51 | - name: Download artifact from build job 52 | uses: actions/download-artifact@v2 53 | with: 54 | name: python-app 55 | path: . 56 | 57 | - name: 'Deploy to Azure Web App' 58 | uses: azure/webapps-deploy@v2 59 | id: deploy-to-webapp 60 | with: 61 | app-name: 'doctorPlants' 62 | slot-name: 'Production' 63 | publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_AB13A03474D84290818C2043F43A5858 }} 64 | -------------------------------------------------------------------------------- /.github/workflows/master_pep-doctor.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions 4 | 5 | name: Build and deploy Python app to Azure Web App - Pep-Doctor 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Set up Python version 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: '3.8' 24 | 25 | - name: Create and start virtual environment 26 | run: | 27 | python -m venv venv 28 | source venv/bin/activate 29 | 30 | - name: Install dependencies 31 | run: pip install -r requirements.txt 32 | 33 | # Optional: Add step to run tests here (PyTest, Django test suites, etc.) 34 | 35 | - name: Upload artifact for deployment jobs 36 | uses: actions/upload-artifact@v2 37 | with: 38 | name: python-app 39 | path: | 40 | . 41 | !venv/ 42 | 43 | deploy: 44 | runs-on: ubuntu-latest 45 | needs: build 46 | environment: 47 | name: 'Production' 48 | url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} 49 | 50 | steps: 51 | - name: Download artifact from build job 52 | uses: actions/download-artifact@v2 53 | with: 54 | name: python-app 55 | path: . 56 | 57 | - name: 'Deploy to Azure Web App' 58 | uses: azure/webapps-deploy@v2 59 | id: deploy-to-webapp 60 | with: 61 | app-name: 'Pep-Doctor' 62 | slot-name: 'Production' 63 | publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_2913983CB8374FE1BFBB0195E7204D86 }} 64 | -------------------------------------------------------------------------------- /.github/workflows/master_pepcodingdoctor.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions 4 | 5 | name: Build and deploy Python app to Azure Web App - Pepcodingdoctor 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Set up Python version 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: '3.8' 24 | 25 | - name: Create and start virtual environment 26 | run: | 27 | python -m venv venv 28 | source venv/bin/activate 29 | 30 | - name: Install dependencies 31 | run: pip install -r requirements.txt 32 | 33 | # Optional: Add step to run tests here (PyTest, Django test suites, etc.) 34 | 35 | - name: Upload artifact for deployment jobs 36 | uses: actions/upload-artifact@v2 37 | with: 38 | name: python-app 39 | path: | 40 | . 41 | !venv/ 42 | 43 | deploy: 44 | runs-on: ubuntu-latest 45 | needs: build 46 | environment: 47 | name: 'Production' 48 | url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} 49 | 50 | steps: 51 | - name: Download artifact from build job 52 | uses: actions/download-artifact@v2 53 | with: 54 | name: python-app 55 | path: . 56 | 57 | - name: 'Deploy to Azure Web App' 58 | uses: azure/webapps-deploy@v2 59 | id: deploy-to-webapp 60 | with: 61 | app-name: 'Pepcodingdoctor' 62 | slot-name: 'Production' 63 | publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_6C842D0BE98146708E403B6F34B49594 }} 64 | -------------------------------------------------------------------------------- /.github/workflows/master_plantdisease.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions 4 | 5 | name: Build and deploy Python app to Azure Web App - PlantDisease 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Set up Python version 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: '3.8' 24 | 25 | - name: Create and start virtual environment 26 | run: | 27 | python -m venv venv 28 | source venv/bin/activate 29 | 30 | - name: Install dependencies 31 | run: pip install -r requirements.txt 32 | 33 | # Optional: Add step to run tests here (PyTest, Django test suites, etc.) 34 | 35 | - name: Upload artifact for deployment jobs 36 | uses: actions/upload-artifact@v2 37 | with: 38 | name: python-app 39 | path: | 40 | . 41 | !venv/ 42 | 43 | deploy: 44 | runs-on: ubuntu-latest 45 | needs: build 46 | environment: 47 | name: 'Production' 48 | url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} 49 | 50 | steps: 51 | - name: Download artifact from build job 52 | uses: actions/download-artifact@v2 53 | with: 54 | name: python-app 55 | path: . 56 | 57 | - name: 'Deploy to Azure Web App' 58 | uses: azure/webapps-deploy@v2 59 | id: deploy-to-webapp 60 | with: 61 | app-name: 'PlantDisease' 62 | slot-name: 'Production' 63 | publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_46ED3F25E8404E2D89707832EEDC54ED }} 64 | -------------------------------------------------------------------------------- /.github/workflows/master_plantdisease2.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions 4 | 5 | name: Build and deploy Python app to Azure Web App - Plantdisease2 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Set up Python version 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: '3.8' 24 | 25 | - name: Create and start virtual environment 26 | run: | 27 | python -m venv venv 28 | source venv/bin/activate 29 | 30 | - name: Install dependencies 31 | run: pip install -r requirements.txt 32 | 33 | # Optional: Add step to run tests here (PyTest, Django test suites, etc.) 34 | 35 | - name: Upload artifact for deployment jobs 36 | uses: actions/upload-artifact@v2 37 | with: 38 | name: python-app 39 | path: | 40 | . 41 | !venv/ 42 | 43 | deploy: 44 | runs-on: ubuntu-latest 45 | needs: build 46 | environment: 47 | name: 'Production' 48 | url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} 49 | 50 | steps: 51 | - name: Download artifact from build job 52 | uses: actions/download-artifact@v2 53 | with: 54 | name: python-app 55 | path: . 56 | 57 | - name: 'Deploy to Azure Web App' 58 | uses: azure/webapps-deploy@v2 59 | id: deploy-to-webapp 60 | with: 61 | app-name: 'Plantdisease2' 62 | slot-name: 'Production' 63 | publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_DD4BF5F49B6644D88BF9619578FC97EC }} 64 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import uuid 3 | import flask 4 | import urllib 5 | from PIL import Image 6 | import numpy as np 7 | import joblib 8 | import cv2 9 | from flask import Flask , render_template , request , send_file,Response 10 | from tensorflow.keras.preprocessing import image 11 | 12 | app = Flask(__name__) 13 | BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 14 | 15 | 16 | ALLOWED_EXT = set(['jpg' , 'jpeg' , 'png' , 'jfif']) 17 | def allowed_file(filename): 18 | return '.' in filename and \ 19 | filename.rsplit('.', 1)[1] in ALLOWED_EXT 20 | 21 | classes = np.array(['Apple___Apple_scab', 22 | 'Apple___Black_rot', 23 | 'Apple___Cedindexar_apple_rust', 24 | 'Apple___healthy', 25 | 'Blueberry___healthy', 26 | 'Cherry_(including_sour)___Powdery_mildew', 27 | 'Cherry_(including_sour)___healthy', 28 | 'Corn_(maize)___Cercospora_leaf_spot Gray_leaf_spot', 29 | 'Corn_(maize)___Common_rust_', 30 | 'Corn_(maize)___Northern_Leaf_Blight', 31 | 'Corn_(maize)___healthy', 32 | 'Grape___Black_rot', 33 | 'Grape___Esca_(Black_Measles)', 34 | 'Grape___Leaf_blight_(Isariopsis_Leaf_Spot)', 35 | 'Grape___healthy', 36 | 'Orange___Haunglongbing_(Citrus_greening)', 37 | 'Peach___Bacterial_spot', 38 | 'Peach___healthy', 39 | 'Pepper,_bell___Bacterial_spot', 40 | 'Pepper,_bell___healthy', 41 | 'Potato___Early_blight', 42 | 'Potato___Late_blight', 43 | 'Potato___healthy', 44 | 'Raspberry___healthy', 45 | 'Soybean___healthy', 46 | 'Squash___Powdery_mildew', 47 | 'Strawberry___Leaf_scorch', 48 | 'Strawberry___healthy', 49 | 'Tomato___Bacterial_spot', 50 | 'Tomato___Early_blight', 51 | 'Tomato___Late_blight', 52 | 'Tomato___Leaf_Mold', 53 | 'Tomato___Septoria_leaf_spot', 54 | 'Tomato___Spider_mites Two-spotted_spider_mite', 55 | 'Tomato___Target_Spot', 56 | 'Tomato___Tomato_Yellow_Leaf_Curl_Virus', 57 | 'Tomato___Tomato_mosaic_virus', 58 | 'Tomato___healthy']) 59 | 60 | image_frame = [] 61 | @app.route('/') 62 | def home(): 63 | image_frame.clear() 64 | # camera.release() 65 | return render_template("index.html") 66 | predictLive ="Not Detected" 67 | def gen_frames(camera): # generate frame by frame from camera 68 | while True: 69 | # Capture frame-by-frame 70 | success, frame = camera.read() # read the camera frame 71 | image_frame.clear() 72 | image_frame.append(frame) 73 | if not success: 74 | print("not going to take") 75 | break 76 | else: 77 | 78 | frame=cv2.flip(frame,1) 79 | ret, buffer = cv2.imencode('.jpg', frame) 80 | frame = buffer.tobytes() 81 | yield (b'--frame\r\n' 82 | b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') # concat frame one by one and show result 83 | 84 | @app.route('/video_feed') 85 | def video_feed(): 86 | camera=cv2.VideoCapture(0) 87 | return Response(gen_frames(camera), mimetype='multipart/x-mixed-replace; boundary=frame') 88 | 89 | 90 | 91 | @app.route('/live') 92 | def live() : 93 | return render_template("liveDetection.html") 94 | 95 | @app.route('/live', methods = ['GET' , 'POST']) 96 | def livePred() : 97 | print("here is the image : ",image_frame) 98 | if(image_frame[-1]!=""): 99 | img=cv2.resize(image_frame[-1],[72,72]) 100 | image_frame.clear() 101 | img = image.img_to_array(img) 102 | img = np.expand_dims(img, axis = 0) 103 | clf = joblib.load("model.pkl") 104 | prediction = clf.predict(img) 105 | print(np.argmax(prediction)) 106 | predict_class = classes[np.argmax(prediction)] 107 | return render_template("liveDetection.html",Output = predict_class) 108 | else : 109 | return render_template("liveDetection.html",Output = "Not Detected") 110 | 111 | 112 | @app.route('/success' , methods = ['GET' , 'POST']) 113 | def success(): 114 | error = '' 115 | target_img = os.path.join(os.getcwd() , 'static/images') 116 | if request.method == 'POST': 117 | if(request.form): 118 | link = request.form.get('link') 119 | try : 120 | resource = urllib.request.urlopen(link) 121 | unique_filename = str(uuid.uuid4()) 122 | filename = unique_filename+".jpg" 123 | img_path = os.path.join(target_img , filename) 124 | output = open(img_path , "wb") 125 | output.write(resource.read()) 126 | output.close() 127 | img=image.load_img(img_path,target_size=(72,72)) 128 | img = image.img_to_array(img) 129 | img = np.expand_dims(img, axis = 0) 130 | clf = joblib.load("model.pkl") 131 | prediction = clf.predict(img) 132 | print(np.argmax(prediction)) 133 | predict_class = classes[np.argmax(prediction)] 134 | except Exception as e : 135 | print(str(e)) 136 | error = 'This image from this site is not accesible or inappropriate input' 137 | 138 | if(len(error) == 0): 139 | return render_template('success.html' , img = filename , output = predict_class ) 140 | else: 141 | return render_template('index.html' , error = error) 142 | 143 | 144 | elif (request.files): 145 | file = request.files['file'] 146 | if file and allowed_file(file.filename): 147 | file.save(os.path.join(target_img , file.filename)) 148 | img_path = os.path.join(target_img , file.filename) 149 | img = file.filename 150 | img = image.load_img(img_path,target_size=(72,72)) 151 | img = image.img_to_array(img) 152 | img = np.expand_dims(img, axis = 0) 153 | clf = joblib.load("model.pkl") 154 | prediction = clf.predict(img) 155 | # print(np.argmax(prediction)) 156 | predict_class = classes[np.argmax(prediction)] 157 | print(img_path) 158 | else: 159 | error = "Please upload images of jpg , jpeg and png extension only" 160 | 161 | if(len(error) == 0): 162 | return render_template('success.html' , img = file.filename, output = predict_class) 163 | else: 164 | return render_template('index.html' , error = error) 165 | 166 | else: 167 | return render_template('index.html') 168 | 169 | if __name__ == "__main__": 170 | app.run(debug = True, port=80) 171 | 172 | 173 | -------------------------------------------------------------------------------- /model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/model.pkl -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Plant Disease Detection 2 | 3 | 4 | ## Running on Local Host : 5 | * Clone the repository on local host 6 | * Run command ```pip install -r requirements.txt ``` 7 | * If get any error from above command use ```pip3 install -r requirements.txt ``` 8 | * Run the application 9 | * Window users : ```python app.py``` 10 | * Linux users : ```python3 app.py``` 11 | 12 | ## Intro to Website : 13 | * Home Page : 14 | * Page Contatins file Upload: 15 | * Upload the picture of leaf and get the disease detected 16 | * Page also contatin link option for online pictures 17 | 18 | * Live Detection : 19 | * Page detect the live images 20 | 21 | ## Model Specs : 22 | * Trained on 17572 images 23 | * can predict 38 Disease 24 | * Xception net with imagenet used 25 | * 92 % model Accuracy on below categories 26 | 27 | ## Classes Model can Predict 28 | * Apple___Apple_scab 29 | * Apple___Black_rot 30 | * Apple___Cedar_apple_rust 31 | * Apple___healthy 32 | * Blueberry___healthy 33 | * Cherry_(including_sour)___healthy 34 | * Cherry_(including_sour)___Powdery_mildew 35 | * Corn_(maize)___Cercospora_leaf_spot Gray_leaf_spot 36 | * Corn_(maize)___Common_rust_ 37 | * Corn_(maize)___healthy 38 | * Corn_(maize)___Northern_Leaf_Blight 39 | * Grape___Black_rot 40 | * Grape___Esca_(Black_Measles) 41 | * Grape___healthy 42 | * Grape___Leaf_blight_(Isariopsis_Leaf_Spot) 43 | * Orange___Haunglongbing_(Citrus_greening) 44 | * Peach___Bacterial_spot 45 | * Peach___healthy 46 | * Pepper,_bell___Bacterial_spot 47 | * Pepper,_bell___healthy 48 | * Potato___Early_blight 49 | * Potato___healthy 50 | * Potato___Late_blight 51 | * Raspberry___healthy 52 | * Soybean___healthy 53 | * Squash___Powdery_mildew 54 | * Strawberry___healthy 55 | * Strawberry___Leaf_scorch 56 | * Tomato___Bacterial_spot 57 | * Tomato___Early_blight 58 | * Tomato___healthy 59 | * Tomato___Late_blight 60 | * Tomato___Leaf_Mold 61 | * Tomato___Septoria_leaf_spot 62 | * Tomato___Spider_mites 63 | * Two-spotted_spider_mite 64 | * Tomato___Target_Spot 65 | * Tomato___Tomato_mosaic_virus 66 | * Tomato___Tomato_Yellow_Leaf_Curl_Virus 67 | 68 | 69 | # How to Use: 70 | 71 | Soon Website will be Deployed 72 | 73 | ## What will be in the website 74 | * Home Page Containing Picture Uploading option and test by Link. 75 | * Fast Prediction 76 | * Cure Suggestions 77 | * Information about Disease 78 | 79 | ## How it is going to help : 80 |
81 | As we know many farmers crops got destroyed due to disease in crops. I have my own story when there is a bacterial disease came in cotton plants. That turns every farmer of my village into hell of debt. 82 | 83 | ## So In many ways this project is going to help each and every farmer. 84 |
85 | 86 | # Future: 87 | In future we are going to : 88 | * Train model on every plant disease 89 | * Providing Cure on the website 90 | * Providing Every possible help 91 | 92 | 93 |
94 | 95 | # Drive Model Link -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | absl-py==1.1.0 2 | astunparse==1.6.3 3 | cachetools==5.2.0 4 | certifi==2022.5.18.1 5 | charset-normalizer==2.0.12 6 | click==8.1.3 7 | Flask==1.1.1 8 | flatbuffers==1.12 9 | gast==0.4.0 10 | google-auth==2.7.0 11 | google-auth-oauthlib==0.4.6 12 | google-pasta==0.2.0 13 | grpcio==1.46.3 14 | gunicorn==19.9.0 15 | h5py==3.7.0 16 | idna==3.3 17 | importlib-metadata==4.11.4 18 | itsdangerous==2.0.1 19 | Jinja2==2.11.2 20 | joblib==0.14.0 21 | keras==2.9.0 22 | Keras-Preprocessing==1.1.2 23 | libclang==14.0.1 24 | Markdown==3.3.7 25 | MarkupSafe==2.0.1 26 | numpy==1.22.4 27 | oauthlib==3.2.0 28 | opencv-python-headless==4.6.0.66 29 | opt-einsum==3.3.0 30 | packaging==21.3 31 | Pillow==8.3.2 32 | protobuf==3.19.4 33 | pyasn1==0.4.8 34 | pyasn1-modules==0.2.8 35 | pyparsing==3.0.9 36 | requests==2.27.1 37 | requests-oauthlib==1.3.1 38 | rsa==4.8 39 | six==1.16.0 40 | tensorboard==2.9.0 41 | tensorboard-data-server==0.6.1 42 | tensorboard-plugin-wit==1.8.1 43 | tensorflow==2.9.1 44 | tensorflow-estimator==2.9.0 45 | tensorflow-io-gcs-filesystem==0.26.0 46 | termcolor==1.1.0 47 | tflite==2.4.0 48 | typing-extensions==4.2.0 49 | urllib3==1.25.9 50 | Werkzeug==2.0.0 51 | wrapt==1.14.1 52 | zipp==3.8.0 53 | -------------------------------------------------------------------------------- /static/css/b4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/css/b4.jpg -------------------------------------------------------------------------------- /static/css/front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/css/front.jpg -------------------------------------------------------------------------------- /static/css/grid.css: -------------------------------------------------------------------------------- 1 | 2 | /* SECTIONS ============================================================================= */ 3 | 4 | .section { 5 | clear: both; 6 | padding: 0px; 7 | margin: 0px; 8 | } 9 | 10 | /* GROUPING ============================================================================= */ 11 | 12 | .row { 13 | zoom: 1; /* For IE 6/7 (trigger hasLayout) */ 14 | } 15 | 16 | .row:before, 17 | .row:after { 18 | content:""; 19 | display:table; 20 | } 21 | .row:after { 22 | clear:both; 23 | } 24 | 25 | /* GRID COLUMN SETUP ==================================================================== */ 26 | 27 | .col { 28 | display: block; 29 | float:left; 30 | margin: 1% 0 1% 1.6%; 31 | } 32 | 33 | .col:first-child { margin-left: 0; } /* all browsers except IE6 and lower */ 34 | 35 | 36 | /* REMOVE MARGINS AS ALL GO FULL WIDTH AT 480 PIXELS */ 37 | 38 | @media only screen and (max-width: 480px) { 39 | .col { 40 | /*margin: 1% 0 1% 0%;*/ 41 | margin: 0; 42 | } 43 | } 44 | 45 | 46 | /* GRID OF TWO ============================================================================= */ 47 | 48 | 49 | .span-2-of-2 { 50 | width: 100%; 51 | } 52 | 53 | .span-1-of-2 { 54 | width: 49.2%; 55 | } 56 | 57 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 58 | 59 | @media only screen and (max-width: 480px) { 60 | .span-2-of-2 61 | width: 100%; 62 | } 63 | .span-1-of-2 { 64 | width: 100%; 65 | } 66 | } 67 | 68 | 69 | /* GRID OF THREE ============================================================================= */ 70 | 71 | 72 | .span-3-of-3 { 73 | width: 100%; 74 | } 75 | 76 | .span-2-of-3 { 77 | width: 66.13%; 78 | } 79 | 80 | .span-1-of-3 { 81 | width: 32.26%; 82 | } 83 | 84 | 85 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 86 | 87 | @media only screen and (max-width: 480px) { 88 | .span-3-of-3 { 89 | width: 100%; 90 | } 91 | .span-2-of-3 { 92 | width: 100%; 93 | } 94 | .span-1-of-3 { 95 | width: 100%; 96 | } 97 | } 98 | 99 | /* GRID OF FOUR ============================================================================= */ 100 | 101 | 102 | .span-4-of-4 { 103 | width: 100%; 104 | } 105 | 106 | .span-3-of-4 { 107 | width: 74.6%; 108 | } 109 | 110 | .span-2-of-4 { 111 | width: 49.2%; 112 | } 113 | 114 | .span-1-of-4 { 115 | width: 23.8%; 116 | } 117 | 118 | 119 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 120 | 121 | @media only screen and (max-width: 480px) { 122 | .span-4-of-4 { 123 | width: 100%; 124 | } 125 | .span-3-of-4 { 126 | width: 100%; 127 | } 128 | .span-2-of-4 { 129 | width: 100%; 130 | } 131 | .span-1-of-4 { 132 | width: 100%; 133 | } 134 | } 135 | 136 | 137 | /* GRID OF FIVE ============================================================================= */ 138 | 139 | 140 | .span-5-of-5 { 141 | width: 100%; 142 | } 143 | 144 | .span-4-of-5 { 145 | width: 79.68%; 146 | } 147 | 148 | .span-3-of-5 { 149 | width: 59.36%; 150 | } 151 | 152 | .span-2-of-5 { 153 | width: 39.04%; 154 | } 155 | 156 | .span-1-of-5 { 157 | width: 18.72%; 158 | } 159 | 160 | 161 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 162 | 163 | @media only screen and (max-width: 480px) { 164 | .span-5-of-5 { 165 | width: 100%; 166 | } 167 | .span-4-of-5 { 168 | width: 100%; 169 | } 170 | .span-3-of-5 { 171 | width: 100%; 172 | } 173 | .span-2-of-5 { 174 | width: 100%; 175 | } 176 | .span-1-of-5 { 177 | width: 100%; 178 | } 179 | } 180 | 181 | 182 | /* GRID OF SIX ============================================================================= */ 183 | 184 | 185 | .span-6-of-6 { 186 | width: 100%; 187 | } 188 | 189 | .span-5-of-6 { 190 | width: 83.06%; 191 | } 192 | 193 | .span-4-of-6 { 194 | width: 66.13%; 195 | } 196 | 197 | .span-3-of-6 { 198 | width: 49.2%; 199 | } 200 | 201 | .span-2-of-6 { 202 | width: 32.26%; 203 | } 204 | 205 | .span-1-of-6 { 206 | width: 15.33%; 207 | } 208 | 209 | 210 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 211 | 212 | @media only screen and (max-width: 480px) { 213 | .span-6-of-6 { 214 | width: 100%; 215 | } 216 | .span-5-of-6 { 217 | width: 100%; 218 | } 219 | .span-4-of-6 { 220 | width: 100%; 221 | } 222 | .span-3-of-6 { 223 | width: 100%; 224 | } 225 | .span-2-of-6 { 226 | width: 100%; 227 | } 228 | .span-1-of-6 { 229 | width: 100%; 230 | } 231 | } 232 | 233 | 234 | 235 | /* GRID OF SEVEN ============================================================================= */ 236 | 237 | 238 | .span-7-of-7 { 239 | width: 100%; 240 | } 241 | 242 | .span-6-of-7 { 243 | width: 85.48%; 244 | } 245 | 246 | .span-5-of-7 { 247 | width: 70.97%; 248 | } 249 | 250 | .span-4-of-7 { 251 | width: 56.45%; 252 | } 253 | 254 | .span-3-of-7 { 255 | width: 41.94%; 256 | } 257 | 258 | .span-2-of-7 { 259 | width: 27.42%; 260 | } 261 | 262 | .span-1-of-7 { 263 | width: 12.91%; 264 | } 265 | 266 | 267 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 268 | 269 | @media only screen and (max-width: 480px) { 270 | .span-7-of-7 { 271 | width: 100%; 272 | } 273 | .span-6-of-7 { 274 | width: 100%; 275 | } 276 | .span-5-of-7 { 277 | width: 100%; 278 | } 279 | .span-4-of-7 { 280 | width: 100%; 281 | } 282 | .span-3-of-7 { 283 | width: 100%; 284 | } 285 | .span-2-of-7 { 286 | width: 100%; 287 | } 288 | .span-1-of-7 { 289 | width: 100%; 290 | } 291 | } 292 | 293 | 294 | /* GRID OF EIGHT ============================================================================= */ 295 | 296 | 297 | .span-8-of-8 { 298 | width: 100%; 299 | } 300 | 301 | .span-7-of-8 { 302 | width: 87.3%; 303 | } 304 | 305 | .span-6-of-8 { 306 | width: 74.6%; 307 | } 308 | 309 | .span-5-of-8 { 310 | width: 61.9%; 311 | } 312 | 313 | .span-4-of-8 { 314 | width: 49.2%; 315 | } 316 | 317 | .span-3-of-8 { 318 | width: 36.5%; 319 | } 320 | 321 | .span-2-of-8 { 322 | width: 23.8%; 323 | } 324 | 325 | .span-1-of-8 { 326 | width: 11.1%; 327 | } 328 | 329 | 330 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 331 | 332 | @media only screen and (max-width: 480px) { 333 | .span-8-of-8 { 334 | width: 100%; 335 | } 336 | .span-7-of-8 { 337 | width: 100%; 338 | } 339 | .span-6-of-8 { 340 | width: 100%; 341 | } 342 | .span-5-of-8 { 343 | width: 100%; 344 | } 345 | .span-4-of-8 { 346 | width: 100%; 347 | } 348 | .span-3-of-8 { 349 | width: 100%; 350 | } 351 | .span-2-of-8 { 352 | width: 100%; 353 | } 354 | .span-1-of-8 { 355 | width: 100%; 356 | } 357 | } 358 | 359 | 360 | /* GRID OF NINE ============================================================================= */ 361 | 362 | 363 | .span-9-of-9 { 364 | width: 100%; 365 | } 366 | 367 | .span-8-of-9 { 368 | width: 88.71%; 369 | } 370 | 371 | .span-7-of-9 { 372 | width: 77.42%; 373 | } 374 | 375 | .span-6-of-9 { 376 | width: 66.13%; 377 | } 378 | 379 | .span-5-of-9 { 380 | width: 54.84%; 381 | } 382 | 383 | .span-4-of-9 { 384 | width: 43.55%; 385 | } 386 | 387 | .span-3-of-9 { 388 | width: 32.26%; 389 | } 390 | 391 | .span-2-of-9 { 392 | width: 20.97%; 393 | } 394 | 395 | .span-1-of-9 { 396 | width: 9.68%; 397 | } 398 | 399 | 400 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 401 | 402 | @media only screen and (max-width: 480px) { 403 | .span-9-of-9 { 404 | width: 100%; 405 | } 406 | .span-8-of-9 { 407 | width: 100%; 408 | } 409 | .span-7-of-9 { 410 | width: 100%; 411 | } 412 | .span-6-of-9 { 413 | width: 100%; 414 | } 415 | .span-5-of-9 { 416 | width: 100%; 417 | } 418 | .span-4-of-9 { 419 | width: 100%; 420 | } 421 | .span-3-of-9 { 422 | width: 100%; 423 | } 424 | .span-2-of-9 { 425 | width: 100%; 426 | } 427 | .span-1-of-9 { 428 | width: 100%; 429 | } 430 | } 431 | 432 | 433 | /* GRID OF TEN ============================================================================= */ 434 | 435 | 436 | .span-10-of-10 { 437 | width: 100%; 438 | } 439 | 440 | .span-9-of-10 { 441 | width: 89.84%; 442 | } 443 | 444 | .span-8-of-10 { 445 | width: 79.68%; 446 | } 447 | 448 | .span-7-of-10 { 449 | width: 69.52%; 450 | } 451 | 452 | .span-6-of-10 { 453 | width: 59.36%; 454 | } 455 | 456 | .span-5-of-10 { 457 | width: 49.2%; 458 | } 459 | 460 | .span-4-of-10 { 461 | width: 39.04%; 462 | } 463 | 464 | .span-3-of-10 { 465 | width: 28.88%; 466 | } 467 | 468 | .span-2-of-10 { 469 | width: 18.72%; 470 | } 471 | 472 | .span-1-of-10 { 473 | width: 8.56%; 474 | } 475 | 476 | 477 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 478 | 479 | @media only screen and (max-width: 480px) { 480 | .span-10-of-10 { 481 | width: 100%; 482 | } 483 | .span-9-of-10 { 484 | width: 100%; 485 | } 486 | .span-8-of-10 { 487 | width: 100%; 488 | } 489 | .span-7-of-10 { 490 | width: 100%; 491 | } 492 | .span-6-of-10 { 493 | width: 100%; 494 | } 495 | .span-5-of-10 { 496 | width: 100%; 497 | } 498 | .span-4-of-10 { 499 | width: 100%; 500 | } 501 | .span-3-of-10 { 502 | width: 100%; 503 | } 504 | .span-2-of-10 { 505 | width: 100%; 506 | } 507 | .span-1-of-10 { 508 | width: 100%; 509 | } 510 | } 511 | 512 | 513 | /* GRID OF ELEVEN ============================================================================= */ 514 | 515 | .span-11-of-11 { 516 | width: 100%; 517 | } 518 | 519 | .span-10-of-11 { 520 | width: 90.76%; 521 | } 522 | 523 | .span-9-of-11 { 524 | width: 81.52%; 525 | } 526 | 527 | .span-8-of-11 { 528 | width: 72.29%; 529 | } 530 | 531 | .span-7-of-11 { 532 | width: 63.05%; 533 | } 534 | 535 | .span-6-of-11 { 536 | width: 53.81%; 537 | } 538 | 539 | .span-5-of-11 { 540 | width: 44.58%; 541 | } 542 | 543 | .span-4-of-11 { 544 | width: 35.34%; 545 | } 546 | 547 | .span-3-of-11 { 548 | width: 26.1%; 549 | } 550 | 551 | .span-2-of-11 { 552 | width: 16.87%; 553 | } 554 | 555 | .span-1-of-11 { 556 | width: 7.63%; 557 | } 558 | 559 | 560 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 561 | 562 | @media only screen and (max-width: 480px) { 563 | .span-11-of-11 { 564 | width: 100%; 565 | } 566 | .span-10-of-11 { 567 | width: 100%; 568 | } 569 | .span-9-of-11 { 570 | width: 100%; 571 | } 572 | .span-8-of-11 { 573 | width: 100%; 574 | } 575 | .span-7-of-11 { 576 | width: 100%; 577 | } 578 | .span-6-of-11 { 579 | width: 100%; 580 | } 581 | .span-5-of-11 { 582 | width: 100%; 583 | } 584 | .span-4-of-11 { 585 | width: 100%; 586 | } 587 | .span-3-of-11 { 588 | width: 100%; 589 | } 590 | .span-2-of-11 { 591 | width: 100%; 592 | } 593 | .span-1-of-11 { 594 | width: 100%; 595 | } 596 | } 597 | 598 | 599 | /* GRID OF TWELVE ============================================================================= */ 600 | 601 | .span-12-of-12 { 602 | width: 100%; 603 | } 604 | 605 | .span-11-of-12 { 606 | width: 91.53%; 607 | } 608 | 609 | .span-10-of-12 { 610 | width: 83.06%; 611 | } 612 | 613 | .span-9-of-12 { 614 | width: 74.6%; 615 | } 616 | 617 | .span-8-of-12 { 618 | width: 66.13%; 619 | } 620 | 621 | .span-7-of-12 { 622 | width: 57.66%; 623 | } 624 | 625 | .span-6-of-12 { 626 | width: 49.2%; 627 | } 628 | 629 | .span-5-of-12 { 630 | width: 40.73%; 631 | } 632 | 633 | .span-4-of-12 { 634 | width: 32.26%; 635 | } 636 | 637 | .span-3-of-12 { 638 | width: 23.8%; 639 | } 640 | 641 | .span-2-of-12 { 642 | width: 15.33%; 643 | } 644 | 645 | .span-1-of-12 { 646 | width: 6.86%; 647 | } 648 | 649 | 650 | /* GO FULL WIDTH AT LESS THAN 480 PIXELS */ 651 | 652 | @media only screen and (max-width: 480px) { 653 | .span-12-of-12 { 654 | width: 100%; 655 | } 656 | .span-11-of-12 { 657 | width: 100%; 658 | } 659 | .span-10-of-12 { 660 | width: 100%; 661 | } 662 | .span-9-of-12 { 663 | width: 100%; 664 | } 665 | .span-8-of-12 { 666 | width: 100%; 667 | } 668 | .span-7-of-12 { 669 | width: 100%; 670 | } 671 | .span-6-of-12 { 672 | width: 100%; 673 | } 674 | .span-5-of-12 { 675 | width: 100%; 676 | } 677 | .span-4-of-12 { 678 | width: 100%; 679 | } 680 | .span-3-of-12 { 681 | width: 100%; 682 | } 683 | .span-2-of-12 { 684 | width: 100%; 685 | } 686 | .span-1-of-12 { 687 | width: 100%; 688 | } 689 | } -------------------------------------------------------------------------------- /static/css/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/css/image1.jpg -------------------------------------------------------------------------------- /static/css/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/css/image2.jpg -------------------------------------------------------------------------------- /static/css/material-design-iconic-font.min.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:Material-Design-Iconic-Font;src:url(../fonts/Material-Design-Iconic-Font.woff2?v=2.2.0) format('woff2'),url(../fonts/Material-Design-Iconic-Font.woff?v=2.2.0) format('woff'),url(../fonts/Material-Design-Iconic-Font.ttf?v=2.2.0) format('truetype')}.zmdi{display:inline-block;font:normal normal normal 14px/1 'Material-Design-Iconic-Font';font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.zmdi-hc-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.zmdi-hc-2x{font-size:2em}.zmdi-hc-3x{font-size:3em}.zmdi-hc-4x{font-size:4em}.zmdi-hc-5x{font-size:5em}.zmdi-hc-fw{width:1.28571429em;text-align:center}.zmdi-hc-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.zmdi-hc-ul>li{position:relative}.zmdi-hc-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.zmdi-hc-li.zmdi-hc-lg{left:-1.85714286em}.zmdi-hc-border{padding:.1em .25em;border:solid .1em #9e9e9e;border-radius:2px}.zmdi-hc-border-circle{padding:.1em .25em;border:solid .1em #9e9e9e;border-radius:50%}.zmdi.pull-left{float:left;margin-right:.15em}.zmdi.pull-right{float:right;margin-left:.15em}.zmdi-hc-spin{-webkit-animation:zmdi-spin 1.5s infinite linear;animation:zmdi-spin 1.5s infinite linear}.zmdi-hc-spin-reverse{-webkit-animation:zmdi-spin-reverse 1.5s infinite linear;animation:zmdi-spin-reverse 1.5s infinite linear}@-webkit-keyframes zmdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes zmdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes zmdi-spin-reverse{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes zmdi-spin-reverse{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.zmdi-hc-rotate-90{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.zmdi-hc-rotate-180{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.zmdi-hc-rotate-270{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.zmdi-hc-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.zmdi-hc-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.zmdi-hc-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.zmdi-hc-stack-1x,.zmdi-hc-stack-2x{position:absolute;left:0;width:100%;text-align:center}.zmdi-hc-stack-1x{line-height:inherit}.zmdi-hc-stack-2x{font-size:2em}.zmdi-hc-inverse{color:#fff}.zmdi-3d-rotation:before{content:'\f101'}.zmdi-airplane-off:before{content:'\f102'}.zmdi-airplane:before{content:'\f103'}.zmdi-album:before{content:'\f104'}.zmdi-archive:before{content:'\f105'}.zmdi-assignment-account:before{content:'\f106'}.zmdi-assignment-alert:before{content:'\f107'}.zmdi-assignment-check:before{content:'\f108'}.zmdi-assignment-o:before{content:'\f109'}.zmdi-assignment-return:before{content:'\f10a'}.zmdi-assignment-returned:before{content:'\f10b'}.zmdi-assignment:before{content:'\f10c'}.zmdi-attachment-alt:before{content:'\f10d'}.zmdi-attachment:before{content:'\f10e'}.zmdi-audio:before{content:'\f10f'}.zmdi-badge-check:before{content:'\f110'}.zmdi-balance-wallet:before{content:'\f111'}.zmdi-balance:before{content:'\f112'}.zmdi-battery-alert:before{content:'\f113'}.zmdi-battery-flash:before{content:'\f114'}.zmdi-battery-unknown:before{content:'\f115'}.zmdi-battery:before{content:'\f116'}.zmdi-bike:before{content:'\f117'}.zmdi-block-alt:before{content:'\f118'}.zmdi-block:before{content:'\f119'}.zmdi-boat:before{content:'\f11a'}.zmdi-book-image:before{content:'\f11b'}.zmdi-book:before{content:'\f11c'}.zmdi-bookmark-outline:before{content:'\f11d'}.zmdi-bookmark:before{content:'\f11e'}.zmdi-brush:before{content:'\f11f'}.zmdi-bug:before{content:'\f120'}.zmdi-bus:before{content:'\f121'}.zmdi-cake:before{content:'\f122'}.zmdi-car-taxi:before{content:'\f123'}.zmdi-car-wash:before{content:'\f124'}.zmdi-car:before{content:'\f125'}.zmdi-card-giftcard:before{content:'\f126'}.zmdi-card-membership:before{content:'\f127'}.zmdi-card-travel:before{content:'\f128'}.zmdi-card:before{content:'\f129'}.zmdi-case-check:before{content:'\f12a'}.zmdi-case-download:before{content:'\f12b'}.zmdi-case-play:before{content:'\f12c'}.zmdi-case:before{content:'\f12d'}.zmdi-cast-connected:before{content:'\f12e'}.zmdi-cast:before{content:'\f12f'}.zmdi-chart-donut:before{content:'\f130'}.zmdi-chart:before{content:'\f131'}.zmdi-city-alt:before{content:'\f132'}.zmdi-city:before{content:'\f133'}.zmdi-close-circle-o:before{content:'\f134'}.zmdi-close-circle:before{content:'\f135'}.zmdi-close:before{content:'\f136'}.zmdi-cocktail:before{content:'\f137'}.zmdi-code-setting:before{content:'\f138'}.zmdi-code-smartphone:before{content:'\f139'}.zmdi-code:before{content:'\f13a'}.zmdi-coffee:before{content:'\f13b'}.zmdi-collection-bookmark:before{content:'\f13c'}.zmdi-collection-case-play:before{content:'\f13d'}.zmdi-collection-folder-image:before{content:'\f13e'}.zmdi-collection-image-o:before{content:'\f13f'}.zmdi-collection-image:before{content:'\f140'}.zmdi-collection-item-1:before{content:'\f141'}.zmdi-collection-item-2:before{content:'\f142'}.zmdi-collection-item-3:before{content:'\f143'}.zmdi-collection-item-4:before{content:'\f144'}.zmdi-collection-item-5:before{content:'\f145'}.zmdi-collection-item-6:before{content:'\f146'}.zmdi-collection-item-7:before{content:'\f147'}.zmdi-collection-item-8:before{content:'\f148'}.zmdi-collection-item-9-plus:before{content:'\f149'}.zmdi-collection-item-9:before{content:'\f14a'}.zmdi-collection-item:before{content:'\f14b'}.zmdi-collection-music:before{content:'\f14c'}.zmdi-collection-pdf:before{content:'\f14d'}.zmdi-collection-plus:before{content:'\f14e'}.zmdi-collection-speaker:before{content:'\f14f'}.zmdi-collection-text:before{content:'\f150'}.zmdi-collection-video:before{content:'\f151'}.zmdi-compass:before{content:'\f152'}.zmdi-cutlery:before{content:'\f153'}.zmdi-delete:before{content:'\f154'}.zmdi-dialpad:before{content:'\f155'}.zmdi-dns:before{content:'\f156'}.zmdi-drink:before{content:'\f157'}.zmdi-edit:before{content:'\f158'}.zmdi-email-open:before{content:'\f159'}.zmdi-email:before{content:'\f15a'}.zmdi-eye-off:before{content:'\f15b'}.zmdi-eye:before{content:'\f15c'}.zmdi-eyedropper:before{content:'\f15d'}.zmdi-favorite-outline:before{content:'\f15e'}.zmdi-favorite:before{content:'\f15f'}.zmdi-filter-list:before{content:'\f160'}.zmdi-fire:before{content:'\f161'}.zmdi-flag:before{content:'\f162'}.zmdi-flare:before{content:'\f163'}.zmdi-flash-auto:before{content:'\f164'}.zmdi-flash-off:before{content:'\f165'}.zmdi-flash:before{content:'\f166'}.zmdi-flip:before{content:'\f167'}.zmdi-flower-alt:before{content:'\f168'}.zmdi-flower:before{content:'\f169'}.zmdi-font:before{content:'\f16a'}.zmdi-fullscreen-alt:before{content:'\f16b'}.zmdi-fullscreen-exit:before{content:'\f16c'}.zmdi-fullscreen:before{content:'\f16d'}.zmdi-functions:before{content:'\f16e'}.zmdi-gas-station:before{content:'\f16f'}.zmdi-gesture:before{content:'\f170'}.zmdi-globe-alt:before{content:'\f171'}.zmdi-globe-lock:before{content:'\f172'}.zmdi-globe:before{content:'\f173'}.zmdi-graduation-cap:before{content:'\f174'}.zmdi-home:before{content:'\f175'}.zmdi-hospital-alt:before{content:'\f176'}.zmdi-hospital:before{content:'\f177'}.zmdi-hotel:before{content:'\f178'}.zmdi-hourglass-alt:before{content:'\f179'}.zmdi-hourglass-outline:before{content:'\f17a'}.zmdi-hourglass:before{content:'\f17b'}.zmdi-http:before{content:'\f17c'}.zmdi-image-alt:before{content:'\f17d'}.zmdi-image-o:before{content:'\f17e'}.zmdi-image:before{content:'\f17f'}.zmdi-inbox:before{content:'\f180'}.zmdi-invert-colors-off:before{content:'\f181'}.zmdi-invert-colors:before{content:'\f182'}.zmdi-key:before{content:'\f183'}.zmdi-label-alt-outline:before{content:'\f184'}.zmdi-label-alt:before{content:'\f185'}.zmdi-label-heart:before{content:'\f186'}.zmdi-label:before{content:'\f187'}.zmdi-labels:before{content:'\f188'}.zmdi-lamp:before{content:'\f189'}.zmdi-landscape:before{content:'\f18a'}.zmdi-layers-off:before{content:'\f18b'}.zmdi-layers:before{content:'\f18c'}.zmdi-library:before{content:'\f18d'}.zmdi-link:before{content:'\f18e'}.zmdi-lock-open:before{content:'\f18f'}.zmdi-lock-outline:before{content:'\f190'}.zmdi-lock:before{content:'\f191'}.zmdi-mail-reply-all:before{content:'\f192'}.zmdi-mail-reply:before{content:'\f193'}.zmdi-mail-send:before{content:'\f194'}.zmdi-mall:before{content:'\f195'}.zmdi-map:before{content:'\f196'}.zmdi-menu:before{content:'\f197'}.zmdi-money-box:before{content:'\f198'}.zmdi-money-off:before{content:'\f199'}.zmdi-money:before{content:'\f19a'}.zmdi-more-vert:before{content:'\f19b'}.zmdi-more:before{content:'\f19c'}.zmdi-movie-alt:before{content:'\f19d'}.zmdi-movie:before{content:'\f19e'}.zmdi-nature-people:before{content:'\f19f'}.zmdi-nature:before{content:'\f1a0'}.zmdi-navigation:before{content:'\f1a1'}.zmdi-open-in-browser:before{content:'\f1a2'}.zmdi-open-in-new:before{content:'\f1a3'}.zmdi-palette:before{content:'\f1a4'}.zmdi-parking:before{content:'\f1a5'}.zmdi-pin-account:before{content:'\f1a6'}.zmdi-pin-assistant:before{content:'\f1a7'}.zmdi-pin-drop:before{content:'\f1a8'}.zmdi-pin-help:before{content:'\f1a9'}.zmdi-pin-off:before{content:'\f1aa'}.zmdi-pin:before{content:'\f1ab'}.zmdi-pizza:before{content:'\f1ac'}.zmdi-plaster:before{content:'\f1ad'}.zmdi-power-setting:before{content:'\f1ae'}.zmdi-power:before{content:'\f1af'}.zmdi-print:before{content:'\f1b0'}.zmdi-puzzle-piece:before{content:'\f1b1'}.zmdi-quote:before{content:'\f1b2'}.zmdi-railway:before{content:'\f1b3'}.zmdi-receipt:before{content:'\f1b4'}.zmdi-refresh-alt:before{content:'\f1b5'}.zmdi-refresh-sync-alert:before{content:'\f1b6'}.zmdi-refresh-sync-off:before{content:'\f1b7'}.zmdi-refresh-sync:before{content:'\f1b8'}.zmdi-refresh:before{content:'\f1b9'}.zmdi-roller:before{content:'\f1ba'}.zmdi-ruler:before{content:'\f1bb'}.zmdi-scissors:before{content:'\f1bc'}.zmdi-screen-rotation-lock:before{content:'\f1bd'}.zmdi-screen-rotation:before{content:'\f1be'}.zmdi-search-for:before{content:'\f1bf'}.zmdi-search-in-file:before{content:'\f1c0'}.zmdi-search-in-page:before{content:'\f1c1'}.zmdi-search-replace:before{content:'\f1c2'}.zmdi-search:before{content:'\f1c3'}.zmdi-seat:before{content:'\f1c4'}.zmdi-settings-square:before{content:'\f1c5'}.zmdi-settings:before{content:'\f1c6'}.zmdi-shield-check:before{content:'\f1c7'}.zmdi-shield-security:before{content:'\f1c8'}.zmdi-shopping-basket:before{content:'\f1c9'}.zmdi-shopping-cart-plus:before{content:'\f1ca'}.zmdi-shopping-cart:before{content:'\f1cb'}.zmdi-sign-in:before{content:'\f1cc'}.zmdi-sort-amount-asc:before{content:'\f1cd'}.zmdi-sort-amount-desc:before{content:'\f1ce'}.zmdi-sort-asc:before{content:'\f1cf'}.zmdi-sort-desc:before{content:'\f1d0'}.zmdi-spellcheck:before{content:'\f1d1'}.zmdi-storage:before{content:'\f1d2'}.zmdi-store-24:before{content:'\f1d3'}.zmdi-store:before{content:'\f1d4'}.zmdi-subway:before{content:'\f1d5'}.zmdi-sun:before{content:'\f1d6'}.zmdi-tab-unselected:before{content:'\f1d7'}.zmdi-tab:before{content:'\f1d8'}.zmdi-tag-close:before{content:'\f1d9'}.zmdi-tag-more:before{content:'\f1da'}.zmdi-tag:before{content:'\f1db'}.zmdi-thumb-down:before{content:'\f1dc'}.zmdi-thumb-up-down:before{content:'\f1dd'}.zmdi-thumb-up:before{content:'\f1de'}.zmdi-ticket-star:before{content:'\f1df'}.zmdi-toll:before{content:'\f1e0'}.zmdi-toys:before{content:'\f1e1'}.zmdi-traffic:before{content:'\f1e2'}.zmdi-translate:before{content:'\f1e3'}.zmdi-triangle-down:before{content:'\f1e4'}.zmdi-triangle-up:before{content:'\f1e5'}.zmdi-truck:before{content:'\f1e6'}.zmdi-turning-sign:before{content:'\f1e7'}.zmdi-wallpaper:before{content:'\f1e8'}.zmdi-washing-machine:before{content:'\f1e9'}.zmdi-window-maximize:before{content:'\f1ea'}.zmdi-window-minimize:before{content:'\f1eb'}.zmdi-window-restore:before{content:'\f1ec'}.zmdi-wrench:before{content:'\f1ed'}.zmdi-zoom-in:before{content:'\f1ee'}.zmdi-zoom-out:before{content:'\f1ef'}.zmdi-alert-circle-o:before{content:'\f1f0'}.zmdi-alert-circle:before{content:'\f1f1'}.zmdi-alert-octagon:before{content:'\f1f2'}.zmdi-alert-polygon:before{content:'\f1f3'}.zmdi-alert-triangle:before{content:'\f1f4'}.zmdi-help-outline:before{content:'\f1f5'}.zmdi-help:before{content:'\f1f6'}.zmdi-info-outline:before{content:'\f1f7'}.zmdi-info:before{content:'\f1f8'}.zmdi-notifications-active:before{content:'\f1f9'}.zmdi-notifications-add:before{content:'\f1fa'}.zmdi-notifications-none:before{content:'\f1fb'}.zmdi-notifications-off:before{content:'\f1fc'}.zmdi-notifications-paused:before{content:'\f1fd'}.zmdi-notifications:before{content:'\f1fe'}.zmdi-account-add:before{content:'\f1ff'}.zmdi-account-box-mail:before{content:'\f200'}.zmdi-account-box-o:before{content:'\f201'}.zmdi-account-box-phone:before{content:'\f202'}.zmdi-account-box:before{content:'\f203'}.zmdi-account-calendar:before{content:'\f204'}.zmdi-account-circle:before{content:'\f205'}.zmdi-account-o:before{content:'\f206'}.zmdi-account:before{content:'\f207'}.zmdi-accounts-add:before{content:'\f208'}.zmdi-accounts-alt:before{content:'\f209'}.zmdi-accounts-list-alt:before{content:'\f20a'}.zmdi-accounts-list:before{content:'\f20b'}.zmdi-accounts-outline:before{content:'\f20c'}.zmdi-accounts:before{content:'\f20d'}.zmdi-face:before{content:'\f20e'}.zmdi-female:before{content:'\f20f'}.zmdi-male-alt:before{content:'\f210'}.zmdi-male-female:before{content:'\f211'}.zmdi-male:before{content:'\f212'}.zmdi-mood-bad:before{content:'\f213'}.zmdi-mood:before{content:'\f214'}.zmdi-run:before{content:'\f215'}.zmdi-walk:before{content:'\f216'}.zmdi-cloud-box:before{content:'\f217'}.zmdi-cloud-circle:before{content:'\f218'}.zmdi-cloud-done:before{content:'\f219'}.zmdi-cloud-download:before{content:'\f21a'}.zmdi-cloud-off:before{content:'\f21b'}.zmdi-cloud-outline-alt:before{content:'\f21c'}.zmdi-cloud-outline:before{content:'\f21d'}.zmdi-cloud-upload:before{content:'\f21e'}.zmdi-cloud:before{content:'\f21f'}.zmdi-download:before{content:'\f220'}.zmdi-file-plus:before{content:'\f221'}.zmdi-file-text:before{content:'\f222'}.zmdi-file:before{content:'\f223'}.zmdi-folder-outline:before{content:'\f224'}.zmdi-folder-person:before{content:'\f225'}.zmdi-folder-star-alt:before{content:'\f226'}.zmdi-folder-star:before{content:'\f227'}.zmdi-folder:before{content:'\f228'}.zmdi-gif:before{content:'\f229'}.zmdi-upload:before{content:'\f22a'}.zmdi-border-all:before{content:'\f22b'}.zmdi-border-bottom:before{content:'\f22c'}.zmdi-border-clear:before{content:'\f22d'}.zmdi-border-color:before{content:'\f22e'}.zmdi-border-horizontal:before{content:'\f22f'}.zmdi-border-inner:before{content:'\f230'}.zmdi-border-left:before{content:'\f231'}.zmdi-border-outer:before{content:'\f232'}.zmdi-border-right:before{content:'\f233'}.zmdi-border-style:before{content:'\f234'}.zmdi-border-top:before{content:'\f235'}.zmdi-border-vertical:before{content:'\f236'}.zmdi-copy:before{content:'\f237'}.zmdi-crop:before{content:'\f238'}.zmdi-format-align-center:before{content:'\f239'}.zmdi-format-align-justify:before{content:'\f23a'}.zmdi-format-align-left:before{content:'\f23b'}.zmdi-format-align-right:before{content:'\f23c'}.zmdi-format-bold:before{content:'\f23d'}.zmdi-format-clear-all:before{content:'\f23e'}.zmdi-format-clear:before{content:'\f23f'}.zmdi-format-color-fill:before{content:'\f240'}.zmdi-format-color-reset:before{content:'\f241'}.zmdi-format-color-text:before{content:'\f242'}.zmdi-format-indent-decrease:before{content:'\f243'}.zmdi-format-indent-increase:before{content:'\f244'}.zmdi-format-italic:before{content:'\f245'}.zmdi-format-line-spacing:before{content:'\f246'}.zmdi-format-list-bulleted:before{content:'\f247'}.zmdi-format-list-numbered:before{content:'\f248'}.zmdi-format-ltr:before{content:'\f249'}.zmdi-format-rtl:before{content:'\f24a'}.zmdi-format-size:before{content:'\f24b'}.zmdi-format-strikethrough-s:before{content:'\f24c'}.zmdi-format-strikethrough:before{content:'\f24d'}.zmdi-format-subject:before{content:'\f24e'}.zmdi-format-underlined:before{content:'\f24f'}.zmdi-format-valign-bottom:before{content:'\f250'}.zmdi-format-valign-center:before{content:'\f251'}.zmdi-format-valign-top:before{content:'\f252'}.zmdi-redo:before{content:'\f253'}.zmdi-select-all:before{content:'\f254'}.zmdi-space-bar:before{content:'\f255'}.zmdi-text-format:before{content:'\f256'}.zmdi-transform:before{content:'\f257'}.zmdi-undo:before{content:'\f258'}.zmdi-wrap-text:before{content:'\f259'}.zmdi-comment-alert:before{content:'\f25a'}.zmdi-comment-alt-text:before{content:'\f25b'}.zmdi-comment-alt:before{content:'\f25c'}.zmdi-comment-edit:before{content:'\f25d'}.zmdi-comment-image:before{content:'\f25e'}.zmdi-comment-list:before{content:'\f25f'}.zmdi-comment-more:before{content:'\f260'}.zmdi-comment-outline:before{content:'\f261'}.zmdi-comment-text-alt:before{content:'\f262'}.zmdi-comment-text:before{content:'\f263'}.zmdi-comment-video:before{content:'\f264'}.zmdi-comment:before{content:'\f265'}.zmdi-comments:before{content:'\f266'}.zmdi-check-all:before{content:'\f267'}.zmdi-check-circle-u:before{content:'\f268'}.zmdi-check-circle:before{content:'\f269'}.zmdi-check-square:before{content:'\f26a'}.zmdi-check:before{content:'\f26b'}.zmdi-circle-o:before{content:'\f26c'}.zmdi-circle:before{content:'\f26d'}.zmdi-dot-circle-alt:before{content:'\f26e'}.zmdi-dot-circle:before{content:'\f26f'}.zmdi-minus-circle-outline:before{content:'\f270'}.zmdi-minus-circle:before{content:'\f271'}.zmdi-minus-square:before{content:'\f272'}.zmdi-minus:before{content:'\f273'}.zmdi-plus-circle-o-duplicate:before{content:'\f274'}.zmdi-plus-circle-o:before{content:'\f275'}.zmdi-plus-circle:before{content:'\f276'}.zmdi-plus-square:before{content:'\f277'}.zmdi-plus:before{content:'\f278'}.zmdi-square-o:before{content:'\f279'}.zmdi-star-circle:before{content:'\f27a'}.zmdi-star-half:before{content:'\f27b'}.zmdi-star-outline:before{content:'\f27c'}.zmdi-star:before{content:'\f27d'}.zmdi-bluetooth-connected:before{content:'\f27e'}.zmdi-bluetooth-off:before{content:'\f27f'}.zmdi-bluetooth-search:before{content:'\f280'}.zmdi-bluetooth-setting:before{content:'\f281'}.zmdi-bluetooth:before{content:'\f282'}.zmdi-camera-add:before{content:'\f283'}.zmdi-camera-alt:before{content:'\f284'}.zmdi-camera-bw:before{content:'\f285'}.zmdi-camera-front:before{content:'\f286'}.zmdi-camera-mic:before{content:'\f287'}.zmdi-camera-party-mode:before{content:'\f288'}.zmdi-camera-rear:before{content:'\f289'}.zmdi-camera-roll:before{content:'\f28a'}.zmdi-camera-switch:before{content:'\f28b'}.zmdi-camera:before{content:'\f28c'}.zmdi-card-alert:before{content:'\f28d'}.zmdi-card-off:before{content:'\f28e'}.zmdi-card-sd:before{content:'\f28f'}.zmdi-card-sim:before{content:'\f290'}.zmdi-desktop-mac:before{content:'\f291'}.zmdi-desktop-windows:before{content:'\f292'}.zmdi-device-hub:before{content:'\f293'}.zmdi-devices-off:before{content:'\f294'}.zmdi-devices:before{content:'\f295'}.zmdi-dock:before{content:'\f296'}.zmdi-floppy:before{content:'\f297'}.zmdi-gamepad:before{content:'\f298'}.zmdi-gps-dot:before{content:'\f299'}.zmdi-gps-off:before{content:'\f29a'}.zmdi-gps:before{content:'\f29b'}.zmdi-headset-mic:before{content:'\f29c'}.zmdi-headset:before{content:'\f29d'}.zmdi-input-antenna:before{content:'\f29e'}.zmdi-input-composite:before{content:'\f29f'}.zmdi-input-hdmi:before{content:'\f2a0'}.zmdi-input-power:before{content:'\f2a1'}.zmdi-input-svideo:before{content:'\f2a2'}.zmdi-keyboard-hide:before{content:'\f2a3'}.zmdi-keyboard:before{content:'\f2a4'}.zmdi-laptop-chromebook:before{content:'\f2a5'}.zmdi-laptop-mac:before{content:'\f2a6'}.zmdi-laptop:before{content:'\f2a7'}.zmdi-mic-off:before{content:'\f2a8'}.zmdi-mic-outline:before{content:'\f2a9'}.zmdi-mic-setting:before{content:'\f2aa'}.zmdi-mic:before{content:'\f2ab'}.zmdi-mouse:before{content:'\f2ac'}.zmdi-network-alert:before{content:'\f2ad'}.zmdi-network-locked:before{content:'\f2ae'}.zmdi-network-off:before{content:'\f2af'}.zmdi-network-outline:before{content:'\f2b0'}.zmdi-network-setting:before{content:'\f2b1'}.zmdi-network:before{content:'\f2b2'}.zmdi-phone-bluetooth:before{content:'\f2b3'}.zmdi-phone-end:before{content:'\f2b4'}.zmdi-phone-forwarded:before{content:'\f2b5'}.zmdi-phone-in-talk:before{content:'\f2b6'}.zmdi-phone-locked:before{content:'\f2b7'}.zmdi-phone-missed:before{content:'\f2b8'}.zmdi-phone-msg:before{content:'\f2b9'}.zmdi-phone-paused:before{content:'\f2ba'}.zmdi-phone-ring:before{content:'\f2bb'}.zmdi-phone-setting:before{content:'\f2bc'}.zmdi-phone-sip:before{content:'\f2bd'}.zmdi-phone:before{content:'\f2be'}.zmdi-portable-wifi-changes:before{content:'\f2bf'}.zmdi-portable-wifi-off:before{content:'\f2c0'}.zmdi-portable-wifi:before{content:'\f2c1'}.zmdi-radio:before{content:'\f2c2'}.zmdi-reader:before{content:'\f2c3'}.zmdi-remote-control-alt:before{content:'\f2c4'}.zmdi-remote-control:before{content:'\f2c5'}.zmdi-router:before{content:'\f2c6'}.zmdi-scanner:before{content:'\f2c7'}.zmdi-smartphone-android:before{content:'\f2c8'}.zmdi-smartphone-download:before{content:'\f2c9'}.zmdi-smartphone-erase:before{content:'\f2ca'}.zmdi-smartphone-info:before{content:'\f2cb'}.zmdi-smartphone-iphone:before{content:'\f2cc'}.zmdi-smartphone-landscape-lock:before{content:'\f2cd'}.zmdi-smartphone-landscape:before{content:'\f2ce'}.zmdi-smartphone-lock:before{content:'\f2cf'}.zmdi-smartphone-portrait-lock:before{content:'\f2d0'}.zmdi-smartphone-ring:before{content:'\f2d1'}.zmdi-smartphone-setting:before{content:'\f2d2'}.zmdi-smartphone-setup:before{content:'\f2d3'}.zmdi-smartphone:before{content:'\f2d4'}.zmdi-speaker:before{content:'\f2d5'}.zmdi-tablet-android:before{content:'\f2d6'}.zmdi-tablet-mac:before{content:'\f2d7'}.zmdi-tablet:before{content:'\f2d8'}.zmdi-tv-alt-play:before{content:'\f2d9'}.zmdi-tv-list:before{content:'\f2da'}.zmdi-tv-play:before{content:'\f2db'}.zmdi-tv:before{content:'\f2dc'}.zmdi-usb:before{content:'\f2dd'}.zmdi-videocam-off:before{content:'\f2de'}.zmdi-videocam-switch:before{content:'\f2df'}.zmdi-videocam:before{content:'\f2e0'}.zmdi-watch:before{content:'\f2e1'}.zmdi-wifi-alt-2:before{content:'\f2e2'}.zmdi-wifi-alt:before{content:'\f2e3'}.zmdi-wifi-info:before{content:'\f2e4'}.zmdi-wifi-lock:before{content:'\f2e5'}.zmdi-wifi-off:before{content:'\f2e6'}.zmdi-wifi-outline:before{content:'\f2e7'}.zmdi-wifi:before{content:'\f2e8'}.zmdi-arrow-left-bottom:before{content:'\f2e9'}.zmdi-arrow-left:before{content:'\f2ea'}.zmdi-arrow-merge:before{content:'\f2eb'}.zmdi-arrow-missed:before{content:'\f2ec'}.zmdi-arrow-right-top:before{content:'\f2ed'}.zmdi-arrow-right:before{content:'\f2ee'}.zmdi-arrow-split:before{content:'\f2ef'}.zmdi-arrows:before{content:'\f2f0'}.zmdi-caret-down-circle:before{content:'\f2f1'}.zmdi-caret-down:before{content:'\f2f2'}.zmdi-caret-left-circle:before{content:'\f2f3'}.zmdi-caret-left:before{content:'\f2f4'}.zmdi-caret-right-circle:before{content:'\f2f5'}.zmdi-caret-right:before{content:'\f2f6'}.zmdi-caret-up-circle:before{content:'\f2f7'}.zmdi-caret-up:before{content:'\f2f8'}.zmdi-chevron-down:before{content:'\f2f9'}.zmdi-chevron-left:before{content:'\f2fa'}.zmdi-chevron-right:before{content:'\f2fb'}.zmdi-chevron-up:before{content:'\f2fc'}.zmdi-forward:before{content:'\f2fd'}.zmdi-long-arrow-down:before{content:'\f2fe'}.zmdi-long-arrow-left:before{content:'\f2ff'}.zmdi-long-arrow-return:before{content:'\f300'}.zmdi-long-arrow-right:before{content:'\f301'}.zmdi-long-arrow-tab:before{content:'\f302'}.zmdi-long-arrow-up:before{content:'\f303'}.zmdi-rotate-ccw:before{content:'\f304'}.zmdi-rotate-cw:before{content:'\f305'}.zmdi-rotate-left:before{content:'\f306'}.zmdi-rotate-right:before{content:'\f307'}.zmdi-square-down:before{content:'\f308'}.zmdi-square-right:before{content:'\f309'}.zmdi-swap-alt:before{content:'\f30a'}.zmdi-swap-vertical-circle:before{content:'\f30b'}.zmdi-swap-vertical:before{content:'\f30c'}.zmdi-swap:before{content:'\f30d'}.zmdi-trending-down:before{content:'\f30e'}.zmdi-trending-flat:before{content:'\f30f'}.zmdi-trending-up:before{content:'\f310'}.zmdi-unfold-less:before{content:'\f311'}.zmdi-unfold-more:before{content:'\f312'}.zmdi-apps:before{content:'\f313'}.zmdi-grid-off:before{content:'\f314'}.zmdi-grid:before{content:'\f315'}.zmdi-view-agenda:before{content:'\f316'}.zmdi-view-array:before{content:'\f317'}.zmdi-view-carousel:before{content:'\f318'}.zmdi-view-column:before{content:'\f319'}.zmdi-view-comfy:before{content:'\f31a'}.zmdi-view-compact:before{content:'\f31b'}.zmdi-view-dashboard:before{content:'\f31c'}.zmdi-view-day:before{content:'\f31d'}.zmdi-view-headline:before{content:'\f31e'}.zmdi-view-list-alt:before{content:'\f31f'}.zmdi-view-list:before{content:'\f320'}.zmdi-view-module:before{content:'\f321'}.zmdi-view-quilt:before{content:'\f322'}.zmdi-view-stream:before{content:'\f323'}.zmdi-view-subtitles:before{content:'\f324'}.zmdi-view-toc:before{content:'\f325'}.zmdi-view-web:before{content:'\f326'}.zmdi-view-week:before{content:'\f327'}.zmdi-widgets:before{content:'\f328'}.zmdi-alarm-check:before{content:'\f329'}.zmdi-alarm-off:before{content:'\f32a'}.zmdi-alarm-plus:before{content:'\f32b'}.zmdi-alarm-snooze:before{content:'\f32c'}.zmdi-alarm:before{content:'\f32d'}.zmdi-calendar-alt:before{content:'\f32e'}.zmdi-calendar-check:before{content:'\f32f'}.zmdi-calendar-close:before{content:'\f330'}.zmdi-calendar-note:before{content:'\f331'}.zmdi-calendar:before{content:'\f332'}.zmdi-time-countdown:before{content:'\f333'}.zmdi-time-interval:before{content:'\f334'}.zmdi-time-restore-setting:before{content:'\f335'}.zmdi-time-restore:before{content:'\f336'}.zmdi-time:before{content:'\f337'}.zmdi-timer-off:before{content:'\f338'}.zmdi-timer:before{content:'\f339'}.zmdi-android-alt:before{content:'\f33a'}.zmdi-android:before{content:'\f33b'}.zmdi-apple:before{content:'\f33c'}.zmdi-behance:before{content:'\f33d'}.zmdi-codepen:before{content:'\f33e'}.zmdi-dribbble:before{content:'\f33f'}.zmdi-dropbox:before{content:'\f340'}.zmdi-evernote:before{content:'\f341'}.zmdi-facebook-box:before{content:'\f342'}.zmdi-facebook:before{content:'\f343'}.zmdi-github-box:before{content:'\f344'}.zmdi-github:before{content:'\f345'}.zmdi-google-drive:before{content:'\f346'}.zmdi-google-earth:before{content:'\f347'}.zmdi-google-glass:before{content:'\f348'}.zmdi-google-maps:before{content:'\f349'}.zmdi-google-pages:before{content:'\f34a'}.zmdi-google-play:before{content:'\f34b'}.zmdi-google-plus-box:before{content:'\f34c'}.zmdi-google-plus:before{content:'\f34d'}.zmdi-google:before{content:'\f34e'}.zmdi-instagram:before{content:'\f34f'}.zmdi-language-css3:before{content:'\f350'}.zmdi-language-html5:before{content:'\f351'}.zmdi-language-javascript:before{content:'\f352'}.zmdi-language-python-alt:before{content:'\f353'}.zmdi-language-python:before{content:'\f354'}.zmdi-lastfm:before{content:'\f355'}.zmdi-linkedin-box:before{content:'\f356'}.zmdi-paypal:before{content:'\f357'}.zmdi-pinterest-box:before{content:'\f358'}.zmdi-pocket:before{content:'\f359'}.zmdi-polymer:before{content:'\f35a'}.zmdi-share:before{content:'\f35b'}.zmdi-stackoverflow:before{content:'\f35c'}.zmdi-steam-square:before{content:'\f35d'}.zmdi-steam:before{content:'\f35e'}.zmdi-twitter-box:before{content:'\f35f'}.zmdi-twitter:before{content:'\f360'}.zmdi-vk:before{content:'\f361'}.zmdi-wikipedia:before{content:'\f362'}.zmdi-windows:before{content:'\f363'}.zmdi-aspect-ratio-alt:before{content:'\f364'}.zmdi-aspect-ratio:before{content:'\f365'}.zmdi-blur-circular:before{content:'\f366'}.zmdi-blur-linear:before{content:'\f367'}.zmdi-blur-off:before{content:'\f368'}.zmdi-blur:before{content:'\f369'}.zmdi-brightness-2:before{content:'\f36a'}.zmdi-brightness-3:before{content:'\f36b'}.zmdi-brightness-4:before{content:'\f36c'}.zmdi-brightness-5:before{content:'\f36d'}.zmdi-brightness-6:before{content:'\f36e'}.zmdi-brightness-7:before{content:'\f36f'}.zmdi-brightness-auto:before{content:'\f370'}.zmdi-brightness-setting:before{content:'\f371'}.zmdi-broken-image:before{content:'\f372'}.zmdi-center-focus-strong:before{content:'\f373'}.zmdi-center-focus-weak:before{content:'\f374'}.zmdi-compare:before{content:'\f375'}.zmdi-crop-16-9:before{content:'\f376'}.zmdi-crop-3-2:before{content:'\f377'}.zmdi-crop-5-4:before{content:'\f378'}.zmdi-crop-7-5:before{content:'\f379'}.zmdi-crop-din:before{content:'\f37a'}.zmdi-crop-free:before{content:'\f37b'}.zmdi-crop-landscape:before{content:'\f37c'}.zmdi-crop-portrait:before{content:'\f37d'}.zmdi-crop-square:before{content:'\f37e'}.zmdi-exposure-alt:before{content:'\f37f'}.zmdi-exposure:before{content:'\f380'}.zmdi-filter-b-and-w:before{content:'\f381'}.zmdi-filter-center-focus:before{content:'\f382'}.zmdi-filter-frames:before{content:'\f383'}.zmdi-filter-tilt-shift:before{content:'\f384'}.zmdi-gradient:before{content:'\f385'}.zmdi-grain:before{content:'\f386'}.zmdi-graphic-eq:before{content:'\f387'}.zmdi-hdr-off:before{content:'\f388'}.zmdi-hdr-strong:before{content:'\f389'}.zmdi-hdr-weak:before{content:'\f38a'}.zmdi-hdr:before{content:'\f38b'}.zmdi-iridescent:before{content:'\f38c'}.zmdi-leak-off:before{content:'\f38d'}.zmdi-leak:before{content:'\f38e'}.zmdi-looks:before{content:'\f38f'}.zmdi-loupe:before{content:'\f390'}.zmdi-panorama-horizontal:before{content:'\f391'}.zmdi-panorama-vertical:before{content:'\f392'}.zmdi-panorama-wide-angle:before{content:'\f393'}.zmdi-photo-size-select-large:before{content:'\f394'}.zmdi-photo-size-select-small:before{content:'\f395'}.zmdi-picture-in-picture:before{content:'\f396'}.zmdi-slideshow:before{content:'\f397'}.zmdi-texture:before{content:'\f398'}.zmdi-tonality:before{content:'\f399'}.zmdi-vignette:before{content:'\f39a'}.zmdi-wb-auto:before{content:'\f39b'}.zmdi-eject-alt:before{content:'\f39c'}.zmdi-eject:before{content:'\f39d'}.zmdi-equalizer:before{content:'\f39e'}.zmdi-fast-forward:before{content:'\f39f'}.zmdi-fast-rewind:before{content:'\f3a0'}.zmdi-forward-10:before{content:'\f3a1'}.zmdi-forward-30:before{content:'\f3a2'}.zmdi-forward-5:before{content:'\f3a3'}.zmdi-hearing:before{content:'\f3a4'}.zmdi-pause-circle-outline:before{content:'\f3a5'}.zmdi-pause-circle:before{content:'\f3a6'}.zmdi-pause:before{content:'\f3a7'}.zmdi-play-circle-outline:before{content:'\f3a8'}.zmdi-play-circle:before{content:'\f3a9'}.zmdi-play:before{content:'\f3aa'}.zmdi-playlist-audio:before{content:'\f3ab'}.zmdi-playlist-plus:before{content:'\f3ac'}.zmdi-repeat-one:before{content:'\f3ad'}.zmdi-repeat:before{content:'\f3ae'}.zmdi-replay-10:before{content:'\f3af'}.zmdi-replay-30:before{content:'\f3b0'}.zmdi-replay-5:before{content:'\f3b1'}.zmdi-replay:before{content:'\f3b2'}.zmdi-shuffle:before{content:'\f3b3'}.zmdi-skip-next:before{content:'\f3b4'}.zmdi-skip-previous:before{content:'\f3b5'}.zmdi-stop:before{content:'\f3b6'}.zmdi-surround-sound:before{content:'\f3b7'}.zmdi-tune:before{content:'\f3b8'}.zmdi-volume-down:before{content:'\f3b9'}.zmdi-volume-mute:before{content:'\f3ba'}.zmdi-volume-off:before{content:'\f3bb'}.zmdi-volume-up:before{content:'\f3bc'}.zmdi-n-1-square:before{content:'\f3bd'}.zmdi-n-2-square:before{content:'\f3be'}.zmdi-n-3-square:before{content:'\f3bf'}.zmdi-n-4-square:before{content:'\f3c0'}.zmdi-n-5-square:before{content:'\f3c1'}.zmdi-n-6-square:before{content:'\f3c2'}.zmdi-neg-1:before{content:'\f3c3'}.zmdi-neg-2:before{content:'\f3c4'}.zmdi-plus-1:before{content:'\f3c5'}.zmdi-plus-2:before{content:'\f3c6'}.zmdi-sec-10:before{content:'\f3c7'}.zmdi-sec-3:before{content:'\f3c8'}.zmdi-zero:before{content:'\f3c9'}.zmdi-airline-seat-flat-angled:before{content:'\f3ca'}.zmdi-airline-seat-flat:before{content:'\f3cb'}.zmdi-airline-seat-individual-suite:before{content:'\f3cc'}.zmdi-airline-seat-legroom-extra:before{content:'\f3cd'}.zmdi-airline-seat-legroom-normal:before{content:'\f3ce'}.zmdi-airline-seat-legroom-reduced:before{content:'\f3cf'}.zmdi-airline-seat-recline-extra:before{content:'\f3d0'}.zmdi-airline-seat-recline-normal:before{content:'\f3d1'}.zmdi-airplay:before{content:'\f3d2'}.zmdi-closed-caption:before{content:'\f3d3'}.zmdi-confirmation-number:before{content:'\f3d4'}.zmdi-developer-board:before{content:'\f3d5'}.zmdi-disc-full:before{content:'\f3d6'}.zmdi-explicit:before{content:'\f3d7'}.zmdi-flight-land:before{content:'\f3d8'}.zmdi-flight-takeoff:before{content:'\f3d9'}.zmdi-flip-to-back:before{content:'\f3da'}.zmdi-flip-to-front:before{content:'\f3db'}.zmdi-group-work:before{content:'\f3dc'}.zmdi-hd:before{content:'\f3dd'}.zmdi-hq:before{content:'\f3de'}.zmdi-markunread-mailbox:before{content:'\f3df'}.zmdi-memory:before{content:'\f3e0'}.zmdi-nfc:before{content:'\f3e1'}.zmdi-play-for-work:before{content:'\f3e2'}.zmdi-power-input:before{content:'\f3e3'}.zmdi-present-to-all:before{content:'\f3e4'}.zmdi-satellite:before{content:'\f3e5'}.zmdi-tap-and-play:before{content:'\f3e6'}.zmdi-vibration:before{content:'\f3e7'}.zmdi-voicemail:before{content:'\f3e8'}.zmdi-group:before{content:'\f3e9'}.zmdi-rss:before{content:'\f3ea'}.zmdi-shape:before{content:'\f3eb'}.zmdi-spinner:before{content:'\f3ec'}.zmdi-ungroup:before{content:'\f3ed'}.zmdi-500px:before{content:'\f3ee'}.zmdi-8tracks:before{content:'\f3ef'}.zmdi-amazon:before{content:'\f3f0'}.zmdi-blogger:before{content:'\f3f1'}.zmdi-delicious:before{content:'\f3f2'}.zmdi-disqus:before{content:'\f3f3'}.zmdi-flattr:before{content:'\f3f4'}.zmdi-flickr:before{content:'\f3f5'}.zmdi-github-alt:before{content:'\f3f6'}.zmdi-google-old:before{content:'\f3f7'}.zmdi-linkedin:before{content:'\f3f8'}.zmdi-odnoklassniki:before{content:'\f3f9'}.zmdi-outlook:before{content:'\f3fa'}.zmdi-paypal-alt:before{content:'\f3fb'}.zmdi-pinterest:before{content:'\f3fc'}.zmdi-playstation:before{content:'\f3fd'}.zmdi-reddit:before{content:'\f3fe'}.zmdi-skype:before{content:'\f3ff'}.zmdi-slideshare:before{content:'\f400'}.zmdi-soundcloud:before{content:'\f401'}.zmdi-tumblr:before{content:'\f402'}.zmdi-twitch:before{content:'\f403'}.zmdi-vimeo:before{content:'\f404'}.zmdi-whatsapp:before{content:'\f405'}.zmdi-xbox:before{content:'\f406'}.zmdi-yahoo:before{content:'\f407'}.zmdi-youtube-play:before{content:'\f408'}.zmdi-youtube:before{content:'\f409'}.zmdi-3d-rotation:before{content:'\f101'}.zmdi-airplane-off:before{content:'\f102'}.zmdi-airplane:before{content:'\f103'}.zmdi-album:before{content:'\f104'}.zmdi-archive:before{content:'\f105'}.zmdi-assignment-account:before{content:'\f106'}.zmdi-assignment-alert:before{content:'\f107'}.zmdi-assignment-check:before{content:'\f108'}.zmdi-assignment-o:before{content:'\f109'}.zmdi-assignment-return:before{content:'\f10a'}.zmdi-assignment-returned:before{content:'\f10b'}.zmdi-assignment:before{content:'\f10c'}.zmdi-attachment-alt:before{content:'\f10d'}.zmdi-attachment:before{content:'\f10e'}.zmdi-audio:before{content:'\f10f'}.zmdi-badge-check:before{content:'\f110'}.zmdi-balance-wallet:before{content:'\f111'}.zmdi-balance:before{content:'\f112'}.zmdi-battery-alert:before{content:'\f113'}.zmdi-battery-flash:before{content:'\f114'}.zmdi-battery-unknown:before{content:'\f115'}.zmdi-battery:before{content:'\f116'}.zmdi-bike:before{content:'\f117'}.zmdi-block-alt:before{content:'\f118'}.zmdi-block:before{content:'\f119'}.zmdi-boat:before{content:'\f11a'}.zmdi-book-image:before{content:'\f11b'}.zmdi-book:before{content:'\f11c'}.zmdi-bookmark-outline:before{content:'\f11d'}.zmdi-bookmark:before{content:'\f11e'}.zmdi-brush:before{content:'\f11f'}.zmdi-bug:before{content:'\f120'}.zmdi-bus:before{content:'\f121'}.zmdi-cake:before{content:'\f122'}.zmdi-car-taxi:before{content:'\f123'}.zmdi-car-wash:before{content:'\f124'}.zmdi-car:before{content:'\f125'}.zmdi-card-giftcard:before{content:'\f126'}.zmdi-card-membership:before{content:'\f127'}.zmdi-card-travel:before{content:'\f128'}.zmdi-card:before{content:'\f129'}.zmdi-case-check:before{content:'\f12a'}.zmdi-case-download:before{content:'\f12b'}.zmdi-case-play:before{content:'\f12c'}.zmdi-case:before{content:'\f12d'}.zmdi-cast-connected:before{content:'\f12e'}.zmdi-cast:before{content:'\f12f'}.zmdi-chart-donut:before{content:'\f130'}.zmdi-chart:before{content:'\f131'}.zmdi-city-alt:before{content:'\f132'}.zmdi-city:before{content:'\f133'}.zmdi-close-circle-o:before{content:'\f134'}.zmdi-close-circle:before{content:'\f135'}.zmdi-close:before{content:'\f136'}.zmdi-cocktail:before{content:'\f137'}.zmdi-code-setting:before{content:'\f138'}.zmdi-code-smartphone:before{content:'\f139'}.zmdi-code:before{content:'\f13a'}.zmdi-coffee:before{content:'\f13b'}.zmdi-collection-bookmark:before{content:'\f13c'}.zmdi-collection-case-play:before{content:'\f13d'}.zmdi-collection-folder-image:before{content:'\f13e'}.zmdi-collection-image-o:before{content:'\f13f'}.zmdi-collection-image:before{content:'\f140'}.zmdi-collection-item-1:before{content:'\f141'}.zmdi-collection-item-2:before{content:'\f142'}.zmdi-collection-item-3:before{content:'\f143'}.zmdi-collection-item-4:before{content:'\f144'}.zmdi-collection-item-5:before{content:'\f145'}.zmdi-collection-item-6:before{content:'\f146'}.zmdi-collection-item-7:before{content:'\f147'}.zmdi-collection-item-8:before{content:'\f148'}.zmdi-collection-item-9-plus:before{content:'\f149'}.zmdi-collection-item-9:before{content:'\f14a'}.zmdi-collection-item:before{content:'\f14b'}.zmdi-collection-music:before{content:'\f14c'}.zmdi-collection-pdf:before{content:'\f14d'}.zmdi-collection-plus:before{content:'\f14e'}.zmdi-collection-speaker:before{content:'\f14f'}.zmdi-collection-text:before{content:'\f150'}.zmdi-collection-video:before{content:'\f151'}.zmdi-compass:before{content:'\f152'}.zmdi-cutlery:before{content:'\f153'}.zmdi-delete:before{content:'\f154'}.zmdi-dialpad:before{content:'\f155'}.zmdi-dns:before{content:'\f156'}.zmdi-drink:before{content:'\f157'}.zmdi-edit:before{content:'\f158'}.zmdi-email-open:before{content:'\f159'}.zmdi-email:before{content:'\f15a'}.zmdi-eye-off:before{content:'\f15b'}.zmdi-eye:before{content:'\f15c'}.zmdi-eyedropper:before{content:'\f15d'}.zmdi-favorite-outline:before{content:'\f15e'}.zmdi-favorite:before{content:'\f15f'}.zmdi-filter-list:before{content:'\f160'}.zmdi-fire:before{content:'\f161'}.zmdi-flag:before{content:'\f162'}.zmdi-flare:before{content:'\f163'}.zmdi-flash-auto:before{content:'\f164'}.zmdi-flash-off:before{content:'\f165'}.zmdi-flash:before{content:'\f166'}.zmdi-flip:before{content:'\f167'}.zmdi-flower-alt:before{content:'\f168'}.zmdi-flower:before{content:'\f169'}.zmdi-font:before{content:'\f16a'}.zmdi-fullscreen-alt:before{content:'\f16b'}.zmdi-fullscreen-exit:before{content:'\f16c'}.zmdi-fullscreen:before{content:'\f16d'}.zmdi-functions:before{content:'\f16e'}.zmdi-gas-station:before{content:'\f16f'}.zmdi-gesture:before{content:'\f170'}.zmdi-globe-alt:before{content:'\f171'}.zmdi-globe-lock:before{content:'\f172'}.zmdi-globe:before{content:'\f173'}.zmdi-graduation-cap:before{content:'\f174'}.zmdi-home:before{content:'\f175'}.zmdi-hospital-alt:before{content:'\f176'}.zmdi-hospital:before{content:'\f177'}.zmdi-hotel:before{content:'\f178'}.zmdi-hourglass-alt:before{content:'\f179'}.zmdi-hourglass-outline:before{content:'\f17a'}.zmdi-hourglass:before{content:'\f17b'}.zmdi-http:before{content:'\f17c'}.zmdi-image-alt:before{content:'\f17d'}.zmdi-image-o:before{content:'\f17e'}.zmdi-image:before{content:'\f17f'}.zmdi-inbox:before{content:'\f180'}.zmdi-invert-colors-off:before{content:'\f181'}.zmdi-invert-colors:before{content:'\f182'}.zmdi-key:before{content:'\f183'}.zmdi-label-alt-outline:before{content:'\f184'}.zmdi-label-alt:before{content:'\f185'}.zmdi-label-heart:before{content:'\f186'}.zmdi-label:before{content:'\f187'}.zmdi-labels:before{content:'\f188'}.zmdi-lamp:before{content:'\f189'}.zmdi-landscape:before{content:'\f18a'}.zmdi-layers-off:before{content:'\f18b'}.zmdi-layers:before{content:'\f18c'}.zmdi-library:before{content:'\f18d'}.zmdi-link:before{content:'\f18e'}.zmdi-lock-open:before{content:'\f18f'}.zmdi-lock-outline:before{content:'\f190'}.zmdi-lock:before{content:'\f191'}.zmdi-mail-reply-all:before{content:'\f192'}.zmdi-mail-reply:before{content:'\f193'}.zmdi-mail-send:before{content:'\f194'}.zmdi-mall:before{content:'\f195'}.zmdi-map:before{content:'\f196'}.zmdi-menu:before{content:'\f197'}.zmdi-money-box:before{content:'\f198'}.zmdi-money-off:before{content:'\f199'}.zmdi-money:before{content:'\f19a'}.zmdi-more-vert:before{content:'\f19b'}.zmdi-more:before{content:'\f19c'}.zmdi-movie-alt:before{content:'\f19d'}.zmdi-movie:before{content:'\f19e'}.zmdi-nature-people:before{content:'\f19f'}.zmdi-nature:before{content:'\f1a0'}.zmdi-navigation:before{content:'\f1a1'}.zmdi-open-in-browser:before{content:'\f1a2'}.zmdi-open-in-new:before{content:'\f1a3'}.zmdi-palette:before{content:'\f1a4'}.zmdi-parking:before{content:'\f1a5'}.zmdi-pin-account:before{content:'\f1a6'}.zmdi-pin-assistant:before{content:'\f1a7'}.zmdi-pin-drop:before{content:'\f1a8'}.zmdi-pin-help:before{content:'\f1a9'}.zmdi-pin-off:before{content:'\f1aa'}.zmdi-pin:before{content:'\f1ab'}.zmdi-pizza:before{content:'\f1ac'}.zmdi-plaster:before{content:'\f1ad'}.zmdi-power-setting:before{content:'\f1ae'}.zmdi-power:before{content:'\f1af'}.zmdi-print:before{content:'\f1b0'}.zmdi-puzzle-piece:before{content:'\f1b1'}.zmdi-quote:before{content:'\f1b2'}.zmdi-railway:before{content:'\f1b3'}.zmdi-receipt:before{content:'\f1b4'}.zmdi-refresh-alt:before{content:'\f1b5'}.zmdi-refresh-sync-alert:before{content:'\f1b6'}.zmdi-refresh-sync-off:before{content:'\f1b7'}.zmdi-refresh-sync:before{content:'\f1b8'}.zmdi-refresh:before{content:'\f1b9'}.zmdi-roller:before{content:'\f1ba'}.zmdi-ruler:before{content:'\f1bb'}.zmdi-scissors:before{content:'\f1bc'}.zmdi-screen-rotation-lock:before{content:'\f1bd'}.zmdi-screen-rotation:before{content:'\f1be'}.zmdi-search-for:before{content:'\f1bf'}.zmdi-search-in-file:before{content:'\f1c0'}.zmdi-search-in-page:before{content:'\f1c1'}.zmdi-search-replace:before{content:'\f1c2'}.zmdi-search:before{content:'\f1c3'}.zmdi-seat:before{content:'\f1c4'}.zmdi-settings-square:before{content:'\f1c5'}.zmdi-settings:before{content:'\f1c6'}.zmdi-shield-check:before{content:'\f1c7'}.zmdi-shield-security:before{content:'\f1c8'}.zmdi-shopping-basket:before{content:'\f1c9'}.zmdi-shopping-cart-plus:before{content:'\f1ca'}.zmdi-shopping-cart:before{content:'\f1cb'}.zmdi-sign-in:before{content:'\f1cc'}.zmdi-sort-amount-asc:before{content:'\f1cd'}.zmdi-sort-amount-desc:before{content:'\f1ce'}.zmdi-sort-asc:before{content:'\f1cf'}.zmdi-sort-desc:before{content:'\f1d0'}.zmdi-spellcheck:before{content:'\f1d1'}.zmdi-storage:before{content:'\f1d2'}.zmdi-store-24:before{content:'\f1d3'}.zmdi-store:before{content:'\f1d4'}.zmdi-subway:before{content:'\f1d5'}.zmdi-sun:before{content:'\f1d6'}.zmdi-tab-unselected:before{content:'\f1d7'}.zmdi-tab:before{content:'\f1d8'}.zmdi-tag-close:before{content:'\f1d9'}.zmdi-tag-more:before{content:'\f1da'}.zmdi-tag:before{content:'\f1db'}.zmdi-thumb-down:before{content:'\f1dc'}.zmdi-thumb-up-down:before{content:'\f1dd'}.zmdi-thumb-up:before{content:'\f1de'}.zmdi-ticket-star:before{content:'\f1df'}.zmdi-toll:before{content:'\f1e0'}.zmdi-toys:before{content:'\f1e1'}.zmdi-traffic:before{content:'\f1e2'}.zmdi-translate:before{content:'\f1e3'}.zmdi-triangle-down:before{content:'\f1e4'}.zmdi-triangle-up:before{content:'\f1e5'}.zmdi-truck:before{content:'\f1e6'}.zmdi-turning-sign:before{content:'\f1e7'}.zmdi-wallpaper:before{content:'\f1e8'}.zmdi-washing-machine:before{content:'\f1e9'}.zmdi-window-maximize:before{content:'\f1ea'}.zmdi-window-minimize:before{content:'\f1eb'}.zmdi-window-restore:before{content:'\f1ec'}.zmdi-wrench:before{content:'\f1ed'}.zmdi-zoom-in:before{content:'\f1ee'}.zmdi-zoom-out:before{content:'\f1ef'}.zmdi-alert-circle-o:before{content:'\f1f0'}.zmdi-alert-circle:before{content:'\f1f1'}.zmdi-alert-octagon:before{content:'\f1f2'}.zmdi-alert-polygon:before{content:'\f1f3'}.zmdi-alert-triangle:before{content:'\f1f4'}.zmdi-help-outline:before{content:'\f1f5'}.zmdi-help:before{content:'\f1f6'}.zmdi-info-outline:before{content:'\f1f7'}.zmdi-info:before{content:'\f1f8'}.zmdi-notifications-active:before{content:'\f1f9'}.zmdi-notifications-add:before{content:'\f1fa'}.zmdi-notifications-none:before{content:'\f1fb'}.zmdi-notifications-off:before{content:'\f1fc'}.zmdi-notifications-paused:before{content:'\f1fd'}.zmdi-notifications:before{content:'\f1fe'}.zmdi-account-add:before{content:'\f1ff'}.zmdi-account-box-mail:before{content:'\f200'}.zmdi-account-box-o:before{content:'\f201'}.zmdi-account-box-phone:before{content:'\f202'}.zmdi-account-box:before{content:'\f203'}.zmdi-account-calendar:before{content:'\f204'}.zmdi-account-circle:before{content:'\f205'}.zmdi-account-o:before{content:'\f206'}.zmdi-account:before{content:'\f207'}.zmdi-accounts-add:before{content:'\f208'}.zmdi-accounts-alt:before{content:'\f209'}.zmdi-accounts-list-alt:before{content:'\f20a'}.zmdi-accounts-list:before{content:'\f20b'}.zmdi-accounts-outline:before{content:'\f20c'}.zmdi-accounts:before{content:'\f20d'}.zmdi-face:before{content:'\f20e'}.zmdi-female:before{content:'\f20f'}.zmdi-male-alt:before{content:'\f210'}.zmdi-male-female:before{content:'\f211'}.zmdi-male:before{content:'\f212'}.zmdi-mood-bad:before{content:'\f213'}.zmdi-mood:before{content:'\f214'}.zmdi-run:before{content:'\f215'}.zmdi-walk:before{content:'\f216'}.zmdi-cloud-box:before{content:'\f217'}.zmdi-cloud-circle:before{content:'\f218'}.zmdi-cloud-done:before{content:'\f219'}.zmdi-cloud-download:before{content:'\f21a'}.zmdi-cloud-off:before{content:'\f21b'}.zmdi-cloud-outline-alt:before{content:'\f21c'}.zmdi-cloud-outline:before{content:'\f21d'}.zmdi-cloud-upload:before{content:'\f21e'}.zmdi-cloud:before{content:'\f21f'}.zmdi-download:before{content:'\f220'}.zmdi-file-plus:before{content:'\f221'}.zmdi-file-text:before{content:'\f222'}.zmdi-file:before{content:'\f223'}.zmdi-folder-outline:before{content:'\f224'}.zmdi-folder-person:before{content:'\f225'}.zmdi-folder-star-alt:before{content:'\f226'}.zmdi-folder-star:before{content:'\f227'}.zmdi-folder:before{content:'\f228'}.zmdi-gif:before{content:'\f229'}.zmdi-upload:before{content:'\f22a'}.zmdi-border-all:before{content:'\f22b'}.zmdi-border-bottom:before{content:'\f22c'}.zmdi-border-clear:before{content:'\f22d'}.zmdi-border-color:before{content:'\f22e'}.zmdi-border-horizontal:before{content:'\f22f'}.zmdi-border-inner:before{content:'\f230'}.zmdi-border-left:before{content:'\f231'}.zmdi-border-outer:before{content:'\f232'}.zmdi-border-right:before{content:'\f233'}.zmdi-border-style:before{content:'\f234'}.zmdi-border-top:before{content:'\f235'}.zmdi-border-vertical:before{content:'\f236'}.zmdi-copy:before{content:'\f237'}.zmdi-crop:before{content:'\f238'}.zmdi-format-align-center:before{content:'\f239'}.zmdi-format-align-justify:before{content:'\f23a'}.zmdi-format-align-left:before{content:'\f23b'}.zmdi-format-align-right:before{content:'\f23c'}.zmdi-format-bold:before{content:'\f23d'}.zmdi-format-clear-all:before{content:'\f23e'}.zmdi-format-clear:before{content:'\f23f'}.zmdi-format-color-fill:before{content:'\f240'}.zmdi-format-color-reset:before{content:'\f241'}.zmdi-format-color-text:before{content:'\f242'}.zmdi-format-indent-decrease:before{content:'\f243'}.zmdi-format-indent-increase:before{content:'\f244'}.zmdi-format-italic:before{content:'\f245'}.zmdi-format-line-spacing:before{content:'\f246'}.zmdi-format-list-bulleted:before{content:'\f247'}.zmdi-format-list-numbered:before{content:'\f248'}.zmdi-format-ltr:before{content:'\f249'}.zmdi-format-rtl:before{content:'\f24a'}.zmdi-format-size:before{content:'\f24b'}.zmdi-format-strikethrough-s:before{content:'\f24c'}.zmdi-format-strikethrough:before{content:'\f24d'}.zmdi-format-subject:before{content:'\f24e'}.zmdi-format-underlined:before{content:'\f24f'}.zmdi-format-valign-bottom:before{content:'\f250'}.zmdi-format-valign-center:before{content:'\f251'}.zmdi-format-valign-top:before{content:'\f252'}.zmdi-redo:before{content:'\f253'}.zmdi-select-all:before{content:'\f254'}.zmdi-space-bar:before{content:'\f255'}.zmdi-text-format:before{content:'\f256'}.zmdi-transform:before{content:'\f257'}.zmdi-undo:before{content:'\f258'}.zmdi-wrap-text:before{content:'\f259'}.zmdi-comment-alert:before{content:'\f25a'}.zmdi-comment-alt-text:before{content:'\f25b'}.zmdi-comment-alt:before{content:'\f25c'}.zmdi-comment-edit:before{content:'\f25d'}.zmdi-comment-image:before{content:'\f25e'}.zmdi-comment-list:before{content:'\f25f'}.zmdi-comment-more:before{content:'\f260'}.zmdi-comment-outline:before{content:'\f261'}.zmdi-comment-text-alt:before{content:'\f262'}.zmdi-comment-text:before{content:'\f263'}.zmdi-comment-video:before{content:'\f264'}.zmdi-comment:before{content:'\f265'}.zmdi-comments:before{content:'\f266'}.zmdi-check-all:before{content:'\f267'}.zmdi-check-circle-u:before{content:'\f268'}.zmdi-check-circle:before{content:'\f269'}.zmdi-check-square:before{content:'\f26a'}.zmdi-check:before{content:'\f26b'}.zmdi-circle-o:before{content:'\f26c'}.zmdi-circle:before{content:'\f26d'}.zmdi-dot-circle-alt:before{content:'\f26e'}.zmdi-dot-circle:before{content:'\f26f'}.zmdi-minus-circle-outline:before{content:'\f270'}.zmdi-minus-circle:before{content:'\f271'}.zmdi-minus-square:before{content:'\f272'}.zmdi-minus:before{content:'\f273'}.zmdi-plus-circle-o-duplicate:before{content:'\f274'}.zmdi-plus-circle-o:before{content:'\f275'}.zmdi-plus-circle:before{content:'\f276'}.zmdi-plus-square:before{content:'\f277'}.zmdi-plus:before{content:'\f278'}.zmdi-square-o:before{content:'\f279'}.zmdi-star-circle:before{content:'\f27a'}.zmdi-star-half:before{content:'\f27b'}.zmdi-star-outline:before{content:'\f27c'}.zmdi-star:before{content:'\f27d'}.zmdi-bluetooth-connected:before{content:'\f27e'}.zmdi-bluetooth-off:before{content:'\f27f'}.zmdi-bluetooth-search:before{content:'\f280'}.zmdi-bluetooth-setting:before{content:'\f281'}.zmdi-bluetooth:before{content:'\f282'}.zmdi-camera-add:before{content:'\f283'}.zmdi-camera-alt:before{content:'\f284'}.zmdi-camera-bw:before{content:'\f285'}.zmdi-camera-front:before{content:'\f286'}.zmdi-camera-mic:before{content:'\f287'}.zmdi-camera-party-mode:before{content:'\f288'}.zmdi-camera-rear:before{content:'\f289'}.zmdi-camera-roll:before{content:'\f28a'}.zmdi-camera-switch:before{content:'\f28b'}.zmdi-camera:before{content:'\f28c'}.zmdi-card-alert:before{content:'\f28d'}.zmdi-card-off:before{content:'\f28e'}.zmdi-card-sd:before{content:'\f28f'}.zmdi-card-sim:before{content:'\f290'}.zmdi-desktop-mac:before{content:'\f291'}.zmdi-desktop-windows:before{content:'\f292'}.zmdi-device-hub:before{content:'\f293'}.zmdi-devices-off:before{content:'\f294'}.zmdi-devices:before{content:'\f295'}.zmdi-dock:before{content:'\f296'}.zmdi-floppy:before{content:'\f297'}.zmdi-gamepad:before{content:'\f298'}.zmdi-gps-dot:before{content:'\f299'}.zmdi-gps-off:before{content:'\f29a'}.zmdi-gps:before{content:'\f29b'}.zmdi-headset-mic:before{content:'\f29c'}.zmdi-headset:before{content:'\f29d'}.zmdi-input-antenna:before{content:'\f29e'}.zmdi-input-composite:before{content:'\f29f'}.zmdi-input-hdmi:before{content:'\f2a0'}.zmdi-input-power:before{content:'\f2a1'}.zmdi-input-svideo:before{content:'\f2a2'}.zmdi-keyboard-hide:before{content:'\f2a3'}.zmdi-keyboard:before{content:'\f2a4'}.zmdi-laptop-chromebook:before{content:'\f2a5'}.zmdi-laptop-mac:before{content:'\f2a6'}.zmdi-laptop:before{content:'\f2a7'}.zmdi-mic-off:before{content:'\f2a8'}.zmdi-mic-outline:before{content:'\f2a9'}.zmdi-mic-setting:before{content:'\f2aa'}.zmdi-mic:before{content:'\f2ab'}.zmdi-mouse:before{content:'\f2ac'}.zmdi-network-alert:before{content:'\f2ad'}.zmdi-network-locked:before{content:'\f2ae'}.zmdi-network-off:before{content:'\f2af'}.zmdi-network-outline:before{content:'\f2b0'}.zmdi-network-setting:before{content:'\f2b1'}.zmdi-network:before{content:'\f2b2'}.zmdi-phone-bluetooth:before{content:'\f2b3'}.zmdi-phone-end:before{content:'\f2b4'}.zmdi-phone-forwarded:before{content:'\f2b5'}.zmdi-phone-in-talk:before{content:'\f2b6'}.zmdi-phone-locked:before{content:'\f2b7'}.zmdi-phone-missed:before{content:'\f2b8'}.zmdi-phone-msg:before{content:'\f2b9'}.zmdi-phone-paused:before{content:'\f2ba'}.zmdi-phone-ring:before{content:'\f2bb'}.zmdi-phone-setting:before{content:'\f2bc'}.zmdi-phone-sip:before{content:'\f2bd'}.zmdi-phone:before{content:'\f2be'}.zmdi-portable-wifi-changes:before{content:'\f2bf'}.zmdi-portable-wifi-off:before{content:'\f2c0'}.zmdi-portable-wifi:before{content:'\f2c1'}.zmdi-radio:before{content:'\f2c2'}.zmdi-reader:before{content:'\f2c3'}.zmdi-remote-control-alt:before{content:'\f2c4'}.zmdi-remote-control:before{content:'\f2c5'}.zmdi-router:before{content:'\f2c6'}.zmdi-scanner:before{content:'\f2c7'}.zmdi-smartphone-android:before{content:'\f2c8'}.zmdi-smartphone-download:before{content:'\f2c9'}.zmdi-smartphone-erase:before{content:'\f2ca'}.zmdi-smartphone-info:before{content:'\f2cb'}.zmdi-smartphone-iphone:before{content:'\f2cc'}.zmdi-smartphone-landscape-lock:before{content:'\f2cd'}.zmdi-smartphone-landscape:before{content:'\f2ce'}.zmdi-smartphone-lock:before{content:'\f2cf'}.zmdi-smartphone-portrait-lock:before{content:'\f2d0'}.zmdi-smartphone-ring:before{content:'\f2d1'}.zmdi-smartphone-setting:before{content:'\f2d2'}.zmdi-smartphone-setup:before{content:'\f2d3'}.zmdi-smartphone:before{content:'\f2d4'}.zmdi-speaker:before{content:'\f2d5'}.zmdi-tablet-android:before{content:'\f2d6'}.zmdi-tablet-mac:before{content:'\f2d7'}.zmdi-tablet:before{content:'\f2d8'}.zmdi-tv-alt-play:before{content:'\f2d9'}.zmdi-tv-list:before{content:'\f2da'}.zmdi-tv-play:before{content:'\f2db'}.zmdi-tv:before{content:'\f2dc'}.zmdi-usb:before{content:'\f2dd'}.zmdi-videocam-off:before{content:'\f2de'}.zmdi-videocam-switch:before{content:'\f2df'}.zmdi-videocam:before{content:'\f2e0'}.zmdi-watch:before{content:'\f2e1'}.zmdi-wifi-alt-2:before{content:'\f2e2'}.zmdi-wifi-alt:before{content:'\f2e3'}.zmdi-wifi-info:before{content:'\f2e4'}.zmdi-wifi-lock:before{content:'\f2e5'}.zmdi-wifi-off:before{content:'\f2e6'}.zmdi-wifi-outline:before{content:'\f2e7'}.zmdi-wifi:before{content:'\f2e8'}.zmdi-arrow-left-bottom:before{content:'\f2e9'}.zmdi-arrow-left:before{content:'\f2ea'}.zmdi-arrow-merge:before{content:'\f2eb'}.zmdi-arrow-missed:before{content:'\f2ec'}.zmdi-arrow-right-top:before{content:'\f2ed'}.zmdi-arrow-right:before{content:'\f2ee'}.zmdi-arrow-split:before{content:'\f2ef'}.zmdi-arrows:before{content:'\f2f0'}.zmdi-caret-down-circle:before{content:'\f2f1'}.zmdi-caret-down:before{content:'\f2f2'}.zmdi-caret-left-circle:before{content:'\f2f3'}.zmdi-caret-left:before{content:'\f2f4'}.zmdi-caret-right-circle:before{content:'\f2f5'}.zmdi-caret-right:before{content:'\f2f6'}.zmdi-caret-up-circle:before{content:'\f2f7'}.zmdi-caret-up:before{content:'\f2f8'}.zmdi-chevron-down:before{content:'\f2f9'}.zmdi-chevron-left:before{content:'\f2fa'}.zmdi-chevron-right:before{content:'\f2fb'}.zmdi-chevron-up:before{content:'\f2fc'}.zmdi-forward:before{content:'\f2fd'}.zmdi-long-arrow-down:before{content:'\f2fe'}.zmdi-long-arrow-left:before{content:'\f2ff'}.zmdi-long-arrow-return:before{content:'\f300'}.zmdi-long-arrow-right:before{content:'\f301'}.zmdi-long-arrow-tab:before{content:'\f302'}.zmdi-long-arrow-up:before{content:'\f303'}.zmdi-rotate-ccw:before{content:'\f304'}.zmdi-rotate-cw:before{content:'\f305'}.zmdi-rotate-left:before{content:'\f306'}.zmdi-rotate-right:before{content:'\f307'}.zmdi-square-down:before{content:'\f308'}.zmdi-square-right:before{content:'\f309'}.zmdi-swap-alt:before{content:'\f30a'}.zmdi-swap-vertical-circle:before{content:'\f30b'}.zmdi-swap-vertical:before{content:'\f30c'}.zmdi-swap:before{content:'\f30d'}.zmdi-trending-down:before{content:'\f30e'}.zmdi-trending-flat:before{content:'\f30f'}.zmdi-trending-up:before{content:'\f310'}.zmdi-unfold-less:before{content:'\f311'}.zmdi-unfold-more:before{content:'\f312'}.zmdi-apps:before{content:'\f313'}.zmdi-grid-off:before{content:'\f314'}.zmdi-grid:before{content:'\f315'}.zmdi-view-agenda:before{content:'\f316'}.zmdi-view-array:before{content:'\f317'}.zmdi-view-carousel:before{content:'\f318'}.zmdi-view-column:before{content:'\f319'}.zmdi-view-comfy:before{content:'\f31a'}.zmdi-view-compact:before{content:'\f31b'}.zmdi-view-dashboard:before{content:'\f31c'}.zmdi-view-day:before{content:'\f31d'}.zmdi-view-headline:before{content:'\f31e'}.zmdi-view-list-alt:before{content:'\f31f'}.zmdi-view-list:before{content:'\f320'}.zmdi-view-module:before{content:'\f321'}.zmdi-view-quilt:before{content:'\f322'}.zmdi-view-stream:before{content:'\f323'}.zmdi-view-subtitles:before{content:'\f324'}.zmdi-view-toc:before{content:'\f325'}.zmdi-view-web:before{content:'\f326'}.zmdi-view-week:before{content:'\f327'}.zmdi-widgets:before{content:'\f328'}.zmdi-alarm-check:before{content:'\f329'}.zmdi-alarm-off:before{content:'\f32a'}.zmdi-alarm-plus:before{content:'\f32b'}.zmdi-alarm-snooze:before{content:'\f32c'}.zmdi-alarm:before{content:'\f32d'}.zmdi-calendar-alt:before{content:'\f32e'}.zmdi-calendar-check:before{content:'\f32f'}.zmdi-calendar-close:before{content:'\f330'}.zmdi-calendar-note:before{content:'\f331'}.zmdi-calendar:before{content:'\f332'}.zmdi-time-countdown:before{content:'\f333'}.zmdi-time-interval:before{content:'\f334'}.zmdi-time-restore-setting:before{content:'\f335'}.zmdi-time-restore:before{content:'\f336'}.zmdi-time:before{content:'\f337'}.zmdi-timer-off:before{content:'\f338'}.zmdi-timer:before{content:'\f339'}.zmdi-android-alt:before{content:'\f33a'}.zmdi-android:before{content:'\f33b'}.zmdi-apple:before{content:'\f33c'}.zmdi-behance:before{content:'\f33d'}.zmdi-codepen:before{content:'\f33e'}.zmdi-dribbble:before{content:'\f33f'}.zmdi-dropbox:before{content:'\f340'}.zmdi-evernote:before{content:'\f341'}.zmdi-facebook-box:before{content:'\f342'}.zmdi-facebook:before{content:'\f343'}.zmdi-github-box:before{content:'\f344'}.zmdi-github:before{content:'\f345'}.zmdi-google-drive:before{content:'\f346'}.zmdi-google-earth:before{content:'\f347'}.zmdi-google-glass:before{content:'\f348'}.zmdi-google-maps:before{content:'\f349'}.zmdi-google-pages:before{content:'\f34a'}.zmdi-google-play:before{content:'\f34b'}.zmdi-google-plus-box:before{content:'\f34c'}.zmdi-google-plus:before{content:'\f34d'}.zmdi-google:before{content:'\f34e'}.zmdi-instagram:before{content:'\f34f'}.zmdi-language-css3:before{content:'\f350'}.zmdi-language-html5:before{content:'\f351'}.zmdi-language-javascript:before{content:'\f352'}.zmdi-language-python-alt:before{content:'\f353'}.zmdi-language-python:before{content:'\f354'}.zmdi-lastfm:before{content:'\f355'}.zmdi-linkedin-box:before{content:'\f356'}.zmdi-paypal:before{content:'\f357'}.zmdi-pinterest-box:before{content:'\f358'}.zmdi-pocket:before{content:'\f359'}.zmdi-polymer:before{content:'\f35a'}.zmdi-share:before{content:'\f35b'}.zmdi-stackoverflow:before{content:'\f35c'}.zmdi-steam-square:before{content:'\f35d'}.zmdi-steam:before{content:'\f35e'}.zmdi-twitter-box:before{content:'\f35f'}.zmdi-twitter:before{content:'\f360'}.zmdi-vk:before{content:'\f361'}.zmdi-wikipedia:before{content:'\f362'}.zmdi-windows:before{content:'\f363'}.zmdi-aspect-ratio-alt:before{content:'\f364'}.zmdi-aspect-ratio:before{content:'\f365'}.zmdi-blur-circular:before{content:'\f366'}.zmdi-blur-linear:before{content:'\f367'}.zmdi-blur-off:before{content:'\f368'}.zmdi-blur:before{content:'\f369'}.zmdi-brightness-2:before{content:'\f36a'}.zmdi-brightness-3:before{content:'\f36b'}.zmdi-brightness-4:before{content:'\f36c'}.zmdi-brightness-5:before{content:'\f36d'}.zmdi-brightness-6:before{content:'\f36e'}.zmdi-brightness-7:before{content:'\f36f'}.zmdi-brightness-auto:before{content:'\f370'}.zmdi-brightness-setting:before{content:'\f371'}.zmdi-broken-image:before{content:'\f372'}.zmdi-center-focus-strong:before{content:'\f373'}.zmdi-center-focus-weak:before{content:'\f374'}.zmdi-compare:before{content:'\f375'}.zmdi-crop-16-9:before{content:'\f376'}.zmdi-crop-3-2:before{content:'\f377'}.zmdi-crop-5-4:before{content:'\f378'}.zmdi-crop-7-5:before{content:'\f379'}.zmdi-crop-din:before{content:'\f37a'}.zmdi-crop-free:before{content:'\f37b'}.zmdi-crop-landscape:before{content:'\f37c'}.zmdi-crop-portrait:before{content:'\f37d'}.zmdi-crop-square:before{content:'\f37e'}.zmdi-exposure-alt:before{content:'\f37f'}.zmdi-exposure:before{content:'\f380'}.zmdi-filter-b-and-w:before{content:'\f381'}.zmdi-filter-center-focus:before{content:'\f382'}.zmdi-filter-frames:before{content:'\f383'}.zmdi-filter-tilt-shift:before{content:'\f384'}.zmdi-gradient:before{content:'\f385'}.zmdi-grain:before{content:'\f386'}.zmdi-graphic-eq:before{content:'\f387'}.zmdi-hdr-off:before{content:'\f388'}.zmdi-hdr-strong:before{content:'\f389'}.zmdi-hdr-weak:before{content:'\f38a'}.zmdi-hdr:before{content:'\f38b'}.zmdi-iridescent:before{content:'\f38c'}.zmdi-leak-off:before{content:'\f38d'}.zmdi-leak:before{content:'\f38e'}.zmdi-looks:before{content:'\f38f'}.zmdi-loupe:before{content:'\f390'}.zmdi-panorama-horizontal:before{content:'\f391'}.zmdi-panorama-vertical:before{content:'\f392'}.zmdi-panorama-wide-angle:before{content:'\f393'}.zmdi-photo-size-select-large:before{content:'\f394'}.zmdi-photo-size-select-small:before{content:'\f395'}.zmdi-picture-in-picture:before{content:'\f396'}.zmdi-slideshow:before{content:'\f397'}.zmdi-texture:before{content:'\f398'}.zmdi-tonality:before{content:'\f399'}.zmdi-vignette:before{content:'\f39a'}.zmdi-wb-auto:before{content:'\f39b'}.zmdi-eject-alt:before{content:'\f39c'}.zmdi-eject:before{content:'\f39d'}.zmdi-equalizer:before{content:'\f39e'}.zmdi-fast-forward:before{content:'\f39f'}.zmdi-fast-rewind:before{content:'\f3a0'}.zmdi-forward-10:before{content:'\f3a1'}.zmdi-forward-30:before{content:'\f3a2'}.zmdi-forward-5:before{content:'\f3a3'}.zmdi-hearing:before{content:'\f3a4'}.zmdi-pause-circle-outline:before{content:'\f3a5'}.zmdi-pause-circle:before{content:'\f3a6'}.zmdi-pause:before{content:'\f3a7'}.zmdi-play-circle-outline:before{content:'\f3a8'}.zmdi-play-circle:before{content:'\f3a9'}.zmdi-play:before{content:'\f3aa'}.zmdi-playlist-audio:before{content:'\f3ab'}.zmdi-playlist-plus:before{content:'\f3ac'}.zmdi-repeat-one:before{content:'\f3ad'}.zmdi-repeat:before{content:'\f3ae'}.zmdi-replay-10:before{content:'\f3af'}.zmdi-replay-30:before{content:'\f3b0'}.zmdi-replay-5:before{content:'\f3b1'}.zmdi-replay:before{content:'\f3b2'}.zmdi-shuffle:before{content:'\f3b3'}.zmdi-skip-next:before{content:'\f3b4'}.zmdi-skip-previous:before{content:'\f3b5'}.zmdi-stop:before{content:'\f3b6'}.zmdi-surround-sound:before{content:'\f3b7'}.zmdi-tune:before{content:'\f3b8'}.zmdi-volume-down:before{content:'\f3b9'}.zmdi-volume-mute:before{content:'\f3ba'}.zmdi-volume-off:before{content:'\f3bb'}.zmdi-volume-up:before{content:'\f3bc'}.zmdi-n-1-square:before{content:'\f3bd'}.zmdi-n-2-square:before{content:'\f3be'}.zmdi-n-3-square:before{content:'\f3bf'}.zmdi-n-4-square:before{content:'\f3c0'}.zmdi-n-5-square:before{content:'\f3c1'}.zmdi-n-6-square:before{content:'\f3c2'}.zmdi-neg-1:before{content:'\f3c3'}.zmdi-neg-2:before{content:'\f3c4'}.zmdi-plus-1:before{content:'\f3c5'}.zmdi-plus-2:before{content:'\f3c6'}.zmdi-sec-10:before{content:'\f3c7'}.zmdi-sec-3:before{content:'\f3c8'}.zmdi-zero:before{content:'\f3c9'}.zmdi-airline-seat-flat-angled:before{content:'\f3ca'}.zmdi-airline-seat-flat:before{content:'\f3cb'}.zmdi-airline-seat-individual-suite:before{content:'\f3cc'}.zmdi-airline-seat-legroom-extra:before{content:'\f3cd'}.zmdi-airline-seat-legroom-normal:before{content:'\f3ce'}.zmdi-airline-seat-legroom-reduced:before{content:'\f3cf'}.zmdi-airline-seat-recline-extra:before{content:'\f3d0'}.zmdi-airline-seat-recline-normal:before{content:'\f3d1'}.zmdi-airplay:before{content:'\f3d2'}.zmdi-closed-caption:before{content:'\f3d3'}.zmdi-confirmation-number:before{content:'\f3d4'}.zmdi-developer-board:before{content:'\f3d5'}.zmdi-disc-full:before{content:'\f3d6'}.zmdi-explicit:before{content:'\f3d7'}.zmdi-flight-land:before{content:'\f3d8'}.zmdi-flight-takeoff:before{content:'\f3d9'}.zmdi-flip-to-back:before{content:'\f3da'}.zmdi-flip-to-front:before{content:'\f3db'}.zmdi-group-work:before{content:'\f3dc'}.zmdi-hd:before{content:'\f3dd'}.zmdi-hq:before{content:'\f3de'}.zmdi-markunread-mailbox:before{content:'\f3df'}.zmdi-memory:before{content:'\f3e0'}.zmdi-nfc:before{content:'\f3e1'}.zmdi-play-for-work:before{content:'\f3e2'}.zmdi-power-input:before{content:'\f3e3'}.zmdi-present-to-all:before{content:'\f3e4'}.zmdi-satellite:before{content:'\f3e5'}.zmdi-tap-and-play:before{content:'\f3e6'}.zmdi-vibration:before{content:'\f3e7'}.zmdi-voicemail:before{content:'\f3e8'}.zmdi-group:before{content:'\f3e9'}.zmdi-rss:before{content:'\f3ea'}.zmdi-shape:before{content:'\f3eb'}.zmdi-spinner:before{content:'\f3ec'}.zmdi-ungroup:before{content:'\f3ed'}.zmdi-500px:before{content:'\f3ee'}.zmdi-8tracks:before{content:'\f3ef'}.zmdi-amazon:before{content:'\f3f0'}.zmdi-blogger:before{content:'\f3f1'}.zmdi-delicious:before{content:'\f3f2'}.zmdi-disqus:before{content:'\f3f3'}.zmdi-flattr:before{content:'\f3f4'}.zmdi-flickr:before{content:'\f3f5'}.zmdi-github-alt:before{content:'\f3f6'}.zmdi-google-old:before{content:'\f3f7'}.zmdi-linkedin:before{content:'\f3f8'}.zmdi-odnoklassniki:before{content:'\f3f9'}.zmdi-outlook:before{content:'\f3fa'}.zmdi-paypal-alt:before{content:'\f3fb'}.zmdi-pinterest:before{content:'\f3fc'}.zmdi-playstation:before{content:'\f3fd'}.zmdi-reddit:before{content:'\f3fe'}.zmdi-skype:before{content:'\f3ff'}.zmdi-slideshare:before{content:'\f400'}.zmdi-soundcloud:before{content:'\f401'}.zmdi-tumblr:before{content:'\f402'}.zmdi-twitch:before{content:'\f403'}.zmdi-vimeo:before{content:'\f404'}.zmdi-whatsapp:before{content:'\f405'}.zmdi-xbox:before{content:'\f406'}.zmdi-yahoo:before{content:'\f407'}.zmdi-youtube-play:before{content:'\f408'}.zmdi-youtube:before{content:'\f409'}.zmdi-import-export:before{content:'\f30c'}.zmdi-swap-vertical-:before{content:'\f30c'}.zmdi-airplanemode-inactive:before{content:'\f102'}.zmdi-airplanemode-active:before{content:'\f103'}.zmdi-rate-review:before{content:'\f103'}.zmdi-comment-sign:before{content:'\f25a'}.zmdi-network-warning:before{content:'\f2ad'}.zmdi-shopping-cart-add:before{content:'\f1ca'}.zmdi-file-add:before{content:'\f221'}.zmdi-network-wifi-scan:before{content:'\f2e4'}.zmdi-collection-add:before{content:'\f14e'}.zmdi-format-playlist-add:before{content:'\f3ac'}.zmdi-format-queue-music:before{content:'\f3ab'}.zmdi-plus-box:before{content:'\f277'}.zmdi-tag-backspace:before{content:'\f1d9'}.zmdi-alarm-add:before{content:'\f32b'}.zmdi-battery-charging:before{content:'\f114'}.zmdi-daydream-setting:before{content:'\f217'}.zmdi-more-horiz:before{content:'\f19c'}.zmdi-book-photo:before{content:'\f11b'}.zmdi-incandescent:before{content:'\f189'}.zmdi-wb-iridescent:before{content:'\f38c'}.zmdi-calendar-remove:before{content:'\f330'}.zmdi-refresh-sync-disabled:before{content:'\f1b7'}.zmdi-refresh-sync-problem:before{content:'\f1b6'}.zmdi-crop-original:before{content:'\f17e'}.zmdi-power-off:before{content:'\f1af'}.zmdi-power-off-setting:before{content:'\f1ae'}.zmdi-leak-remove:before{content:'\f38d'}.zmdi-star-border:before{content:'\f27c'}.zmdi-brightness-low:before{content:'\f36d'}.zmdi-brightness-medium:before{content:'\f36e'}.zmdi-brightness-high:before{content:'\f36f'}.zmdi-smartphone-portrait:before{content:'\f2d4'}.zmdi-live-tv:before{content:'\f2d9'}.zmdi-format-textdirection-l-to-r:before{content:'\f249'}.zmdi-format-textdirection-r-to-l:before{content:'\f24a'}.zmdi-arrow-back:before{content:'\f2ea'}.zmdi-arrow-forward:before{content:'\f2ee'}.zmdi-arrow-in:before{content:'\f2e9'}.zmdi-arrow-out:before{content:'\f2ed'}.zmdi-rotate-90-degrees-ccw:before{content:'\f304'}.zmdi-adb:before{content:'\f33a'}.zmdi-network-wifi:before{content:'\f2e8'}.zmdi-network-wifi-alt:before{content:'\f2e3'}.zmdi-network-wifi-lock:before{content:'\f2e5'}.zmdi-network-wifi-off:before{content:'\f2e6'}.zmdi-network-wifi-outline:before{content:'\f2e7'}.zmdi-network-wifi-info:before{content:'\f2e4'}.zmdi-layers-clear:before{content:'\f18b'}.zmdi-colorize:before{content:'\f15d'}.zmdi-format-paint:before{content:'\f1ba'}.zmdi-format-quote:before{content:'\f1b2'}.zmdi-camera-monochrome-photos:before{content:'\f285'}.zmdi-sort-by-alpha:before{content:'\f1cf'}.zmdi-folder-shared:before{content:'\f225'}.zmdi-folder-special:before{content:'\f226'}.zmdi-comment-dots:before{content:'\f260'}.zmdi-reorder:before{content:'\f31e'}.zmdi-dehaze:before{content:'\f197'}.zmdi-sort:before{content:'\f1ce'}.zmdi-pages:before{content:'\f34a'}.zmdi-stack-overflow:before{content:'\f35c'}.zmdi-calendar-account:before{content:'\f204'}.zmdi-paste:before{content:'\f109'}.zmdi-cut:before{content:'\f1bc'}.zmdi-save:before{content:'\f297'}.zmdi-smartphone-code:before{content:'\f139'}.zmdi-directions-bike:before{content:'\f117'}.zmdi-directions-boat:before{content:'\f11a'}.zmdi-directions-bus:before{content:'\f121'}.zmdi-directions-car:before{content:'\f125'}.zmdi-directions-railway:before{content:'\f1b3'}.zmdi-directions-run:before{content:'\f215'}.zmdi-directions-subway:before{content:'\f1d5'}.zmdi-directions-walk:before{content:'\f216'}.zmdi-local-hotel:before{content:'\f178'}.zmdi-local-activity:before{content:'\f1df'}.zmdi-local-play:before{content:'\f1df'}.zmdi-local-airport:before{content:'\f103'}.zmdi-local-atm:before{content:'\f198'}.zmdi-local-bar:before{content:'\f137'}.zmdi-local-cafe:before{content:'\f13b'}.zmdi-local-car-wash:before{content:'\f124'}.zmdi-local-convenience-store:before{content:'\f1d3'}.zmdi-local-dining:before{content:'\f153'}.zmdi-local-drink:before{content:'\f157'}.zmdi-local-florist:before{content:'\f168'}.zmdi-local-gas-station:before{content:'\f16f'}.zmdi-local-grocery-store:before{content:'\f1cb'}.zmdi-local-hospital:before{content:'\f177'}.zmdi-local-laundry-service:before{content:'\f1e9'}.zmdi-local-library:before{content:'\f18d'}.zmdi-local-mall:before{content:'\f195'}.zmdi-local-movies:before{content:'\f19d'}.zmdi-local-offer:before{content:'\f187'}.zmdi-local-parking:before{content:'\f1a5'}.zmdi-local-parking:before{content:'\f1a5'}.zmdi-local-pharmacy:before{content:'\f176'}.zmdi-local-phone:before{content:'\f2be'}.zmdi-local-pizza:before{content:'\f1ac'}.zmdi-local-post-office:before{content:'\f15a'}.zmdi-local-printshop:before{content:'\f1b0'}.zmdi-local-see:before{content:'\f28c'}.zmdi-local-shipping:before{content:'\f1e6'}.zmdi-local-store:before{content:'\f1d4'}.zmdi-local-taxi:before{content:'\f123'}.zmdi-local-wc:before{content:'\f211'}.zmdi-my-location:before{content:'\f299'}.zmdi-directions:before{content:'\f1e7'} -------------------------------------------------------------------------------- /static/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}audio,canvas,video{display:inline-block;}audio:not([controls]){display:none;height:0;}[hidden]{display:none;}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0;}a:focus{outline:thin dotted;}a:active,a:hover{outline:0;}h1{font-size:2em;margin:0.67em 0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}dfn{font-style:italic;}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}mark{background:#ff0;color:#000;}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em;}pre{white-space:pre-wrap;}q{quotes:"\201C" "\201D" "\2018" "\2019";}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}img{border:0;}svg:not(:root){overflow:hidden;}figure{margin:0;}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}legend{border:0;padding:0;}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}button,input{line-height:normal;}button,select{text-transform:none;}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}textarea{overflow:auto;vertical-align:top;}table{border-collapse:collapse;border-spacing:0;} 11 | 12 | html { 13 | line-height: 1.15; /* 1 */ 14 | -webkit-text-size-adjust: 100%; /* 2 */ 15 | } 16 | 17 | /* Sections 18 | ========================================================================== */ 19 | 20 | /** 21 | * Remove the margin in all browsers. 22 | */ 23 | 24 | body { 25 | margin: 0; 26 | } 27 | 28 | /** 29 | * Render the `main` element consistently in IE. 30 | */ 31 | 32 | main { 33 | display: block; 34 | } 35 | 36 | /** 37 | * Correct the font size and margin on `h1` elements within `section` and 38 | * `article` contexts in Chrome, Firefox, and Safari. 39 | */ 40 | 41 | h1 { 42 | font-size: 2em; 43 | margin: 0.67em 0; 44 | } 45 | 46 | /* Grouping content 47 | ========================================================================== */ 48 | 49 | /** 50 | * 1. Add the correct box sizing in Firefox. 51 | * 2. Show the overflow in Edge and IE. 52 | */ 53 | 54 | hr { 55 | box-sizing: content-box; /* 1 */ 56 | height: 0; /* 1 */ 57 | overflow: visible; /* 2 */ 58 | } 59 | 60 | /** 61 | * 1. Correct the inheritance and scaling of font size in all browsers. 62 | * 2. Correct the odd `em` font sizing in all browsers. 63 | */ 64 | 65 | pre { 66 | font-family: monospace, monospace; /* 1 */ 67 | font-size: 1em; /* 2 */ 68 | } 69 | 70 | /* Text-level semantics 71 | ========================================================================== */ 72 | 73 | /** 74 | * Remove the gray background on active links in IE 10. 75 | */ 76 | 77 | a { 78 | background-color: transparent; 79 | } 80 | 81 | /** 82 | * 1. Remove the bottom border in Chrome 57- 83 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 84 | */ 85 | 86 | abbr[title] { 87 | border-bottom: none; /* 1 */ 88 | text-decoration: underline; /* 2 */ 89 | text-decoration: underline dotted; /* 2 */ 90 | } 91 | 92 | /** 93 | * Add the correct font weight in Chrome, Edge, and Safari. 94 | */ 95 | 96 | b, 97 | strong { 98 | font-weight: bolder; 99 | } 100 | 101 | /** 102 | * 1. Correct the inheritance and scaling of font size in all browsers. 103 | * 2. Correct the odd `em` font sizing in all browsers. 104 | */ 105 | 106 | code, 107 | kbd, 108 | samp { 109 | font-family: monospace, monospace; /* 1 */ 110 | font-size: 1em; /* 2 */ 111 | } 112 | 113 | /** 114 | * Add the correct font size in all browsers. 115 | */ 116 | 117 | small { 118 | font-size: 80%; 119 | } 120 | 121 | /** 122 | * Prevent `sub` and `sup` elements from affecting the line height in 123 | * all browsers. 124 | */ 125 | 126 | sub, 127 | sup { 128 | font-size: 75%; 129 | line-height: 0; 130 | position: relative; 131 | vertical-align: baseline; 132 | } 133 | 134 | sub { 135 | bottom: -0.25em; 136 | } 137 | 138 | sup { 139 | top: -0.5em; 140 | } 141 | 142 | /* Embedded content 143 | ========================================================================== */ 144 | 145 | /** 146 | * Remove the border on images inside links in IE 10. 147 | */ 148 | 149 | img { 150 | border-style: none; 151 | } 152 | 153 | /* Forms 154 | ========================================================================== */ 155 | 156 | /** 157 | * 1. Change the font styles in all browsers. 158 | * 2. Remove the margin in Firefox and Safari. 159 | */ 160 | 161 | button, 162 | input, 163 | optgroup, 164 | select, 165 | textarea { 166 | font-family: inherit; /* 1 */ 167 | font-size: 100%; /* 1 */ 168 | line-height: 1.15; /* 1 */ 169 | margin: 0; /* 2 */ 170 | } 171 | 172 | /** 173 | * Show the overflow in IE. 174 | * 1. Show the overflow in Edge. 175 | */ 176 | 177 | button, 178 | input { /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { /* 1 */ 189 | text-transform: none; 190 | } 191 | 192 | /** 193 | * Correct the inability to style clickable types in iOS and Safari. 194 | */ 195 | 196 | button, 197 | [type="button"], 198 | [type="reset"], 199 | [type="submit"] { 200 | -webkit-appearance: button; 201 | } 202 | 203 | /** 204 | * Remove the inner border and padding in Firefox. 205 | */ 206 | 207 | button::-moz-focus-inner, 208 | [type="button"]::-moz-focus-inner, 209 | [type="reset"]::-moz-focus-inner, 210 | [type="submit"]::-moz-focus-inner { 211 | border-style: none; 212 | padding: 0; 213 | } 214 | 215 | /** 216 | * Restore the focus styles unset by the previous rule. 217 | */ 218 | 219 | button:-moz-focusring, 220 | [type="button"]:-moz-focusring, 221 | [type="reset"]:-moz-focusring, 222 | [type="submit"]:-moz-focusring { 223 | outline: 1px dotted ButtonText; 224 | } 225 | 226 | /** 227 | * Correct the padding in Firefox. 228 | */ 229 | 230 | fieldset { 231 | padding: 0.35em 0.75em 0.625em; 232 | } 233 | 234 | /** 235 | * 1. Correct the text wrapping in Edge and IE. 236 | * 2. Correct the color inheritance from `fieldset` elements in IE. 237 | * 3. Remove the padding so developers are not caught out when they zero out 238 | * `fieldset` elements in all browsers. 239 | */ 240 | 241 | legend { 242 | box-sizing: border-box; /* 1 */ 243 | color: inherit; /* 2 */ 244 | display: table; /* 1 */ 245 | max-width: 100%; /* 1 */ 246 | padding: 0; /* 3 */ 247 | white-space: normal; /* 1 */ 248 | } 249 | 250 | /** 251 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 252 | */ 253 | 254 | progress { 255 | vertical-align: baseline; 256 | } 257 | 258 | /** 259 | * Remove the default vertical scrollbar in IE 10+. 260 | */ 261 | 262 | textarea { 263 | overflow: auto; 264 | } 265 | 266 | /** 267 | * 1. Add the correct box sizing in IE 10. 268 | * 2. Remove the padding in IE 10. 269 | */ 270 | 271 | [type="checkbox"], 272 | [type="radio"] { 273 | box-sizing: border-box; /* 1 */ 274 | padding: 0; /* 2 */ 275 | } 276 | 277 | /** 278 | * Correct the cursor style of increment and decrement buttons in Chrome. 279 | */ 280 | 281 | [type="number"]::-webkit-inner-spin-button, 282 | [type="number"]::-webkit-outer-spin-button { 283 | height: auto; 284 | } 285 | 286 | /** 287 | * 1. Correct the odd appearance in Chrome and Safari. 288 | * 2. Correct the outline style in Safari. 289 | */ 290 | 291 | [type="search"] { 292 | -webkit-appearance: textfield; /* 1 */ 293 | outline-offset: -2px; /* 2 */ 294 | } 295 | 296 | /** 297 | * Remove the inner padding in Chrome and Safari on macOS. 298 | */ 299 | 300 | [type="search"]::-webkit-search-decoration { 301 | -webkit-appearance: none; 302 | } 303 | 304 | /** 305 | * 1. Correct the inability to style clickable types in iOS and Safari. 306 | * 2. Change font properties to `inherit` in Safari. 307 | */ 308 | 309 | ::-webkit-file-upload-button { 310 | -webkit-appearance: button; /* 1 */ 311 | font: inherit; /* 2 */ 312 | } 313 | 314 | /* Interactive 315 | ========================================================================== */ 316 | 317 | /* 318 | * Add the correct display in Edge, IE 10+, and Firefox. 319 | */ 320 | 321 | details { 322 | display: block; 323 | } 324 | 325 | /* 326 | * Add the correct display in all browsers. 327 | */ 328 | 329 | summary { 330 | display: list-item; 331 | } 332 | 333 | /* Misc 334 | ========================================================================== */ 335 | 336 | /** 337 | * Add the correct display in IE 10+. 338 | */ 339 | 340 | template { 341 | display: none; 342 | } 343 | 344 | /** 345 | * Add the correct display in IE 10. 346 | */ 347 | 348 | [hidden] { 349 | display: none; 350 | } 351 | -------------------------------------------------------------------------------- /static/css/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | } 6 | 7 | 8 | html { 9 | font-family: 'lato' ,'Arial' , sans-serif; 10 | text-rendering: optimizeLegibility; 11 | } 12 | 13 | .index-main 14 | { 15 | width: 100%; 16 | height: 100%; 17 | background-image:linear-gradient(rgba(0, 0, 0, 0.71),rgba(0, 0, 0, 0.7)),url('front.jpg'); 18 | background-size: cover; 19 | background-position: center; 20 | } 21 | 22 | .header-content 23 | { 24 | width: 100%; 25 | display: flex; 26 | align-content: center; 27 | align-self: center; 28 | justify-content: center; 29 | } 30 | 31 | .header-content-text 32 | { 33 | font-size: 3vw; 34 | font-weight: 500; 35 | color: #f4f7c5; 36 | letter-spacing: 0.5px; 37 | } 38 | 39 | .header-content-sub 40 | { 41 | width: 100%; 42 | display: flex; 43 | align-content: center; 44 | align-self: center; 45 | justify-content: center; 46 | } 47 | 48 | .header-content-info 49 | { 50 | font-size: 18px; 51 | color: #f4f7c5; 52 | } 53 | 54 | 55 | .upload-section 56 | { 57 | width: 100%; 58 | margin-top: 5%!important; 59 | } 60 | 61 | .upload-file 62 | { 63 | width: 100%; 64 | margin-top: 1%; 65 | margin-bottom: 1%; 66 | } 67 | 68 | .file-form 69 | { 70 | padding-left: 4%; 71 | padding-right: 4%; 72 | width: 100%; 73 | display: flex; 74 | justify-content: space-between; 75 | } 76 | 77 | .file-form-input 78 | { 79 | max-width: 50%; 80 | border-radius: 200px; 81 | border: 1px solid #41b3a3; 82 | color: white; 83 | display: inline-block; 84 | padding: 8px 20px 8px 20px; 85 | font-weight: 300; 86 | text-decoration: none; 87 | font-size: 20px; 88 | transition: background-color 0.2s , border 0.2s , color 0.2s; 89 | } 90 | 91 | .file-form-input:focus 92 | { 93 | outline: none; 94 | } 95 | 96 | .btn 97 | { 98 | width: 10%; 99 | font-size: 20px!important; 100 | height: 15%; 101 | max-width: 30%; 102 | } 103 | 104 | 105 | .uploadOR 106 | { 107 | display: flex; 108 | text-align: center; 109 | margin-left: 25%; 110 | align-items: center; 111 | margin-top: 15px; 112 | margin-bottom: 15px; 113 | } 114 | 115 | .uploadOR > span 116 | { 117 | font-size: 15px; 118 | font-weight: 400; 119 | color: #f4f7c5; 120 | padding-top: 1%; 121 | padding-bottom: 1%; 122 | } 123 | 124 | 125 | .upload-link 126 | { 127 | width: 100%; 128 | margin-top: 1%; 129 | margin-bottom: 1%; 130 | } 131 | 132 | 133 | .link-form 134 | { 135 | padding-bottom: 4%; 136 | padding-left: 4%; 137 | padding-right: 4%; 138 | width: 100%; 139 | display: flex; 140 | justify-content: space-between; 141 | } 142 | 143 | .link-form-input 144 | { 145 | width: 60%; 146 | border: 1px solid #41b3a3; 147 | display: inline-block; 148 | padding: 4px 15px 4px 15px; 149 | font-weight: 300; 150 | text-decoration: none; 151 | font-size: 20px; 152 | transition: background-color 0.2s , border 0.2s , color 0.2s; 153 | } 154 | 155 | .footer 156 | { 157 | padding-left: 2%; 158 | padding-right: 2%; 159 | } 160 | 161 | @media screen and (max-width: 415px) 162 | { 163 | .index-main 164 | { 165 | 166 | background-position: inherit; 167 | } 168 | .header-content 169 | { 170 | margin-top: 15%; 171 | } 172 | 173 | .header-content-text 174 | { 175 | font-size: 22px; 176 | } 177 | 178 | .header-content-info 179 | { 180 | font-size: 11px; 181 | } 182 | 183 | 184 | .file-form-input 185 | { 186 | /*height: 30px;*/ 187 | border-radius: 200px; 188 | padding: 4px 10px 4px 10px; 189 | font-size: 10px; 190 | 191 | } 192 | 193 | .btn 194 | { 195 | padding-top: 6px!important; 196 | padding-bottom: 6px!important; 197 | width: 25%; 198 | font-size: 11px!important; 199 | line-height: 1 200 | } 201 | 202 | .link-form-input 203 | { 204 | width: 68%; 205 | padding-right: 1%!important; 206 | padding-left: 1%!important; 207 | font-size: 10px; 208 | padding: 1px 15px 1px 15px; 209 | } 210 | 211 | .upload-section 212 | { 213 | margin-top: 20%!important; 214 | } 215 | 216 | .footer 217 | { 218 | margin-top: 15%; 219 | } 220 | 221 | .upload-file 222 | { 223 | margin-top: 3%; 224 | margin-bottom: 3%; 225 | } 226 | 227 | 228 | .upload-link 229 | { 230 | margin-top: 3%; 231 | margin-bottom: 3%; 232 | } 233 | 234 | } 235 | 236 | @media screen and (min-width: 416px) and (max-width: 615px) 237 | { 238 | .index-main 239 | { 240 | background-position: inherit; 241 | } 242 | .header-content 243 | { 244 | margin-top: 15%; 245 | } 246 | 247 | .header-content-text 248 | { 249 | font-size: 22px; 250 | } 251 | 252 | 253 | .header-content-info 254 | { 255 | font-size: 14px; 256 | } 257 | 258 | .file-form-input 259 | { 260 | height: 33px; 261 | border-radius: 200px; 262 | padding: 4px 10px 4px 10px; 263 | font-size: 12px; 264 | 265 | } 266 | 267 | .btn 268 | { 269 | padding-top: 6px!important; 270 | padding-bottom: 6px!important; 271 | width: 20%; 272 | font-size: 12px!important; 273 | line-height: 1 274 | } 275 | 276 | .link-form-input 277 | { 278 | font-size: 11px; 279 | padding: 1px 15px 1px 15px; 280 | } 281 | 282 | .upload-section 283 | { 284 | margin-top: 20%!important; 285 | } 286 | 287 | .upload-file 288 | { 289 | margin-top: 3%; 290 | margin-bottom: 3%; 291 | } 292 | 293 | 294 | .upload-link 295 | { 296 | margin-top: 3%; 297 | margin-bottom: 3%; 298 | } 299 | 300 | .footer 301 | { 302 | margin-top: 5%; 303 | } 304 | 305 | } 306 | 307 | @media screen and (min-width: 615px) and (max-width: 970px) 308 | { 309 | 310 | .header-content 311 | { 312 | margin-top: 10%; 313 | } 314 | 315 | .header-content-text 316 | { 317 | font-size: 25px; 318 | } 319 | 320 | 321 | .header-content-info 322 | { 323 | font-size: 15px; 324 | } 325 | 326 | .file-form-input 327 | { 328 | height: 33px; 329 | border-radius: 200px; 330 | padding: 4px 10px 4px 10px; 331 | font-size: 12px; 332 | 333 | } 334 | 335 | .btn 336 | { 337 | padding-top: 6px!important; 338 | padding-bottom: 6px!important; 339 | width: 15%; 340 | font-size: 12px!important; 341 | line-height: 1 342 | } 343 | 344 | .link-form-input 345 | { 346 | font-size: 12px; 347 | padding: 1px 15px 1px 15px; 348 | } 349 | 350 | .upload-file 351 | { 352 | margin-top: 3%; 353 | margin-bottom: 3%; 354 | } 355 | 356 | 357 | .upload-link 358 | { 359 | margin-top: 3%; 360 | margin-bottom: 3%; 361 | } 362 | 363 | .upload-section 364 | { 365 | margin-top: 10%!important; 366 | } 367 | 368 | 369 | } 370 | .owl-nav button { 371 | position: absolute; 372 | top: 50%; 373 | background-color: #000; 374 | color: #fff; 375 | margin: 0; 376 | transition: all 0.3s ease-in-out; 377 | } 378 | .owl-nav button.owl-prev { 379 | left: 0; 380 | } 381 | .owl-nav button.owl-next { 382 | right: 0; 383 | } 384 | 385 | .owl-dots { 386 | text-align: center; 387 | padding-top: 15px; 388 | } 389 | .owl-dots button.owl-dot { 390 | width: 15px; 391 | height: 15px; 392 | border-radius: 50%; 393 | display: inline-block; 394 | background: #ccc; 395 | margin: 0 3px; 396 | } 397 | .owl-dots button.owl-dot.active { 398 | background-color: #000; 399 | } 400 | .owl-dots button.owl-dot:focus { 401 | outline: none; 402 | } 403 | .owl-nav button { 404 | position: absolute; 405 | top: 50%; 406 | transform: translateY(-50%); 407 | background: rgba(255, 255, 255, 0.38) !important; 408 | } 409 | span { 410 | font-size: 70px; 411 | position: relative; 412 | top: -5px; 413 | } 414 | .owl-nav button:focus { 415 | outline: none; 416 | } 417 | .item{ 418 | width:250px; 419 | margin-left: auto; 420 | margin-right:auto; 421 | } 422 | .item img{ 423 | border-radius: 125px; 424 | height: 250px; 425 | } 426 | .item p{ 427 | text-align: center; 428 | color: white; 429 | font-size: 20px; 430 | 431 | } 432 | .owl-slider{ 433 | width: 100%; 434 | margin-left: auto; 435 | margin-right: auto; 436 | } 437 | .header-content{ 438 | display: flex; 439 | flex-direction: column; 440 | } 441 | .header-content-text{ 442 | margin-left: auto; 443 | margin-right: auto; 444 | margin-bottom: 10px; 445 | font-size: 25px; 446 | } 447 | .newCOnt{ 448 | margin-top: 10%; 449 | width: 70%; 450 | height: 50%; 451 | margin-left: auto; 452 | margin-right: auto; 453 | margin-bottom: 5%; 454 | } 455 | .newCOnt img{ 456 | width: 100%; 457 | margin-left: auto; 458 | margin-right: auto; 459 | border-radius: 60%; 460 | } 461 | .result{ 462 | color: white; 463 | margin-left: 10%; 464 | height: 100px; 465 | } -------------------------------------------------------------------------------- /static/css/styleSucc.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | { 5 | margin: 0; 6 | padding: 0; 7 | box-sizing: border-box; 8 | } 9 | 10 | 11 | html { 12 | color:#535151; 13 | font-family: 'lato' ,'Arial' , sans-serif; 14 | font-size: 20px; 15 | font-weight: 300; 16 | text-rendering: optimizeLegibility; 17 | } 18 | 19 | .second-main{ 20 | background-image:linear-gradient(rgba(0, 0, 0, 0.71),rgba(0, 0, 0, 0.7)),url('b4.jpg'); 21 | background-size: cover; 22 | background-position: center; 23 | height: 100vh; 24 | } 25 | 26 | 27 | h1{ 28 | margin-top: 0; 29 | margin-bottom: 20px; 30 | font-size: 240%; 31 | font-weight: 400; 32 | letter-spacing: 1px; 33 | word-spacing: 3px; 34 | color: #f0e3e3; 35 | } 36 | 37 | h3 38 | { 39 | color:#f9d89c!important; 40 | } 41 | 42 | .result-img 43 | { 44 | width: 500px; 45 | height: 250px; 46 | border : 2px solid #3b6978; 47 | } 48 | 49 | th 50 | { 51 | color: #cceabb; 52 | } 53 | 54 | .header 55 | { 56 | width: 100%; 57 | padding-top: 5px; 58 | } 59 | .info 60 | { 61 | padding-top: 5px; 62 | width: 100%; 63 | margin-top: 1%; 64 | 65 | } 66 | 67 | .header-text 68 | { 69 | letter-spacing: 1px; 70 | } 71 | 72 | .table-custom 73 | { 74 | width: 60%; 75 | } 76 | 77 | @media screen and (max-width: 615px) 78 | { 79 | 80 | th 81 | { 82 | font-size: 17px!important; 83 | } 84 | 85 | td 86 | { 87 | font-size: 16px!important; 88 | } 89 | .header-text 90 | { 91 | letter-spacing: 1px; 92 | font-size: 22px!important; 93 | } 94 | 95 | .result-img 96 | { 97 | width: 200px; 98 | height: 200px; 99 | border : 2px solid #3b6978; 100 | } 101 | .header 102 | { 103 | margin-top: 5%!important; 104 | } 105 | .info 106 | { 107 | margin-top: 10%!important; 108 | } 109 | 110 | .table-custom 111 | { 112 | width: 80%; 113 | } 114 | } 115 | 116 | @media screen and (min-width: 615px) and (max-width: 915px) 117 | { 118 | .result-img 119 | { 120 | width: 250px; 121 | height: 250px; 122 | border : 2px solid #3b6978; 123 | } 124 | } 125 | 126 | .main-nav { 127 | 128 | list-style: none; 129 | float: right; 130 | margin-left: 10px 131 | 132 | } 133 | 134 | .main-nav li { 135 | display: inline-block; 136 | 137 | margin-left: 70px; 138 | margin-top: 40px; 139 | } 140 | 141 | .main-nav li a:link, 142 | .main-nav li a:visited { 143 | letter-spacing: 2px; 144 | padding: 8px 0 8px 0; 145 | color: white; 146 | text-decoration: none; 147 | text-transform: uppercase; 148 | font-size: 90%; 149 | border-bottom: 2px solid transparent; 150 | transition: border-bottom 0.2s; 151 | } 152 | 153 | 154 | .main-nav li a:hover, 155 | .main-nav li a:active { 156 | border-bottom: 2px solid #f9d89c; 157 | 158 | } 159 | 160 | 161 | .myFile { 162 | position: relative; 163 | overflow: hidden; 164 | float: left; 165 | clear: left; 166 | } 167 | .myFile input[type="file"] { 168 | display: block; 169 | position: absolute; 170 | top: 0; 171 | right: 0; 172 | opacity: 0; 173 | font-size: 100px; 174 | filter: alpha(opacity=0); 175 | cursor: pointer; 176 | } 177 | 178 | 179 | 180 | 181 | -------------------------------------------------------------------------------- /static/images/PotatoHealthy2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/images/PotatoHealthy2.jpg -------------------------------------------------------------------------------- /static/images/TomatoEarlyBlight5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/images/TomatoEarlyBlight5.jpg -------------------------------------------------------------------------------- /static/images/d4d1d6c9-e09c-4179-80c1-ca0924816772.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/static/images/d4d1d6c9-e09c-4179-80c1-ca0924816772.jpg -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | Pep Doctor 20 | 21 | 22 | 85 | 86 | 87 | 88 | 89 | 90 |
91 |
92 | 93 | 101 | 102 |
103 |
104 |
105 |
106 |
107 |

108 | Plants Doctor 109 |

110 |
111 |
112 | 113 |
114 | 115 |
116 |
117 | 118 | 119 |
120 |
121 | 122 |
123 | OR 124 |
125 | 126 | 133 |
134 | 136 |
137 |
138 | 139 | 173 |
174 |
175 |
176 | 177 | 178 | 179 | 208 | 209 | -------------------------------------------------------------------------------- /templates/liveDetection.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | Pep Doctor 20 | 21 | 22 | 88 | 89 | 90 | 91 | 92 | 93 |
94 |
95 | 96 | 104 | 105 |
106 |
107 |
108 |
109 |
110 |

111 | Live Detection 112 |

113 |
114 |
115 |
116 |
117 |
118 | 119 |
120 |
121 | 122 |
123 |
124 |

Output : {{Output}}

125 |
126 |
127 |
128 | 129 |
130 |
131 |
132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /templates/success.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Pep Doctor 13 | 14 | 25 | 26 | 27 |
28 | 34 |
35 | 36 |

Uploaded Image

37 |
38 | 39 | 40 | 41 |
42 | 43 |
44 | 45 | 46 |

{{output}}

47 |
48 |
49 |
50 | 51 | -------------------------------------------------------------------------------- /test/AppleCedarRust1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleCedarRust1.jpg -------------------------------------------------------------------------------- /test/AppleCedarRust2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleCedarRust2.jpg -------------------------------------------------------------------------------- /test/AppleCedarRust3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleCedarRust3.jpg -------------------------------------------------------------------------------- /test/AppleCedarRust4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleCedarRust4.jpg -------------------------------------------------------------------------------- /test/AppleScab1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleScab1.jpg -------------------------------------------------------------------------------- /test/AppleScab2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleScab2.JPG -------------------------------------------------------------------------------- /test/AppleScab3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/AppleScab3.jpg -------------------------------------------------------------------------------- /test/CornCommonRust1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/CornCommonRust1.JPG -------------------------------------------------------------------------------- /test/CornCommonRust2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/CornCommonRust2.JPG -------------------------------------------------------------------------------- /test/CornCommonRust3.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/CornCommonRust3.JPG -------------------------------------------------------------------------------- /test/PotatoEarlyBlight1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoEarlyBlight1.JPG -------------------------------------------------------------------------------- /test/PotatoEarlyBlight2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoEarlyBlight2.JPG -------------------------------------------------------------------------------- /test/PotatoEarlyBlight3.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoEarlyBlight3.JPG -------------------------------------------------------------------------------- /test/PotatoEarlyBlight4.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoEarlyBlight4.JPG -------------------------------------------------------------------------------- /test/PotatoEarlyBlight5.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoEarlyBlight5.JPG -------------------------------------------------------------------------------- /test/PotatoHealthy1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoHealthy1.JPG -------------------------------------------------------------------------------- /test/PotatoHealthy2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/PotatoHealthy2.JPG -------------------------------------------------------------------------------- /test/TomatoEarlyBlight1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoEarlyBlight1.JPG -------------------------------------------------------------------------------- /test/TomatoEarlyBlight2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoEarlyBlight2.JPG -------------------------------------------------------------------------------- /test/TomatoEarlyBlight3.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoEarlyBlight3.JPG -------------------------------------------------------------------------------- /test/TomatoEarlyBlight4.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoEarlyBlight4.JPG -------------------------------------------------------------------------------- /test/TomatoEarlyBlight5.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoEarlyBlight5.JPG -------------------------------------------------------------------------------- /test/TomatoEarlyBlight6.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoEarlyBlight6.JPG -------------------------------------------------------------------------------- /test/TomatoHealthy1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoHealthy1.jpg -------------------------------------------------------------------------------- /test/TomatoHealthy2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoHealthy2.JPG -------------------------------------------------------------------------------- /test/TomatoHealthy3.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoHealthy3.JPG -------------------------------------------------------------------------------- /test/TomatoHealthy4.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoHealthy4.JPG -------------------------------------------------------------------------------- /test/TomatoYellowCurlVirus1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoYellowCurlVirus1.JPG -------------------------------------------------------------------------------- /test/TomatoYellowCurlVirus2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoYellowCurlVirus2.JPG -------------------------------------------------------------------------------- /test/TomatoYellowCurlVirus3.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoYellowCurlVirus3.JPG -------------------------------------------------------------------------------- /test/TomatoYellowCurlVirus4.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoYellowCurlVirus4.JPG -------------------------------------------------------------------------------- /test/TomatoYellowCurlVirus5.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/TomatoYellowCurlVirus5.JPG -------------------------------------------------------------------------------- /test/t.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hashcode-Ankit/Plant-Disease-Detection/7fef0fac5bf2112afa23029967ef70c361ec3a8e/test/t.jpg --------------------------------------------------------------------------------