{"id":3054,"date":"2020-04-15T11:09:15","date_gmt":"2020-04-15T11:09:15","guid":{"rendered":"http:\/\/skimai.com\/?p=3054"},"modified":"2024-06-04T15:47:42","modified_gmt":"2024-06-04T20:47:42","slug":"%e3%82%bb%e3%83%b3%e3%83%81%e3%83%a1%e3%83%b3%e3%83%88%e5%88%86%e6%9e%90%e3%81%ae%e3%81%9f%e3%82%81%e3%81%ae%e3%83%90%e3%83%bc%e3%83%88%e3%81%ae%e5%be%ae%e8%aa%bf%e6%95%b4","status":"publish","type":"post","link":"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/","title":{"rendered":"\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306eBERT\u306e\u5fae\u8abf\u6574"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#Tutorial_Fine_tuning_BERT_for_Sentiment_Analysis\" >Tutorial: Fine tuning BERT for Sentiment Analysis<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#A_%E2%80%93_Introduction%C2%B6\" >A &#8211; Introduction&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#B_%E2%80%93_Setup%C2%B6\" >B &#8211; Setup&#182;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#1_Load_Essential_Libraries%C2%B6\" >1. Load Essential Libraries&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#2_Dataset%C2%B6\" >2. Dataset&#182;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#21_Download_Dataset%C2%B6\" >2.1. Download Dataset&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#22_Load_Train_Data%C2%B6\" >2.2. Load Train Data&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#23_Load_Test_Data%C2%B6\" >2.3. Load Test Data&#182;<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#3_Set_up_GPU_for_training%C2%B6\" >3. Set up GPU for training&#182;<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#C_%E2%80%93_Baseline_TF-IDF_Naive_Bayes_Classifier%C2%B6\" >C &#8211; Baseline: TF-IDF + Naive Bayes Classifier&#182;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#1_Data_Preparation%C2%B6\" >1. Data Preparation&#182;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#11_Preprocessing%C2%B6\" >1.1. Preprocessing&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#12_TF-IDF_Vectorizer%C2%B6\" >1.2. TF-IDF Vectorizer&#182;<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#2_Train_Naive_Bayes_Classifier%C2%B6\" >2. Train Naive Bayes Classifier&#182;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#21_Hyperparameter_Tuning%C2%B6\" >2.1. Hyperparameter Tuning&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#22_Evaluation_on_Validation_Set%C2%B6\" >2.2. Evaluation on Validation Set&#182;<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#D_%E2%80%93_Fine-tuning_BERT%C2%B6\" >D &#8211; Fine-tuning BERT&#182;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#1_Install_the_Hugging_Face_Library%C2%B6\" >1. Install the Hugging Face Library&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#2_Tokenization_and_Input_Formatting%C2%B6\" >2. Tokenization and Input Formatting&#182;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#21_BERT_Tokenizer%C2%B6\" >2.1. BERT Tokenizer&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#22_Create_PyTorch_DataLoader%C2%B6\" >2.2. Create PyTorch DataLoader&#182;<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#3_Train_Our_Model%C2%B6\" >3. Train Our Model&#182;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#31_Create_BertClassifier%C2%B6\" >3.1. Create BertClassifier&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#32_Optimizer_Learning_Rate_Scheduler%C2%B6\" >3.2. Optimizer &amp; Learning Rate Scheduler&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#33_Training_Loop%C2%B6\" >3.3. Training Loop&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#34_Evaluation_on_Validation_Set%C2%B6\" >3.4. Evaluation on Validation Set&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#35_Train_Our_Model_on_the_Entire_Training_Data%C2%B6\" >3.5. Train Our Model on the Entire Training Data&#182;<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#4_Predictions_on_Test_Set%C2%B6\" >4. Predictions on Test Set&#182;<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#41_Data_Preparation%C2%B6\" >4.1. Data Preparation&#182;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#42_Predictions%C2%B6\" >4.2. Predictions&#182;<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/skimai.com\/ja\/fine-tuning-bert-for-sentiment-analysis\/#E_%E2%80%93_Conclusion%C2%B6\" >E &#8211; Conclusion&#182;<\/a><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Tutorial_Fine_tuning_BERT_for_Sentiment_Analysis\"><\/span>Tutorial: Fine tuning BERT for Sentiment Analysis<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<pre><code>    <p>Originally published by Skim AI's Machine Learning Researcher, Chris Tran.<\/p>       \n        <a href=\"https:\/\/colab.research.google.com\/drive\/1f32gj5IYIyFipoINiC8P3DvKat-WWLUK\">\n                <\/a>\n        <!DOCTYPE html><\/code><\/pre>\n<p><html><br \/>\n<head><meta charset=\"utf-8\" \/><br \/>\n<title>BERT_for_Sentiment_Analysis<\/title><\/p>\n<style type=\"text\/css\">\n    \/*!\n*\n* Twitter Bootstrap\n*\n*\/\n\/*!\n * Bootstrap v3.3.7 (http:\/\/getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https:\/\/github.com\/twbs\/bootstrap\/blob\/master\/LICENSE)\n *\/\n\/*! normalize.css v3.0.3 | MIT License | github.com\/necolas\/normalize.css *\/\nhtml {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n}\nbody {\n  margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline;\n}\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n[hidden],\ntemplate {\n  display: none;\n}\na {\n  background-color: transparent;\n}\na:active,\na:hover {\n  outline: 0;\n}\nabbr[title] {\n  border-bottom: 1px dotted;\n}\nb,\nstrong {\n  font-weight: bold;\n}\ndfn {\n  font-style: italic;\n}\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\nmark {\n  background: #ff0;\n  color: #000;\n}\nsmall {\n  font-size: 80%;\n}\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\nimg {\n  border: 0;\n}\nsvg:not(:root) {\n  overflow: hidden;\n}\nfigure {\n  margin: 1em 40px;\n}\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\npre {\n  overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\nbutton {\n  overflow: visible;\n}\nbutton,\nselect {\n  text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\ninput {\n  line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n  border: 0;\n  padding: 0;\n}\ntextarea {\n  overflow: auto;\n}\noptgroup {\n  font-weight: bold;\n}\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\ntd,\nth {\n  padding: 0;\n}\n\/*! Source: https:\/\/github.com\/h5bp\/html5-boilerplate\/blob\/master\/src\/css\/main.css *\/\n@media print {\n  *,\n  *:before,\n  *:after {\n    background: transparent !important;\n    box-shadow: none !important;\n    text-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  .navbar {\n    display: none;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('..\/components\/bootstrap\/fonts\/glyphicons-halflings-regular.eot');\n  src: url('..\/components\/bootstrap\/fonts\/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('..\/components\/bootstrap\/fonts\/glyphicons-halflings-regular.woff2') format('woff2'), url('..\/components\/bootstrap\/fonts\/glyphicons-halflings-regular.woff') format('woff'), url('..\/components\/bootstrap\/fonts\/glyphicons-halflings-regular.ttf') format('truetype'), url('..\/components\/bootstrap\/fonts\/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n  content: \"\ufffd02a\";\n}\n.glyphicon-plus:before {\n  content: \"\ufffd02b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"20ac\";\n}\n.glyphicon-minus:before {\n  content: \"2212\";\n}\n.glyphicon-cloud:before {\n  content: \"2601\";\n}\n.glyphicon-envelope:before {\n  content: \"2709\";\n}\n.glyphicon-pencil:before {\n  content: \"270f\";\n}\n.glyphicon-glass:before {\n  content: \"e001\";\n}\n.glyphicon-music:before {\n  content: \"e002\";\n}\n.glyphicon-search:before {\n  content: \"e003\";\n}\n.glyphicon-heart:before {\n  content: \"e005\";\n}\n.glyphicon-star:before {\n  content: \"e006\";\n}\n.glyphicon-star-empty:before {\n  content: \"e007\";\n}\n.glyphicon-user:before {\n  content: \"e008\";\n}\n.glyphicon-film:before {\n  content: \"e009\";\n}\n.glyphicon-th-large:before {\n  content: \"e010\";\n}\n.glyphicon-th:before {\n  content: \"e011\";\n}\n.glyphicon-th-list:before {\n  content: \"e012\";\n}\n.glyphicon-ok:before {\n  content: \"e013\";\n}\n.glyphicon-remove:before {\n  content: \"e014\";\n}\n.glyphicon-zoom-in:before {\n  content: \"e015\";\n}\n.glyphicon-zoom-out:before {\n  content: \"e016\";\n}\n.glyphicon-off:before {\n  content: \"e017\";\n}\n.glyphicon-signal:before {\n  content: \"e018\";\n}\n.glyphicon-cog:before {\n  content: \"e019\";\n}\n.glyphicon-trash:before {\n  content: \"e020\";\n}\n.glyphicon-home:before {\n  content: \"e021\";\n}\n.glyphicon-file:before {\n  content: \"e022\";\n}\n.glyphicon-time:before {\n  content: \"e023\";\n}\n.glyphicon-road:before {\n  content: \"e024\";\n}\n.glyphicon-download-alt:before {\n  content: \"e025\";\n}\n.glyphicon-download:before {\n  content: \"e026\";\n}\n.glyphicon-upload:before {\n  content: \"e027\";\n}\n.glyphicon-inbox:before {\n  content: \"e028\";\n}\n.glyphicon-play-circle:before {\n  content: \"e029\";\n}\n.glyphicon-repeat:before {\n  content: \"e030\";\n}\n.glyphicon-refresh:before {\n  content: \"e031\";\n}\n.glyphicon-list-alt:before {\n  content: \"e032\";\n}\n.glyphicon-lock:before {\n  content: \"e033\";\n}\n.glyphicon-flag:before {\n  content: \"e034\";\n}\n.glyphicon-headphones:before {\n  content: \"e035\";\n}\n.glyphicon-volume-off:before {\n  content: \"e036\";\n}\n.glyphicon-volume-down:before {\n  content: \"e037\";\n}\n.glyphicon-volume-up:before {\n  content: \"e038\";\n}\n.glyphicon-qrcode:before {\n  content: \"e039\";\n}\n.glyphicon-barcode:before {\n  content: \"e040\";\n}\n.glyphicon-tag:before {\n  content: \"e041\";\n}\n.glyphicon-tags:before {\n  content: \"e042\";\n}\n.glyphicon-book:before {\n  content: \"e043\";\n}\n.glyphicon-bookmark:before {\n  content: \"e044\";\n}\n.glyphicon-print:before {\n  content: \"e045\";\n}\n.glyphicon-camera:before {\n  content: \"e046\";\n}\n.glyphicon-font:before {\n  content: \"e047\";\n}\n.glyphicon-bold:before {\n  content: \"e048\";\n}\n.glyphicon-italic:before {\n  content: \"e049\";\n}\n.glyphicon-text-height:before {\n  content: \"e050\";\n}\n.glyphicon-text-width:before {\n  content: \"e051\";\n}\n.glyphicon-align-left:before {\n  content: \"e052\";\n}\n.glyphicon-align-center:before {\n  content: \"e053\";\n}\n.glyphicon-align-right:before {\n  content: \"e054\";\n}\n.glyphicon-align-justify:before {\n  content: \"e055\";\n}\n.glyphicon-list:before {\n  content: \"e056\";\n}\n.glyphicon-indent-left:before {\n  content: \"e057\";\n}\n.glyphicon-indent-right:before {\n  content: \"e058\";\n}\n.glyphicon-facetime-video:before {\n  content: \"e059\";\n}\n.glyphicon-picture:before {\n  content: \"e060\";\n}\n.glyphicon-map-marker:before {\n  content: \"e062\";\n}\n.glyphicon-adjust:before {\n  content: \"e063\";\n}\n.glyphicon-tint:before {\n  content: \"e064\";\n}\n.glyphicon-edit:before {\n  content: \"e065\";\n}\n.glyphicon-share:before {\n  content: \"e066\";\n}\n.glyphicon-check:before {\n  content: \"e067\";\n}\n.glyphicon-move:before {\n  content: \"e068\";\n}\n.glyphicon-step-backward:before {\n  content: \"e069\";\n}\n.glyphicon-fast-backward:before {\n  content: \"e070\";\n}\n.glyphicon-backward:before {\n  content: \"e071\";\n}\n.glyphicon-play:before {\n  content: \"e072\";\n}\n.glyphicon-pause:before {\n  content: \"e073\";\n}\n.glyphicon-stop:before {\n  content: \"e074\";\n}\n.glyphicon-forward:before {\n  content: \"e075\";\n}\n.glyphicon-fast-forward:before {\n  content: \"e076\";\n}\n.glyphicon-step-forward:before {\n  content: \"e077\";\n}\n.glyphicon-eject:before {\n  content: \"e078\";\n}\n.glyphicon-chevron-left:before {\n  content: \"e079\";\n}\n.glyphicon-chevron-right:before {\n  content: \"e080\";\n}\n.glyphicon-plus-sign:before {\n  content: \"e081\";\n}\n.glyphicon-minus-sign:before {\n  content: \"e082\";\n}\n.glyphicon-remove-sign:before {\n  content: \"e083\";\n}\n.glyphicon-ok-sign:before {\n  content: \"e084\";\n}\n.glyphicon-question-sign:before {\n  content: \"e085\";\n}\n.glyphicon-info-sign:before {\n  content: \"e086\";\n}\n.glyphicon-screenshot:before {\n  content: \"e087\";\n}\n.glyphicon-remove-circle:before {\n  content: \"e088\";\n}\n.glyphicon-ok-circle:before {\n  content: \"e089\";\n}\n.glyphicon-ban-circle:before {\n  content: \"e090\";\n}\n.glyphicon-arrow-left:before {\n  content: \"e091\";\n}\n.glyphicon-arrow-right:before {\n  content: \"e092\";\n}\n.glyphicon-arrow-up:before {\n  content: \"e093\";\n}\n.glyphicon-arrow-down:before {\n  content: \"e094\";\n}\n.glyphicon-share-alt:before {\n  content: \"e095\";\n}\n.glyphicon-resize-full:before {\n  content: \"e096\";\n}\n.glyphicon-resize-small:before {\n  content: \"e097\";\n}\n.glyphicon-exclamation-sign:before {\n  content: \"e101\";\n}\n.glyphicon-gift:before {\n  content: \"e102\";\n}\n.glyphicon-leaf:before {\n  content: \"e103\";\n}\n.glyphicon-fire:before {\n  content: \"e104\";\n}\n.glyphicon-eye-open:before {\n  content: \"e105\";\n}\n.glyphicon-eye-close:before {\n  content: \"e106\";\n}\n.glyphicon-warning-sign:before {\n  content: \"e107\";\n}\n.glyphicon-plane:before {\n  content: \"e108\";\n}\n.glyphicon-calendar:before {\n  content: \"e109\";\n}\n.glyphicon-random:before {\n  content: \"e110\";\n}\n.glyphicon-comment:before {\n  content: \"e111\";\n}\n.glyphicon-magnet:before {\n  content: \"e112\";\n}\n.glyphicon-chevron-up:before {\n  content: \"e113\";\n}\n.glyphicon-chevron-down:before {\n  content: \"e114\";\n}\n.glyphicon-retweet:before {\n  content: \"e115\";\n}\n.glyphicon-shopping-cart:before {\n  content: \"e116\";\n}\n.glyphicon-folder-close:before {\n  content: \"e117\";\n}\n.glyphicon-folder-open:before {\n  content: \"e118\";\n}\n.glyphicon-resize-vertical:before {\n  content: \"e119\";\n}\n.glyphicon-resize-horizontal:before {\n  content: \"e120\";\n}\n.glyphicon-hdd:before {\n  content: \"e121\";\n}\n.glyphicon-bullhorn:before {\n  content: \"e122\";\n}\n.glyphicon-bell:before {\n  content: \"e123\";\n}\n.glyphicon-certificate:before {\n  content: \"e124\";\n}\n.glyphicon-thumbs-up:before {\n  content: \"e125\";\n}\n.glyphicon-thumbs-down:before {\n  content: \"e126\";\n}\n.glyphicon-hand-right:before {\n  content: \"e127\";\n}\n.glyphicon-hand-left:before {\n  content: \"e128\";\n}\n.glyphicon-hand-up:before {\n  content: \"e129\";\n}\n.glyphicon-hand-down:before {\n  content: \"e130\";\n}\n.glyphicon-circle-arrow-right:before {\n  content: \"e131\";\n}\n.glyphicon-circle-arrow-left:before {\n  content: \"e132\";\n}\n.glyphicon-circle-arrow-up:before {\n  content: \"e133\";\n}\n.glyphicon-circle-arrow-down:before {\n  content: \"e134\";\n}\n.glyphicon-globe:before {\n  content: \"e135\";\n}\n.glyphicon-wrench:before {\n  content: \"e136\";\n}\n.glyphicon-tasks:before {\n  content: \"e137\";\n}\n.glyphicon-filter:before {\n  content: \"e138\";\n}\n.glyphicon-briefcase:before {\n  content: \"e139\";\n}\n.glyphicon-fullscreen:before {\n  content: \"e140\";\n}\n.glyphicon-dashboard:before {\n  content: \"e141\";\n}\n.glyphicon-paperclip:before {\n  content: \"e142\";\n}\n.glyphicon-heart-empty:before {\n  content: \"e143\";\n}\n.glyphicon-link:before {\n  content: \"e144\";\n}\n.glyphicon-phone:before {\n  content: \"e145\";\n}\n.glyphicon-pushpin:before {\n  content: \"e146\";\n}\n.glyphicon-usd:before {\n  content: \"e148\";\n}\n.glyphicon-gbp:before {\n  content: \"e149\";\n}\n.glyphicon-sort:before {\n  content: \"e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n  content: \"e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"e152\";\n}\n.glyphicon-sort-by-order:before {\n  content: \"e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n  content: \"e154\";\n}\n.glyphicon-sort-by-attributes:before {\n  content: \"e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"e156\";\n}\n.glyphicon-unchecked:before {\n  content: \"e157\";\n}\n.glyphicon-expand:before {\n  content: \"e158\";\n}\n.glyphicon-collapse-down:before {\n  content: \"e159\";\n}\n.glyphicon-collapse-up:before {\n  content: \"e160\";\n}\n.glyphicon-log-in:before {\n  content: \"e161\";\n}\n.glyphicon-flash:before {\n  content: \"e162\";\n}\n.glyphicon-log-out:before {\n  content: \"e163\";\n}\n.glyphicon-new-window:before {\n  content: \"e164\";\n}\n.glyphicon-record:before {\n  content: \"e165\";\n}\n.glyphicon-save:before {\n  content: \"e166\";\n}\n.glyphicon-open:before {\n  content: \"e167\";\n}\n.glyphicon-saved:before {\n  content: \"e168\";\n}\n.glyphicon-import:before {\n  content: \"e169\";\n}\n.glyphicon-export:before {\n  content: \"e170\";\n}\n.glyphicon-send:before {\n  content: \"e171\";\n}\n.glyphicon-floppy-disk:before {\n  content: \"e172\";\n}\n.glyphicon-floppy-saved:before {\n  content: \"e173\";\n}\n.glyphicon-floppy-remove:before {\n  content: \"e174\";\n}\n.glyphicon-floppy-save:before {\n  content: \"e175\";\n}\n.glyphicon-floppy-open:before {\n  content: \"e176\";\n}\n.glyphicon-credit-card:before {\n  content: \"e177\";\n}\n.glyphicon-transfer:before {\n  content: \"e178\";\n}\n.glyphicon-cutlery:before {\n  content: \"e179\";\n}\n.glyphicon-header:before {\n  content: \"e180\";\n}\n.glyphicon-compressed:before {\n  content: \"e181\";\n}\n.glyphicon-earphone:before {\n  content: \"e182\";\n}\n.glyphicon-phone-alt:before {\n  content: \"e183\";\n}\n.glyphicon-tower:before {\n  content: \"e184\";\n}\n.glyphicon-stats:before {\n  content: \"e185\";\n}\n.glyphicon-sd-video:before {\n  content: \"e186\";\n}\n.glyphicon-hd-video:before {\n  content: \"e187\";\n}\n.glyphicon-subtitles:before {\n  content: \"e188\";\n}\n.glyphicon-sound-stereo:before {\n  content: \"e189\";\n}\n.glyphicon-sound-dolby:before {\n  content: \"e190\";\n}\n.glyphicon-sound-5-1:before {\n  content: \"e191\";\n}\n.glyphicon-sound-6-1:before {\n  content: \"e192\";\n}\n.glyphicon-sound-7-1:before {\n  content: \"e193\";\n}\n.glyphicon-copyright-mark:before {\n  content: \"e194\";\n}\n.glyphicon-registration-mark:before {\n  content: \"e195\";\n}\n.glyphicon-cloud-download:before {\n  content: \"e197\";\n}\n.glyphicon-cloud-upload:before {\n  content: \"e198\";\n}\n.glyphicon-tree-conifer:before {\n  content: \"e199\";\n}\n.glyphicon-tree-deciduous:before {\n  content: \"e200\";\n}\n.glyphicon-cd:before {\n  content: \"e201\";\n}\n.glyphicon-save-file:before {\n  content: \"e202\";\n}\n.glyphicon-open-file:before {\n  content: \"e203\";\n}\n.glyphicon-level-up:before {\n  content: \"e204\";\n}\n.glyphicon-copy:before {\n  content: \"e205\";\n}\n.glyphicon-paste:before {\n  content: \"e206\";\n}\n.glyphicon-alert:before {\n  content: \"e209\";\n}\n.glyphicon-equalizer:before {\n  content: \"e210\";\n}\n.glyphicon-king:before {\n  content: \"e211\";\n}\n.glyphicon-queen:before {\n  content: \"e212\";\n}\n.glyphicon-pawn:before {\n  content: \"e213\";\n}\n.glyphicon-bishop:before {\n  content: \"e214\";\n}\n.glyphicon-knight:before {\n  content: \"e215\";\n}\n.glyphicon-baby-formula:before {\n  content: \"e216\";\n}\n.glyphicon-tent:before {\n  content: \"26fa\";\n}\n.glyphicon-blackboard:before {\n  content: \"e218\";\n}\n.glyphicon-bed:before {\n  content: \"e219\";\n}\n.glyphicon-apple:before {\n  content: \"f8ff\";\n}\n.glyphicon-erase:before {\n  content: \"e221\";\n}\n.glyphicon-hourglass:before {\n  content: \"231b\";\n}\n.glyphicon-lamp:before {\n  content: \"e223\";\n}\n.glyphicon-duplicate:before {\n  content: \"e224\";\n}\n.glyphicon-piggy-bank:before {\n  content: \"e225\";\n}\n.glyphicon-scissors:before {\n  content: \"e226\";\n}\n.glyphicon-bitcoin:before {\n  content: \"e227\";\n}\n.glyphicon-btc:before {\n  content: \"e227\";\n}\n.glyphicon-xbt:before {\n  content: \"e227\";\n}\n.glyphicon-yen:before {\n  content: \"\ufffd0a5\";\n}\n.glyphicon-jpy:before {\n  content: \"\ufffd0a5\";\n}\n.glyphicon-ruble:before {\n  content: \"20bd\";\n}\n.glyphicon-rub:before {\n  content: \"20bd\";\n}\n.glyphicon-scale:before {\n  content: \"e230\";\n}\n.glyphicon-ice-lolly:before {\n  content: \"e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n  content: \"e232\";\n}\n.glyphicon-education:before {\n  content: \"e233\";\n}\n.glyphicon-option-horizontal:before {\n  content: \"e234\";\n}\n.glyphicon-option-vertical:before {\n  content: \"e235\";\n}\n.glyphicon-menu-hamburger:before {\n  content: \"e236\";\n}\n.glyphicon-modal-window:before {\n  content: \"e237\";\n}\n.glyphicon-oil:before {\n  content: \"e238\";\n}\n.glyphicon-grain:before {\n  content: \"e239\";\n}\n.glyphicon-sunglasses:before {\n  content: \"e240\";\n}\n.glyphicon-text-size:before {\n  content: \"e241\";\n}\n.glyphicon-text-color:before {\n  content: \"e242\";\n}\n.glyphicon-text-background:before {\n  content: \"e243\";\n}\n.glyphicon-object-align-top:before {\n  content: \"e244\";\n}\n.glyphicon-object-align-bottom:before {\n  content: \"e245\";\n}\n.glyphicon-object-align-horizontal:before {\n  content: \"e246\";\n}\n.glyphicon-object-align-left:before {\n  content: \"e247\";\n}\n.glyphicon-object-align-vertical:before {\n  content: \"e248\";\n}\n.glyphicon-object-align-right:before {\n  content: \"e249\";\n}\n.glyphicon-triangle-right:before {\n  content: \"e250\";\n}\n.glyphicon-triangle-left:before {\n  content: \"e251\";\n}\n.glyphicon-triangle-bottom:before {\n  content: \"e252\";\n}\n.glyphicon-triangle-top:before {\n  content: \"e253\";\n}\n.glyphicon-console:before {\n  content: \"e254\";\n}\n.glyphicon-superscript:before {\n  content: \"e255\";\n}\n.glyphicon-subscript:before {\n  content: \"e256\";\n}\n.glyphicon-menu-left:before {\n  content: \"e257\";\n}\n.glyphicon-menu-right:before {\n  content: \"e258\";\n}\n.glyphicon-menu-down:before {\n  content: \"e259\";\n}\n.glyphicon-menu-up:before {\n  content: \"e260\";\n}\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #000;\n  background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\na {\n  color: #337ab7;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\na:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.img-rounded {\n  border-radius: 3px;\n}\n.img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 2px;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n}\n.img-circle {\n  border-radius: 50%;\n}\nhr {\n  margin-top: 18px;\n  margin-bottom: 18px;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n[role=\"button\"] {\n  cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n  margin-top: 18px;\n  margin-bottom: 9px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n  font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n  margin-top: 9px;\n  margin-bottom: 9px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n  font-size: 75%;\n}\nh1,\n.h1 {\n  font-size: 33px;\n}\nh2,\n.h2 {\n  font-size: 27px;\n}\nh3,\n.h3 {\n  font-size: 23px;\n}\nh4,\n.h4 {\n  font-size: 17px;\n}\nh5,\n.h5 {\n  font-size: 13px;\n}\nh6,\n.h6 {\n  font-size: 12px;\n}\np {\n  margin: 0 0 9px;\n}\n.lead {\n  margin-bottom: 18px;\n  font-size: 14px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lead {\n    font-size: 19.5px;\n  }\n}\nsmall,\n.small {\n  font-size: 92%;\n}\nmark,\n.mark {\n  background-color: #fcf8e3;\n  padding: .2em;\n}\n.text-left {\n  text-align: left;\n}\n.text-right {\n  text-align: right;\n}\n.text-center {\n  text-align: center;\n}\n.text-justify {\n  text-align: justify;\n}\n.text-nowrap {\n  white-space: nowrap;\n}\n.text-lowercase {\n  text-transform: lowercase;\n}\n.text-uppercase {\n  text-transform: uppercase;\n}\n.text-capitalize {\n  text-transform: capitalize;\n}\n.text-muted {\n  color: #777777;\n}\n.text-primary {\n  color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090;\n}\n.text-success {\n  color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n  color: #2b542c;\n}\n.text-info {\n  color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n  color: #245269;\n}\n.text-warning {\n  color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n  color: #66512c;\n}\n.text-danger {\n  color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n  color: #843534;\n}\n.bg-primary {\n  color: #fff;\n  background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090;\n}\n.bg-success {\n  background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #c1e2b3;\n}\n.bg-info {\n  background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #afd9ee;\n}\n.bg-warning {\n  background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f7ecb5;\n}\n.bg-danger {\n  background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #e4b9b9;\n}\n.page-header {\n  padding-bottom: 8px;\n  margin: 36px 0 18px;\n  border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 9px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px;\n}\n.list-inline > li {\n  display: inline-block;\n  padding-left: 5px;\n  padding-right: 5px;\n}\ndl {\n  margin-top: 0;\n  margin-bottom: 18px;\n}\ndt,\ndd {\n  line-height: 1.42857143;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0;\n}\n@media (min-width: 541px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\nblockquote {\n  padding: 9px 18px;\n  margin: 0 0 18px;\n  font-size: inherit;\n  border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n  margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857143;\n  color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n  content: '2014 \ufffd0A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n  content: '\ufffd0A0 2014';\n}\naddress {\n  margin-bottom: 18px;\n  font-style: normal;\n  line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace;\n}\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 2px;\n}\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #888;\n  background-color: transparent;\n  border-radius: 1px;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n  box-shadow: none;\n}\npre {\n  display: block;\n  padding: 8.5px;\n  margin: 0 0 9px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: #333333;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border-radius: 2px;\n}\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 0px;\n  padding-right: 0px;\n}\n@media (min-width: 768px) {\n  .container {\n    width: 768px;\n  }\n}\n@media (min-width: 992px) {\n  .container {\n    width: 940px;\n  }\n}\n@media (min-width: 1200px) {\n  .container {\n    width: 1140px;\n  }\n}\n.container-fluid {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.row {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left;\n}\n.col-xs-12 {\n  width: 100%;\n}\n.col-xs-11 {\n  width: 91.66666667%;\n}\n.col-xs-10 {\n  width: 83.33333333%;\n}\n.col-xs-9 {\n  width: 75%;\n}\n.col-xs-8 {\n  width: 66.66666667%;\n}\n.col-xs-7 {\n  width: 58.33333333%;\n}\n.col-xs-6 {\n  width: 50%;\n}\n.col-xs-5 {\n  width: 41.66666667%;\n}\n.col-xs-4 {\n  width: 33.33333333%;\n}\n.col-xs-3 {\n  width: 25%;\n}\n.col-xs-2 {\n  width: 16.66666667%;\n}\n.col-xs-1 {\n  width: 8.33333333%;\n}\n.col-xs-pull-12 {\n  right: 100%;\n}\n.col-xs-pull-11 {\n  right: 91.66666667%;\n}\n.col-xs-pull-10 {\n  right: 83.33333333%;\n}\n.col-xs-pull-9 {\n  right: 75%;\n}\n.col-xs-pull-8 {\n  right: 66.66666667%;\n}\n.col-xs-pull-7 {\n  right: 58.33333333%;\n}\n.col-xs-pull-6 {\n  right: 50%;\n}\n.col-xs-pull-5 {\n  right: 41.66666667%;\n}\n.col-xs-pull-4 {\n  right: 33.33333333%;\n}\n.col-xs-pull-3 {\n  right: 25%;\n}\n.col-xs-pull-2 {\n  right: 16.66666667%;\n}\n.col-xs-pull-1 {\n  right: 8.33333333%;\n}\n.col-xs-pull-0 {\n  right: auto;\n}\n.col-xs-push-12 {\n  left: 100%;\n}\n.col-xs-push-11 {\n  left: 91.66666667%;\n}\n.col-xs-push-10 {\n  left: 83.33333333%;\n}\n.col-xs-push-9 {\n  left: 75%;\n}\n.col-xs-push-8 {\n  left: 66.66666667%;\n}\n.col-xs-push-7 {\n  left: 58.33333333%;\n}\n.col-xs-push-6 {\n  left: 50%;\n}\n.col-xs-push-5 {\n  left: 41.66666667%;\n}\n.col-xs-push-4 {\n  left: 33.33333333%;\n}\n.col-xs-push-3 {\n  left: 25%;\n}\n.col-xs-push-2 {\n  left: 16.66666667%;\n}\n.col-xs-push-1 {\n  left: 8.33333333%;\n}\n.col-xs-push-0 {\n  left: auto;\n}\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n.col-xs-offset-11 {\n  margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n  margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n.col-xs-offset-8 {\n  margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n  margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n.col-xs-offset-5 {\n  margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n  margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n.col-xs-offset-2 {\n  margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n  margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n  margin-left: 0%;\n}\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-sm-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-sm-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-sm-pull-0 {\n    right: auto;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666667%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666667%;\n  }\n  .col-sm-push-7 {\n    left: 58.33333333%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.66666667%;\n  }\n  .col-sm-push-1 {\n    left: 8.33333333%;\n  }\n  .col-sm-push-0 {\n    left: auto;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-md-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-md-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-md-pull-0 {\n    right: auto;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666667%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666667%;\n  }\n  .col-md-push-7 {\n    left: 58.33333333%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.66666667%;\n  }\n  .col-md-push-1 {\n    left: 8.33333333%;\n  }\n  .col-md-push-0 {\n    left: auto;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666667%;\n  }\n  .col-lg-10 {\n    width: 83.33333333%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666667%;\n  }\n  .col-lg-7 {\n    width: 58.33333333%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.66666667%;\n  }\n  .col-lg-1 {\n    width: 8.33333333%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-lg-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-lg-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-lg-pull-0 {\n    right: auto;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666667%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666667%;\n  }\n  .col-lg-push-7 {\n    left: 58.33333333%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.66666667%;\n  }\n  .col-lg-push-1 {\n    left: 8.33333333%;\n  }\n  .col-lg-push-0 {\n    left: auto;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0%;\n  }\n}\ntable {\n  background-color: transparent;\n}\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777777;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 18px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.42857143;\n  vertical-align: top;\n  border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n.table > tbody + tbody {\n  border-top: 2px solid #ddd;\n}\n.table .table {\n  background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n.table-bordered {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n  background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n  background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 13.5px;\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid #ddd;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 18px;\n  font-size: 19.5px;\n  line-height: inherit;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px 9;\n  line-height: normal;\n}\ninput[type=\"file\"] {\n  display: block;\n}\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\nselect[multiple],\nselect[size] {\n  height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #555555;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 32px;\n  padding: 6px 12px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 2px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #999;\n}\n.form-control::-webkit-input-placeholder {\n  color: #999;\n}\n.form-control::-ms-expand {\n  border: 0;\n  background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  background-color: #eeeeee;\n  opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n}\ntextarea.form-control {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 32px;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm,\n  .input-group-sm input[type=\"date\"],\n  .input-group-sm input[type=\"time\"],\n  .input-group-sm input[type=\"datetime-local\"],\n  .input-group-sm input[type=\"month\"] {\n    line-height: 30px;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg,\n  .input-group-lg input[type=\"date\"],\n  .input-group-lg input[type=\"time\"],\n  .input-group-lg input[type=\"datetime-local\"],\n  .input-group-lg input[type=\"month\"] {\n    line-height: 45px;\n  }\n}\n.form-group {\n  margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n  min-height: 18px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px 9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n  cursor: not-allowed;\n}\n.form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n  min-height: 31px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-sm {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n}\nselect.input-sm {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n  height: auto;\n}\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n}\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto;\n}\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 30px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.input-lg {\n  height: 45px;\n  padding: 10px 16px;\n  font-size: 17px;\n  line-height: 1.3333333;\n  border-radius: 3px;\n}\nselect.input-lg {\n  height: 45px;\n  line-height: 45px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n  height: auto;\n}\n.form-group-lg .form-control {\n  height: 45px;\n  padding: 10px 16px;\n  font-size: 17px;\n  line-height: 1.3333333;\n  border-radius: 3px;\n}\n.form-group-lg select.form-control {\n  height: 45px;\n  line-height: 45px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto;\n}\n.form-group-lg .form-control-static {\n  height: 45px;\n  min-height: 35px;\n  padding: 11px 16px;\n  font-size: 17px;\n  line-height: 1.3333333;\n}\n.has-feedback {\n  position: relative;\n}\n.has-feedback .form-control {\n  padding-right: 40px;\n}\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 32px;\n  height: 32px;\n  line-height: 32px;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 45px;\n  height: 45px;\n  line-height: 45px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.has-success .form-control {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n  color: #3c763d;\n  border-color: #3c763d;\n  background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n  color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.has-warning .form-control {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n  color: #8a6d3b;\n  border-color: #8a6d3b;\n  background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n  color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #a94442;\n}\n.has-error .form-control {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n  color: #a94442;\n  border-color: #a94442;\n  background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n  color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n  top: 23px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0;\n}\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #404040;\n}\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-static {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .form-inline .input-group .input-group-addon,\n  .form-inline .input-group .input-group-btn,\n  .form-inline .input-group .form-control {\n    width: auto;\n  }\n  .form-inline .input-group > .form-control {\n    width: 100%;\n  }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio label,\n  .form-inline .checkbox label {\n    padding-left: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 25px;\n}\n.form-horizontal .form-group {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px;\n  }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 0px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 17px;\n  }\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px;\n  }\n}\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  border-radius: 2px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n  color: #333;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  outline: 0;\n  background-image: none;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  cursor: not-allowed;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none;\n}\n.btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.btn-default:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default .badge {\n  color: #fff;\n  background-color: #333;\n}\n.btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n  color: #fff;\n  background-color: #286090;\n  border-color: #122b40;\n}\n.btn-primary:hover {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n  color: #fff;\n  background-color: #204d74;\n  border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.btn-success {\n  color: #fff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.btn-success:hover {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n  color: #fff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success .badge {\n  color: #5cb85c;\n  background-color: #fff;\n}\n.btn-info {\n  color: #fff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.btn-info:hover {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n  color: #fff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info .badge {\n  color: #5bc0de;\n  background-color: #fff;\n}\n.btn-warning {\n  color: #fff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.btn-warning:hover {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n  color: #fff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #fff;\n}\n.btn-danger {\n  color: #fff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n  color: #fff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger .badge {\n  color: #d9534f;\n  background-color: #fff;\n}\n.btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #777777;\n  text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 17px;\n  line-height: 1.3333333;\n  border-radius: 3px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n  -o-transition: opacity 0.15s linear;\n  transition: opacity 0.15s linear;\n}\n.fade.in {\n  opacity: 1;\n}\n.collapse {\n  display: none;\n}\n.collapse.in {\n  display: block;\n}\ntr.collapse.in {\n  display: table-row;\n}\ntbody.collapse.in {\n  display: table-row-group;\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-property: height, visibility;\n  transition-property: height, visibility;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease;\n  transition-timing-function: ease;\n}\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid 9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle:focus {\n  outline: 0;\n}\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  font-size: 13px;\n  text-align: left;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 2px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 8px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.42857143;\n  color: #333333;\n  white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  text-decoration: none;\n  color: #262626;\n  background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  cursor: not-allowed;\n}\n.open > .dropdown-menu {\n  display: block;\n}\n.open > a {\n  outline: 0;\n}\n.dropdown-menu-right {\n  left: auto;\n  right: 0;\n}\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  color: #777777;\n  white-space: nowrap;\n}\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: 990;\n}\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid 9;\n  content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px;\n}\n@media (min-width: 541px) {\n  .navbar-right .dropdown-menu {\n    left: auto;\n    right: 0;\n  }\n  .navbar-right .dropdown-menu-left {\n    left: 0;\n    right: auto;\n  }\n}\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n.btn-toolbar {\n  margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n  float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn .caret {\n  margin-left: 0;\n}\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 2px;\n  border-top-left-radius: 2px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 2px;\n  border-bottom-left-radius: 2px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n  float: none;\n  display: table-cell;\n  width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n  width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n  left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n  float: none;\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.input-group .form-control:focus {\n  z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 45px;\n  padding: 10px 16px;\n  font-size: 17px;\n  line-height: 1.3333333;\n  border-radius: 3px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 45px;\n  line-height: 45px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 13px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  border-radius: 2px;\n}\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 1px;\n}\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 17px;\n  border-radius: 3px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.input-group-btn > .btn {\n  position: relative;\n}\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n  margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n.nav {\n  margin-bottom: 0;\n  padding-left: 0;\n  list-style: none;\n}\n.nav > li {\n  position: relative;\n  display: block;\n}\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n  color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #777777;\n  text-decoration: none;\n  background-color: transparent;\n  cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eeeeee;\n  border-color: #337ab7;\n}\n.nav .nav-divider {\n  height: 1px;\n  margin: 8px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.nav > li > a > img {\n  max-width: none;\n}\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.42857143;\n  border: 1px solid transparent;\n  border-radius: 2px 2px 0 0;\n}\n.nav-tabs > li > a:hover {\n  border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n  cursor: default;\n}\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n.nav-tabs.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 2px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 2px 2px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.nav-pills > li {\n  float: left;\n}\n.nav-pills > li > a {\n  border-radius: 2px;\n}\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #fff;\n  background-color: #337ab7;\n}\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n.nav-justified {\n  width: 100%;\n}\n.nav-justified > li {\n  float: none;\n}\n.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 2px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 2px 2px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.tab-content > .tab-pane {\n  display: none;\n}\n.tab-content > .active {\n  display: block;\n}\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar {\n  position: relative;\n  min-height: 30px;\n  margin-bottom: 18px;\n  border: 1px solid transparent;\n}\n@media (min-width: 541px) {\n  .navbar {\n    border-radius: 2px;\n  }\n}\n@media (min-width: 541px) {\n  .navbar-header {\n    float: left;\n  }\n}\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: 0px;\n  padding-left: 0px;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n@media (min-width: 541px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: visible;\n  }\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-static-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px;\n}\n@media (max-device-width: 540px) and (orientation: landscape) {\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    max-height: 200px;\n  }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n  margin-right: 0px;\n  margin-left: 0px;\n}\n@media (min-width: 541px) {\n  .container > .navbar-header,\n  .container-fluid > .navbar-header,\n  .container > .navbar-collapse,\n  .container-fluid > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n@media (min-width: 541px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n@media (min-width: 541px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n.navbar-brand {\n  float: left;\n  padding: 6px 0px;\n  font-size: 17px;\n  line-height: 18px;\n  height: 30px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n.navbar-brand > img {\n  display: block;\n}\n@media (min-width: 541px) {\n  .navbar > .container .navbar-brand,\n  .navbar > .container-fluid .navbar-brand {\n    margin-left: 0px;\n  }\n}\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: 0px;\n  padding: 9px 10px;\n  margin-top: -2px;\n  margin-bottom: -2px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 2px;\n}\n.navbar-toggle:focus {\n  outline: 0;\n}\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n@media (min-width: 541px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n.navbar-nav {\n  margin: 3px 0px;\n}\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 18px;\n}\n@media (max-width: 540px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 18px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n@media (min-width: 541px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 6px;\n    padding-bottom: 6px;\n  }\n}\n.navbar-form {\n  margin-left: 0px;\n  margin-right: 0px;\n  padding: 10px 0px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  margin-top: -1px;\n  margin-bottom: -1px;\n}\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control-static {\n    display: inline-block;\n  }\n  .navbar-form .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .navbar-form .input-group .input-group-addon,\n  .navbar-form .input-group .input-group-btn,\n  .navbar-form .input-group .form-control {\n    width: auto;\n  }\n  .navbar-form .input-group > .form-control {\n    width: 100%;\n  }\n  .navbar-form .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio label,\n  .navbar-form .checkbox label {\n    padding-left: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .navbar-form .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n@media (max-width: 540px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n  .navbar-form .form-group:last-child {\n    margin-bottom: 0;\n  }\n}\n@media (min-width: 541px) {\n  .navbar-form {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n  }\n}\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-right-radius: 2px;\n  border-top-left-radius: 2px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.navbar-btn {\n  margin-top: -1px;\n  margin-bottom: -1px;\n}\n.navbar-btn.btn-sm {\n  margin-top: 0px;\n  margin-bottom: 0px;\n}\n.navbar-btn.btn-xs {\n  margin-top: 4px;\n  margin-bottom: 4px;\n}\n.navbar-text {\n  margin-top: 6px;\n  margin-bottom: 6px;\n}\n@media (min-width: 541px) {\n  .navbar-text {\n    float: left;\n    margin-left: 0px;\n    margin-right: 0px;\n  }\n}\n@media (min-width: 541px) {\n  .navbar-left {\n    float: left !important;\n    float: left;\n  }\n  .navbar-right {\n    float: right !important;\n    float: right;\n    margin-right: 0px;\n  }\n  .navbar-right ~ .navbar-right {\n    margin-right: 0;\n  }\n}\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n  color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n.navbar-default .navbar-text {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333;\n  background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555;\n  background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #ccc;\n  background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n  border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  background-color: #e7e7e7;\n  color: #555;\n}\n@media (max-width: 540px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #ccc;\n    background-color: transparent;\n  }\n}\n.navbar-default .navbar-link {\n  color: #777;\n}\n.navbar-default .navbar-link:hover {\n  color: #333;\n}\n.navbar-default .btn-link {\n  color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n  color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n  color: #ccc;\n}\n.navbar-inverse {\n  background-color: #222;\n  border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #fff;\n  background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n  border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  background-color: #080808;\n  color: #fff;\n}\n@media (max-width: 540px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #9d9d9d;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #fff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #fff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444;\n    background-color: transparent;\n  }\n}\n.navbar-inverse .navbar-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n  color: #fff;\n}\n.navbar-inverse .btn-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n  color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n  color: #444;\n}\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 18px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 2px;\n}\n.breadcrumb > li {\n  display: inline-block;\n}\n.breadcrumb > li + li:before {\n  content: \"\/\ufffd0a0\";\n  padding: 0 5px;\n  color: #5e5e5e;\n}\n.breadcrumb > .active {\n  color: #777777;\n}\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 18px 0;\n  border-radius: 2px;\n}\n.pagination > li {\n  display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  line-height: 1.42857143;\n  text-decoration: none;\n  color: #337ab7;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-bottom-left-radius: 2px;\n  border-top-left-radius: 2px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-bottom-right-radius: 2px;\n  border-top-right-radius: 2px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  z-index: 2;\n  color: #23527c;\n  background-color: #eeeeee;\n  border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 3;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n  cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #777777;\n  background-color: #fff;\n  border-color: #ddd;\n  cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 17px;\n  line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 1px;\n  border-top-left-radius: 1px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-bottom-right-radius: 1px;\n  border-top-right-radius: 1px;\n}\n.pager {\n  padding-left: 0;\n  margin: 18px 0;\n  list-style: none;\n  text-align: center;\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #777777;\n  background-color: #fff;\n  cursor: not-allowed;\n}\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.label:empty {\n  display: none;\n}\n.btn .label {\n  position: relative;\n  top: -1px;\n}\n.label-default {\n  background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.label-primary {\n  background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #286090;\n}\n.label-success {\n  background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n.label-info {\n  background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.label-warning {\n  background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.label-danger {\n  background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  line-height: 1;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px;\n}\n.badge:empty {\n  display: none;\n}\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n  top: 0;\n  padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.list-group-item > .badge {\n  float: right;\n}\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n  color: inherit;\n}\n.jumbotron p {\n  margin-bottom: 15px;\n  font-size: 20px;\n  font-weight: 200;\n}\n.jumbotron > hr {\n  border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n  border-radius: 3px;\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.jumbotron .container {\n  max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding-top: 48px;\n    padding-bottom: 48px;\n  }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    padding-left: 60px;\n    padding-right: 60px;\n  }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    font-size: 59px;\n  }\n}\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 18px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 2px;\n  -webkit-transition: border 0.2s ease-in-out;\n  -o-transition: border 0.2s ease-in-out;\n  transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n  margin-left: auto;\n  margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: #000;\n}\n.alert {\n  padding: 15px;\n  margin-bottom: 18px;\n  border: 1px solid transparent;\n  border-radius: 2px;\n}\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n.alert .alert-link {\n  font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n.alert > p + p {\n  margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n.alert-success {\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n  color: #3c763d;\n}\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n  color: #2b542c;\n}\n.alert-info {\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n  color: #31708f;\n}\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n  color: #245269;\n}\n.alert-warning {\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n  color: #8a6d3b;\n}\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n  color: #66512c;\n}\n.alert-danger {\n  background-color: #f2dede;\n  border-color: #ebccd1;\n  color: #a94442;\n}\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n  color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n.progress {\n  overflow: hidden;\n  height: 18px;\n  margin-bottom: 18px;\n  background-color: #f5f5f5;\n  border-radius: 2px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 12px;\n  line-height: 18px;\n  color: #fff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n  -o-transition: width 0.6s ease;\n  transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n  -o-animation: progress-bar-stripes 2s linear infinite;\n  animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden;\n}\n.media-body {\n  width: 10000px;\n}\n.media-object {\n  display: block;\n}\n.media-object.img-thumbnail {\n  max-width: none;\n}\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n.media-middle {\n  vertical-align: middle;\n}\n.media-bottom {\n  vertical-align: bottom;\n}\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n.list-group {\n  margin-bottom: 20px;\n  padding-left: 0;\n}\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n  border-top-right-radius: 2px;\n  border-top-left-radius: 2px;\n}\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 2px;\n  border-bottom-left-radius: 2px;\n}\na.list-group-item,\nbutton.list-group-item {\n  color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n  color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n  text-decoration: none;\n  color: #555;\n  background-color: #f5f5f5;\n}\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n  background-color: #eeeeee;\n  color: #777777;\n  cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n  color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n  color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  z-index: 2;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n  color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n  color: #c7ddef;\n}\n.list-group-item-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n  color: #3c763d;\n  background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n  color: #fff;\n  background-color: #3c763d;\n  border-color: #3c763d;\n}\n.list-group-item-info {\n  color: #31708f;\n  background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n  color: #31708f;\n  background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n  color: #fff;\n  background-color: #31708f;\n  border-color: #31708f;\n}\n.list-group-item-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n  color: #8a6d3b;\n  background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n  color: #fff;\n  background-color: #8a6d3b;\n  border-color: #8a6d3b;\n}\n.list-group-item-danger {\n  color: #a94442;\n  background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n  color: #a94442;\n  background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n  color: #fff;\n  background-color: #a94442;\n  border-color: #a94442;\n}\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n.panel {\n  margin-bottom: 18px;\n  background-color: #fff;\n  border: 1px solid transparent;\n  border-radius: 2px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n  padding: 15px;\n}\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 1px;\n  border-top-left-radius: 1px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 15px;\n  color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n  color: inherit;\n}\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  border-bottom-right-radius: 1px;\n  border-bottom-left-radius: 1px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n  border-width: 1px 0;\n  border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n  border-top: 0;\n  border-top-right-radius: 1px;\n  border-top-left-radius: 1px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n  border-bottom: 0;\n  border-bottom-right-radius: 1px;\n  border-bottom-left-radius: 1px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-right-radius: 1px;\n  border-top-left-radius: 1px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n  border-top-left-radius: 1px;\n  border-top-right-radius: 1px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n  border-top-left-radius: 1px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n  border-top-right-radius: 1px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 1px;\n  border-bottom-left-radius: 1px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n  border-bottom-left-radius: 1px;\n  border-bottom-right-radius: 1px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n  border-bottom-left-radius: 1px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n  border-bottom-right-radius: 1px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n  border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n  border-bottom: 0;\n}\n.panel > .table-responsive {\n  border: 0;\n  margin-bottom: 0;\n}\n.panel-group {\n  margin-bottom: 18px;\n}\n.panel-group .panel {\n  margin-bottom: 0;\n  border-radius: 2px;\n}\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n  border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n  border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #ddd;\n}\n.panel-default {\n  border-color: #ddd;\n}\n.panel-default > .panel-heading {\n  color: #333333;\n  background-color: #f5f5f5;\n  border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n  color: #f5f5f5;\n  background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ddd;\n}\n.panel-primary {\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #337ab7;\n}\n.panel-success {\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n  color: #dff0d8;\n  background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n.panel-info {\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n  color: #d9edf7;\n  background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #bce8f1;\n}\n.panel-warning {\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n  color: #fcf8e3;\n  background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #faebcc;\n}\n.panel-danger {\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n  color: #f2dede;\n  background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  height: 100%;\n  width: 100%;\n  border: 0;\n}\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 2px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n  padding: 24px;\n  border-radius: 3px;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: 1px;\n}\n.close {\n  float: right;\n  font-size: 19.5px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n  color: #000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n.modal-open {\n  overflow: hidden;\n}\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  -webkit-overflow-scrolling: touch;\n  outline: 0;\n}\n.modal.fade .modal-dialog {\n  -webkit-transform: translate(0, -25%);\n  -ms-transform: translate(0, -25%);\n  -o-transform: translate(0, -25%);\n  transform: translate(0, -25%);\n  -webkit-transition: -webkit-transform 0.3s ease-out;\n  -moz-transition: -moz-transform 0.3s ease-out;\n  -o-transition: -o-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n  -ms-transform: translate(0, 0);\n  -o-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n.modal-content {\n  position: relative;\n  background-color: #fff;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 3px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n  outline: 0;\n}\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n.modal-backdrop.fade {\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n  margin-top: -2px;\n}\n.modal-title {\n  margin: 0;\n  line-height: 1.42857143;\n}\n.modal-body {\n  position: relative;\n  padding: 15px;\n}\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n  margin-left: 5px;\n  margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    width: 300px;\n  }\n}\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n}\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 12px;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.tooltip.in {\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.tooltip.top {\n  margin-top: -3px;\n  padding: 5px 0;\n}\n.tooltip.right {\n  margin-left: 3px;\n  padding: 0 5px;\n}\n.tooltip.bottom {\n  margin-top: 3px;\n  padding: 5px 0;\n}\n.tooltip.left {\n  margin-left: -3px;\n  padding: 0 5px;\n}\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 2px;\n}\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  right: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 13px;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 3px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n  margin-top: -10px;\n}\n.popover.right {\n  margin-left: 10px;\n}\n.popover.bottom {\n  margin-top: 10px;\n}\n.popover.left {\n  margin-left: -10px;\n}\n.popover-title {\n  margin: 0;\n  padding: 8px 14px;\n  font-size: 13px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 2px 2px 0 0;\n}\n.popover-content {\n  padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover > .arrow {\n  border-width: 11px;\n}\n.popover > .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n.popover.top > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-width: 0;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  bottom: -11px;\n}\n.popover.top > .arrow:after {\n  content: \" \";\n  bottom: 1px;\n  margin-left: -10px;\n  border-bottom-width: 0;\n  border-top-color: #fff;\n}\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-left-width: 0;\n  border-right-color: #999999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n  content: \" \";\n  left: 1px;\n  bottom: -10px;\n  border-left-width: 0;\n  border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  top: -11px;\n}\n.popover.bottom > .arrow:after {\n  content: \" \";\n  top: 1px;\n  margin-left: -10px;\n  border-top-width: 0;\n  border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-right-width: 0;\n  border-left-color: #999999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n  content: \" \";\n  right: 1px;\n  border-right-width: 0;\n  border-left-color: #fff;\n  bottom: -10px;\n}\n.carousel {\n  position: relative;\n}\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n}\n.carousel-inner > .item {\n  display: none;\n  position: relative;\n  -webkit-transition: 0.6s ease-in-out left;\n  -o-transition: 0.6s ease-in-out left;\n  transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n  .carousel-inner > .item {\n    -webkit-transition: -webkit-transform 0.6s ease-in-out;\n    -moz-transition: -moz-transform 0.6s ease-in-out;\n    -o-transition: -o-transform 0.6s ease-in-out;\n    transition: transform 0.6s ease-in-out;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    -webkit-perspective: 1000px;\n    -moz-perspective: 1000px;\n    perspective: 1000px;\n  }\n  .carousel-inner > .item.next,\n  .carousel-inner > .item.active.right {\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.prev,\n  .carousel-inner > .item.active.left {\n    -webkit-transform: translate3d(-100%, 0, 0);\n    transform: translate3d(-100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.next.left,\n  .carousel-inner > .item.prev.right,\n  .carousel-inner > .item.active {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n    left: 0;\n  }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n.carousel-inner > .active {\n  left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n.carousel-inner > .next {\n  left: 100%;\n}\n.carousel-inner > .prev {\n  left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n.carousel-inner > .active.left {\n  left: -100%;\n}\n.carousel-inner > .active.right {\n  left: 100%;\n}\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 15%;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  font-size: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n  background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n  left: auto;\n  right: 0;\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n  outline: 0;\n  color: #fff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  margin-top: -10px;\n  z-index: 5;\n  display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n  margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n  margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  line-height: 1;\n  font-family: serif;\n}\n.carousel-control .icon-prev:before {\n  content: '2039';\n}\n.carousel-control .icon-next:before {\n  content: '203a';\n}\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n}\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  border: 1px solid #fff;\n  border-radius: 10px;\n  cursor: pointer;\n  background-color: #000 9;\n  background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n  margin: 0;\n  width: 12px;\n  height: 12px;\n  background-color: #fff;\n}\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n  text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -10px;\n    font-size: 30px;\n  }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -10px;\n  }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -10px;\n  }\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after,\n.item_buttons:before,\n.item_buttons:after {\n  content: \" \";\n  display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after,\n.item_buttons:after {\n  clear: both;\n}\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  font: 0\/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.hidden {\n  display: none !important;\n}\n.affix {\n  position: fixed;\n}\n@-ms-viewport {\n  width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  table.visible-xs {\n    display: table !important;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  table.visible-sm {\n    display: table !important;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  table.visible-md {\n    display: table !important;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  table.visible-lg {\n    display: table !important;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important;\n  }\n}\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important;\n  }\n}\n.visible-print {\n  display: none !important;\n}\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  table.visible-print {\n    display: table !important;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n}\n.visible-print-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-block {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline-block {\n    display: inline-block !important;\n  }\n}\n@media print {\n  .hidden-print {\n    display: none !important;\n  }\n}\n\/*!\n*\n* Font Awesome\n*\n*\/\n\/*!\n *  Font Awesome 4.7.0 by @davegandy - http:\/\/fontawesome.io - @fontawesome\n *  License - http:\/\/fontawesome.io\/license (Font: SIL OFL 1.1, CSS: MIT License)\n *\/\n\/* FONT PATH\n * -------------------------- *\/\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('..\/components\/font-awesome\/fonts\/fontawesome-webfont.eot?v=4.7.0');\n  src: url('..\/components\/font-awesome\/fonts\/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('..\/components\/font-awesome\/fonts\/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('..\/components\/font-awesome\/fonts\/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('..\/components\/font-awesome\/fonts\/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('..\/components\/font-awesome\/fonts\/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\/* makes the font 33% larger relative to the icon container *\/\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n\/* Deprecated as of 4.4.0 *\/\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #fff;\n}\n\/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons *\/\n.fa-glass:before {\n  content: \"f000\";\n}\n.fa-music:before {\n  content: \"f001\";\n}\n.fa-search:before {\n  content: \"f002\";\n}\n.fa-envelope-o:before {\n  content: \"f003\";\n}\n.fa-heart:before {\n  content: \"f004\";\n}\n.fa-star:before {\n  content: \"f005\";\n}\n.fa-star-o:before {\n  content: \"f006\";\n}\n.fa-user:before {\n  content: \"f007\";\n}\n.fa-film:before {\n  content: \"f008\";\n}\n.fa-th-large:before {\n  content: \"f009\";\n}\n.fa-th:before {\n  content: \"f00a\";\n}\n.fa-th-list:before {\n  content: \"f00b\";\n}\n.fa-check:before {\n  content: \"f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"f00d\";\n}\n.fa-search-plus:before {\n  content: \"f00e\";\n}\n.fa-search-minus:before {\n  content: \"f010\";\n}\n.fa-power-off:before {\n  content: \"f011\";\n}\n.fa-signal:before {\n  content: \"f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"f013\";\n}\n.fa-trash-o:before {\n  content: \"f014\";\n}\n.fa-home:before {\n  content: \"f015\";\n}\n.fa-file-o:before {\n  content: \"f016\";\n}\n.fa-clock-o:before {\n  content: \"f017\";\n}\n.fa-road:before {\n  content: \"f018\";\n}\n.fa-download:before {\n  content: \"f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"f01b\";\n}\n.fa-inbox:before {\n  content: \"f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"f01e\";\n}\n.fa-refresh:before {\n  content: \"f021\";\n}\n.fa-list-alt:before {\n  content: \"f022\";\n}\n.fa-lock:before {\n  content: \"f023\";\n}\n.fa-flag:before {\n  content: \"f024\";\n}\n.fa-headphones:before {\n  content: \"f025\";\n}\n.fa-volume-off:before {\n  content: \"f026\";\n}\n.fa-volume-down:before {\n  content: \"f027\";\n}\n.fa-volume-up:before {\n  content: \"f028\";\n}\n.fa-qrcode:before {\n  content: \"f029\";\n}\n.fa-barcode:before {\n  content: \"f02a\";\n}\n.fa-tag:before {\n  content: \"f02b\";\n}\n.fa-tags:before {\n  content: \"f02c\";\n}\n.fa-book:before {\n  content: \"f02d\";\n}\n.fa-bookmark:before {\n  content: \"f02e\";\n}\n.fa-print:before {\n  content: \"f02f\";\n}\n.fa-camera:before {\n  content: \"f030\";\n}\n.fa-font:before {\n  content: \"f031\";\n}\n.fa-bold:before {\n  content: \"f032\";\n}\n.fa-italic:before {\n  content: \"f033\";\n}\n.fa-text-height:before {\n  content: \"f034\";\n}\n.fa-text-width:before {\n  content: \"f035\";\n}\n.fa-align-left:before {\n  content: \"f036\";\n}\n.fa-align-center:before {\n  content: \"f037\";\n}\n.fa-align-right:before {\n  content: \"f038\";\n}\n.fa-align-justify:before {\n  content: \"f039\";\n}\n.fa-list:before {\n  content: \"f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"f03b\";\n}\n.fa-indent:before {\n  content: \"f03c\";\n}\n.fa-video-camera:before {\n  content: \"f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"f03e\";\n}\n.fa-pencil:before {\n  content: \"f040\";\n}\n.fa-map-marker:before {\n  content: \"f041\";\n}\n.fa-adjust:before {\n  content: \"f042\";\n}\n.fa-tint:before {\n  content: \"f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"f044\";\n}\n.fa-share-square-o:before {\n  content: \"f045\";\n}\n.fa-check-square-o:before {\n  content: \"f046\";\n}\n.fa-arrows:before {\n  content: \"f047\";\n}\n.fa-step-backward:before {\n  content: \"f048\";\n}\n.fa-fast-backward:before {\n  content: \"f049\";\n}\n.fa-backward:before {\n  content: \"f04a\";\n}\n.fa-play:before {\n  content: \"f04b\";\n}\n.fa-pause:before {\n  content: \"f04c\";\n}\n.fa-stop:before {\n  content: \"f04d\";\n}\n.fa-forward:before {\n  content: \"f04e\";\n}\n.fa-fast-forward:before {\n  content: \"f050\";\n}\n.fa-step-forward:before {\n  content: \"f051\";\n}\n.fa-eject:before {\n  content: \"f052\";\n}\n.fa-chevron-left:before {\n  content: \"f053\";\n}\n.fa-chevron-right:before {\n  content: \"f054\";\n}\n.fa-plus-circle:before {\n  content: \"f055\";\n}\n.fa-minus-circle:before {\n  content: \"f056\";\n}\n.fa-times-circle:before {\n  content: \"f057\";\n}\n.fa-check-circle:before {\n  content: \"f058\";\n}\n.fa-question-circle:before {\n  content: \"f059\";\n}\n.fa-info-circle:before {\n  content: \"f05a\";\n}\n.fa-crosshairs:before {\n  content: \"f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"f05d\";\n}\n.fa-ban:before {\n  content: \"f05e\";\n}\n.fa-arrow-left:before {\n  content: \"f060\";\n}\n.fa-arrow-right:before {\n  content: \"f061\";\n}\n.fa-arrow-up:before {\n  content: \"f062\";\n}\n.fa-arrow-down:before {\n  content: \"f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"f064\";\n}\n.fa-expand:before {\n  content: \"f065\";\n}\n.fa-compress:before {\n  content: \"f066\";\n}\n.fa-plus:before {\n  content: \"f067\";\n}\n.fa-minus:before {\n  content: \"f068\";\n}\n.fa-asterisk:before {\n  content: \"f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"f06a\";\n}\n.fa-gift:before {\n  content: \"f06b\";\n}\n.fa-leaf:before {\n  content: \"f06c\";\n}\n.fa-fire:before {\n  content: \"f06d\";\n}\n.fa-eye:before {\n  content: \"f06e\";\n}\n.fa-eye-slash:before {\n  content: \"f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"f071\";\n}\n.fa-plane:before {\n  content: \"f072\";\n}\n.fa-calendar:before {\n  content: \"f073\";\n}\n.fa-random:before {\n  content: \"f074\";\n}\n.fa-comment:before {\n  content: \"f075\";\n}\n.fa-magnet:before {\n  content: \"f076\";\n}\n.fa-chevron-up:before {\n  content: \"f077\";\n}\n.fa-chevron-down:before {\n  content: \"f078\";\n}\n.fa-retweet:before {\n  content: \"f079\";\n}\n.fa-shopping-cart:before {\n  content: \"f07a\";\n}\n.fa-folder:before {\n  content: \"f07b\";\n}\n.fa-folder-open:before {\n  content: \"f07c\";\n}\n.fa-arrows-v:before {\n  content: \"f07d\";\n}\n.fa-arrows-h:before {\n  content: \"f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"f080\";\n}\n.fa-twitter-square:before {\n  content: \"f081\";\n}\n.fa-facebook-square:before {\n  content: \"f082\";\n}\n.fa-camera-retro:before {\n  content: \"f083\";\n}\n.fa-key:before {\n  content: \"f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"f085\";\n}\n.fa-comments:before {\n  content: \"f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"f088\";\n}\n.fa-star-half:before {\n  content: \"f089\";\n}\n.fa-heart-o:before {\n  content: \"f08a\";\n}\n.fa-sign-out:before {\n  content: \"f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"f08d\";\n}\n.fa-external-link:before {\n  content: \"f08e\";\n}\n.fa-sign-in:before {\n  content: \"f090\";\n}\n.fa-trophy:before {\n  content: \"f091\";\n}\n.fa-github-square:before {\n  content: \"f092\";\n}\n.fa-upload:before {\n  content: \"f093\";\n}\n.fa-lemon-o:before {\n  content: \"f094\";\n}\n.fa-phone:before {\n  content: \"f095\";\n}\n.fa-square-o:before {\n  content: \"f096\";\n}\n.fa-bookmark-o:before {\n  content: \"f097\";\n}\n.fa-phone-square:before {\n  content: \"f098\";\n}\n.fa-twitter:before {\n  content: \"f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"f09a\";\n}\n.fa-github:before {\n  content: \"f09b\";\n}\n.fa-unlock:before {\n  content: \"f09c\";\n}\n.fa-credit-card:before {\n  content: \"f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"f09e\";\n}\n.fa-hdd-o:before {\n  content: \"f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"f0a1\";\n}\n.fa-bell:before {\n  content: \"f0f3\";\n}\n.fa-certificate:before {\n  content: \"f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"f0ab\";\n}\n.fa-globe:before {\n  content: \"f0ac\";\n}\n.fa-wrench:before {\n  content: \"f0ad\";\n}\n.fa-tasks:before {\n  content: \"f0ae\";\n}\n.fa-filter:before {\n  content: \"f0b0\";\n}\n.fa-briefcase:before {\n  content: \"f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"f0c1\";\n}\n.fa-cloud:before {\n  content: \"f0c2\";\n}\n.fa-flask:before {\n  content: \"f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"f0c5\";\n}\n.fa-paperclip:before {\n  content: \"f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"f0c7\";\n}\n.fa-square:before {\n  content: \"f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"f0c9\";\n}\n.fa-list-ul:before {\n  content: \"f0ca\";\n}\n.fa-list-ol:before {\n  content: \"f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"f0cc\";\n}\n.fa-underline:before {\n  content: \"f0cd\";\n}\n.fa-table:before {\n  content: \"f0ce\";\n}\n.fa-magic:before {\n  content: \"f0d0\";\n}\n.fa-truck:before {\n  content: \"f0d1\";\n}\n.fa-pinterest:before {\n  content: \"f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"f0d4\";\n}\n.fa-google-plus:before {\n  content: \"f0d5\";\n}\n.fa-money:before {\n  content: \"f0d6\";\n}\n.fa-caret-down:before {\n  content: \"f0d7\";\n}\n.fa-caret-up:before {\n  content: \"f0d8\";\n}\n.fa-caret-left:before {\n  content: \"f0d9\";\n}\n.fa-caret-right:before {\n  content: \"f0da\";\n}\n.fa-columns:before {\n  content: \"f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"f0de\";\n}\n.fa-envelope:before {\n  content: \"f0e0\";\n}\n.fa-linkedin:before {\n  content: \"f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"f0e4\";\n}\n.fa-comment-o:before {\n  content: \"f0e5\";\n}\n.fa-comments-o:before {\n  content: \"f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"f0e7\";\n}\n.fa-sitemap:before {\n  content: \"f0e8\";\n}\n.fa-umbrella:before {\n  content: \"f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"f0eb\";\n}\n.fa-exchange:before {\n  content: \"f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"f0ee\";\n}\n.fa-user-md:before {\n  content: \"f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"f0f1\";\n}\n.fa-suitcase:before {\n  content: \"f0f2\";\n}\n.fa-bell-o:before {\n  content: \"f0a2\";\n}\n.fa-coffee:before {\n  content: \"f0f4\";\n}\n.fa-cutlery:before {\n  content: \"f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"f0f6\";\n}\n.fa-building-o:before {\n  content: \"f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"f0f8\";\n}\n.fa-ambulance:before {\n  content: \"f0f9\";\n}\n.fa-medkit:before {\n  content: \"f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"f0fb\";\n}\n.fa-beer:before {\n  content: \"f0fc\";\n}\n.fa-h-square:before {\n  content: \"f0fd\";\n}\n.fa-plus-square:before {\n  content: \"f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"f100\";\n}\n.fa-angle-double-right:before {\n  content: \"f101\";\n}\n.fa-angle-double-up:before {\n  content: \"f102\";\n}\n.fa-angle-double-down:before {\n  content: \"f103\";\n}\n.fa-angle-left:before {\n  content: \"f104\";\n}\n.fa-angle-right:before {\n  content: \"f105\";\n}\n.fa-angle-up:before {\n  content: \"f106\";\n}\n.fa-angle-down:before {\n  content: \"f107\";\n}\n.fa-desktop:before {\n  content: \"f108\";\n}\n.fa-laptop:before {\n  content: \"f109\";\n}\n.fa-tablet:before {\n  content: \"f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"f10b\";\n}\n.fa-circle-o:before {\n  content: \"f10c\";\n}\n.fa-quote-left:before {\n  content: \"f10d\";\n}\n.fa-quote-right:before {\n  content: \"f10e\";\n}\n.fa-spinner:before {\n  content: \"f110\";\n}\n.fa-circle:before {\n  content: \"f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"f112\";\n}\n.fa-github-alt:before {\n  content: \"f113\";\n}\n.fa-folder-o:before {\n  content: \"f114\";\n}\n.fa-folder-open-o:before {\n  content: \"f115\";\n}\n.fa-smile-o:before {\n  content: \"f118\";\n}\n.fa-frown-o:before {\n  content: \"f119\";\n}\n.fa-meh-o:before {\n  content: \"f11a\";\n}\n.fa-gamepad:before {\n  content: \"f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"f11c\";\n}\n.fa-flag-o:before {\n  content: \"f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"f11e\";\n}\n.fa-terminal:before {\n  content: \"f120\";\n}\n.fa-code:before {\n  content: \"f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"f123\";\n}\n.fa-location-arrow:before {\n  content: \"f124\";\n}\n.fa-crop:before {\n  content: \"f125\";\n}\n.fa-code-fork:before {\n  content: \"f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"f127\";\n}\n.fa-question:before {\n  content: \"f128\";\n}\n.fa-info:before {\n  content: \"f129\";\n}\n.fa-exclamation:before {\n  content: \"f12a\";\n}\n.fa-superscript:before {\n  content: \"f12b\";\n}\n.fa-subscript:before {\n  content: \"f12c\";\n}\n.fa-eraser:before {\n  content: \"f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"f12e\";\n}\n.fa-microphone:before {\n  content: \"f130\";\n}\n.fa-microphone-slash:before {\n  content: \"f131\";\n}\n.fa-shield:before {\n  content: \"f132\";\n}\n.fa-calendar-o:before {\n  content: \"f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"f134\";\n}\n.fa-rocket:before {\n  content: \"f135\";\n}\n.fa-maxcdn:before {\n  content: \"f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"f13a\";\n}\n.fa-html5:before {\n  content: \"f13b\";\n}\n.fa-css3:before {\n  content: \"f13c\";\n}\n.fa-anchor:before {\n  content: \"f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"f13e\";\n}\n.fa-bullseye:before {\n  content: \"f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"f142\";\n}\n.fa-rss-square:before {\n  content: \"f143\";\n}\n.fa-play-circle:before {\n  content: \"f144\";\n}\n.fa-ticket:before {\n  content: \"f145\";\n}\n.fa-minus-square:before {\n  content: \"f146\";\n}\n.fa-minus-square-o:before {\n  content: \"f147\";\n}\n.fa-level-up:before {\n  content: \"f148\";\n}\n.fa-level-down:before {\n  content: \"f149\";\n}\n.fa-check-square:before {\n  content: \"f14a\";\n}\n.fa-pencil-square:before {\n  content: \"f14b\";\n}\n.fa-external-link-square:before {\n  content: \"f14c\";\n}\n.fa-share-square:before {\n  content: \"f14d\";\n}\n.fa-compass:before {\n  content: \"f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"f153\";\n}\n.fa-gbp:before {\n  content: \"f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"f15a\";\n}\n.fa-file:before {\n  content: \"f15b\";\n}\n.fa-file-text:before {\n  content: \"f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"f163\";\n}\n.fa-thumbs-up:before {\n  content: \"f164\";\n}\n.fa-thumbs-down:before {\n  content: \"f165\";\n}\n.fa-youtube-square:before {\n  content: \"f166\";\n}\n.fa-youtube:before {\n  content: \"f167\";\n}\n.fa-xing:before {\n  content: \"f168\";\n}\n.fa-xing-square:before {\n  content: \"f169\";\n}\n.fa-youtube-play:before {\n  content: \"f16a\";\n}\n.fa-dropbox:before {\n  content: \"f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"f16c\";\n}\n.fa-instagram:before {\n  content: \"f16d\";\n}\n.fa-flickr:before {\n  content: \"f16e\";\n}\n.fa-adn:before {\n  content: \"f170\";\n}\n.fa-bitbucket:before {\n  content: \"f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"f172\";\n}\n.fa-tumblr:before {\n  content: \"f173\";\n}\n.fa-tumblr-square:before {\n  content: \"f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"f178\";\n}\n.fa-apple:before {\n  content: \"f179\";\n}\n.fa-windows:before {\n  content: \"f17a\";\n}\n.fa-android:before {\n  content: \"f17b\";\n}\n.fa-linux:before {\n  content: \"f17c\";\n}\n.fa-dribbble:before {\n  content: \"f17d\";\n}\n.fa-skype:before {\n  content: \"f17e\";\n}\n.fa-foursquare:before {\n  content: \"f180\";\n}\n.fa-trello:before {\n  content: \"f181\";\n}\n.fa-female:before {\n  content: \"f182\";\n}\n.fa-male:before {\n  content: \"f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"f184\";\n}\n.fa-sun-o:before {\n  content: \"f185\";\n}\n.fa-moon-o:before {\n  content: \"f186\";\n}\n.fa-archive:before {\n  content: \"f187\";\n}\n.fa-bug:before {\n  content: \"f188\";\n}\n.fa-vk:before {\n  content: \"f189\";\n}\n.fa-weibo:before {\n  content: \"f18a\";\n}\n.fa-renren:before {\n  content: \"f18b\";\n}\n.fa-pagelines:before {\n  content: \"f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"f192\";\n}\n.fa-wheelchair:before {\n  content: \"f193\";\n}\n.fa-vimeo-square:before {\n  content: \"f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"f195\";\n}\n.fa-plus-square-o:before {\n  content: \"f196\";\n}\n.fa-space-shuttle:before {\n  content: \"f197\";\n}\n.fa-slack:before {\n  content: \"f198\";\n}\n.fa-envelope-square:before {\n  content: \"f199\";\n}\n.fa-wordpress:before {\n  content: \"f19a\";\n}\n.fa-openid:before {\n  content: \"f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"f19d\";\n}\n.fa-yahoo:before {\n  content: \"f19e\";\n}\n.fa-google:before {\n  content: \"f1a0\";\n}\n.fa-reddit:before {\n  content: \"f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"f1a4\";\n}\n.fa-delicious:before {\n  content: \"f1a5\";\n}\n.fa-digg:before {\n  content: \"f1a6\";\n}\n.fa-pied-piper-pp:before {\n  content: \"f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"f1a8\";\n}\n.fa-drupal:before {\n  content: \"f1a9\";\n}\n.fa-joomla:before {\n  content: \"f1aa\";\n}\n.fa-language:before {\n  content: \"f1ab\";\n}\n.fa-fax:before {\n  content: \"f1ac\";\n}\n.fa-building:before {\n  content: \"f1ad\";\n}\n.fa-child:before {\n  content: \"f1ae\";\n}\n.fa-paw:before {\n  content: \"f1b0\";\n}\n.fa-spoon:before {\n  content: \"f1b1\";\n}\n.fa-cube:before {\n  content: \"f1b2\";\n}\n.fa-cubes:before {\n  content: \"f1b3\";\n}\n.fa-behance:before {\n  content: \"f1b4\";\n}\n.fa-behance-square:before {\n  content: \"f1b5\";\n}\n.fa-steam:before {\n  content: \"f1b6\";\n}\n.fa-steam-square:before {\n  content: \"f1b7\";\n}\n.fa-recycle:before {\n  content: \"f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"f1ba\";\n}\n.fa-tree:before {\n  content: \"f1bb\";\n}\n.fa-spotify:before {\n  content: \"f1bc\";\n}\n.fa-deviantart:before {\n  content: \"f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"f1be\";\n}\n.fa-database:before {\n  content: \"f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"f1c9\";\n}\n.fa-vine:before {\n  content: \"f1ca\";\n}\n.fa-codepen:before {\n  content: \"f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n  content: \"f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"f1d1\";\n}\n.fa-git-square:before {\n  content: \"f1d2\";\n}\n.fa-git:before {\n  content: \"f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"f1d5\";\n}\n.fa-qq:before {\n  content: \"f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"f1d9\";\n}\n.fa-history:before {\n  content: \"f1da\";\n}\n.fa-circle-thin:before {\n  content: \"f1db\";\n}\n.fa-header:before {\n  content: \"f1dc\";\n}\n.fa-paragraph:before {\n  content: \"f1dd\";\n}\n.fa-sliders:before {\n  content: \"f1de\";\n}\n.fa-share-alt:before {\n  content: \"f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"f1e1\";\n}\n.fa-bomb:before {\n  content: \"f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"f1e3\";\n}\n.fa-tty:before {\n  content: \"f1e4\";\n}\n.fa-binoculars:before {\n  content: \"f1e5\";\n}\n.fa-plug:before {\n  content: \"f1e6\";\n}\n.fa-slideshare:before {\n  content: \"f1e7\";\n}\n.fa-twitch:before {\n  content: \"f1e8\";\n}\n.fa-yelp:before {\n  content: \"f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"f1ea\";\n}\n.fa-wifi:before {\n  content: \"f1eb\";\n}\n.fa-calculator:before {\n  content: \"f1ec\";\n}\n.fa-paypal:before {\n  content: \"f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"f1f7\";\n}\n.fa-trash:before {\n  content: \"f1f8\";\n}\n.fa-copyright:before {\n  content: \"f1f9\";\n}\n.fa-at:before {\n  content: \"f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"f1fd\";\n}\n.fa-area-chart:before {\n  content: \"f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"f200\";\n}\n.fa-line-chart:before {\n  content: \"f201\";\n}\n.fa-lastfm:before {\n  content: \"f202\";\n}\n.fa-lastfm-square:before {\n  content: \"f203\";\n}\n.fa-toggle-off:before {\n  content: \"f204\";\n}\n.fa-toggle-on:before {\n  content: \"f205\";\n}\n.fa-bicycle:before {\n  content: \"f206\";\n}\n.fa-bus:before {\n  content: \"f207\";\n}\n.fa-ioxhost:before {\n  content: \"f208\";\n}\n.fa-angellist:before {\n  content: \"f209\";\n}\n.fa-cc:before {\n  content: \"f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"f20b\";\n}\n.fa-meanpath:before {\n  content: \"f20c\";\n}\n.fa-buysellads:before {\n  content: \"f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"f20e\";\n}\n.fa-dashcube:before {\n  content: \"f210\";\n}\n.fa-forumbee:before {\n  content: \"f211\";\n}\n.fa-leanpub:before {\n  content: \"f212\";\n}\n.fa-sellsy:before {\n  content: \"f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"f214\";\n}\n.fa-simplybuilt:before {\n  content: \"f215\";\n}\n.fa-skyatlas:before {\n  content: \"f216\";\n}\n.fa-cart-plus:before {\n  content: \"f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"f218\";\n}\n.fa-diamond:before {\n  content: \"f219\";\n}\n.fa-ship:before {\n  content: \"f21a\";\n}\n.fa-user-secret:before {\n  content: \"f21b\";\n}\n.fa-motorcycle:before {\n  content: \"f21c\";\n}\n.fa-street-view:before {\n  content: \"f21d\";\n}\n.fa-heartbeat:before {\n  content: \"f21e\";\n}\n.fa-venus:before {\n  content: \"f221\";\n}\n.fa-mars:before {\n  content: \"f222\";\n}\n.fa-mercury:before {\n  content: \"f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"f224\";\n}\n.fa-transgender-alt:before {\n  content: \"f225\";\n}\n.fa-venus-double:before {\n  content: \"f226\";\n}\n.fa-mars-double:before {\n  content: \"f227\";\n}\n.fa-venus-mars:before {\n  content: \"f228\";\n}\n.fa-mars-stroke:before {\n  content: \"f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"f22b\";\n}\n.fa-neuter:before {\n  content: \"f22c\";\n}\n.fa-genderless:before {\n  content: \"f22d\";\n}\n.fa-facebook-official:before {\n  content: \"f230\";\n}\n.fa-pinterest-p:before {\n  content: \"f231\";\n}\n.fa-whatsapp:before {\n  content: \"f232\";\n}\n.fa-server:before {\n  content: \"f233\";\n}\n.fa-user-plus:before {\n  content: \"f234\";\n}\n.fa-user-times:before {\n  content: \"f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"f236\";\n}\n.fa-viacoin:before {\n  content: \"f237\";\n}\n.fa-train:before {\n  content: \"f238\";\n}\n.fa-subway:before {\n  content: \"f239\";\n}\n.fa-medium:before {\n  content: \"f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"f23b\";\n}\n.fa-optin-monster:before {\n  content: \"f23c\";\n}\n.fa-opencart:before {\n  content: \"f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n  content: \"f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"f245\";\n}\n.fa-i-cursor:before {\n  content: \"f246\";\n}\n.fa-object-group:before {\n  content: \"f247\";\n}\n.fa-object-ungroup:before {\n  content: \"f248\";\n}\n.fa-sticky-note:before {\n  content: \"f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"f24c\";\n}\n.fa-clone:before {\n  content: \"f24d\";\n}\n.fa-balance-scale:before {\n  content: \"f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"f253\";\n}\n.fa-hourglass:before {\n  content: \"f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"f25b\";\n}\n.fa-trademark:before {\n  content: \"f25c\";\n}\n.fa-registered:before {\n  content: \"f25d\";\n}\n.fa-creative-commons:before {\n  content: \"f25e\";\n}\n.fa-gg:before {\n  content: \"f260\";\n}\n.fa-gg-circle:before {\n  content: \"f261\";\n}\n.fa-tripadvisor:before {\n  content: \"f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"f264\";\n}\n.fa-get-pocket:before {\n  content: \"f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"f266\";\n}\n.fa-safari:before {\n  content: \"f267\";\n}\n.fa-chrome:before {\n  content: \"f268\";\n}\n.fa-firefox:before {\n  content: \"f269\";\n}\n.fa-opera:before {\n  content: \"f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"f26c\";\n}\n.fa-contao:before {\n  content: \"f26d\";\n}\n.fa-500px:before {\n  content: \"f26e\";\n}\n.fa-amazon:before {\n  content: \"f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"f274\";\n}\n.fa-industry:before {\n  content: \"f275\";\n}\n.fa-map-pin:before {\n  content: \"f276\";\n}\n.fa-map-signs:before {\n  content: \"f277\";\n}\n.fa-map-o:before {\n  content: \"f278\";\n}\n.fa-map:before {\n  content: \"f279\";\n}\n.fa-commenting:before {\n  content: \"f27a\";\n}\n.fa-commenting-o:before {\n  content: \"f27b\";\n}\n.fa-houzz:before {\n  content: \"f27c\";\n}\n.fa-vimeo:before {\n  content: \"f27d\";\n}\n.fa-black-tie:before {\n  content: \"f27e\";\n}\n.fa-fonticons:before {\n  content: \"f280\";\n}\n.fa-reddit-alien:before {\n  content: \"f281\";\n}\n.fa-edge:before {\n  content: \"f282\";\n}\n.fa-credit-card-alt:before {\n  content: \"f283\";\n}\n.fa-codiepie:before {\n  content: \"f284\";\n}\n.fa-modx:before {\n  content: \"f285\";\n}\n.fa-fort-awesome:before {\n  content: \"f286\";\n}\n.fa-usb:before {\n  content: \"f287\";\n}\n.fa-product-hunt:before {\n  content: \"f288\";\n}\n.fa-mixcloud:before {\n  content: \"f289\";\n}\n.fa-scribd:before {\n  content: \"f28a\";\n}\n.fa-pause-circle:before {\n  content: \"f28b\";\n}\n.fa-pause-circle-o:before {\n  content: \"f28c\";\n}\n.fa-stop-circle:before {\n  content: \"f28d\";\n}\n.fa-stop-circle-o:before {\n  content: \"f28e\";\n}\n.fa-shopping-bag:before {\n  content: \"f290\";\n}\n.fa-shopping-basket:before {\n  content: \"f291\";\n}\n.fa-hashtag:before {\n  content: \"f292\";\n}\n.fa-bluetooth:before {\n  content: \"f293\";\n}\n.fa-bluetooth-b:before {\n  content: \"f294\";\n}\n.fa-percent:before {\n  content: \"f295\";\n}\n.fa-gitlab:before {\n  content: \"f296\";\n}\n.fa-wpbeginner:before {\n  content: \"f297\";\n}\n.fa-wpforms:before {\n  content: \"f298\";\n}\n.fa-envira:before {\n  content: \"f299\";\n}\n.fa-universal-access:before {\n  content: \"f29a\";\n}\n.fa-wheelchair-alt:before {\n  content: \"f29b\";\n}\n.fa-question-circle-o:before {\n  content: \"f29c\";\n}\n.fa-blind:before {\n  content: \"f29d\";\n}\n.fa-audio-description:before {\n  content: \"f29e\";\n}\n.fa-volume-control-phone:before {\n  content: \"f2a0\";\n}\n.fa-braille:before {\n  content: \"f2a1\";\n}\n.fa-assistive-listening-systems:before {\n  content: \"f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n  content: \"f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n  content: \"f2a4\";\n}\n.fa-glide:before {\n  content: \"f2a5\";\n}\n.fa-glide-g:before {\n  content: \"f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n  content: \"f2a7\";\n}\n.fa-low-vision:before {\n  content: \"f2a8\";\n}\n.fa-viadeo:before {\n  content: \"f2a9\";\n}\n.fa-viadeo-square:before {\n  content: \"f2aa\";\n}\n.fa-snapchat:before {\n  content: \"f2ab\";\n}\n.fa-snapchat-ghost:before {\n  content: \"f2ac\";\n}\n.fa-snapchat-square:before {\n  content: \"f2ad\";\n}\n.fa-pied-piper:before {\n  content: \"f2ae\";\n}\n.fa-first-order:before {\n  content: \"f2b0\";\n}\n.fa-yoast:before {\n  content: \"f2b1\";\n}\n.fa-themeisle:before {\n  content: \"f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n  content: \"f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n  content: \"f2b4\";\n}\n.fa-handshake-o:before {\n  content: \"f2b5\";\n}\n.fa-envelope-open:before {\n  content: \"f2b6\";\n}\n.fa-envelope-open-o:before {\n  content: \"f2b7\";\n}\n.fa-linode:before {\n  content: \"f2b8\";\n}\n.fa-address-book:before {\n  content: \"f2b9\";\n}\n.fa-address-book-o:before {\n  content: \"f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n  content: \"f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n  content: \"f2bc\";\n}\n.fa-user-circle:before {\n  content: \"f2bd\";\n}\n.fa-user-circle-o:before {\n  content: \"f2be\";\n}\n.fa-user-o:before {\n  content: \"f2c0\";\n}\n.fa-id-badge:before {\n  content: \"f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n  content: \"f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n  content: \"f2c3\";\n}\n.fa-quora:before {\n  content: \"f2c4\";\n}\n.fa-free-code-camp:before {\n  content: \"f2c5\";\n}\n.fa-telegram:before {\n  content: \"f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n  content: \"f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n  content: \"f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n  content: \"f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n  content: \"f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n  content: \"f2cb\";\n}\n.fa-shower:before {\n  content: \"f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n  content: \"f2cd\";\n}\n.fa-podcast:before {\n  content: \"f2ce\";\n}\n.fa-window-maximize:before {\n  content: \"f2d0\";\n}\n.fa-window-minimize:before {\n  content: \"f2d1\";\n}\n.fa-window-restore:before {\n  content: \"f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n  content: \"f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n  content: \"f2d4\";\n}\n.fa-bandcamp:before {\n  content: \"f2d5\";\n}\n.fa-grav:before {\n  content: \"f2d6\";\n}\n.fa-etsy:before {\n  content: \"f2d7\";\n}\n.fa-imdb:before {\n  content: \"f2d8\";\n}\n.fa-ravelry:before {\n  content: \"f2d9\";\n}\n.fa-eercast:before {\n  content: \"f2da\";\n}\n.fa-microchip:before {\n  content: \"f2db\";\n}\n.fa-snowflake-o:before {\n  content: \"f2dc\";\n}\n.fa-superpowers:before {\n  content: \"f2dd\";\n}\n.fa-wpexplorer:before {\n  content: \"f2de\";\n}\n.fa-meetup:before {\n  content: \"f2e0\";\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n\/*!\n*\n* IPython base\n*\n*\/\n.modal.fade .modal-dialog {\n  -webkit-transform: translate(0, 0);\n  -ms-transform: translate(0, 0);\n  -o-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\ncode {\n  color: #000;\n}\npre {\n  font-size: inherit;\n  line-height: inherit;\n}\nlabel {\n  font-weight: normal;\n}\n\/* Make the page background atleast 100% the height of the view port *\/\n\/* Make the page itself atleast 70% the height of the view port *\/\n.border-box-sizing {\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n}\n.corner-all {\n  border-radius: 2px;\n}\n.no-padding {\n  padding: 0px;\n}\n\/* Flexible box model classes *\/\n\/* Taken from Alex Russell http:\/\/infrequently.org\/2009\/08\/css-3-progress\/ *\/\n\/* This file is a compatability layer.  It allows the usage of flexible box \nmodel layouts accross multiple browsers, including older browsers.  The newest,\nuniversal implementation of the flexible box model is used when available (see\n<code>Modern browsers<\/code> comments below).  Browsers that are known to implement this \nnew spec completely include:\n    Firefox 28.0+\n    Chrome 29.0+\n    Internet Explorer 11+ \n    Opera 17.0+\nBrowsers not listed, including Safari, are supported via the styling under the\n<code>Old browsers<\/code> comments below.\n*\/\n.hbox {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n}\n.hbox > * {\n  \/* Old browsers *\/\n  -webkit-box-flex: 0;\n  -moz-box-flex: 0;\n  box-flex: 0;\n  \/* Modern browsers *\/\n  flex: none;\n}\n.vbox {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\n.vbox > * {\n  \/* Old browsers *\/\n  -webkit-box-flex: 0;\n  -moz-box-flex: 0;\n  box-flex: 0;\n  \/* Modern browsers *\/\n  flex: none;\n}\n.hbox.reverse,\n.vbox.reverse,\n.reverse {\n  \/* Old browsers *\/\n  -webkit-box-direction: reverse;\n  -moz-box-direction: reverse;\n  box-direction: reverse;\n  \/* Modern browsers *\/\n  flex-direction: row-reverse;\n}\n.hbox.box-flex0,\n.vbox.box-flex0,\n.box-flex0 {\n  \/* Old browsers *\/\n  -webkit-box-flex: 0;\n  -moz-box-flex: 0;\n  box-flex: 0;\n  \/* Modern browsers *\/\n  flex: none;\n  width: auto;\n}\n.hbox.box-flex1,\n.vbox.box-flex1,\n.box-flex1 {\n  \/* Old browsers *\/\n  -webkit-box-flex: 1;\n  -moz-box-flex: 1;\n  box-flex: 1;\n  \/* Modern browsers *\/\n  flex: 1;\n}\n.hbox.box-flex,\n.vbox.box-flex,\n.box-flex {\n  \/* Old browsers *\/\n  \/* Old browsers *\/\n  -webkit-box-flex: 1;\n  -moz-box-flex: 1;\n  box-flex: 1;\n  \/* Modern browsers *\/\n  flex: 1;\n}\n.hbox.box-flex2,\n.vbox.box-flex2,\n.box-flex2 {\n  \/* Old browsers *\/\n  -webkit-box-flex: 2;\n  -moz-box-flex: 2;\n  box-flex: 2;\n  \/* Modern browsers *\/\n  flex: 2;\n}\n.box-group1 {\n  \/*  Deprecated *\/\n  -webkit-box-flex-group: 1;\n  -moz-box-flex-group: 1;\n  box-flex-group: 1;\n}\n.box-group2 {\n  \/* Deprecated *\/\n  -webkit-box-flex-group: 2;\n  -moz-box-flex-group: 2;\n  box-flex-group: 2;\n}\n.hbox.start,\n.vbox.start,\n.start {\n  \/* Old browsers *\/\n  -webkit-box-pack: start;\n  -moz-box-pack: start;\n  box-pack: start;\n  \/* Modern browsers *\/\n  justify-content: flex-start;\n}\n.hbox.end,\n.vbox.end,\n.end {\n  \/* Old browsers *\/\n  -webkit-box-pack: end;\n  -moz-box-pack: end;\n  box-pack: end;\n  \/* Modern browsers *\/\n  justify-content: flex-end;\n}\n.hbox.center,\n.vbox.center,\n.center {\n  \/* Old browsers *\/\n  -webkit-box-pack: center;\n  -moz-box-pack: center;\n  box-pack: center;\n  \/* Modern browsers *\/\n  justify-content: center;\n}\n.hbox.baseline,\n.vbox.baseline,\n.baseline {\n  \/* Old browsers *\/\n  -webkit-box-pack: baseline;\n  -moz-box-pack: baseline;\n  box-pack: baseline;\n  \/* Modern browsers *\/\n  justify-content: baseline;\n}\n.hbox.stretch,\n.vbox.stretch,\n.stretch {\n  \/* Old browsers *\/\n  -webkit-box-pack: stretch;\n  -moz-box-pack: stretch;\n  box-pack: stretch;\n  \/* Modern browsers *\/\n  justify-content: stretch;\n}\n.hbox.align-start,\n.vbox.align-start,\n.align-start {\n  \/* Old browsers *\/\n  -webkit-box-align: start;\n  -moz-box-align: start;\n  box-align: start;\n  \/* Modern browsers *\/\n  align-items: flex-start;\n}\n.hbox.align-end,\n.vbox.align-end,\n.align-end {\n  \/* Old browsers *\/\n  -webkit-box-align: end;\n  -moz-box-align: end;\n  box-align: end;\n  \/* Modern browsers *\/\n  align-items: flex-end;\n}\n.hbox.align-center,\n.vbox.align-center,\n.align-center {\n  \/* Old browsers *\/\n  -webkit-box-align: center;\n  -moz-box-align: center;\n  box-align: center;\n  \/* Modern browsers *\/\n  align-items: center;\n}\n.hbox.align-baseline,\n.vbox.align-baseline,\n.align-baseline {\n  \/* Old browsers *\/\n  -webkit-box-align: baseline;\n  -moz-box-align: baseline;\n  box-align: baseline;\n  \/* Modern browsers *\/\n  align-items: baseline;\n}\n.hbox.align-stretch,\n.vbox.align-stretch,\n.align-stretch {\n  \/* Old browsers *\/\n  -webkit-box-align: stretch;\n  -moz-box-align: stretch;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  align-items: stretch;\n}\ndiv.error {\n  margin: 2em;\n  text-align: center;\n}\ndiv.error > h1 {\n  font-size: 500%;\n  line-height: normal;\n}\ndiv.error > p {\n  font-size: 200%;\n  line-height: normal;\n}\ndiv.traceback-wrapper {\n  text-align: left;\n  max-width: 800px;\n  margin: auto;\n}\ndiv.traceback-wrapper pre.traceback {\n  max-height: 600px;\n  overflow: auto;\n}\n\/**\n * Primary styles\n *\n * Author: Jupyter Development Team\n *\/\nbody {\n  background-color: #fff;\n  \/* This makes sure that the body covers the entire window and needs to\n       be in a different element than the display: box in wrapper below *\/\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  top: 0px;\n  bottom: 0px;\n  overflow: visible;\n}\nbody > #header {\n  \/* Initially hidden to prevent FLOUC *\/\n  display: none;\n  background-color: #fff;\n  \/* Display over codemirror *\/\n  position: relative;\n  z-index: 100;\n}\nbody > #header #header-container {\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  padding: 5px;\n  padding-bottom: 5px;\n  padding-top: 5px;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n}\nbody > #header .header-bar {\n  width: 100%;\n  height: 1px;\n  background: #e7e7e7;\n  margin-bottom: -1px;\n}\n@media print {\n  body > #header {\n    display: none !important;\n  }\n}\n#header-spacer {\n  width: 100%;\n  visibility: hidden;\n}\n@media print {\n  #header-spacer {\n    display: none;\n  }\n}\n#ipython_notebook {\n  padding-left: 0px;\n  padding-top: 1px;\n  padding-bottom: 1px;\n}\n[dir=\"rtl\"] #ipython_notebook {\n  margin-right: 10px;\n  margin-left: 0;\n}\n[dir=\"rtl\"] #ipython_notebook.pull-left {\n  float: right !important;\n  float: right;\n}\n.flex-spacer {\n  flex: 1;\n}\n#noscript {\n  width: auto;\n  padding-top: 16px;\n  padding-bottom: 16px;\n  text-align: center;\n  font-size: 22px;\n  color: red;\n  font-weight: bold;\n}\n#ipython_notebook img {\n  height: 28px;\n}\n#site {\n  width: 100%;\n  display: none;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  overflow: auto;\n}\n@media print {\n  #site {\n    height: auto !important;\n  }\n}\n\/* Smaller buttons *\/\n.ui-button .ui-button-text {\n  padding: 0.2em 0.8em;\n  font-size: 77%;\n}\ninput.ui-button {\n  padding: 0.3em 0.9em;\n}\nspan#kernel_logo_widget {\n  margin: 0 10px;\n}\nspan#login_widget {\n  float: right;\n}\n[dir=\"rtl\"] span#login_widget {\n  float: left;\n}\nspan#login_widget > .button,\n#logout {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\nspan#login_widget > .button:focus,\n#logout:focus,\nspan#login_widget > .button.focus,\n#logout.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\nspan#login_widget > .button:hover,\n#logout:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\nspan#login_widget > .button:active,\n#logout:active,\nspan#login_widget > .button.active,\n#logout.active,\n.open > .dropdown-togglespan#login_widget > .button,\n.open > .dropdown-toggle#logout {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\nspan#login_widget > .button:active:hover,\n#logout:active:hover,\nspan#login_widget > .button.active:hover,\n#logout.active:hover,\n.open > .dropdown-togglespan#login_widget > .button:hover,\n.open > .dropdown-toggle#logout:hover,\nspan#login_widget > .button:active:focus,\n#logout:active:focus,\nspan#login_widget > .button.active:focus,\n#logout.active:focus,\n.open > .dropdown-togglespan#login_widget > .button:focus,\n.open > .dropdown-toggle#logout:focus,\nspan#login_widget > .button:active.focus,\n#logout:active.focus,\nspan#login_widget > .button.active.focus,\n#logout.active.focus,\n.open > .dropdown-togglespan#login_widget > .button.focus,\n.open > .dropdown-toggle#logout.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\nspan#login_widget > .button:active,\n#logout:active,\nspan#login_widget > .button.active,\n#logout.active,\n.open > .dropdown-togglespan#login_widget > .button,\n.open > .dropdown-toggle#logout {\n  background-image: none;\n}\nspan#login_widget > .button.disabled:hover,\n#logout.disabled:hover,\nspan#login_widget > .button[disabled]:hover,\n#logout[disabled]:hover,\nfieldset[disabled] span#login_widget > .button:hover,\nfieldset[disabled] #logout:hover,\nspan#login_widget > .button.disabled:focus,\n#logout.disabled:focus,\nspan#login_widget > .button[disabled]:focus,\n#logout[disabled]:focus,\nfieldset[disabled] span#login_widget > .button:focus,\nfieldset[disabled] #logout:focus,\nspan#login_widget > .button.disabled.focus,\n#logout.disabled.focus,\nspan#login_widget > .button[disabled].focus,\n#logout[disabled].focus,\nfieldset[disabled] span#login_widget > .button.focus,\nfieldset[disabled] #logout.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\nspan#login_widget > .button .badge,\n#logout .badge {\n  color: #fff;\n  background-color: #333;\n}\n.nav-header {\n  text-transform: none;\n}\n#header > span {\n  margin-top: 10px;\n}\n.modal_stretch .modal-dialog {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  min-height: 80vh;\n}\n.modal_stretch .modal-dialog .modal-body {\n  max-height: calc(100vh - 200px);\n  overflow: auto;\n  flex: 1;\n}\n.modal-header {\n  cursor: move;\n}\n@media (min-width: 768px) {\n  .modal .modal-dialog {\n    width: 700px;\n  }\n}\n@media (min-width: 768px) {\n  select.form-control {\n    margin-left: 12px;\n    margin-right: 12px;\n  }\n}\n\/*!\n*\n* IPython auth\n*\n*\/\n.center-nav {\n  display: inline-block;\n  margin-bottom: -4px;\n}\n[dir=\"rtl\"] .center-nav form.pull-left {\n  float: right !important;\n  float: right;\n}\n[dir=\"rtl\"] .center-nav .navbar-text {\n  float: right;\n}\n[dir=\"rtl\"] .navbar-inner {\n  text-align: right;\n}\n[dir=\"rtl\"] div.text-left {\n  text-align: right;\n}\n\/*!\n*\n* IPython tree view\n*\n*\/\n\/* We need an invisible input field on top of the sentense*\/\n\/* \"Drag file onto the list ...\" *\/\n.alternate_upload {\n  background-color: none;\n  display: inline;\n}\n.alternate_upload.form {\n  padding: 0;\n  margin: 0;\n}\n.alternate_upload input.fileinput {\n  position: absolute;\n  display: block;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  cursor: pointer;\n  opacity: 0;\n  z-index: 2;\n}\n.alternate_upload .btn-xs > input.fileinput {\n  margin: -1px -5px;\n}\n.alternate_upload .btn-upload {\n  position: relative;\n  height: 22px;\n}\n::-webkit-file-upload-button {\n  cursor: pointer;\n}\n\/**\n * Primary styles\n *\n * Author: Jupyter Development Team\n *\/\nul#tabs {\n  margin-bottom: 4px;\n}\nul#tabs a {\n  padding-top: 6px;\n  padding-bottom: 4px;\n}\n[dir=\"rtl\"] ul#tabs.nav-tabs > li {\n  float: right;\n}\n[dir=\"rtl\"] ul#tabs.nav.nav-tabs {\n  padding-right: 0;\n}\nul.breadcrumb a:focus,\nul.breadcrumb a:hover {\n  text-decoration: none;\n}\nul.breadcrumb i.icon-home {\n  font-size: 16px;\n  margin-right: 4px;\n}\nul.breadcrumb span {\n  color: #5e5e5e;\n}\n.list_toolbar {\n  padding: 4px 0 4px 0;\n  vertical-align: middle;\n}\n.list_toolbar .tree-buttons {\n  padding-top: 1px;\n}\n[dir=\"rtl\"] .list_toolbar .tree-buttons .pull-right {\n  float: left !important;\n  float: left;\n}\n[dir=\"rtl\"] .list_toolbar .col-sm-4,\n[dir=\"rtl\"] .list_toolbar .col-sm-8 {\n  float: right;\n}\n.dynamic-buttons {\n  padding-top: 3px;\n  display: inline-block;\n}\n.list_toolbar [class*=\"span\"] {\n  min-height: 24px;\n}\n.list_header {\n  font-weight: bold;\n  background-color: #EEE;\n}\n.list_placeholder {\n  font-weight: bold;\n  padding-top: 4px;\n  padding-bottom: 4px;\n  padding-left: 7px;\n  padding-right: 7px;\n}\n.list_container {\n  margin-top: 4px;\n  margin-bottom: 20px;\n  border: 1px solid #ddd;\n  border-radius: 2px;\n}\n.list_container > div {\n  border-bottom: 1px solid #ddd;\n}\n.list_container > div:hover .list-item {\n  background-color: red;\n}\n.list_container > div:last-child {\n  border: none;\n}\n.list_item:hover .list_item {\n  background-color: #ddd;\n}\n.list_item a {\n  text-decoration: none;\n}\n.list_item:hover {\n  background-color: #fafafa;\n}\n.list_header > div,\n.list_item > div {\n  padding-top: 4px;\n  padding-bottom: 4px;\n  padding-left: 7px;\n  padding-right: 7px;\n  line-height: 22px;\n}\n.list_header > div input,\n.list_item > div input {\n  margin-right: 7px;\n  margin-left: 14px;\n  vertical-align: text-bottom;\n  line-height: 22px;\n  position: relative;\n  top: -1px;\n}\n.list_header > div .item_link,\n.list_item > div .item_link {\n  margin-left: -1px;\n  vertical-align: baseline;\n  line-height: 22px;\n}\n[dir=\"rtl\"] .list_item > div input {\n  margin-right: 0;\n}\n.new-file input[type=checkbox] {\n  visibility: hidden;\n}\n.item_name {\n  line-height: 22px;\n  height: 24px;\n}\n.item_icon {\n  font-size: 14px;\n  color: #5e5e5e;\n  margin-right: 7px;\n  margin-left: 7px;\n  line-height: 22px;\n  vertical-align: baseline;\n}\n.item_modified {\n  margin-right: 7px;\n  margin-left: 7px;\n}\n[dir=\"rtl\"] .item_modified.pull-right {\n  float: left !important;\n  float: left;\n}\n.item_buttons {\n  line-height: 1em;\n  margin-left: -5px;\n}\n.item_buttons .btn,\n.item_buttons .btn-group,\n.item_buttons .input-group {\n  float: left;\n}\n.item_buttons > .btn,\n.item_buttons > .btn-group,\n.item_buttons > .input-group {\n  margin-left: 5px;\n}\n.item_buttons .btn {\n  min-width: 13ex;\n}\n.item_buttons .running-indicator {\n  padding-top: 4px;\n  color: #5cb85c;\n}\n.item_buttons .kernel-name {\n  padding-top: 4px;\n  color: #5bc0de;\n  margin-right: 7px;\n  float: left;\n}\n[dir=\"rtl\"] .item_buttons.pull-right {\n  float: left !important;\n  float: left;\n}\n[dir=\"rtl\"] .item_buttons .kernel-name {\n  margin-left: 7px;\n  float: right;\n}\n.toolbar_info {\n  height: 24px;\n  line-height: 24px;\n}\n.list_item input:not([type=checkbox]) {\n  padding-top: 3px;\n  padding-bottom: 3px;\n  height: 22px;\n  line-height: 14px;\n  margin: 0px;\n}\n.highlight_text {\n  color: blue;\n}\n#project_name {\n  display: inline-block;\n  padding-left: 7px;\n  margin-left: -2px;\n}\n#project_name > .breadcrumb {\n  padding: 0px;\n  margin-bottom: 0px;\n  background-color: transparent;\n  font-weight: bold;\n}\n.sort_button {\n  display: inline-block;\n  padding-left: 7px;\n}\n[dir=\"rtl\"] .sort_button.pull-right {\n  float: left !important;\n  float: left;\n}\n#tree-selector {\n  padding-right: 0px;\n}\n#button-select-all {\n  min-width: 50px;\n}\n[dir=\"rtl\"] #button-select-all.btn {\n  float: right ;\n}\n#select-all {\n  margin-left: 7px;\n  margin-right: 2px;\n  margin-top: 2px;\n  height: 16px;\n}\n[dir=\"rtl\"] #select-all.pull-left {\n  float: right !important;\n  float: right;\n}\n.menu_icon {\n  margin-right: 2px;\n}\n.tab-content .row {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n.folder_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f114\";\n}\n.folder_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.folder_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.folder_icon:before.pull-left {\n  margin-right: .3em;\n}\n.folder_icon:before.pull-right {\n  margin-left: .3em;\n}\n.notebook_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f02d\";\n  position: relative;\n  top: -1px;\n}\n.notebook_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.notebook_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.notebook_icon:before.pull-left {\n  margin-right: .3em;\n}\n.notebook_icon:before.pull-right {\n  margin-left: .3em;\n}\n.running_notebook_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f02d\";\n  position: relative;\n  top: -1px;\n  color: #5cb85c;\n}\n.running_notebook_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.running_notebook_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.running_notebook_icon:before.pull-left {\n  margin-right: .3em;\n}\n.running_notebook_icon:before.pull-right {\n  margin-left: .3em;\n}\n.file_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f016\";\n  position: relative;\n  top: -2px;\n}\n.file_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.file_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.file_icon:before.pull-left {\n  margin-right: .3em;\n}\n.file_icon:before.pull-right {\n  margin-left: .3em;\n}\n#notebook_toolbar .pull-right {\n  padding-top: 0px;\n  margin-right: -1px;\n}\nul#new-menu {\n  left: auto;\n  right: 0;\n}\n#new-menu .dropdown-header {\n  font-size: 10px;\n  border-bottom: 1px solid #e5e5e5;\n  padding: 0 0 3px;\n  margin: -3px 20px 0;\n}\n.kernel-menu-icon {\n  padding-right: 12px;\n  width: 24px;\n  content: \"f096\";\n}\n.kernel-menu-icon:before {\n  content: \"f096\";\n}\n.kernel-menu-icon-current:before {\n  content: \"f00c\";\n}\n#tab_content {\n  padding-top: 20px;\n}\n#running .panel-group .panel {\n  margin-top: 3px;\n  margin-bottom: 1em;\n}\n#running .panel-group .panel .panel-heading {\n  background-color: #EEE;\n  padding-top: 4px;\n  padding-bottom: 4px;\n  padding-left: 7px;\n  padding-right: 7px;\n  line-height: 22px;\n}\n#running .panel-group .panel .panel-heading a:focus,\n#running .panel-group .panel .panel-heading a:hover {\n  text-decoration: none;\n}\n#running .panel-group .panel .panel-body {\n  padding: 0px;\n}\n#running .panel-group .panel .panel-body .list_container {\n  margin-top: 0px;\n  margin-bottom: 0px;\n  border: 0px;\n  border-radius: 0px;\n}\n#running .panel-group .panel .panel-body .list_container .list_item {\n  border-bottom: 1px solid #ddd;\n}\n#running .panel-group .panel .panel-body .list_container .list_item:last-child {\n  border-bottom: 0px;\n}\n.delete-button {\n  display: none;\n}\n.duplicate-button {\n  display: none;\n}\n.rename-button {\n  display: none;\n}\n.move-button {\n  display: none;\n}\n.download-button {\n  display: none;\n}\n.shutdown-button {\n  display: none;\n}\n.dynamic-instructions {\n  display: inline-block;\n  padding-top: 4px;\n}\n\/*!\n*\n* IPython text editor webapp\n*\n*\/\n.selected-keymap i.fa {\n  padding: 0px 5px;\n}\n.selected-keymap i.fa:before {\n  content: \"f00c\";\n}\n#mode-menu {\n  overflow: auto;\n  max-height: 20em;\n}\n.edit_app #header {\n  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n}\n.edit_app #menubar .navbar {\n  \/* Use a negative 1 bottom margin, so the border overlaps the border of the\n    header *\/\n  margin-bottom: -1px;\n}\n.dirty-indicator {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  width: 20px;\n}\n.dirty-indicator.fa-pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator.fa-pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator.pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator.pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator-dirty {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  width: 20px;\n}\n.dirty-indicator-dirty.fa-pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator-dirty.fa-pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator-dirty.pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator-dirty.pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator-clean {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  width: 20px;\n}\n.dirty-indicator-clean.fa-pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator-clean.fa-pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator-clean.pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator-clean.pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator-clean:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f00c\";\n}\n.dirty-indicator-clean:before.fa-pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator-clean:before.fa-pull-right {\n  margin-left: .3em;\n}\n.dirty-indicator-clean:before.pull-left {\n  margin-right: .3em;\n}\n.dirty-indicator-clean:before.pull-right {\n  margin-left: .3em;\n}\n#filename {\n  font-size: 16pt;\n  display: table;\n  padding: 0px 5px;\n}\n#current-mode {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n#texteditor-backdrop {\n  padding-top: 20px;\n  padding-bottom: 20px;\n}\n@media not print {\n  #texteditor-backdrop {\n    background-color: #EEE;\n  }\n}\n@media print {\n  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,\n  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {\n    background-color: #fff;\n  }\n}\n@media not print {\n  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,\n  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {\n    background-color: #fff;\n  }\n}\n@media not print {\n  #texteditor-backdrop #texteditor-container {\n    padding: 0px;\n    background-color: #fff;\n    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  }\n}\n.CodeMirror-dialog {\n  background-color: #fff;\n}\n\/*!\n*\n* IPython notebook\n*\n*\/\n\/* CSS font colors for translated ANSI escape sequences *\/\n\/* The color values are a mix of\n   http:\/\/www.xcolors.net\/dl\/baskerville-ivorylight and\n   http:\/\/www.xcolors.net\/dl\/euphrasia *\/\n.ansi-black-fg {\n  color: #3E424D;\n}\n.ansi-black-bg {\n  background-color: #3E424D;\n}\n.ansi-black-intense-fg {\n  color: #282C36;\n}\n.ansi-black-intense-bg {\n  background-color: #282C36;\n}\n.ansi-red-fg {\n  color: #E75C58;\n}\n.ansi-red-bg {\n  background-color: #E75C58;\n}\n.ansi-red-intense-fg {\n  color: #B22B31;\n}\n.ansi-red-intense-bg {\n  background-color: #B22B31;\n}\n.ansi-green-fg {\n  color: #00A250;\n}\n.ansi-green-bg {\n  background-color: #00A250;\n}\n.ansi-green-intense-fg {\n  color: #007427;\n}\n.ansi-green-intense-bg {\n  background-color: #007427;\n}\n.ansi-yellow-fg {\n  color: #DDB62B;\n}\n.ansi-yellow-bg {\n  background-color: #DDB62B;\n}\n.ansi-yellow-intense-fg {\n  color: #B27D12;\n}\n.ansi-yellow-intense-bg {\n  background-color: #B27D12;\n}\n.ansi-blue-fg {\n  color: #208FFB;\n}\n.ansi-blue-bg {\n  background-color: #208FFB;\n}\n.ansi-blue-intense-fg {\n  color: #0065CA;\n}\n.ansi-blue-intense-bg {\n  background-color: #0065CA;\n}\n.ansi-magenta-fg {\n  color: #D160C4;\n}\n.ansi-magenta-bg {\n  background-color: #D160C4;\n}\n.ansi-magenta-intense-fg {\n  color: #A03196;\n}\n.ansi-magenta-intense-bg {\n  background-color: #A03196;\n}\n.ansi-cyan-fg {\n  color: #60C6C8;\n}\n.ansi-cyan-bg {\n  background-color: #60C6C8;\n}\n.ansi-cyan-intense-fg {\n  color: #258F8F;\n}\n.ansi-cyan-intense-bg {\n  background-color: #258F8F;\n}\n.ansi-white-fg {\n  color: #C5C1B4;\n}\n.ansi-white-bg {\n  background-color: #C5C1B4;\n}\n.ansi-white-intense-fg {\n  color: #A1A6B2;\n}\n.ansi-white-intense-bg {\n  background-color: #A1A6B2;\n}\n.ansi-default-inverse-fg {\n  color: #FFFFFF;\n}\n.ansi-default-inverse-bg {\n  background-color: #000000;\n}\n.ansi-bold {\n  font-weight: bold;\n}\n.ansi-underline {\n  text-decoration: underline;\n}\n\/* The following styles are deprecated an will be removed in a future version *\/\n.ansibold {\n  font-weight: bold;\n}\n.ansi-inverse {\n  outline: 0.5px dotted;\n}\n\/* use dark versions for foreground, to improve visibility *\/\n.ansiblack {\n  color: black;\n}\n.ansired {\n  color: darkred;\n}\n.ansigreen {\n  color: darkgreen;\n}\n.ansiyellow {\n  color: #c4a000;\n}\n.ansiblue {\n  color: darkblue;\n}\n.ansipurple {\n  color: darkviolet;\n}\n.ansicyan {\n  color: steelblue;\n}\n.ansigray {\n  color: gray;\n}\n\/* and light for background, for the same reason *\/\n.ansibgblack {\n  background-color: black;\n}\n.ansibgred {\n  background-color: red;\n}\n.ansibggreen {\n  background-color: green;\n}\n.ansibgyellow {\n  background-color: yellow;\n}\n.ansibgblue {\n  background-color: blue;\n}\n.ansibgpurple {\n  background-color: magenta;\n}\n.ansibgcyan {\n  background-color: cyan;\n}\n.ansibggray {\n  background-color: gray;\n}\ndiv.cell {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  border-radius: 2px;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  border-width: 1px;\n  border-style: solid;\n  border-color: transparent;\n  width: 100%;\n  padding: 5px;\n  \/* This acts as a spacer between cells, that is outside the border *\/\n  margin: 0px;\n  outline: none;\n  position: relative;\n  overflow: visible;\n}\ndiv.cell:before {\n  position: absolute;\n  display: block;\n  top: -1px;\n  left: -1px;\n  width: 5px;\n  height: calc(100% +  2px);\n  content: '';\n  background: transparent;\n}\ndiv.cell.jupyter-soft-selected {\n  border-left-color: #E3F2FD;\n  border-left-width: 1px;\n  padding-left: 5px;\n  border-right-color: #E3F2FD;\n  border-right-width: 1px;\n  background: #E3F2FD;\n}\n@media print {\n  div.cell.jupyter-soft-selected {\n    border-color: transparent;\n  }\n}\ndiv.cell.selected,\ndiv.cell.selected.jupyter-soft-selected {\n  border-color: #ababab;\n}\ndiv.cell.selected:before,\ndiv.cell.selected.jupyter-soft-selected:before {\n  position: absolute;\n  display: block;\n  top: -1px;\n  left: -1px;\n  width: 5px;\n  height: calc(100% +  2px);\n  content: '';\n  background: #42A5F5;\n}\n@media print {\n  div.cell.selected,\n  div.cell.selected.jupyter-soft-selected {\n    border-color: transparent;\n  }\n}\n.edit_mode div.cell.selected {\n  border-color: #66BB6A;\n}\n.edit_mode div.cell.selected:before {\n  position: absolute;\n  display: block;\n  top: -1px;\n  left: -1px;\n  width: 5px;\n  height: calc(100% +  2px);\n  content: '';\n  background: #66BB6A;\n}\n@media print {\n  .edit_mode div.cell.selected {\n    border-color: transparent;\n  }\n}\n.prompt {\n  \/* This needs to be wide enough for 3 digit prompt numbers: In[100]: *\/\n  min-width: 14ex;\n  \/* This padding is tuned to match the padding on the CodeMirror editor. *\/\n  padding: 0.4em;\n  margin: 0px;\n  font-family: monospace;\n  text-align: right;\n  \/* This has to match that of the the CodeMirror class line-height below *\/\n  line-height: 1.21429em;\n  \/* Don't highlight prompt number selection *\/\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  \/* Use default cursor *\/\n  cursor: default;\n}\n@media (max-width: 540px) {\n  .prompt {\n    text-align: left;\n  }\n}\ndiv.inner_cell {\n  min-width: 0;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  \/* Old browsers *\/\n  -webkit-box-flex: 1;\n  -moz-box-flex: 1;\n  box-flex: 1;\n  \/* Modern browsers *\/\n  flex: 1;\n}\n\/* input_area and input_prompt must match in top border and margin for alignment *\/\ndiv.input_area {\n  border: 1px solid #cfcfcf;\n  border-radius: 2px;\n  background: #f7f7f7;\n  line-height: 1.21429em;\n}\n\/* This is needed so that empty prompt areas can collapse to zero height when there\n   is no content in the output_subarea and the prompt. The main purpose of this is\n   to make sure that empty JavaScript output_subareas have no height. *\/\ndiv.prompt:empty {\n  padding-top: 0;\n  padding-bottom: 0;\n}\ndiv.unrecognized_cell {\n  padding: 5px 5px 5px 0px;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n}\ndiv.unrecognized_cell .inner_cell {\n  border-radius: 2px;\n  padding: 5px;\n  font-weight: bold;\n  color: red;\n  border: 1px solid #cfcfcf;\n  background: #eaeaea;\n}\ndiv.unrecognized_cell .inner_cell a {\n  color: inherit;\n  text-decoration: none;\n}\ndiv.unrecognized_cell .inner_cell a:hover {\n  color: inherit;\n  text-decoration: none;\n}\n@media (max-width: 540px) {\n  div.unrecognized_cell > div.prompt {\n    display: none;\n  }\n}\ndiv.code_cell {\n  \/* avoid page breaking on code cells when printing *\/\n}\n@media print {\n  div.code_cell {\n    page-break-inside: avoid;\n  }\n}\n\/* any special styling for code cells that are currently running goes here *\/\ndiv.input {\n  page-break-inside: avoid;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n}\n@media (max-width: 540px) {\n  div.input {\n    \/* Old browsers *\/\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-box-align: stretch;\n    display: -moz-box;\n    -moz-box-orient: vertical;\n    -moz-box-align: stretch;\n    display: box;\n    box-orient: vertical;\n    box-align: stretch;\n    \/* Modern browsers *\/\n    display: flex;\n    flex-direction: column;\n    align-items: stretch;\n  }\n}\n\/* input_area and input_prompt must match in top border and margin for alignment *\/\ndiv.input_prompt {\n  color: #303F9F;\n  border-top: 1px solid transparent;\n}\ndiv.input_area > div.highlight {\n  margin: 0.4em;\n  border: none;\n  padding: 0px;\n  background-color: transparent;\n}\ndiv.input_area > div.highlight > pre {\n  margin: 0px;\n  border: none;\n  padding: 0px;\n  background-color: transparent;\n}\n\/* The following gets added to the <head> if it is detected that the user has a\n * monospace font with inconsistent normal\/bold\/italic height.  See\n * notebookmain.js.  Such fonts will have keywords vertically offset with\n * respect to the rest of the text.  The user should select a better font.\n * See: https:\/\/github.com\/ipython\/ipython\/issues\/1503\n *\n * .CodeMirror span {\n *      vertical-align: bottom;\n * }\n *\/\n.CodeMirror {\n  line-height: 1.21429em;\n  \/* Changed from 1em to our global default *\/\n  font-size: 14px;\n  height: auto;\n  \/* Changed to auto to autogrow *\/\n  background: none;\n  \/* Changed from white to allow our bg to show through *\/\n}\n.CodeMirror-scroll {\n  \/*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*\/\n  \/*  We have found that if it is visible, vertical scrollbars appear with font size changes.*\/\n  overflow-y: hidden;\n  overflow-x: auto;\n}\n.CodeMirror-lines {\n  \/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because *\/\n  \/* we have set a different line-height and want this to scale with that. *\/\n  \/* Note that this should set vertical padding only, since CodeMirror assumes\n       that horizontal padding will be set on CodeMirror pre *\/\n  padding: 0.4em 0;\n}\n.CodeMirror-linenumber {\n  padding: 0 8px 0 4px;\n}\n.CodeMirror-gutters {\n  border-bottom-left-radius: 2px;\n  border-top-left-radius: 2px;\n}\n.CodeMirror pre {\n  \/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,\n    use .CodeMirror-lines for vertical *\/\n  padding: 0 0.4em;\n  border: 0;\n  border-radius: 0;\n}\n.CodeMirror-cursor {\n  border-left: 1.4px solid black;\n}\n@media screen and (min-width: 2138px) and (max-width: 4319px) {\n  .CodeMirror-cursor {\n    border-left: 2px solid black;\n  }\n}\n@media screen and (min-width: 4320px) {\n  .CodeMirror-cursor {\n    border-left: 4px solid black;\n  }\n}\n\/*\nOriginal style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>\nAdapted from GitHub theme\n*\/\n.highlight-base {\n  color: #000;\n}\n.highlight-variable {\n  color: #000;\n}\n.highlight-variable-2 {\n  color: #1a1a1a;\n}\n.highlight-variable-3 {\n  color: #333333;\n}\n.highlight-string {\n  color: #BA2121;\n}\n.highlight-comment {\n  color: #408080;\n  font-style: italic;\n}\n.highlight-number {\n  color: #080;\n}\n.highlight-atom {\n  color: #88F;\n}\n.highlight-keyword {\n  color: #008000;\n  font-weight: bold;\n}\n.highlight-builtin {\n  color: #008000;\n}\n.highlight-error {\n  color: #f00;\n}\n.highlight-operator {\n  color: #AA22FF;\n  font-weight: bold;\n}\n.highlight-meta {\n  color: #AA22FF;\n}\n\/* previously not defined, copying from default codemirror *\/\n.highlight-def {\n  color: #00f;\n}\n.highlight-string-2 {\n  color: #f50;\n}\n.highlight-qualifier {\n  color: #555;\n}\n.highlight-bracket {\n  color: #997;\n}\n.highlight-tag {\n  color: #170;\n}\n.highlight-attribute {\n  color: #00c;\n}\n.highlight-header {\n  color: blue;\n}\n.highlight-quote {\n  color: #090;\n}\n.highlight-link {\n  color: #00c;\n}\n\/* apply the same style to codemirror *\/\n.cm-s-ipython span.cm-keyword {\n  color: #008000;\n  font-weight: bold;\n}\n.cm-s-ipython span.cm-atom {\n  color: #88F;\n}\n.cm-s-ipython span.cm-number {\n  color: #080;\n}\n.cm-s-ipython span.cm-def {\n  color: #00f;\n}\n.cm-s-ipython span.cm-variable {\n  color: #000;\n}\n.cm-s-ipython span.cm-operator {\n  color: #AA22FF;\n  font-weight: bold;\n}\n.cm-s-ipython span.cm-variable-2 {\n  color: #1a1a1a;\n}\n.cm-s-ipython span.cm-variable-3 {\n  color: #333333;\n}\n.cm-s-ipython span.cm-comment {\n  color: #408080;\n  font-style: italic;\n}\n.cm-s-ipython span.cm-string {\n  color: #BA2121;\n}\n.cm-s-ipython span.cm-string-2 {\n  color: #f50;\n}\n.cm-s-ipython span.cm-meta {\n  color: #AA22FF;\n}\n.cm-s-ipython span.cm-qualifier {\n  color: #555;\n}\n.cm-s-ipython span.cm-builtin {\n  color: #008000;\n}\n.cm-s-ipython span.cm-bracket {\n  color: #997;\n}\n.cm-s-ipython span.cm-tag {\n  color: #170;\n}\n.cm-s-ipython span.cm-attribute {\n  color: #00c;\n}\n.cm-s-ipython span.cm-header {\n  color: blue;\n}\n.cm-s-ipython span.cm-quote {\n  color: #090;\n}\n.cm-s-ipython span.cm-link {\n  color: #00c;\n}\n.cm-s-ipython span.cm-error {\n  color: #f00;\n}\n.cm-s-ipython span.cm-tab {\n  background: url(data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH\/ZOdnZOcM\/sgk\/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j\/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);\n  background-position: right;\n  background-repeat: no-repeat;\n}\ndiv.output_wrapper {\n  \/* this position must be relative to enable descendents to be absolute within it *\/\n  position: relative;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  z-index: 1;\n}\n\/* class for the output area when it should be height-limited *\/\ndiv.output_scroll {\n  \/* ideally, this would be max-height, but FF barfs all over that *\/\n  height: 24em;\n  \/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap *\/\n  width: 100%;\n  overflow: auto;\n  border-radius: 2px;\n  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);\n  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);\n  display: block;\n}\n\/* output div while it is collapsed *\/\ndiv.output_collapsed {\n  margin: 0px;\n  padding: 0px;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\ndiv.out_prompt_overlay {\n  height: 100%;\n  padding: 0px 0.4em;\n  position: absolute;\n  border-radius: 2px;\n}\ndiv.out_prompt_overlay:hover {\n  \/* use inner shadow to get border that is computed the same on WebKit\/FF *\/\n  -webkit-box-shadow: inset 0 0 1px #000;\n  box-shadow: inset 0 0 1px #000;\n  background: rgba(240, 240, 240, 0.5);\n}\ndiv.output_prompt {\n  color: #D84315;\n}\n\/* This class is the outer container of all output sections. *\/\ndiv.output_area {\n  padding: 0px;\n  page-break-inside: avoid;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n}\ndiv.output_area .MathJax_Display {\n  text-align: left !important;\n}\ndiv.output_area .rendered_html table {\n  margin-left: 0;\n  margin-right: 0;\n}\ndiv.output_area .rendered_html img {\n  margin-left: 0;\n  margin-right: 0;\n}\ndiv.output_area img,\ndiv.output_area svg {\n  max-width: 100%;\n  height: auto;\n}\ndiv.output_area img.unconfined,\ndiv.output_area svg.unconfined {\n  max-width: none;\n}\ndiv.output_area .mglyph > img {\n  max-width: none;\n}\n\/* This is needed to protect the pre formating from global settings such\n   as that of bootstrap *\/\n.output {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: vertical;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: vertical;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\n@media (max-width: 540px) {\n  div.output_area {\n    \/* Old browsers *\/\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-box-align: stretch;\n    display: -moz-box;\n    -moz-box-orient: vertical;\n    -moz-box-align: stretch;\n    display: box;\n    box-orient: vertical;\n    box-align: stretch;\n    \/* Modern browsers *\/\n    display: flex;\n    flex-direction: column;\n    align-items: stretch;\n  }\n}\ndiv.output_area pre {\n  margin: 0;\n  padding: 1px 0 1px 0;\n  border: 0;\n  vertical-align: baseline;\n  color: black;\n  background-color: transparent;\n  border-radius: 0;\n}\n\/* This class is for the output subarea inside the output_area and after\n   the prompt div. *\/\ndiv.output_subarea {\n  overflow-x: auto;\n  padding: 0.4em;\n  \/* Old browsers *\/\n  -webkit-box-flex: 1;\n  -moz-box-flex: 1;\n  box-flex: 1;\n  \/* Modern browsers *\/\n  flex: 1;\n  max-width: calc(100% - 14ex);\n}\ndiv.output_scroll div.output_subarea {\n  overflow-x: visible;\n}\n\/* The rest of the output_* classes are for special styling of the different\n   output types *\/\n\/* all text output has this class: *\/\ndiv.output_text {\n  text-align: left;\n  color: #000;\n  \/* This has to match that of the the CodeMirror class line-height below *\/\n  line-height: 1.21429em;\n}\n\/* stdout\/stderr are 'text' as well as 'stream', but execute_result\/error are *not* streams *\/\ndiv.output_stderr {\n  background: #fdd;\n  \/* very light red background for stderr *\/\n}\ndiv.output_latex {\n  text-align: left;\n}\n\/* Empty output_javascript divs should have no height *\/\ndiv.output_javascript:empty {\n  padding: 0;\n}\n.js-error {\n  color: darkred;\n}\n\/* raw_input styles *\/\ndiv.raw_input_container {\n  line-height: 1.21429em;\n  padding-top: 5px;\n}\npre.raw_input_prompt {\n  \/* nothing needed here. *\/\n}\ninput.raw_input {\n  font-family: monospace;\n  font-size: inherit;\n  color: inherit;\n  width: auto;\n  \/* make sure input baseline aligns with prompt *\/\n  vertical-align: baseline;\n  \/* padding + margin = 0.5em between prompt and cursor *\/\n  padding: 0em 0.25em;\n  margin: 0em 0.25em;\n}\ninput.raw_input:focus {\n  box-shadow: none;\n}\np.p-space {\n  margin-bottom: 10px;\n}\ndiv.output_unrecognized {\n  padding: 5px;\n  font-weight: bold;\n  color: red;\n}\ndiv.output_unrecognized a {\n  color: inherit;\n  text-decoration: none;\n}\ndiv.output_unrecognized a:hover {\n  color: inherit;\n  text-decoration: none;\n}\n.rendered_html {\n  color: #000;\n  \/* any extras will just be numbers: *\/\n}\n.rendered_html em {\n  font-style: italic;\n}\n.rendered_html strong {\n  font-weight: bold;\n}\n.rendered_html u {\n  text-decoration: underline;\n}\n.rendered_html :link {\n  text-decoration: underline;\n}\n.rendered_html :visited {\n  text-decoration: underline;\n}\n.rendered_html h1 {\n  font-size: 185.7%;\n  margin: 1.08em 0 0 0;\n  font-weight: bold;\n  line-height: 1.0;\n}\n.rendered_html h2 {\n  font-size: 157.1%;\n  margin: 1.27em 0 0 0;\n  font-weight: bold;\n  line-height: 1.0;\n}\n.rendered_html h3 {\n  font-size: 128.6%;\n  margin: 1.55em 0 0 0;\n  font-weight: bold;\n  line-height: 1.0;\n}\n.rendered_html h4 {\n  font-size: 100%;\n  margin: 2em 0 0 0;\n  font-weight: bold;\n  line-height: 1.0;\n}\n.rendered_html h5 {\n  font-size: 100%;\n  margin: 2em 0 0 0;\n  font-weight: bold;\n  line-height: 1.0;\n  font-style: italic;\n}\n.rendered_html h6 {\n  font-size: 100%;\n  margin: 2em 0 0 0;\n  font-weight: bold;\n  line-height: 1.0;\n  font-style: italic;\n}\n.rendered_html h1:first-child {\n  margin-top: 0.538em;\n}\n.rendered_html h2:first-child {\n  margin-top: 0.636em;\n}\n.rendered_html h3:first-child {\n  margin-top: 0.777em;\n}\n.rendered_html h4:first-child {\n  margin-top: 1em;\n}\n.rendered_html h5:first-child {\n  margin-top: 1em;\n}\n.rendered_html h6:first-child {\n  margin-top: 1em;\n}\n.rendered_html ul:not(.list-inline),\n.rendered_html ol:not(.list-inline) {\n  padding-left: 2em;\n}\n.rendered_html ul {\n  list-style: disc;\n}\n.rendered_html ul ul {\n  list-style: square;\n  margin-top: 0;\n}\n.rendered_html ul ul ul {\n  list-style: circle;\n}\n.rendered_html ol {\n  list-style: decimal;\n}\n.rendered_html ol ol {\n  list-style: upper-alpha;\n  margin-top: 0;\n}\n.rendered_html ol ol ol {\n  list-style: lower-alpha;\n}\n.rendered_html ol ol ol ol {\n  list-style: lower-roman;\n}\n.rendered_html ol ol ol ol ol {\n  list-style: decimal;\n}\n.rendered_html * + ul {\n  margin-top: 1em;\n}\n.rendered_html * + ol {\n  margin-top: 1em;\n}\n.rendered_html hr {\n  color: black;\n  background-color: black;\n}\n.rendered_html pre {\n  margin: 1em 2em;\n  padding: 0px;\n  background-color: #fff;\n}\n.rendered_html code {\n  background-color: #eff0f1;\n}\n.rendered_html p code {\n  padding: 1px 5px;\n}\n.rendered_html pre code {\n  background-color: #fff;\n}\n.rendered_html pre,\n.rendered_html code {\n  border: 0;\n  color: #000;\n  font-size: 100%;\n}\n.rendered_html blockquote {\n  margin: 1em 2em;\n}\n.rendered_html table {\n  margin-left: auto;\n  margin-right: auto;\n  border: none;\n  border-collapse: collapse;\n  border-spacing: 0;\n  color: black;\n  font-size: 12px;\n  table-layout: fixed;\n}\n.rendered_html thead {\n  border-bottom: 1px solid black;\n  vertical-align: bottom;\n}\n.rendered_html tr,\n.rendered_html th,\n.rendered_html td {\n  text-align: right;\n  vertical-align: middle;\n  padding: 0.5em 0.5em;\n  line-height: normal;\n  white-space: normal;\n  max-width: none;\n  border: none;\n}\n.rendered_html th {\n  font-weight: bold;\n}\n.rendered_html tbody tr:nth-child(odd) {\n  background: #f5f5f5;\n}\n.rendered_html tbody tr:hover {\n  background: rgba(66, 165, 245, 0.2);\n}\n.rendered_html * + table {\n  margin-top: 1em;\n}\n.rendered_html p {\n  text-align: left;\n}\n.rendered_html * + p {\n  margin-top: 1em;\n}\n.rendered_html img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.rendered_html * + img {\n  margin-top: 1em;\n}\n.rendered_html img,\n.rendered_html svg {\n  max-width: 100%;\n  height: auto;\n}\n.rendered_html img.unconfined,\n.rendered_html svg.unconfined {\n  max-width: none;\n}\n.rendered_html .alert {\n  margin-bottom: initial;\n}\n.rendered_html * + .alert {\n  margin-top: 1em;\n}\n[dir=\"rtl\"] .rendered_html p {\n  text-align: right;\n}\ndiv.text_cell {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n}\n@media (max-width: 540px) {\n  div.text_cell > div.prompt {\n    display: none;\n  }\n}\ndiv.text_cell_render {\n  \/*font-family: \"Helvetica Neue\", Arial, Helvetica, Geneva, sans-serif;*\/\n  outline: none;\n  resize: none;\n  width: inherit;\n  border-style: none;\n  padding: 0.5em 0.5em 0.5em 0.4em;\n  color: #000;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n}\na.anchor-link:link {\n  text-decoration: none;\n  padding: 0px 20px;\n  visibility: hidden;\n}\nh1:hover .anchor-link,\nh2:hover .anchor-link,\nh3:hover .anchor-link,\nh4:hover .anchor-link,\nh5:hover .anchor-link,\nh6:hover .anchor-link {\n  visibility: visible;\n}\n.text_cell.rendered .input_area {\n  display: none;\n}\n.text_cell.rendered .rendered_html {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.text_cell.rendered .rendered_html tr,\n.text_cell.rendered .rendered_html th,\n.text_cell.rendered .rendered_html td {\n  max-width: none;\n}\n.text_cell.unrendered .text_cell_render {\n  display: none;\n}\n.text_cell .dropzone .input_area {\n  border: 2px dashed #bababa;\n  margin: -1px;\n}\n.cm-header-1,\n.cm-header-2,\n.cm-header-3,\n.cm-header-4,\n.cm-header-5,\n.cm-header-6 {\n  font-weight: bold;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n}\n.cm-header-1 {\n  font-size: 185.7%;\n}\n.cm-header-2 {\n  font-size: 157.1%;\n}\n.cm-header-3 {\n  font-size: 128.6%;\n}\n.cm-header-4 {\n  font-size: 110%;\n}\n.cm-header-5 {\n  font-size: 100%;\n  font-style: italic;\n}\n.cm-header-6 {\n  font-size: 100%;\n  font-style: italic;\n}\n\/*!\n*\n* IPython notebook webapp\n*\n*\/\n@media (max-width: 767px) {\n  .notebook_app {\n    padding-left: 0px;\n    padding-right: 0px;\n  }\n}\n#ipython-main-app {\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  height: 100%;\n}\ndiv#notebook_panel {\n  margin: 0px;\n  padding: 0px;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  height: 100%;\n}\ndiv#notebook {\n  font-size: 14px;\n  line-height: 20px;\n  overflow-y: hidden;\n  overflow-x: auto;\n  width: 100%;\n  \/* This spaces the page away from the edge of the notebook area *\/\n  padding-top: 20px;\n  margin: 0px;\n  outline: none;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  min-height: 100%;\n}\n@media not print {\n  #notebook-container {\n    padding: 15px;\n    background-color: #fff;\n    min-height: 0;\n    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  }\n}\n@media print {\n  #notebook-container {\n    width: 100%;\n  }\n}\ndiv.ui-widget-content {\n  border: 1px solid #ababab;\n  outline: none;\n}\npre.dialog {\n  background-color: #f7f7f7;\n  border: 1px solid #ddd;\n  border-radius: 2px;\n  padding: 0.4em;\n  padding-left: 2em;\n}\np.dialog {\n  padding: 0.2em;\n}\n\/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems\n   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.\n *\/\npre,\ncode,\nkbd,\nsamp {\n  white-space: pre-wrap;\n}\n#fonttest {\n  font-family: monospace;\n}\np {\n  margin-bottom: 0;\n}\n.end_space {\n  min-height: 100px;\n  transition: height .2s ease;\n}\n.notebook_app > #header {\n  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n}\n@media not print {\n  .notebook_app {\n    background-color: #EEE;\n  }\n}\nkbd {\n  border-style: solid;\n  border-width: 1px;\n  box-shadow: none;\n  margin: 2px;\n  padding-left: 2px;\n  padding-right: 2px;\n  padding-top: 1px;\n  padding-bottom: 1px;\n}\n.jupyter-keybindings {\n  padding: 1px;\n  line-height: 24px;\n  border-bottom: 1px solid gray;\n}\n.jupyter-keybindings input {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.jupyter-keybindings i {\n  padding: 6px;\n}\n.well code {\n  background-color: #ffffff;\n  border-color: #ababab;\n  border-width: 1px;\n  border-style: solid;\n  padding: 2px;\n  padding-top: 1px;\n  padding-bottom: 1px;\n}\n\/* CSS for the cell toolbar *\/\n.celltoolbar {\n  border: thin solid #CFCFCF;\n  border-bottom: none;\n  background: #EEE;\n  border-radius: 2px 2px 0px 0px;\n  width: 100%;\n  height: 29px;\n  padding-right: 4px;\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n  \/* Old browsers *\/\n  -webkit-box-pack: end;\n  -moz-box-pack: end;\n  box-pack: end;\n  \/* Modern browsers *\/\n  justify-content: flex-end;\n  display: -webkit-flex;\n}\n@media print {\n  .celltoolbar {\n    display: none;\n  }\n}\n.ctb_hideshow {\n  display: none;\n  vertical-align: bottom;\n}\n\/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.\n   Cell toolbars are only shown when the ctb_global_show class is also set.\n*\/\n.ctb_global_show .ctb_show.ctb_hideshow {\n  display: block;\n}\n.ctb_global_show .ctb_show + .input_area,\n.ctb_global_show .ctb_show + div.text_cell_input,\n.ctb_global_show .ctb_show ~ div.text_cell_render {\n  border-top-right-radius: 0px;\n  border-top-left-radius: 0px;\n}\n.ctb_global_show .ctb_show ~ div.text_cell_render {\n  border: 1px solid #cfcfcf;\n}\n.celltoolbar {\n  font-size: 87%;\n  padding-top: 3px;\n}\n.celltoolbar select {\n  display: block;\n  width: 100%;\n  height: 32px;\n  padding: 6px 12px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 2px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n  width: inherit;\n  font-size: inherit;\n  height: 22px;\n  padding: 0px;\n  display: inline-block;\n}\n.celltoolbar select:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.celltoolbar select::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.celltoolbar select:-ms-input-placeholder {\n  color: #999;\n}\n.celltoolbar select::-webkit-input-placeholder {\n  color: #999;\n}\n.celltoolbar select::-ms-expand {\n  border: 0;\n  background-color: transparent;\n}\n.celltoolbar select[disabled],\n.celltoolbar select[readonly],\nfieldset[disabled] .celltoolbar select {\n  background-color: #eeeeee;\n  opacity: 1;\n}\n.celltoolbar select[disabled],\nfieldset[disabled] .celltoolbar select {\n  cursor: not-allowed;\n}\ntextarea.celltoolbar select {\n  height: auto;\n}\nselect.celltoolbar select {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.celltoolbar select,\nselect[multiple].celltoolbar select {\n  height: auto;\n}\n.celltoolbar label {\n  margin-left: 5px;\n  margin-right: 5px;\n}\n.tags_button_container {\n  width: 100%;\n  display: flex;\n}\n.tag-container {\n  display: flex;\n  flex-direction: row;\n  flex-grow: 1;\n  overflow: hidden;\n  position: relative;\n}\n.tag-container > * {\n  margin: 0 4px;\n}\n.remove-tag-btn {\n  margin-left: 4px;\n}\n.tags-input {\n  display: flex;\n}\n.cell-tag:last-child:after {\n  content: \"\";\n  position: absolute;\n  right: 0;\n  width: 40px;\n  height: 100%;\n  \/* Fade to background color of cell toolbar *\/\n  background: linear-gradient(to right, rgba(0, 0, 0, 0), #EEE);\n}\n.tags-input > * {\n  margin-left: 4px;\n}\n.cell-tag,\n.tags-input input,\n.tags-input button {\n  display: block;\n  width: 100%;\n  height: 32px;\n  padding: 6px 12px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 2px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 1px;\n  box-shadow: none;\n  width: inherit;\n  font-size: inherit;\n  height: 22px;\n  line-height: 22px;\n  padding: 0px 4px;\n  display: inline-block;\n}\n.cell-tag:focus,\n.tags-input input:focus,\n.tags-input button:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.cell-tag::-moz-placeholder,\n.tags-input input::-moz-placeholder,\n.tags-input button::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.cell-tag:-ms-input-placeholder,\n.tags-input input:-ms-input-placeholder,\n.tags-input button:-ms-input-placeholder {\n  color: #999;\n}\n.cell-tag::-webkit-input-placeholder,\n.tags-input input::-webkit-input-placeholder,\n.tags-input button::-webkit-input-placeholder {\n  color: #999;\n}\n.cell-tag::-ms-expand,\n.tags-input input::-ms-expand,\n.tags-input button::-ms-expand {\n  border: 0;\n  background-color: transparent;\n}\n.cell-tag[disabled],\n.tags-input input[disabled],\n.tags-input button[disabled],\n.cell-tag[readonly],\n.tags-input input[readonly],\n.tags-input button[readonly],\nfieldset[disabled] .cell-tag,\nfieldset[disabled] .tags-input input,\nfieldset[disabled] .tags-input button {\n  background-color: #eeeeee;\n  opacity: 1;\n}\n.cell-tag[disabled],\n.tags-input input[disabled],\n.tags-input button[disabled],\nfieldset[disabled] .cell-tag,\nfieldset[disabled] .tags-input input,\nfieldset[disabled] .tags-input button {\n  cursor: not-allowed;\n}\ntextarea.cell-tag,\ntextarea.tags-input input,\ntextarea.tags-input button {\n  height: auto;\n}\nselect.cell-tag,\nselect.tags-input input,\nselect.tags-input button {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.cell-tag,\ntextarea.tags-input input,\ntextarea.tags-input button,\nselect[multiple].cell-tag,\nselect[multiple].tags-input input,\nselect[multiple].tags-input button {\n  height: auto;\n}\n.cell-tag,\n.tags-input button {\n  padding: 0px 4px;\n}\n.cell-tag {\n  background-color: #fff;\n  white-space: nowrap;\n}\n.tags-input input[type=text]:focus {\n  outline: none;\n  box-shadow: none;\n  border-color: #ccc;\n}\n.completions {\n  position: absolute;\n  z-index: 110;\n  overflow: hidden;\n  border: 1px solid #ababab;\n  border-radius: 2px;\n  -webkit-box-shadow: 0px 6px 10px -1px #adadad;\n  box-shadow: 0px 6px 10px -1px #adadad;\n  line-height: 1;\n}\n.completions select {\n  background: white;\n  outline: none;\n  border: none;\n  padding: 0px;\n  margin: 0px;\n  overflow: auto;\n  font-family: monospace;\n  font-size: 110%;\n  color: #000;\n  width: auto;\n}\n.completions select option.context {\n  color: #286090;\n}\n#kernel_logo_widget .current_kernel_logo {\n  display: none;\n  margin-top: -1px;\n  margin-bottom: -1px;\n  width: 32px;\n  height: 32px;\n}\n[dir=\"rtl\"] #kernel_logo_widget {\n  float: left !important;\n  float: left;\n}\n.modal .modal-body .move-path {\n  display: flex;\n  flex-direction: row;\n  justify-content: space;\n  align-items: center;\n}\n.modal .modal-body .move-path .server-root {\n  padding-right: 20px;\n}\n.modal .modal-body .move-path .path-input {\n  flex: 1;\n}\n#menubar {\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  margin-top: 1px;\n}\n#menubar .navbar {\n  border-top: 1px;\n  border-radius: 0px 0px 2px 2px;\n  margin-bottom: 0px;\n}\n#menubar .navbar-toggle {\n  float: left;\n  padding-top: 7px;\n  padding-bottom: 7px;\n  border: none;\n}\n#menubar .navbar-collapse {\n  clear: left;\n}\n[dir=\"rtl\"] #menubar .navbar-toggle {\n  float: right;\n}\n[dir=\"rtl\"] #menubar .navbar-collapse {\n  clear: right;\n}\n[dir=\"rtl\"] #menubar .navbar-nav {\n  float: right;\n}\n[dir=\"rtl\"] #menubar .nav {\n  padding-right: 0px;\n}\n[dir=\"rtl\"] #menubar .navbar-nav > li {\n  float: right;\n}\n[dir=\"rtl\"] #menubar .navbar-right {\n  float: left !important;\n}\n[dir=\"rtl\"] ul.dropdown-menu {\n  text-align: right;\n  left: auto;\n}\n[dir=\"rtl\"] ul#new-menu.dropdown-menu {\n  right: auto;\n  left: 0;\n}\n.nav-wrapper {\n  border-bottom: 1px solid #e7e7e7;\n}\ni.menu-icon {\n  padding-top: 4px;\n}\n[dir=\"rtl\"] i.menu-icon.pull-right {\n  float: left !important;\n  float: left;\n}\nul#help_menu li a {\n  overflow: hidden;\n  padding-right: 2.2em;\n}\nul#help_menu li a i {\n  margin-right: -1.2em;\n}\n[dir=\"rtl\"] ul#help_menu li a {\n  padding-left: 2.2em;\n}\n[dir=\"rtl\"] ul#help_menu li a i {\n  margin-right: 0;\n  margin-left: -1.2em;\n}\n[dir=\"rtl\"] ul#help_menu li a i.pull-right {\n  float: left !important;\n  float: left;\n}\n.dropdown-submenu {\n  position: relative;\n}\n.dropdown-submenu > .dropdown-menu {\n  top: 0;\n  left: 100%;\n  margin-top: -6px;\n  margin-left: -1px;\n}\n[dir=\"rtl\"] .dropdown-submenu > .dropdown-menu {\n  right: 100%;\n  margin-right: -1px;\n}\n.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n.dropdown-submenu > a:after {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  display: block;\n  content: \"f0da\";\n  float: right;\n  color: #333333;\n  margin-top: 2px;\n  margin-right: -10px;\n}\n.dropdown-submenu > a:after.fa-pull-left {\n  margin-right: .3em;\n}\n.dropdown-submenu > a:after.fa-pull-right {\n  margin-left: .3em;\n}\n.dropdown-submenu > a:after.pull-left {\n  margin-right: .3em;\n}\n.dropdown-submenu > a:after.pull-right {\n  margin-left: .3em;\n}\n[dir=\"rtl\"] .dropdown-submenu > a:after {\n  float: left;\n  content: \"f0d9\";\n  margin-right: 0;\n  margin-left: -10px;\n}\n.dropdown-submenu:hover > a:after {\n  color: #262626;\n}\n.dropdown-submenu.pull-left {\n  float: none;\n}\n.dropdown-submenu.pull-left > .dropdown-menu {\n  left: -100%;\n  margin-left: 10px;\n}\n#notification_area {\n  float: right !important;\n  float: right;\n  z-index: 10;\n}\n[dir=\"rtl\"] #notification_area {\n  float: left !important;\n  float: left;\n}\n.indicator_area {\n  float: right !important;\n  float: right;\n  color: #777;\n  margin-left: 5px;\n  margin-right: 5px;\n  width: 11px;\n  z-index: 10;\n  text-align: center;\n  width: auto;\n}\n[dir=\"rtl\"] .indicator_area {\n  float: left !important;\n  float: left;\n}\n#kernel_indicator {\n  float: right !important;\n  float: right;\n  color: #777;\n  margin-left: 5px;\n  margin-right: 5px;\n  width: 11px;\n  z-index: 10;\n  text-align: center;\n  width: auto;\n  border-left: 1px solid;\n}\n#kernel_indicator .kernel_indicator_name {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n[dir=\"rtl\"] #kernel_indicator {\n  float: left !important;\n  float: left;\n  border-left: 0;\n  border-right: 1px solid;\n}\n#modal_indicator {\n  float: right !important;\n  float: right;\n  color: #777;\n  margin-left: 5px;\n  margin-right: 5px;\n  width: 11px;\n  z-index: 10;\n  text-align: center;\n  width: auto;\n}\n[dir=\"rtl\"] #modal_indicator {\n  float: left !important;\n  float: left;\n}\n#readonly-indicator {\n  float: right !important;\n  float: right;\n  color: #777;\n  margin-left: 5px;\n  margin-right: 5px;\n  width: 11px;\n  z-index: 10;\n  text-align: center;\n  width: auto;\n  margin-top: 2px;\n  margin-bottom: 0px;\n  margin-left: 0px;\n  margin-right: 0px;\n  display: none;\n}\n.modal_indicator:before {\n  width: 1.28571429em;\n  text-align: center;\n}\n.edit_mode .modal_indicator:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f040\";\n}\n.edit_mode .modal_indicator:before.fa-pull-left {\n  margin-right: .3em;\n}\n.edit_mode .modal_indicator:before.fa-pull-right {\n  margin-left: .3em;\n}\n.edit_mode .modal_indicator:before.pull-left {\n  margin-right: .3em;\n}\n.edit_mode .modal_indicator:before.pull-right {\n  margin-left: .3em;\n}\n.command_mode .modal_indicator:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: ' ';\n}\n.command_mode .modal_indicator:before.fa-pull-left {\n  margin-right: .3em;\n}\n.command_mode .modal_indicator:before.fa-pull-right {\n  margin-left: .3em;\n}\n.command_mode .modal_indicator:before.pull-left {\n  margin-right: .3em;\n}\n.command_mode .modal_indicator:before.pull-right {\n  margin-left: .3em;\n}\n.kernel_idle_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f10c\";\n}\n.kernel_idle_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.kernel_idle_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.kernel_idle_icon:before.pull-left {\n  margin-right: .3em;\n}\n.kernel_idle_icon:before.pull-right {\n  margin-left: .3em;\n}\n.kernel_busy_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f111\";\n}\n.kernel_busy_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.kernel_busy_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.kernel_busy_icon:before.pull-left {\n  margin-right: .3em;\n}\n.kernel_busy_icon:before.pull-right {\n  margin-left: .3em;\n}\n.kernel_dead_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f1e2\";\n}\n.kernel_dead_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.kernel_dead_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.kernel_dead_icon:before.pull-left {\n  margin-right: .3em;\n}\n.kernel_dead_icon:before.pull-right {\n  margin-left: .3em;\n}\n.kernel_disconnected_icon:before {\n  display: inline-block;\n  font: normal normal normal 14px\/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"f127\";\n}\n.kernel_disconnected_icon:before.fa-pull-left {\n  margin-right: .3em;\n}\n.kernel_disconnected_icon:before.fa-pull-right {\n  margin-left: .3em;\n}\n.kernel_disconnected_icon:before.pull-left {\n  margin-right: .3em;\n}\n.kernel_disconnected_icon:before.pull-right {\n  margin-left: .3em;\n}\n.notification_widget {\n  color: #777;\n  z-index: 10;\n  background: rgba(240, 240, 240, 0.5);\n  margin-right: 4px;\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\n.notification_widget:focus,\n.notification_widget.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.notification_widget:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.notification_widget:active,\n.notification_widget.active,\n.open > .dropdown-toggle.notification_widget {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.notification_widget:active:hover,\n.notification_widget.active:hover,\n.open > .dropdown-toggle.notification_widget:hover,\n.notification_widget:active:focus,\n.notification_widget.active:focus,\n.open > .dropdown-toggle.notification_widget:focus,\n.notification_widget:active.focus,\n.notification_widget.active.focus,\n.open > .dropdown-toggle.notification_widget.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.notification_widget:active,\n.notification_widget.active,\n.open > .dropdown-toggle.notification_widget {\n  background-image: none;\n}\n.notification_widget.disabled:hover,\n.notification_widget[disabled]:hover,\nfieldset[disabled] .notification_widget:hover,\n.notification_widget.disabled:focus,\n.notification_widget[disabled]:focus,\nfieldset[disabled] .notification_widget:focus,\n.notification_widget.disabled.focus,\n.notification_widget[disabled].focus,\nfieldset[disabled] .notification_widget.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\n.notification_widget .badge {\n  color: #fff;\n  background-color: #333;\n}\n.notification_widget.warning {\n  color: #fff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.notification_widget.warning:focus,\n.notification_widget.warning.focus {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.notification_widget.warning:hover {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.notification_widget.warning:active,\n.notification_widget.warning.active,\n.open > .dropdown-toggle.notification_widget.warning {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.notification_widget.warning:active:hover,\n.notification_widget.warning.active:hover,\n.open > .dropdown-toggle.notification_widget.warning:hover,\n.notification_widget.warning:active:focus,\n.notification_widget.warning.active:focus,\n.open > .dropdown-toggle.notification_widget.warning:focus,\n.notification_widget.warning:active.focus,\n.notification_widget.warning.active.focus,\n.open > .dropdown-toggle.notification_widget.warning.focus {\n  color: #fff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.notification_widget.warning:active,\n.notification_widget.warning.active,\n.open > .dropdown-toggle.notification_widget.warning {\n  background-image: none;\n}\n.notification_widget.warning.disabled:hover,\n.notification_widget.warning[disabled]:hover,\nfieldset[disabled] .notification_widget.warning:hover,\n.notification_widget.warning.disabled:focus,\n.notification_widget.warning[disabled]:focus,\nfieldset[disabled] .notification_widget.warning:focus,\n.notification_widget.warning.disabled.focus,\n.notification_widget.warning[disabled].focus,\nfieldset[disabled] .notification_widget.warning.focus {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.notification_widget.warning .badge {\n  color: #f0ad4e;\n  background-color: #fff;\n}\n.notification_widget.success {\n  color: #fff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.notification_widget.success:focus,\n.notification_widget.success.focus {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.notification_widget.success:hover {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.notification_widget.success:active,\n.notification_widget.success.active,\n.open > .dropdown-toggle.notification_widget.success {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.notification_widget.success:active:hover,\n.notification_widget.success.active:hover,\n.open > .dropdown-toggle.notification_widget.success:hover,\n.notification_widget.success:active:focus,\n.notification_widget.success.active:focus,\n.open > .dropdown-toggle.notification_widget.success:focus,\n.notification_widget.success:active.focus,\n.notification_widget.success.active.focus,\n.open > .dropdown-toggle.notification_widget.success.focus {\n  color: #fff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.notification_widget.success:active,\n.notification_widget.success.active,\n.open > .dropdown-toggle.notification_widget.success {\n  background-image: none;\n}\n.notification_widget.success.disabled:hover,\n.notification_widget.success[disabled]:hover,\nfieldset[disabled] .notification_widget.success:hover,\n.notification_widget.success.disabled:focus,\n.notification_widget.success[disabled]:focus,\nfieldset[disabled] .notification_widget.success:focus,\n.notification_widget.success.disabled.focus,\n.notification_widget.success[disabled].focus,\nfieldset[disabled] .notification_widget.success.focus {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.notification_widget.success .badge {\n  color: #5cb85c;\n  background-color: #fff;\n}\n.notification_widget.info {\n  color: #fff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.notification_widget.info:focus,\n.notification_widget.info.focus {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.notification_widget.info:hover {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.notification_widget.info:active,\n.notification_widget.info.active,\n.open > .dropdown-toggle.notification_widget.info {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.notification_widget.info:active:hover,\n.notification_widget.info.active:hover,\n.open > .dropdown-toggle.notification_widget.info:hover,\n.notification_widget.info:active:focus,\n.notification_widget.info.active:focus,\n.open > .dropdown-toggle.notification_widget.info:focus,\n.notification_widget.info:active.focus,\n.notification_widget.info.active.focus,\n.open > .dropdown-toggle.notification_widget.info.focus {\n  color: #fff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.notification_widget.info:active,\n.notification_widget.info.active,\n.open > .dropdown-toggle.notification_widget.info {\n  background-image: none;\n}\n.notification_widget.info.disabled:hover,\n.notification_widget.info[disabled]:hover,\nfieldset[disabled] .notification_widget.info:hover,\n.notification_widget.info.disabled:focus,\n.notification_widget.info[disabled]:focus,\nfieldset[disabled] .notification_widget.info:focus,\n.notification_widget.info.disabled.focus,\n.notification_widget.info[disabled].focus,\nfieldset[disabled] .notification_widget.info.focus {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.notification_widget.info .badge {\n  color: #5bc0de;\n  background-color: #fff;\n}\n.notification_widget.danger {\n  color: #fff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.notification_widget.danger:focus,\n.notification_widget.danger.focus {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.notification_widget.danger:hover {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.notification_widget.danger:active,\n.notification_widget.danger.active,\n.open > .dropdown-toggle.notification_widget.danger {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.notification_widget.danger:active:hover,\n.notification_widget.danger.active:hover,\n.open > .dropdown-toggle.notification_widget.danger:hover,\n.notification_widget.danger:active:focus,\n.notification_widget.danger.active:focus,\n.open > .dropdown-toggle.notification_widget.danger:focus,\n.notification_widget.danger:active.focus,\n.notification_widget.danger.active.focus,\n.open > .dropdown-toggle.notification_widget.danger.focus {\n  color: #fff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.notification_widget.danger:active,\n.notification_widget.danger.active,\n.open > .dropdown-toggle.notification_widget.danger {\n  background-image: none;\n}\n.notification_widget.danger.disabled:hover,\n.notification_widget.danger[disabled]:hover,\nfieldset[disabled] .notification_widget.danger:hover,\n.notification_widget.danger.disabled:focus,\n.notification_widget.danger[disabled]:focus,\nfieldset[disabled] .notification_widget.danger:focus,\n.notification_widget.danger.disabled.focus,\n.notification_widget.danger[disabled].focus,\nfieldset[disabled] .notification_widget.danger.focus {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.notification_widget.danger .badge {\n  color: #d9534f;\n  background-color: #fff;\n}\ndiv#pager {\n  background-color: #fff;\n  font-size: 14px;\n  line-height: 20px;\n  overflow: hidden;\n  display: none;\n  position: fixed;\n  bottom: 0px;\n  width: 100%;\n  max-height: 50%;\n  padding-top: 8px;\n  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  \/* Display over codemirror *\/\n  z-index: 100;\n  \/* Hack which prevents jquery ui resizable from changing top. *\/\n  top: auto !important;\n}\ndiv#pager pre {\n  line-height: 1.21429em;\n  color: #000;\n  background-color: #f7f7f7;\n  padding: 0.4em;\n}\ndiv#pager #pager-button-area {\n  position: absolute;\n  top: 8px;\n  right: 20px;\n}\ndiv#pager #pager-contents {\n  position: relative;\n  overflow: auto;\n  width: 100%;\n  height: 100%;\n}\ndiv#pager #pager-contents #pager-container {\n  position: relative;\n  padding: 15px 0px;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n}\ndiv#pager .ui-resizable-handle {\n  top: 0px;\n  height: 8px;\n  background: #f7f7f7;\n  border-top: 1px solid #cfcfcf;\n  border-bottom: 1px solid #cfcfcf;\n  \/* This injects handle bars (a short, wide = symbol) for \n        the resize handle. *\/\n}\ndiv#pager .ui-resizable-handle::after {\n  content: '';\n  top: 2px;\n  left: 50%;\n  height: 3px;\n  width: 30px;\n  margin-left: -15px;\n  position: absolute;\n  border-top: 1px solid #cfcfcf;\n}\n.quickhelp {\n  \/* Old browsers *\/\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  \/* Modern browsers *\/\n  display: flex;\n  flex-direction: row;\n  align-items: stretch;\n  line-height: 1.8em;\n}\n.shortcut_key {\n  display: inline-block;\n  width: 21ex;\n  text-align: right;\n  font-family: monospace;\n}\n.shortcut_descr {\n  display: inline-block;\n  \/* Old browsers *\/\n  -webkit-box-flex: 1;\n  -moz-box-flex: 1;\n  box-flex: 1;\n  \/* Modern browsers *\/\n  flex: 1;\n}\nspan.save_widget {\n  height: 30px;\n  margin-top: 4px;\n  display: flex;\n  justify-content: flex-start;\n  align-items: baseline;\n  width: 50%;\n  flex: 1;\n}\nspan.save_widget span.filename {\n  height: 100%;\n  line-height: 1em;\n  margin-left: 16px;\n  border: none;\n  font-size: 146.5%;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n  border-radius: 2px;\n}\nspan.save_widget span.filename:hover {\n  background-color: #e6e6e6;\n}\n[dir=\"rtl\"] span.save_widget.pull-left {\n  float: right !important;\n  float: right;\n}\n[dir=\"rtl\"] span.save_widget span.filename {\n  margin-left: 0;\n  margin-right: 16px;\n}\nspan.checkpoint_status,\nspan.autosave_status {\n  font-size: small;\n  white-space: nowrap;\n  padding: 0 5px;\n}\n@media (max-width: 767px) {\n  span.save_widget {\n    font-size: small;\n    padding: 0 0 0 5px;\n  }\n  span.checkpoint_status,\n  span.autosave_status {\n    display: none;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  span.checkpoint_status {\n    display: none;\n  }\n  span.autosave_status {\n    font-size: x-small;\n  }\n}\n.toolbar {\n  padding: 0px;\n  margin-left: -5px;\n  margin-top: 2px;\n  margin-bottom: 5px;\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n}\n.toolbar select,\n.toolbar label {\n  width: auto;\n  vertical-align: middle;\n  margin-right: 2px;\n  margin-bottom: 0px;\n  display: inline;\n  font-size: 92%;\n  margin-left: 0.3em;\n  margin-right: 0.3em;\n  padding: 0px;\n  padding-top: 3px;\n}\n.toolbar .btn {\n  padding: 2px 8px;\n}\n.toolbar .btn-group {\n  margin-top: 0px;\n  margin-left: 5px;\n}\n.toolbar-btn-label {\n  margin-left: 6px;\n}\n#maintoolbar {\n  margin-bottom: -3px;\n  margin-top: -8px;\n  border: 0px;\n  min-height: 27px;\n  margin-left: 0px;\n  padding-top: 11px;\n  padding-bottom: 3px;\n}\n#maintoolbar .navbar-text {\n  float: none;\n  vertical-align: middle;\n  text-align: right;\n  margin-left: 5px;\n  margin-right: 0px;\n  margin-top: 0px;\n}\n.select-xs {\n  height: 24px;\n}\n[dir=\"rtl\"] .btn-group > .btn,\n.btn-group-vertical > .btn {\n  float: right;\n}\n.pulse,\n.dropdown-menu > li > a.pulse,\nli.pulse > a.dropdown-toggle,\nli.pulse.open > a.dropdown-toggle {\n  background-color: #F37626;\n  color: white;\n}\n\/**\n * Primary styles\n *\n * Author: Jupyter Development Team\n *\/\n\/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot\n * of chance of beeing generated from the ..\/less\/[samename].less file, you can\n * try to get back the less file by reverting somme commit in history\n **\/\n\/*\n * We'll try to get something pretty, so we\n * have some strange css to have the scroll bar on\n * the left with fix button on the top right of the tooltip\n *\/\n@-moz-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n@-webkit-keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n@-moz-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n@-webkit-keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\/*properties of tooltip after \"expand\"*\/\n.bigtooltip {\n  overflow: auto;\n  height: 200px;\n  -webkit-transition-property: height;\n  -webkit-transition-duration: 500ms;\n  -moz-transition-property: height;\n  -moz-transition-duration: 500ms;\n  transition-property: height;\n  transition-duration: 500ms;\n}\n\/*properties of tooltip before \"expand\"*\/\n.smalltooltip {\n  -webkit-transition-property: height;\n  -webkit-transition-duration: 500ms;\n  -moz-transition-property: height;\n  -moz-transition-duration: 500ms;\n  transition-property: height;\n  transition-duration: 500ms;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  height: 80px;\n}\n.tooltipbuttons {\n  position: absolute;\n  padding-right: 15px;\n  top: 0px;\n  right: 0px;\n}\n.tooltiptext {\n  \/*avoid the button to overlap on some docstring*\/\n  padding-right: 30px;\n}\n.ipython_tooltip {\n  max-width: 700px;\n  \/*fade-in animation when inserted*\/\n  -webkit-animation: fadeOut 400ms;\n  -moz-animation: fadeOut 400ms;\n  animation: fadeOut 400ms;\n  -webkit-animation: fadeIn 400ms;\n  -moz-animation: fadeIn 400ms;\n  animation: fadeIn 400ms;\n  vertical-align: middle;\n  background-color: #f7f7f7;\n  overflow: visible;\n  border: #ababab 1px solid;\n  outline: none;\n  padding: 3px;\n  margin: 0px;\n  padding-left: 7px;\n  font-family: monospace;\n  min-height: 50px;\n  -moz-box-shadow: 0px 6px 10px -1px #adadad;\n  -webkit-box-shadow: 0px 6px 10px -1px #adadad;\n  box-shadow: 0px 6px 10px -1px #adadad;\n  border-radius: 2px;\n  position: absolute;\n  z-index: 1000;\n}\n.ipython_tooltip a {\n  float: right;\n}\n.ipython_tooltip .tooltiptext pre {\n  border: 0;\n  border-radius: 0;\n  font-size: 100%;\n  background-color: #f7f7f7;\n}\n.pretooltiparrow {\n  left: 0px;\n  margin: 0px;\n  top: -16px;\n  width: 40px;\n  height: 16px;\n  overflow: hidden;\n  position: absolute;\n}\n.pretooltiparrow:before {\n  background-color: #f7f7f7;\n  border: 1px #ababab solid;\n  z-index: 11;\n  content: \"\";\n  position: absolute;\n  left: 15px;\n  top: 10px;\n  width: 25px;\n  height: 25px;\n  -webkit-transform: rotate(45deg);\n  -moz-transform: rotate(45deg);\n  -ms-transform: rotate(45deg);\n  -o-transform: rotate(45deg);\n}\nul.typeahead-list i {\n  margin-left: -10px;\n  width: 18px;\n}\n[dir=\"rtl\"] ul.typeahead-list i {\n  margin-left: 0;\n  margin-right: -10px;\n}\nul.typeahead-list {\n  max-height: 80vh;\n  overflow: auto;\n}\nul.typeahead-list > li > a {\n  \/** Firefox bug **\/\n  \/* see https:\/\/github.com\/jupyter\/notebook\/issues\/559 *\/\n  white-space: normal;\n}\nul.typeahead-list  > li > a.pull-right {\n  float: left !important;\n  float: left;\n}\n[dir=\"rtl\"] .typeahead-list {\n  text-align: right;\n}\n.cmd-palette .modal-body {\n  padding: 7px;\n}\n.cmd-palette form {\n  background: white;\n}\n.cmd-palette input {\n  outline: none;\n}\n.no-shortcut {\n  min-width: 20px;\n  color: transparent;\n}\n[dir=\"rtl\"] .no-shortcut.pull-right {\n  float: left !important;\n  float: left;\n}\n[dir=\"rtl\"] .command-shortcut.pull-right {\n  float: left !important;\n  float: left;\n}\n.command-shortcut:before {\n  content: \"(command mode)\";\n  padding-right: 3px;\n  color: #777777;\n}\n.edit-shortcut:before {\n  content: \"(edit)\";\n  padding-right: 3px;\n  color: #777777;\n}\n[dir=\"rtl\"] .edit-shortcut.pull-right {\n  float: left !important;\n  float: left;\n}\n#find-and-replace #replace-preview .match,\n#find-and-replace #replace-preview .insert {\n  background-color: #BBDEFB;\n  border-color: #90CAF9;\n  border-style: solid;\n  border-width: 1px;\n  border-radius: 0px;\n}\n[dir=\"ltr\"] #find-and-replace .input-group-btn + .form-control {\n  border-left: none;\n}\n[dir=\"rtl\"] #find-and-replace .input-group-btn + .form-control {\n  border-right: none;\n}\n#find-and-replace #replace-preview .replace .match {\n  background-color: #FFCDD2;\n  border-color: #EF9A9A;\n  border-radius: 0px;\n}\n#find-and-replace #replace-preview .replace .insert {\n  background-color: #C8E6C9;\n  border-color: #A5D6A7;\n  border-radius: 0px;\n}\n#find-and-replace #replace-preview {\n  max-height: 60vh;\n  overflow: auto;\n}\n#find-and-replace #replace-preview pre {\n  padding: 5px 10px;\n}\n.terminal-app {\n  background: #EEE;\n}\n.terminal-app #header {\n  background: #fff;\n  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);\n}\n.terminal-app .terminal {\n  width: 100%;\n  float: left;\n  font-family: monospace;\n  color: white;\n  background: black;\n  padding: 0.4em;\n  border-radius: 2px;\n  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);\n  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);\n}\n.terminal-app .terminal,\n.terminal-app .terminal dummy-screen {\n  line-height: 1em;\n  font-size: 14px;\n}\n.terminal-app .terminal .xterm-rows {\n  padding: 10px;\n}\n.terminal-app .terminal-cursor {\n  color: black;\n  background: white;\n}\n.terminal-app #terminado-container {\n  margin-top: 20px;\n}\n\/*# sourceMappingURL=style.min.css.map *\/\n    <\/style>\n<style type=\"text\/css\">\n    .highlight .hll { background-color: #ffffcc }\n.highlight  { background: #f8f8f8; }\n.highlight .c { color: #408080; font-style: italic } \/* Comment *\/\n.highlight .err { border: 1px solid #FF0000 } \/* Error *\/\n.highlight .k { color: #008000; font-weight: bold } \/* Keyword *\/\n.highlight .o { color: #666666 } \/* Operator *\/\n.highlight .ch { color: #408080; font-style: italic } \/* Comment.Hashbang *\/\n.highlight .cm { color: #408080; font-style: italic } \/* Comment.Multiline *\/\n.highlight .cp { color: #BC7A00 } \/* Comment.Preproc *\/\n.highlight .cpf { color: #408080; font-style: italic } \/* Comment.PreprocFile *\/\n.highlight .c1 { color: #408080; font-style: italic } \/* Comment.Single *\/\n.highlight .cs { color: #408080; font-style: italic } \/* Comment.Special *\/\n.highlight .gd { color: #A00000 } \/* Generic.Deleted *\/\n.highlight .ge { font-style: italic } \/* Generic.Emph *\/\n.highlight .gr { color: #FF0000 } \/* Generic.Error *\/\n.highlight .gh { color: #000080; font-weight: bold } \/* Generic.Heading *\/\n.highlight .gi { color: #00A000 } \/* Generic.Inserted *\/\n.highlight .go { color: #888888 } \/* Generic.Output *\/\n.highlight .gp { color: #000080; font-weight: bold } \/* Generic.Prompt *\/\n.highlight .gs { font-weight: bold } \/* Generic.Strong *\/\n.highlight .gu { color: #800080; font-weight: bold } \/* Generic.Subheading *\/\n.highlight .gt { color: #0044DD } \/* Generic.Traceback *\/\n.highlight .kc { color: #008000; font-weight: bold } \/* Keyword.Constant *\/\n.highlight .kd { color: #008000; font-weight: bold } \/* Keyword.Declaration *\/\n.highlight .kn { color: #008000; font-weight: bold } \/* Keyword.Namespace *\/\n.highlight .kp { color: #008000 } \/* Keyword.Pseudo *\/\n.highlight .kr { color: #008000; font-weight: bold } \/* Keyword.Reserved *\/\n.highlight .kt { color: #B00040 } \/* Keyword.Type *\/\n.highlight .m { color: #666666 } \/* Literal.Number *\/\n.highlight .s { color: #BA2121 } \/* Literal.String *\/\n.highlight .na { color: #7D9029 } \/* Name.Attribute *\/\n.highlight .nb { color: #008000 } \/* Name.Builtin *\/\n.highlight .nc { color: #0000FF; font-weight: bold } \/* Name.Class *\/\n.highlight .no { color: #880000 } \/* Name.Constant *\/\n.highlight .nd { color: #AA22FF } \/* Name.Decorator *\/\n.highlight .ni { color: #999999; font-weight: bold } \/* Name.Entity *\/\n.highlight .ne { color: #D2413A; font-weight: bold } \/* Name.Exception *\/\n.highlight .nf { color: #0000FF } \/* Name.Function *\/\n.highlight .nl { color: #A0A000 } \/* Name.Label *\/\n.highlight .nn { color: #0000FF; font-weight: bold } \/* Name.Namespace *\/\n.highlight .nt { color: #008000; font-weight: bold } \/* Name.Tag *\/\n.highlight .nv { color: #19177C } \/* Name.Variable *\/\n.highlight .ow { color: #AA22FF; font-weight: bold } \/* Operator.Word *\/\n.highlight .w { color: #bbbbbb } \/* Text.Whitespace *\/\n.highlight .mb { color: #666666 } \/* Literal.Number.Bin *\/\n.highlight .mf { color: #666666 } \/* Literal.Number.Float *\/\n.highlight .mh { color: #666666 } \/* Literal.Number.Hex *\/\n.highlight .mi { color: #666666 } \/* Literal.Number.Integer *\/\n.highlight .mo { color: #666666 } \/* Literal.Number.Oct *\/\n.highlight .sa { color: #BA2121 } \/* Literal.String.Affix *\/\n.highlight .sb { color: #BA2121 } \/* Literal.String.Backtick *\/\n.highlight .sc { color: #BA2121 } \/* Literal.String.Char *\/\n.highlight .dl { color: #BA2121 } \/* Literal.String.Delimiter *\/\n.highlight .sd { color: #BA2121; font-style: italic } \/* Literal.String.Doc *\/\n.highlight .s2 { color: #BA2121 } \/* Literal.String.Double *\/\n.highlight .se { color: #BB6622; font-weight: bold } \/* Literal.String.Escape *\/\n.highlight .sh { color: #BA2121 } \/* Literal.String.Heredoc *\/\n.highlight .si { color: #BB6688; font-weight: bold } \/* Literal.String.Interpol *\/\n.highlight .sx { color: #008000 } \/* Literal.String.Other *\/\n.highlight .sr { color: #BB6688 } \/* Literal.String.Regex *\/\n.highlight .s1 { color: #BA2121 } \/* Literal.String.Single *\/\n.highlight .ss { color: #19177C } \/* Literal.String.Symbol *\/\n.highlight .bp { color: #008000 } \/* Name.Builtin.Pseudo *\/\n.highlight .fm { color: #0000FF } \/* Name.Function.Magic *\/\n.highlight .vc { color: #19177C } \/* Name.Variable.Class *\/\n.highlight .vg { color: #19177C } \/* Name.Variable.Global *\/\n.highlight .vi { color: #19177C } \/* Name.Variable.Instance *\/\n.highlight .vm { color: #19177C } \/* Name.Variable.Magic *\/\n.highlight .il { color: #666666 } \/* Literal.Number.Integer.Long *\/\n    <\/style>\n<style type=\"text\/css\">\n    \/*This file contains any manual css for this page that needs to override the global styles.\nThis is only required when different pages style the same element differently. This is just\na hack to deal with our current css styles and no new styling should be added in this file.*\/\n#ipython-main-app {\n    position: relative;\n}\n#jupyter-main-app {\n    position: relative;\n}\n    <\/style>\n<style type=\"text\/css\">\n\/* Overrides of notebook CSS for static HTML export *\/\nbody {\n  overflow: visible;\n  padding: 8px;\n}\ndiv#notebook {\n  overflow: visible;\n  border-top: none;\n}@media print {\n  div.cell {\n    display: block;\n    page-break-inside: avoid;\n  } \n  div.output_wrapper { \n    display: block;\n    page-break-inside: avoid; \n  }\n  div.output { \n    display: block;\n    page-break-inside: avoid; \n  }\n}\n<\/style>\n<p><!-- Custom stylesheet, it must be in the same directory as the html file -->\n<link rel=\"stylesheet\" href=\"custom.css\">\n<!-- Loading mathjax macro --><br \/>\n<!-- Load mathjax --><br \/>\n    <!-- MathJax configuration --><br \/>\n    <!-- End of mathjax configuration --><\/head><br \/>\n<body><\/p>\n<h1 id=\"A---Introduction\"><span class=\"ez-toc-section\" id=\"A_%E2%80%93_Introduction%C2%B6\"><\/span>A &#8211; Introduction<a href=\"#A---Introduction\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>In recent years the NLP community has seen many breakthoughs in Natural Language Processing, especially the shift to transfer learning. Models like ELMo, fast.ai&#8217;s ULMFiT, Transformer and OpenAI&#8217;s GPT have allowed researchers to achieves state-of-the-art results on multiple benchmarks and provided the community with large pre-trained models with high performance. This shift in NLP is seen as NLP&#8217;s ImageNet moment, a shift in computer vision a few year ago when lower layers of deep learning networks with million of parameters trained on a specific task can be reused and fine-tuned for other tasks, rather than training new networks from scratch.<\/p>\n<p>One of the most biggest milestones in the evolution of NLP recently is the release of Google&#8217;s BERT, which is described as the beginning of a new era in NLP. In this notebook I&#8217;ll use the HuggingFace&#8217;s <code>transformers<\/code> library to fine-tune pretrained BERT model for a classification task. Then I will compare the BERT&#8217;s performance  with a baseline model, in which I use a TF-IDF vectorizer and a Naive Bayes classifier. The <code>transformers<\/code> library help us quickly and efficiently fine-tune the state-of-the-art BERT model and yield an accuracy rate <strong>10%<\/strong> higher than the baseline model.<\/p>\n<p><strong>Reference<\/strong>:<\/p>\n<p>To understand <strong>Transformer<\/strong> (the architecture which BERT is built on) and learn how to implement BERT, I highly recommend reading the following sources:<\/p>\n<ul>\n<li><a href=\"http:\/\/jalammar.github.io\/illustrated-bert\/\">The Illustrated BERT, ELMo, and co.<\/a>: A very clear and well-written guide to understand BERT.<\/li>\n<li><a href=\"https:\/\/huggingface.co\/transformers\/v2.2.0\/index.html\">The documentation of the <code>transformers<\/code> library<\/a><\/li>\n<li><a href=\"http:\/\/mccormickml.com\/2019\/07\/22\/BERT-fine-tuning\/\">BERT Fine-Tuning Tutorial with PyTorch<\/a> by <a href=\"http:\/\/mccormickml.com\/\">Chris McCormick<\/a>: A very detailed tutorial showing how to use BERT with the HuggingFace PyTorch library.<\/li>\n<\/ul>\n<h1 id=\"B---Setup\"><span class=\"ez-toc-section\" id=\"B_%E2%80%93_Setup%C2%B6\"><\/span>B &#8211; Setup<a href=\"#B---Setup\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2 id=\"1.-Load-Essential-Libraries\"><span class=\"ez-toc-section\" id=\"1_Load_Essential_Libraries%C2%B6\"><\/span>1. Load Essential Libraries<a href=\"#1.-Load-Essential-Libraries\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In&nbsp;[0]:<\/p>\n<pre>import os\nimport re\nfrom tqdm import tqdm\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n%matplotlib inline\n<\/pre>\n<h2 id=\"2.-Dataset\"><span class=\"ez-toc-section\" id=\"2_Dataset%C2%B6\"><\/span>2. Dataset<a href=\"#2.-Dataset\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"2.1.-Download-Dataset\"><span class=\"ez-toc-section\" id=\"21_Download_Dataset%C2%B6\"><\/span>2.1. Download Dataset<a href=\"#2.1.-Download-Dataset\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In&nbsp;[0]:<\/p>\n<pre># Download data\nimport requests\nrequest = requests.get(&quot;https:\/\/drive.google.com\/uc?export=download&amp;id=1wHt8PsMLsfX5yNSqrt2fSTcb8LEiclcf&quot;)\nwith open(&quot;data.zip&quot;, &quot;wb&quot;) as file:\n    file.write(request.content)\n# Unzip data\nimport zipfile\nwith zipfile.ZipFile(&#39;data.zip&#39;) as zip:\n    zip.extractall(&#39;data&#39;)\n<\/pre>\n<h3 id=\"2.2.-Load-Train-Data\"><span class=\"ez-toc-section\" id=\"22_Load_Train_Data%C2%B6\"><\/span>2.2. Load Train Data<a href=\"#2.2.-Load-Train-Data\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The train data has 2 files, each containing 1700 complaining\/non-complaining tweets. Every tweets in the data contains at least a hashtag of an airline.<\/p>\n<p>We will load the train data and label it. Because we use only the text data to classify, we will drop unimportant columns and only keep <code>id<\/code>, <code>tweet<\/code> and <code>label<\/code> columns.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre> # Load data and set labels\ndata_complaint = pd.read_csv(&#39;data\/complaint1700.csv&#39;)\ndata_complaint[&#39;label&#39;] = 0\ndata_non_complaint = pd.read_csv(&#39;data\/noncomplaint1700.csv&#39;)\ndata_non_complaint[&#39;label&#39;] = 1\n# Concatenate complaining and non-complaining data\ndata = pd.concat([data_complaint, data_non_complaint], axis=0).reset_index(drop=True)\n# Drop &#39;airline&#39; column\ndata.drop([&#39;airline&#39;], inplace=True, axis=1)\n# Display 5 random samples\ndata.sample(5)\n<\/pre>\n<p>    Out[0]:<\/p>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>id<\/th>\n<th>tweet<\/th>\n<th>label<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>1988<\/th>\n<td>24991<\/td>\n<td>What a great welcome back. Laughable. Deplanin&#8230;<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<th>1294<\/th>\n<td>72380<\/td>\n<td>Very disappointed with @JetBlue tonight. Fligh&#8230;<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<th>1090<\/th>\n<td>127893<\/td>\n<td>@united my friends are having a hell of a time&#8230;<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<th>553<\/th>\n<td>58278<\/td>\n<td>@united all I want for Xmas is a lost bag that&#8230;<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<th>2075<\/th>\n<td>30695<\/td>\n<td>yep not gonna lie&#8230; super interested in tryin&#8230;<\/td>\n<td>1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>We will randomly split the entire training data into two sets: a train set with 90% of the data and a validation set with 10% of the data. We will perform hyperparameter tuning using cross-validation on the train set and use the validation set to compare models.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from sklearn.model_selection import train_test_split\nX = data.tweet.values\ny = data.label.values\nX_train, X_val, y_train, y_val =\n    train_test_split(X, y, test_size=0.1, random_state=2020)\n<\/pre>\n<h3 id=\"2.3.-Load-Test-Data\"><span class=\"ez-toc-section\" id=\"23_Load_Test_Data%C2%B6\"><\/span>2.3. Load Test Data<a href=\"#2.3.-Load-Test-Data\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The test data contains 4555 examples with no label. About 300 examples are non-complaining tweets. Our task is to identify their <code>id<\/code> and examine manually whether our results are correct.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre># Load test data\ntest_data = pd.read_csv(&#39;data\/test_data.csv&#39;)\n# Keep important columns\ntest_data = test_data[[&#39;id&#39;, &#39;tweet&#39;]]\n# Display 5 samples from the test data\ntest_data.sample(5)\n<\/pre>\n<p>    Out[0]:<\/p>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>id<\/th>\n<th>tweet<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>1539<\/th>\n<td>59336<\/td>\n<td>@AmericanAir flight delayed over 2 hours for n&#8230;<\/td>\n<\/tr>\n<tr>\n<th>607<\/th>\n<td>24101<\/td>\n<td>@SouthwestAir Still getting this error message&#8230;<\/td>\n<\/tr>\n<tr>\n<th>333<\/th>\n<td>13179<\/td>\n<td>waiting at #SeaTac to board my @JetBlue flight&#8230;<\/td>\n<\/tr>\n<tr>\n<th>2696<\/th>\n<td>102948<\/td>\n<td>Hate when I go thru advance seat selection pro&#8230;<\/td>\n<\/tr>\n<tr>\n<th>3585<\/th>\n<td>135638<\/td>\n<td>shame on you @AlaskaAir<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"3.-Set-up-GPU-for-training\"><span class=\"ez-toc-section\" id=\"3_Set_up_GPU_for_training%C2%B6\"><\/span>3. Set up GPU for training<a href=\"#3.-Set-up-GPU-for-training\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Google Colab offers free GPUs and TPUs. Since we&#8217;ll be training a large neural network it&#8217;s best to utilize these features.<\/p>\n<p>A GPU can be added by going to the menu and selecting:<\/p>\n<p><code>Runtime -&gt; Change runtime type -&gt; Hardware accelerator: GPU<\/code><\/p>\n<p>Then we need to run the following cell to specify the GPU as the device.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>import torch\nif torch.cuda.is_available():       \n    device = torch.device(&quot;cuda&quot;)\n    print(f&#39;There are {torch.cuda.device_count()} GPU(s) available.&#39;)\n    print(&#39;Device name:&#39;, torch.cuda.get_device_name(0))\nelse:\n    print(&#39;No GPU available, using the CPU instead.&#39;)\n    device = torch.device(&quot;cpu&quot;)\n<\/pre>\n<pre>There are 1 GPU(s) available.\nDevice name: Tesla T4\n<\/pre>\n<h1 id=\"C---Baseline:-TF-IDF-+-Naive-Bayes-Classifier\"><span class=\"ez-toc-section\" id=\"C_%E2%80%93_Baseline_TF-IDF_Naive_Bayes_Classifier%C2%B6\"><\/span>C &#8211; Baseline: TF-IDF + Naive Bayes Classifier<a href=\"#C---Baseline:-TF-IDF-+-Naive-Bayes-Classifier\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>In this baseline approach, first we will use TF-IDF to vectorize our text data. Then we will use the Naive Bayes model as our classifier.<\/p>\n<p>Why Naive Bayse? I have experiemented different machine learning algorithms including Random Forest, Support Vectors Machine, XGBoost and observed that Naive Bayes yields the best performance. In <a href=\"https:\/\/scikit-learn.org\/stable\/tutorial\/machine_learning_map\/index.html\">Scikit-learn&#8217;s guide<\/a> to choose the right estimator, it is also suggested that Naive Bayes should be used for text data. I also tried using SVD to reduce dimensionality; however, it did not yield a better performance.<\/p>\n<h2 id=\"1.-Data-Preparation\"><span class=\"ez-toc-section\" id=\"1_Data_Preparation%C2%B6\"><\/span>1. Data Preparation<a href=\"#1.-Data-Preparation\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"1.1.-Preprocessing\"><span class=\"ez-toc-section\" id=\"11_Preprocessing%C2%B6\"><\/span>1.1. Preprocessing<a href=\"#1.1.-Preprocessing\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In the bag-of-words model, a text is represented as the bag of its words, disregarding grammar and word order. Therefore, we will want to remove stop words, punctuations and characters that don&#8217;t contribute much to the sentence&#8217;s meaning.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>import nltk\n# Uncomment to download &quot;stopwords&quot;\nnltk.download(&quot;stopwords&quot;)\nfrom nltk.corpus import stopwords\ndef text_preprocessing(s):\n    &quot;&quot;&quot;\n    - Lowercase the sentence\n    - Change &quot;&#39;t&quot; to &quot;not&quot;\n    - Remove &quot;@name&quot;\n    - Isolate and remove punctuations except &quot;?&quot;\n    - Remove other special characters\n    - Remove stop words except &quot;not&quot; and &quot;can&quot;\n    - Remove trailing whitespace\n    &quot;&quot;&quot;\n    s = s.lower()\n    # Change &#39;t to &#39;not&#39;\n    s = re.sub(r&quot;&#39;t&quot;, &quot; not&quot;, s)\n    # Remove @name\n    s = re.sub(r&#39;(@.*?)[s]&#39;, &#39; &#39;, s)\n    # Isolate and remove punctuations except &#39;?&#39;\n    s = re.sub(r&#39;([&#39;&quot;.()!?\\\/,])&#39;, r&#39; 1 &#39;, s)\n    s = re.sub(r&#39;[^ws?]&#39;, &#39; &#39;, s)\n    # Remove some special characters\n    s = re.sub(r&#39;([;:|\u2022\u00abn])&#39;, &#39; &#39;, s)\n    # Remove stopwords except &#39;not&#39; and &#39;can&#39;\n    s = &quot; &quot;.join([word for word in s.split()\n                  if word not in stopwords.words(&#39;english&#39;)\n                  or word in [&#39;not&#39;, &#39;can&#39;]])\n    # Remove trailing whitespace\n    s = re.sub(r&#39;s+&#39;, &#39; &#39;, s).strip()\n    return s\n<\/pre>\n<pre>[nltk_data] Downloading package stopwords to \/root\/nltk_data...\n[nltk_data]   Package stopwords is already up-to-date!\n<\/pre>\n<h3 id=\"1.2.-TF-IDF-Vectorizer\"><span class=\"ez-toc-section\" id=\"12_TF-IDF_Vectorizer%C2%B6\"><\/span>1.2. TF-IDF Vectorizer<a href=\"#1.2.-TF-IDF-Vectorizer\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In information retrieval, <strong>TF-IDF<\/strong>, short for <strong>term frequency\u2013inverse document frequency<\/strong>, is a numerical statistic that is intended to reflect how important a word is to a document in a collection or corpus. We will use TF-IDF to vectorize our text data before feeding them to machine learning algorithms.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>%%time\nfrom sklearn.feature_extraction.text import TfidfVectorizer\n# Preprocess text\nX_train_preprocessed = np.array([text_preprocessing(text) for text in X_train])\nX_val_preprocessed = np.array([text_preprocessing(text) for text in X_val])\n# Calculate TF-IDF\ntf_idf = TfidfVectorizer(ngram_range=(1, 3),\n                         binary=True,\n                         smooth_idf=False)\nX_train_tfidf = tf_idf.fit_transform(X_train_preprocessed)\nX_val_tfidf = tf_idf.transform(X_val_preprocessed)\n<\/pre>\n<pre>CPU times: user 5.47 s, sys: 519 ms, total: 5.99 s\nWall time: 6 s\n<\/pre>\n<h2 id=\"2.-Train-Naive-Bayes-Classifier\"><span class=\"ez-toc-section\" id=\"2_Train_Naive_Bayes_Classifier%C2%B6\"><\/span>2. Train Naive Bayes Classifier<a href=\"#2.-Train-Naive-Bayes-Classifier\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"2.1.-Hyperparameter-Tuning\"><span class=\"ez-toc-section\" id=\"21_Hyperparameter_Tuning%C2%B6\"><\/span>2.1. Hyperparameter Tuning<a href=\"#2.1.-Hyperparameter-Tuning\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>We will use cross-validation and AUC score to tune hyperparameters of our model. The function <code>get_auc_CV<\/code> will return the average AUC score from cross-validation.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from sklearn.model_selection import StratifiedKFold, cross_val_score\ndef get_auc_CV(model):\n    &quot;&quot;&quot;\n    Return the average AUC score from cross-validation.\n    &quot;&quot;&quot;\n    # Set KFold to shuffle data before the split\n    kf = StratifiedKFold(5, shuffle=True, random_state=1)\n    # Get AUC scores\n    auc = cross_val_score(\n        model, X_train_tfidf, y_train, scoring=&quot;roc_auc&quot;, cv=kf)\n    return auc.mean()\n<\/pre>\n<p>The <code>MultinominalNB<\/code> class only have one hypterparameter &#8211; <strong>alpha<\/strong>. The code below will help us find the alpha value that gives us the highest CV AUC score.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from sklearn.naive_bayes import MultinomialNB\nres = pd.Series([get_auc_CV(MultinomialNB(i))\n                 for i in np.arange(1, 10, 0.1)],\n                index=np.arange(1, 10, 0.1))\nbest_alpha = np.round(res.idxmax(), 2)\nprint(&#39;Best alpha: &#39;, best_alpha)\nplt.plot(res)\nplt.title(&#39;AUC vs. Alpha&#39;)\nplt.xlabel(&#39;Alpha&#39;)\nplt.ylabel(&#39;AUC&#39;)\nplt.show()\n<\/pre>\n<pre>Best alpha:  1.3\n<\/pre>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+\/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd3RVVdrH8e8vgRB6S2gJEIQgIohApAmiYgEs2AVFBVGwIZZxhpl3iuPMOI6OvoodG4oFsY2oqFgQRVEIRZBqKEKoQZQqEMLz\/nGP88YYQgK5OSnPZ62s3LvvPifPyVrkxzlnn71lZjjnnHOFFRN2Ac4558oWDw7nnHNF4sHhnHOuSDw4nHPOFYkHh3POuSLx4HDOOVckHhzOlXGShkiaXtx9nTsQDw5X7kn6RNIPkqrk035VnrYTJWXmei9JN0r6RtJOSZmSXpHUvqTqz1XL7ZJMUteS\/tnO5ebB4co1SSlAL8CAsw9hFw8Ao4AbgXpAa+A\/wBnFU2HhSBJwObAl+O5caDw4XHl3OfAlMA64oigbSkoFrgcGmdnHZrbHzHaZ2Qtmdlc+\/S+WlJ6n7WZJk4LX\/SUtkrRd0lpJvylCOb2AxkQCbKCkuALqtuAsaYWkzZLukRSTp8+\/g7OwlZL65WofKmlxUOMKSSOKUKOrIDw4XHl3OfBC8HW6pIZF2LYPkGlmMwvZ\/y3gyCBwfnYJ8GLw+ilghJnVBNoBHxehliuC\/U8M3p91kP7nAmlAJ2AAcGWuz7oCS4EE4G7gqeCMBmATcCZQCxgK\/K+kTkWo01UAHhyu3JLUE2gOTDSz2cByIn\/IC6s+sL6wnc1sF\/AmMCj4+alAG2BS0CUbaCuplpn9YGZzCrNfSdWAC4EXzSwbeJWDX676l5ltMbPVwP0\/1xT4zsyeMLMc4FkiZzINg2N4x8yWW8Q0YAqRsx3n\/suDw5VnVwBTzGxz8P5Ffnm5ah9QOc82lYn8gQf4nsgf1aJ4kf\/\/I30J8J8gUADOB\/oD30maJql7Ifd5blDr5OD9C0A\/SYkFbLMm1+vvgCa53m\/4+UWu2moASOon6UtJWyT9GNSbUMg6XQXhweHKJUlVgYuA3pI2SNoA3Ax0kNQh6LYaSMmzaQsif2gBPgKSJaUV4Ud\/ACRKOpZIgPx8mQozm2VmA4AGRG6wT8x\/F79yBZE\/7KuD43iFSMAVdPbUNNfrZsC6g\/2QYNTZa8C\/gYZmVodIWKnADV2F48HhyqtzgBygLXBs8HUU8Bn\/f5nnZWCopC7BsNvWRMJlAoCZfQs8ArwUDNONkxQvaaCk0fn90OBS0ivAPURGYX0AEGx7qaTaQZ9twP6DHYSkJCL3Ws7MdRwdgH9R8OWq2yTVldSUyKiwlw\/2s4A4oAqQBewLbpqfVojtXAXjweHKqyuAZ8xstZlt+PkLeAi4VFIlM3sfGA08A2wl8r\/rZ4GxufZzY7DNw8CPRO6TnEvkRvWBvAicArxiZvtytV8GrJK0DbgGuBRAUjNJOyQ1y2dflwHzzGxKnuMYAxwjqd0BangTmA3MA94hcmO+QGa2PTjeicAPRM5oJhW4kauQ5As5OVe+SDIg1cwywq7FlU9+xuGcc65IPDicc84ViV+qcs45VyRRPeOQ1FfSUkkZ+Y1CCW4KTpU0V9J8Sf2D9lMlzZa0IPh+cj7bTpL0TTTrd84592uVorVjSbFERqKcCmQCsyRNMrNFubr9kchTvY9KaktkVEsKsBk4y8zWBaNG3geScu37PGBHYWtJSEiwlJSUwzwi55yrWGbPnr3ZzH71oGnUggPoAmSY2QoASROIzJmTOziMyJw4ALUJHlIys7m5+iwEqkqqYmZ7JNUAbgGGU8gHqFJSUkhPTz94R+ecc\/8l6bv82qN5qSqJX057kEmus4bA7cDgYP2DycDIfPZzPjDHzPYE7\/8G3Avsyqfvf0kaLildUnpWVtYhlO+ccy4\/YY+qGgSMM7NkInPijM89\/bOko4k8ITsieH8s0NLM3jjYjs1srJmlmVlaYmJBU\/o455wrimgGx1p+OV9OctCW2zCCy01mNgOIJ5hQTVIy8AZwuZktD\/p3B9IkrQKmA60lfRKl+p1zzuUjmsExC0iV1CJYdGYgv56+YDWReXiQdBSR4MiSVIfINAmjzezznzub2aNm1sTMUoCewDIzOzGKx+Cccy6PqAVHMEfPDURGRC0mMnpqoaQ7JP28hOetwNWSvgZeAoZY5MGSG4BWwJ8lzQu+GkSrVuecc4VXIR4ATEtLMx9V5ZxzRSNptpn9almBsG+OO+ecK2Oi+RxHuWZmbNi2mxVZO1mRtYOa8ZU5u0MTYmJ8zRvnXPnmwVFIW3bu5Y25a1m6YRtLN+4gY+N2du7N+UWft75ex78v7EDd6nEhVemcc9HnwVEI6au2MPKluazfupuEGnGkNqjJBZ2TadWwJi0TqnNEYg2mLNrA399ezBljPuPBSzrSuXm9sMt2zrmo8OAogJnxxGcr+Nd7S0mqU5VJNxzPMcl18u17efcUOjaty\/UvzuGix7\/k2KZ1OLZpHTo2q0PPVgnUqeZnIc658sFHVR1Ads5+rn1+Dh8u3kjfoxtx94XHUCu+8kG327Y7m8c+Wc7MlVtYsHYre\/btJ7FmFZ4Zchztkmof6iE451yJO9CoKg+OAvzlzW9ISajOkB4pSEW\/6Z2ds5853\/3AzS\/PY9vufTw2uDM9UxOKvB\/nnAuDB0eIz3Fs2LqbIc\/MJGPTDv59YQfO6Zh3rkfnnCt9\/DmOEDWqHc\/LI7qTllKXm16ex5iPvqUiBLZzrnzy4CghtatW5tkru3BexyTu+2AZoybMY3d2zsE3dM65UsZHVZWgKpViufeiDrRqWIO731vK6i27ePyyzjSsFR92ac45V2h+xlHCJHHdia14bHBnlm7YTp97pzH20+Xs3bc\/7NKcc65QPDhC0rddI965sSddWtTjzslLOP3+T5m6dFPYZTnn3EF5cIToiMQaPD3kOJ4ZehwChj4ziyc\/WxF2Wc45VyC\/x1EKnHRkA3q0rM\/NL8\/j7+8s5sdd2dx6WutDenbEOeeizYOjlKhSKZYHB3WidtUFPDQ1gx927eWOAe2I9dl2nXOljAdHKRIbI+48tz11qsXx6CfLWbJhO\/84tx1tGtUKuzTnnPuvqN7jkNRX0lJJGZJG5\/N5M0lTJc2VNF9S\/6D9VEmzJS0Ivp8ctFeT9I6kJZIWSrormvWHQRK\/69uG+y7qwIqsHZw5Zjr\/fHcxu\/buC7s055wDohgckmKBh4F+QFtgkKS2ebr9kcha5B2BgcAjQftm4Cwzaw9cAYzPtc2\/zawN0BE4XlK\/aB1DmM7rlMzHt57IeZ2SeHzaCvo\/8BnLNm4PuyznnIvqGUcXIMPMVpjZXmACMCBPHwN+vg5TG1gHYGZzzWxd0L4QqCqpipntMrOpQZ+9wBwgOYrHEKq61eO4+4IOTBjejZ17czj34c9575sNYZflnKvgohkcScCaXO8zg7bcbgcGS8oEJgMj89nP+cAcM9uTu1FSHeAs4KP8frik4ZLSJaVnZWUd2hGUEt2OqM\/bI3uS2rAm1zw\/m\/umLGX\/fp\/ryjkXjrCf4xgEjDOzZKA\/MF7Sf2uSdDTwL2BE7o0kVQJeAsaYWb4PPpjZWDNLM7O0xMTEqB1ASWlYK54Jw7txYedkxnycwS0T55Gd40+bO+dKXjRHVa0FmuZ6nxy05TYM6AtgZjMkxQMJwCZJycAbwOVmtjzPdmOBb83s\/qhUXkrFV47l7guOISWhOve8v5Rtu\/fxyKWdiK8cG3ZpzrkKJJpnHLOAVEktJMURufk9KU+f1UAfAElHAfFAVnAZ6h1gtJl9nnsDSX8ncj\/kpijWXmpJ4vqTWvH3c9oxdekmLn9qJtt2Z4ddlnOuAolacJjZPuAG4H1gMZHRUwsl3SHp7KDbrcDVkr4mculpiEUWqrgBaAX8WdK84KtBcBbyP0RGac0J2q+K1jGUZoO7NWfMwI7MXfMDI56b7et7OOdKjK8AWMa98NV3\/M8b3\/Cv89tz8XHNwi7HOVeO+AqA5dSg45rRJaUe\/3hnMZu27w67HOdcBeDBUcbFxIg7z2vP7uz9\/PWtRWGX45yrADw4yoFWDWow8uRWvDN\/PR8u2hh2Oc65cs6Do5wY0bslRzasyZ\/e\/IYNW\/2SlXMuejw4yom4SjHcc+ExbPspm\/Me+ZxvfV4r51yUeHCUI8ck1+HlEd3Zm2Nc8NgMZq3aEnZJzrlyyIOjnGmXVJs3rutB\/epxXPrkV3zg9zycc8XMg6McalqvGq9e24OjGtXk2udnM2Whz6jrnCs+HhzlVL3qcYy\/qitHJ9XmuhfmeHg454qNB0c5Viu+MuOHdaFdEB7ve3g454qBB0c5Vyu+Ms8F4XHt87N5eGqGr+XhnDssHhwVQK34yrxwVVfOPKYJ97y\/lGHPzuLHXXvDLss5V0Z5cFQQ1atU4oGBx\/K3AUczPWMzZ4yZTsYmf9bDOVd0HhwViCQu657Cq9f0YM++\/QwdN4stO\/3MwzlXNB4cFVCHpnV44vLObNy2h2uen83efb4ErXOu8Dw4KqiOzepyzwXHMHPlFv70n298ISjnXKFFc81xV8oNODaJjE07ePDjDFIb1uCqXkeEXZJzrgyI6hmHpL6SlkrKkDQ6n8+bSZoqaa6k+ZL6B+2nSpotaUHw\/eRc23QO2jMkjZGkaB5DeXfzKa3p164Rd05ezNSlm8IuxzlXBkQtOCTFAg8D\/YisET5IUts83f5IZC3yjsBA4JGgfTNwlpm1B64Axufa5lHgaiA1+OobrWOoCGJixL0XdaBNo1rc+OJcn1XXOXdQ0Tzj6AJkmNkKM9sLTAAG5OljQK3gdW1gHYCZzTWzdUH7QqCqpCqSGgO1zOxLi1yUfw44J4rHUCFUi6vEE1ekUaVyLFc9l84PPtLKOVeAaAZHErAm1\/vMoC2324HBkjKBycDIfPZzPjDHzPYE22ceZJ8ASBouKV1SelZW1qEdQQWSVKcqj1\/WmfU\/7ua6F+awZ19O2CU550qpsEdVDQLGmVky0B8YL+m\/NUk6GvgXMKKoOzazsWaWZmZpiYmJxVZweda5eV3uOr89M1Z8zyVPfMXmHXvCLsk5VwpFMzjWAk1zvU8O2nIbBkwEMLMZQDyQACApGXgDuNzMlufaZ\/JB9ukOw3mdknnoko4sXLeVAQ99zqJ128IuyTlXykQzOGYBqZJaSIojcvN7Up4+q4E+AJKOIhIcWZLqAO8Ao83s8587m9l6YJukbsFoqsuBN6N4DBXSmcc04ZURPcjZb1zw2Bd8vMQXg3LO\/b+oBYeZ7QNuAN4HFhMZPbVQ0h2Szg663QpcLelr4CVgSHDT+wagFfBnSfOCrwbBNtcBTwIZwHLg3WgdQ0XWPrk2k244npaJNbjm+TnMWP592CU550oJVYQnhtPS0iw9PT3sMsqkH3ft5cLHZrB+624mDO9Gu6TaYZfknCshkmabWVre9rBvjrtSrk61OMYP60rtqpW54umZrMjaEXZJzrmQeXC4g2pUO57xw7oAMPjJr5iz+oeQK3LOhcmDwxXKEYk1ePbKLkjiwsdmcN8Hy8jO8Vl1nauIPDhcobVLqs27N\/ViQIcmjPnoWy549Asyf9gVdlnOuRLmweGKpFZ8Ze67+FgevqQTKzbv5Mpxs9ixZ1\/YZTnnSpAHhzskZxzTmMcGd2Z51k5unTiP\/fvL\/+g851yEB4c7ZMe3SuAP\/Y\/i\/YUbeWhqRtjlOOdKiAeHOyxXHp\/CeR2TuO+DZXywyJ8wd64i8OBwh0USd57XnmOSa3P9i3N4JX3NwTdyzpVpHhzusMVXjmXc0C4cl1KX216dzx\/\/s4C9+3yornPllQeHKxb1qsfx7NAujOh9BM9\/uZqLx85gw9bdYZflnIsCDw5XbCrFxvD7fkfxyKWdWLphO2c+OJ2vVvjkiM6VNx4crtj1b9+YN68\/nlrxlbj0ya945vOVVITJNJ2rKDw4XFSkNqzJf244npPaNOCvby3it6\/OJ8ef9XCuXPDgcFFTK74yjw\/uzI0nt+KV2Znc9srXHh7OlQOVwi7AlW8xMeKW046kcmwM936wDIB7LuxAbIxCrsw5d6iiesYhqa+kpZIyJI3O5\/NmkqZKmitpvqT+QXv9oH2HpIfybDNI0oKg\/3uSEqJ5DK54jOyTyq2ntub1uWv5zStfs89n1nWuzIpacEiKBR4G+gFtgUGS2ubp9kciS8p2JLIm+SNB+27gT8Bv8uyzEvAAcJKZHQPMJ7LMrCsDRvZJ5TenteaNuWu57oU57M7OCbsk59whiOYZRxcgw8xWmNleYAIwIE8fA2oFr2sD6wDMbKeZTScSILkp+KouScG266JUv4uCG05O5faz2vLB4o1c\/vRMtv6UHXZJzrkiimZwJAG555\/IDNpyux0YLCkTmAyMLGiHZpYNXAssIBIYbYGniqleV0KGHN+CBwZ2ZO7qH7j4cX9Q0LmyJuxRVYOAcWaWDPQHxks6YE2SKhMJjo5AEyKXqn5\/gL7DJaVLSs\/Kyir+yt1hObtDE54Z0oU1W3Zx+v2f8ursTH\/Ww7kyIprBsRZomut9ctCW2zBgIoCZzQDigYJudh8b9F1ukb8yE4Ee+XU0s7FmlmZmaYmJiYd2BC6qeqYmMGlkT1Ib1OA3r3zNFc\/M8hUFnSsDohkcs4BUSS0kxRG5+T0pT5\/VQB8ASUcRCY6CTg\/WAm0l\/ZwEpwKLi7VqV6JaJtZg4oju\/PXso0lftYV+D3zG7O9+CLss51wBohYcZraPyIin94n8cZ9oZgsl3SHp7KDbrcDVkr4GXgKGBGcSSFoF3AcMkZQpqa2ZrQP+CnwqaT6RM5A7o3UMrmTExIgreqTw3qgTqF89jsuf+srnuHKuFFNFuK6clpZm6enpYZfhCmHTtt1c+uRXrPlhF09cnkavVL\/M6FxYJM02s7S87WHfHHfuFxrUimfC8G60SKjBsGfT+WTpprBLcs7l4cHhSp36Narw0tVdad2wBtc8P5uZK7eEXZJzLhcPDlcq1akWWRgqqU5Vrhw3i\/mZP4ZdknMu4MHhSq36NarwwlXdqFOtMlc8PZNvN24PuyTnHB4crpRrVDue54d1pVJsDJc++RWrv\/fnPJwLmweHK\/VSEqrz\/LCu7M3Zz6VPfcnGbT5FiXNh8uBwZcKRjWry7NAubNmxl8FPfsWWnXvDLsm5CsuDw5UZHZrW4ckrjuO7Lbu4wmfWdS40HhyuTOnesj6PXtqJJRu2ceFjX7Dux5\/CLsm5CseDw5U5fY5qyLNDu7D+x92c+8jnLF6\/LeySnKtQPDhcmdSjVQITr+mOEBc9NoMvlm8OuyTnKgwPDldmHdW4Fq9f14PGdeIZ8swspi7x6UmcKwkeHK5Ma1KnKi8P707rhjUYPj6d977ZEHZJzpV7HhyuzKtbPY4XrupGu6TaXP\/iHN762pehdy6aPDhcuVC7amXGD+tK5+Z1GTVhLhNmrg67JOfKLQ8OV27UqFKJZ4d2oVdqIqNfX8DYT5eHXZJz5dIBg0PS6ZIuyKf9AkmnRrcs5w5N1bhYnrg8jTOOacydk5dw93tLqAiLlTlXkgo64\/gzMC2f9k+AOwqzc0l9JS2VlCFpdD6fN5M0VdJcSfMl9Q\/a6wftOyQ9lGebOEljJS2TtETS+YWpxVUccZViGDOwI4O6NOWRT5Zz\/Ytz2LxjT9hlOVduFBQcVcwsK2+jmW0Gqh9sx5JigYeBfkBbYJCktnm6\/ZHIWuQdgYHAI0H7buBPwG\/y2fX\/AJvMrHWw3\/zCzVVwsTHiznPb89u+R\/Lhok2cet80\/jN3rZ99OFcMCgqOWpIq5W2UVBmoWoh9dwEyzGyFme0FJgAD8vQxoFbwujawDsDMdprZdCIBkteVwD+DfvuDIHPuVyRx3YmteOfGnqQkVOeml+dx9XPpPkGic4epoOB4HXhC0n\/PLiTVAB4LPjuYJGBNrveZQVtutwODJWUCk4GRBe1QUp3g5d8kzZH0iqSGB+g7XFK6pPSsrF+dOLkKJLVhTV69pgd\/OrMtny7bTP8HPmPWKl+O1rlDVVBw\/BHYCHwnabakOcBKICv4rDgMAsaZWTLQHxgvqaCaKgHJwBdm1gmYAfw7v45mNtbM0swsLTExsZjKdWVVbIwY1rMFr1\/Xg\/jKMQwc+yWPfJLB\/v1+6cq5ojrgH2kz22dmo4GmwBDgCqCZmY02s8LMZ7022PZnyUFbbsOAicHPmwHEAwkF7PN7YBf\/f8bzCtCpELU4B0C7pNq8NbIn\/do14u73ljLoiS99VUHniqig4bjnSTqPyM3tVKAVkCapZiH3PQtIldRCUhyRm9+T8vRZDfQJft5RRILjgNeVLHJn8y3gxKCpD7CokPU4B0DN+Mo8OKgjd19wDIvWbeP0+z\/l2S9W+dmHc4WkA40ykfRMPs31gGOAYWb28UF3Hhleez8QCzxtZv+QdAeQbmaTglFWTwA1iNwo\/62ZTQm2XUXkxnkc8CNwmpktktQcGA\/UIRIyQ82swMeE09LSLD09\/WDlugpo\/dafGP3aAqYty6J360QeHdyJanG\/GhPiXIUkabaZpf2qvajDE4M\/3BPNrGtxFRdtHhyuIGbG81+t5i9vfsOxTevwzJAu1K5WOeyynAvdgYKjyFOOmNl3gP+rcuWGJC7r1pxHLu3EN2u3cfHYGWzant9IcOccHEJwSGoD+GO4rtzp264xTw85jtVbdnHhYzNYuXln2CU5VyoVdHP8LUmT8nxNB94Bbim5Ep0rOT1TE3j+qq5s+ymbcx7+3FcWdC4fBd0c752nyYAtRG6QX2xm10e5tmLj9zhcUa3+fhfDnp3Fys07uWNAOy7p2izskpwrcUW+x2Fm037+ArYBZwFvA38FFketUudKgWb1q\/HadT04vlUCf3hjAbdPWsi+nP1hl+VcqXDAcYeSWhN5snsQsBl4mcgZykklVJtzoaoVX5mnrkjjzslLePrzlWRs2sFDl3SkTrW4sEtzLlQF3RxfApwMnGlmPc3sQSCnZMpyrnSoFBvDn89qy93nH8NXK7\/nnIc\/J2PT9rDLci5UBQXHecB6YKqkJyT1AVQyZTlXulx0XFNeurobO\/bs45yHv\/B1zV2FVtA9jv+Y2UCgDTAVuAloIOlRSaeVVIHOlRZpKfV484aetG5Yg5EvzeX3ry9gd7afhLuK56DPcQRrY7xoZmcRmahwLvC7qFfmXCmUVKcqL4\/ozjW9W\/LSzNWc8\/DnLNmwLeyynCtRRXoA0Mx+CKYr7xOtgpwr7SrHxjC6XxvGDT2OrO17OHPMdO6bspQ9+\/zsw1UMRX5y3DkXceKRDfjglt6c3aEJYz7OoP8Dn5HuC0S5CsCDw7nDUK96HPddfCzjhh7H7uz9XPDYDH736nx+8OVpXTnmweFcMTjxyAZMufkERpxwBK\/NyeTkez9h4qw1vsaHK5c8OJwrJtWrVOL3\/Y\/inRt70apBDX772nwuf3om6378KezSnCtWHhzOFbMjG9Vk4oju\/OPcdsxZ\/QOn3\/8pr83OpKhr3zhXWnlwOBcFkri0a3PeHdWLNo1qcusrX3PVs+ms2eLrm7uyL6rBIamvpKWSMiSNzufzZpKmSporaX6w1CyS6gftOyQ9dIB9T5L0TTTrd+5wNa9fnQnDu\/M\/\/Y\/ii+Xfc8p903jwo2996K4r06IWHJJigYeBfkBbYFCwxnhufySyDG1HYCDwSNC+G\/gT8JsD7Ps8YEc06nauuMXGiKtPOIKPbu1Nn6MacO8Hy+h7\/2d8s3Zr2KU5d0iiecbRBcgwsxVmtheYAAzI08eAWsHr2sA6+O\/T6tOJBMgvSKpBZCGpv0ercOeioUmdqjxyaWeeu7ILu7NzOP\/RL3glfU3YZTlXZNEMjiQg97+KzKAtt9uBwZIygcnAyELs92\/AvUCBF4slDZeULik9Kyur0EU7F20ntE7krZE96dy8Lre9Op8\/vLHAL125MiXsm+ODgHFmlgz0B8ZLKmg522OBlmb2xsF2HEyNkmZmaYmJicVXsXPFIKFGFZ67sgvXntiSF79azSn3TeP1OZnk+HMfrgyIZnCsBZrmep8ctOU2DJgIYGYzgHggoYB9dgfSJK0CpgOtJX1STPU6V6Iqxcbwu75tGD+sCzWrVOaWiV\/T9\/5P+XDRxrBLc65A0QyOWUCqpBaS4ojc\/J6Up89qoA+ApKOIBMcBryuZ2aNm1sTMUoCewDIzOzEKtTtXYnqlJvL2yJ48fEkncsy46rl0fvvq1+zauy\/s0pzL1wGXjj1cZrZP0g3A+0As8LSZLZR0B5BuZpOAW4EnJN1M5Eb5EAuekgrOKmoBcZLOAU4zs0XRqte5MMXEiDOOacxpRzfkgQ+\/5eFPMkhf9QNjBnWkXVLtsMtz7hdUEZ5mTUtLs\/T09LDLcK7Qvli+mVte\/prvd+5h5MmpjOh9BFUqxYZdlqtgJM02s7S87WHfHHfO5aNHywTeHdWL049uxH0fLKPfA58xY\/n3YZflHODB4VypVbd6HA9d0olxQ48jO2c\/g574klsmzmOLT9nuQubB4Vwpd+KRDZhyU2+uP6klk+ato8+9n\/BK+hqfNNGFxoPDuTKgalwst53ehsmjenFEYg1ue3U+lzzxlU+a6ELhweFcGdK6YU1eGdGdO89tzzdrt9L\/gc94c17ex6Ociy4PDufKmJgYcUnXZkwe1YvWjWoyasI8bnl5Htt3Z4ddmqsgPDicK6Oa1qvGy8O7MapPKv+Zt5Zed0\/lfz9Y5jfPXdT5cxzOlQPzM3\/kwY8z+GDRRqpWjmVQl2bcdGoqteIrh12aK8MO9ByHB4dz5ci3G7fz2LQVvDE3k8SaVfjHOe05pW3DsMtyZZQ\/AOhcBZDasCb3XtSBN647nrrV4rjquXRufGkum3fsCbs0V454cDhXDnVoWodJN\/Tk5lNa8+436znpnk8Y++lyX\/fDFQsPDufKqbhKMYw6JZV3R51AWkpd7py8hNP+16dtd4fPg8O5cq5Vgxo8M7QL44YeR+XYGK56Lp3rXpjNpu2\/WpnZuULx4HCugjjxyAa8O6oXt51+JB8u3sQp905j4iyfusQVnQeHcxVI5TyUwpQAABHuSURBVNgYrj+pFe+O6kWbRrX47WvzuejxGSxaty3s0lwZ4sHhXAXUMrEGE4Z3467z2pOxaQdnPvgZf3nzG7bu8qfP3cF5cDhXQcXEiIFdmjH1NydyadfmjP\/yO3re\/TH3TVnKD\/70uStAVINDUl9JSyVlSBqdz+fNJE2VNFfSfEn9g\/b6QfsOSQ\/l6l9N0juSlkhaKOmuaNbvXEVQp1ocfzunHW+P7MXxLRMY83EGx\/\/rY+6cvJgfd3mAuF+L2pPjkmKBZcCpQCYwCxiUe91wSWOBuWb2qKS2wGQzS5FUHegItAPamdkNQf9qQFczmyopDvgIuNPM3i2oFn9y3LnCW7ZxO49MzWDS1+uoXbUyt53ehouPa0psjMIuzZWwMJ4c7wJkmNkKM9sLTAAG5OljQK3gdW1gHYCZ7TSz6cAvxgua2S4zmxq83gvMAZKjdwjOVTytG9bk\/oEdeXtkL1Ib1uQPbyxgwMPTmbP6h7BLc6VENIMjCViT631m0Jbb7cBgSZnAZGBkYXcuqQ5wFpGzjvw+Hy4pXVJ6VlZWUep2zgFtm9Ti5eHdGDOoI5u37+X8R7\/gL29+w449+8IuzYUs7Jvjg4BxZpYM9AfGSzpoTZIqAS8BY8xsRX59zGysmaWZWVpiYmKxFu1cRSGJszs04cNbe3NF9xSe+\/I7Tr1vGlMWbvDnPyqwaAbHWqBprvfJQVtuw4CJAGY2A4gHEgqx77HAt2Z2fzHU6Zw7iBpVKnH72Ufz2rU9qBVfmeHjZ3PR4zOYuXJL2KW5EEQzOGYBqZJaBDeyBwKT8vRZDfQBkHQUkeAo8LqSpL8TuR9yU7FX7JwrUKdmdXn7xp787Zx2fPf9Li56fAaXPz2Theu2hl2aK0FRXY8jGF57PxALPG1m\/5B0B5BuZpOCkVRPADWI3Cj\/rZlNCbZdReTGeRzwI3AasI3IfZMlwM\/zRD9kZk8WVIePqnKu+P20N4fnZqzi0WnL2fpTNhd2TuY3px1Jg1rxYZfmiokv5OTB4VxUbN2VzYMff8uzM1ZROTaGa3q35KpeLagWVyns0txh8oWcnHNRUbtaZf54Zls+uLk3J6Qmct8Hyzjxnk+YMHM1+3L2h12eiwIPDudcsUhJqM5jl3Xm1Wu6k1y3KqNfX0C\/Bz7jnfnr2b+\/\/F\/ZqEg8OJxzxSotpR6vXduDxwZ3IseM61+cw+n3f8qb89aS4wFSLnhwOOeKnST6tmvMBzf3ZsygjgCMmjCPvvd\/ykeLN\/ozIGWcB4dzLmpiYyIPEL5\/0wk8fEkn9u03hj2bzsCxXzLXpzAps3xUlXOuxGTn7GfCzNXc\/+G3fL9zL60b1uCM9k04s0NjWibWCLs8l4cPx\/XgcK7U2LFnH2\/MyeSt+euZtWoLZtC1RT1G9Umle8v6SD4Tb2ngweHB4VyptHHbbibNW8eT01ewcdseOjevy82ntKZnamFmH3LR5MHhweFcqbY7O4dX0tfw6CfLWbd1NwOObcKfz2xL\/RpVwi6twvIHAJ1zpVp85Vgu657C1NtOZFSfVCYvWM8p903jP3PX+iisUsaDwzlXqlSpFMvNp7bmnRt70bx+dW56eR4Dx37JN2t9IsXSwoPDOVcqtW5Yk9eu7cHfz2lHxqYdnPXQdG6ZOI\/1W38Ku7QKz4PDOVdqxcaIwd2aM\/W2ExlxQkve\/no9J\/97Gg98+C0\/7c0Ju7wKy4PDOVfq1YqvzOh+bfjo1t6c3KYB\/\/vhMvrc+wlvzlvr82CFwIPDOVdmNK1XjYcv7cTLw7tRt3ocoybMo98DnzF5gU+kWJI8OJxzZU7XI+oz6Yae3H\/xsWTv3891L8yh3wOfMenrdT6Vewnw5zicc2Vazn7j7fnreOCjb1mRtZPkulW5utcRXJiW7ItJHaZQnuOQ1FfSUkkZkkbn83kzSVMlzZU0P1hqFkn1g\/Ydkh7Ks01nSQuCfY6Rz03gXIUWGyMGHJvEhzf35vHLOtOgZhX+Mmkh3f\/5MX9+8xsWZG7150CKWdTOOCTFAsuAU4FMYBYwyMwW5eozFphrZo8G649PNrMUSdWBjkA7oJ2Z3ZBrm5nAjcBXwGRgjJm9W1AtfsbhXMWSvmoLz874jvcXbmDvvv20aVSTczomcUb7xjStVy3s8sqMA51xRPM8rguQYWYrggImAAOARbn6GFAreF0bWAdgZjuB6ZJa5d6hpMZALTP7Mnj\/HHAOUGBwOOcqlrSUeqSl1GPrT9m89fU6XpuTyV3vLuGud5fQIbk2\/ds3ps9RDWmZWN0nVDwE0QyOJGBNrveZQNc8fW4HpkgaCVQHTinEPjPz7DMpv46ShgPDAZo1a1boop1z5UftqpUZ3K05g7s1Z82WXUxesJ6356\/nn+8u4Z\/vLqF5\/Wr0adOQ8zol0S6pdtjllhlh3zkaBIwzs3sldQfGS2pnZoc9LMLMxgJjIXKp6nD355wr25rWq8aI3i0Z0bsl6378iY+WbOLjxRt5\/qvvePrzlXRIrs2gLs04+9gmflP9IKJ5c3wt0DTX++SgLbdhwEQAM5sBxAMFzaW8NthPQft0zrkCNalTlcu6NeeZoV2Y9YdT+MtZbdm1N4fRry\/gxHsiDxb6DfUDi2ZwzAJSJbWQFAcMBCbl6bMa6AMg6SgiwZF1oB2a2Xpgm6RuwWiqy4E3o1G8c65iqF2tMkOPb8GUm09gwvBuNKodz6gJ87h47Jcs2bAt7PJKpag+xxEMr70fiAWeNrN\/SLoDSDezScFIqieAGkRulP\/WzKYE264icuM8DvgROM3MFklKA8YBVYncFB9pBzkIH1XlnCusnP3GxPQ13P3eErb+lE2\/9o25tnfLCnkPxBdy8uBwzhXBDzv38vinK3jhy+\/YvmcfvVITuKZ3S3pUoKVtPTg8OJxzh2Db7mxe\/Go1T01fSdb2PRyTXJtre7fktKMbERtTvgPEg8ODwzl3GHZn5\/DG3LU8Pm05q77fRYuE6gw\/4QjO65RElUqxYZcXFR4cHhzOuWKQs994f+EGHv1kOQvWbqVBzSpc2bMF53ZMomGt+LDLK1YeHB4czrliZGZ8sfx7Hv1kOdMzNgPQplFNeh+ZSP92jenQtE7IFR4+Dw4PDudclHy7cTsfL9nEtGVZzFq1hewc46QjE7n1tCPL9GgsDw4PDudcCdi+O5vnv1zNY9OWs\/WnbE4\/uiE3nJRK++SyFyAeHB4czrkStG13Nk9PX8lTn61k+5599GhZnxG9W3JCakKZGc7rweHB4ZwLwbbd2UyYGRnOu3HbHo5uUotbT2vNSUc2KPUB4sHhweGcC9Hefft5c95aHvw4g9VbdtGxWR1uPqU1PVslEFNKnwfx4PDgcM6VAtk5+3l1diZjPvqW9Vt307h2PGce05izOyTRLqlWqToL8eDw4HDOlSK7s3N4f+EG3vp6HdOWZZGdYxzVuBZDj0\/h7A5NiK8c\/kOFHhweHM65UurHXXt5Z8F6nvviO5Zu3E796nFc2rUZl\/dIIaFGldDq8uDw4HDOlXJmxozl3\/P056v4aMlG4mJjOL9zMlf3OoIWCdVLvJ4w1hx3zjlXBJLo0SqBHq0SWJ61gyc\/W8GrszN5aeZqjm+ZwPmdkzj96Eahr1DoZxzOOVeKbdq+mxe+XM3rczNZs+UnqsfF0q99Y87rmES3I+pHdUSWX6ry4HDOlWH79xuzVm3htTmZTF6wgR179tG4djwDjk1iUJemNK9f\/JeyQgkOSX2BB4isAPikmd2V5\/NmwLNAnaDPaDObHHz2eyJrkucAN5rZ+0H7zcBVRFYMXAAMNbPdBdXhweGcK092Z+fwwaKNvDF3LdOWZZGz3+iVmsBl3ZpzcpsGVIotnlXBSzw4JMUCy4BTgUwia5APMrNFufqMBeaa2aPBMrKTzSwleP0S0AVoAnwItAYaAdOBtmb2k6SJwTbjCqrFg8M5V15t3LabCTPX8NLM1WzYtpvEmlU4t2MS53VKok2jWoe17wMFR\/HEUv66ABlmtsLM9gITgAF5+hiRdcUBagPrgtcDgAlmtsfMVgIZwf4gckO\/qqRKQLVc2zjnXIXTsFY8o05JZfrvTmLsZZ3p2LQOT09fSd\/7P+OMMZ+RtX1Psf\/MaN6aTwLW5HqfCXTN0+d2YIqkkUB14JRc236ZZ9skM5sh6d\/AauAnYIqZTYlC7c45V6ZUio3htKMbcdrRjdiycy+T5q1lxorvSagRV+w\/K5pnHIUxCBhnZslAf2C8pAPWJKkukbORFkQuYVWXNPgAfYdLSpeUnpWVFYXSnXOudKpXPY4hx7fg8cvSojKFSTSDYy3QNNf75KAtt2HARAAzmwHEAwkFbHsKsNLMsswsG3gd6JHfDzezsWaWZmZpiYmJxXA4zjnnILrBMQtIldRCUhwwEJiUp89qoA+ApKOIBEdW0G+gpCqSWgCpwMygfzdJ1RSJ0T7A4igeg3POuTyido\/DzPZJugF4n8hQ26fNbKGkO4B0M5sE3Ao8EQyxNWCIRYZ5LQxGTC0C9gHXm1kO8JWkV4E5QftcYGy0jsE559yv+QOAzjnn8hXGcFznnHPlkAeHc865IvHgcM45VyQeHM4554qkQtwcl5QFfBd2HYcpAdgcdhGljP9Ofsl\/H7\/kv49fK+rvpLmZ\/epBuAoRHOWBpPT8RjdUZP47+SX\/ffyS\/z5+rbh+J36pyjnnXJF4cDjnnCsSD46yw5+Q\/zX\/nfyS\/z5+yX8fv1YsvxO\/x+Gcc65I\/IzDOedckXhwOOecKxIPjlJOUlNJUyUtkrRQ0qiwayoNJMVKmivp7bBrCZukOpJelbRE0mJJ3cOuKWySbg7+vXwj6SVJ8WHXVNIkPS1pk6RvcrXVk\/SBpG+D73UPZd8eHKXfPuBWM2sLdAOul9Q25JpKg1H4Wiw\/ewB4z8zaAB2o4L8XSUnAjUCambUjsqzDwHCrCsU4oG+ettHAR2aWCnwUvC8yD45SzszWm9mc4PV2In8UksKtKlySkoEzgCfDriVskmoDJwBPAZjZXjP7MdyqSoVKQFVJlYBqwLqQ6ylxZvYpsCVP8wDg2eD1s8A5h7JvD44yRFIK0BH4KtxKQnc\/8Ftgf9iFlAItiKya+Uxw6e5JSdXDLipMZrYW+DeRFUPXA1vNbEq4VZUaDc1sffB6A9DwUHbiwVFGSKoBvAbcZGbbwq4nLJLOBDaZ2eywayklKgGdgEfNrCOwk0O8\/FBeBNftBxAJ1SZAdUmDw62q9AlWWz2k5zE8OMoASZWJhMYLZvZ62PWE7HjgbEmrgAnAyZKeD7ekUGUCmWb281noq0SCpCI7BVhpZllmlg28DvQIuabSYqOkxgDB902HshMPjlJOkohcv15sZveFXU\/YzOz3ZpZsZilEbnh+bGYV9n+TZrYBWCPpyKCpD7AoxJJKg9VAN0nVgn8\/fajgAwZymQRcEby+AnjzUHbiwVH6HQ9cRuR\/1vOCr\/5hF+VKlZHAC5LmA8cCd4ZcT6iCs69XgTnAAiJ\/5yrc9COSXgJmAEdKypQ0DLgLOFXSt0TOzO46pH37lCPOOeeKws84nHPOFYkHh3POuSLx4HDOOVckHhzOOeeKxIPDOedckXhwOFeMJJ0jySS1Cd6n5J6d9ADbHLSPc6WJB4dzxWsQMD347ly55MHhXDEJ5hPrCQwjn2m8JQ2R9KakT4L1EP6S6+NYSU8Ea0hMkVQ12OZqSbMkfS3pNUnVSuZonDswDw7nis8AIutiLAO+l9Q5nz5dgPOBY4ALJaUF7anAw2Z2NPBj0AfgdTM7zsx+XmdjWFSPwLlC8OBwrvgMIjLxIsH3\/C5XfWBm35vZT0Qm3+sZtK80s3nB69lASvC6naTPJC0ALgWOjkrlzhVBpbALcK48kFQPOBloL8mIrDpnwMN5uuad4+fn93tyteUAVYPX44BzzOxrSUOAE4uvaucOjZ9xOFc8LgDGm1lzM0sxs6bASqBpnn6nBus+VyWy+trnB9lvTWB9MLX+pcVetXOHwIPDueIxCHgjT9trwO\/ztM0M2ucDr5lZ+kH2+yciKz5+DiwphjqdO2w+O65zJSS41JRmZjeEXYtzh8PPOJxzzhWJn3E455wrEj\/jcM45VyQeHM4554rEg8M551yReHA455wrEg8O55xzRfJ\/MSqXvDZYRG4AAAAASUVORK5CYII=\n\"\n><\/p>\n<h3 id=\"2.2.-Evaluation-on-Validation-Set\"><span class=\"ez-toc-section\" id=\"22_Evaluation_on_Validation_Set%C2%B6\"><\/span>2.2. Evaluation on Validation Set<a href=\"#2.2.-Evaluation-on-Validation-Set\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To evaluate the performance of our model, we will calculate the accuracy rate and the AUC score of our model on the validation set.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from sklearn.metrics import accuracy_score, roc_curve, auc\ndef evaluate_roc(probs, y_true):\n    &quot;&quot;&quot;\n    - Print AUC and accuracy on the test set\n    - Plot ROC\n    @params    probs (np.array): an array of predicted probabilities with shape (len(y_true), 2)\n    @params    y_true (np.array): an array of the true values with shape (len(y_true),)\n    &quot;&quot;&quot;\n    preds = probs[:, 1]\n    fpr, tpr, threshold = roc_curve(y_true, preds)\n    roc_auc = auc(fpr, tpr)\n    print(f&#39;AUC: {roc_auc:.4f}&#39;)\n    # Get accuracy over the test set\n    y_pred = np.where(preds &gt;= 0.5, 1, 0)\n    accuracy = accuracy_score(y_true, y_pred)\n    print(f&#39;Accuracy: {accuracy*100:.2f}%&#39;)\n    # Plot ROC AUC\n    plt.title(&#39;Receiver Operating Characteristic&#39;)\n    plt.plot(fpr, tpr, &#39;b&#39;, label = &#39;AUC = %0.2f&#39; % roc_auc)\n    plt.legend(loc = &#39;lower right&#39;)\n    plt.plot([0, 1], [0, 1],&#39;r--&#39;)\n    plt.xlim([0, 1])\n    plt.ylim([0, 1])\n    plt.ylabel(&#39;True Positive Rate&#39;)\n    plt.xlabel(&#39;False Positive Rate&#39;)\n    plt.show()\n<\/pre>\n<p>By combining TF-IDF and the Naive Bayes algorithm, we achieve the accuracy rate of <strong>72.65%<\/strong> on the validation set. This value is the baseline performance and will be used to evaluate the performance of our fine-tune BERT model.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre># Compute predicted probabilities\nnb_model = MultinomialNB(alpha=1.8)\nnb_model.fit(X_train_tfidf, y_train)\nprobs = nb_model.predict_proba(X_val_tfidf)\n# Evaluate the classifier\nevaluate_roc(probs, y_val)\n<\/pre>\n<pre>AUC: 0.8451\nAccuracy: 75.59%\n<\/pre>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+\/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd5hU9fXH8fcBaSKgojFKUaJYwIKwETvYAUFUFMEGCmKvaDTRREOIxhJbgkqR4M+CXURFMQqIqKggoBRRBKUoEREVFJByfn9877rDujs77O7MnZn9vJ5nnp2Ze+feM3d358y33HPN3RERESlNtbgDEBGR7KZEISIiSSlRiIhIUkoUIiKSlBKFiIgkpUQhIiJJKVHIZjGzWWbWPu44soWZ\/cnMhsW07xFmNjCOfVc2MzvDzF4t52v1N5lmShQ5zMw+N7PVZrbKzJZGHxxbpXOf7t7S3Sekcx+FzKyWmd1iZguj9\/mpmV1jZpaJ\/ZcQT3szW5z4nLvf7O5907Q\/M7PLzGymmf1oZovN7Ckz2ycd+ysvM7vJzB6pyDbc\/VF3PzaFff0qOWbyb7KqUqLIfV3cfSugFbA\/8MeY49lsZrZFKYueAo4COgH1gLOAfsA9aYjBzCzb\/h\/uAS4HLgO2BXYHRgHHV\/aOkvwO0i7OfUuK3F23HL0BnwNHJzy+DXgp4fGBwNvAd8AMoH3Csm2B\/wBfAiuAUQnLOgPTo9e9DexbfJ\/ATsBqYNuEZfsD3wA1osfnAnOi7Y8Fdk5Y14GLgU+BBSW8t6OANUCTYs+3BTYAu0WPJwC3AO8BPwDPF4sp2TGYAPwdeCt6L7sB50QxrwTmA+dH69aN1tkIrIpuOwE3AY9E6+wSva9ewMLoWFyfsL86wEPR8ZgD\/AFYXMrvtnn0Pg9I8vsfAQwCXorifRfYNWH5PcCi6LhMBQ5LWHYT8DTwSLS8L3AA8E50rL4C\/g3UTHhNS+C\/wLfA\/4A\/AR2An4F10TGZEa3bAHgw2s4SYCBQPVrWOzrmdwHLo2W9gUnRcouWfR3F9hGwN+FLwrpof6uAF4r\/HwDVo7g+i47JVIr9DelWjs+auAPQrQK\/vE3\/QRpH\/1D3RI8bRf+EnQgtx2Oix9tHy18CngC2AWoA7aLn94\/+QdtG\/3S9ov3UKmGf44DzEuK5HXggut8VmAfsBWwB3AC8nbCuRx862wJ1Snhv\/wDeKOV9f0HRB\/iE6INob8KH+TMUfXCXdQwmED7QW0Yx1iB8W981+rBqB\/wEtI7Wb0+xD3ZKThRDCUlhP2AtsFfie4qOeWPgw+LbS9juBcAXZfz+R0Tv54Ao\/keBxxOWnwk0jJb1B5YCtRPiXgecGB2bOkAbQmLdInovc4ArovXrET70+wO1o8dtix+DhH0\/BwyOfie\/ISTywt9Zb2A9cGm0rzpsmiiOI3zAbx39HvYCdkx4zwOT\/B9cQ\/g\/2CN67X5Aw7j\/V3P9FnsAulXglxf+QVYRvjk58DqwdbTsWuDhYuuPJXzw70j4ZrxNCdu8H\/hbsefmUpRIEv8p+wLjovtG+PZ6ePT4ZaBPwjaqET50d44eO3Bkkvc2LPFDr9iyyUTf1Akf9v9IWNaC8I2zerJjkPDaAWUc41HA5dH99qSWKBonLH8P6BHdnw8cl7Csb\/HtJSy7HphcRmwjgGEJjzsBHydZfwWwX0LcE8vY\/hXAc9H9nsC0Utb75RhEj3cgJMg6Cc\/1BMZH93sDC4ttozdFieJI4BNC0qpWwntOlijmAl3T8f9WlW\/Z1icrm+9Ed69H+BDbE9guen5n4FQz+67wBhxKSBJNgG\/dfUUJ29sZ6F\/sdU0I3SzFPQMcZGY7AocTks+bCdu5J2Eb3xKSSaOE1y9K8r6+iWItyY7R8pK28wWhZbAdyY9BiTGYWUczm2xm30brd6LomKZqacL9n4DCCQY7Fdtfsve\/nNLffyr7wsyuNrM5ZvZ99F4asOl7Kf7edzezF6OJET8ANyes34TQnZOKnQm\/g68SjvtgQsuixH0ncvdxhG6vQcDXZjbEzOqnuO\/NiVNSpESRJ9z9DcK3rTuipxYRvk1vnXCr6+7\/iJZta2Zbl7CpRcDfi71uS3cfWcI+VwCvAqcBpxNaAJ6wnfOLbaeOu7+duIkkb+k1oK2ZNUl80szaEj4MxiU8nbhOU0KXyjdlHINfxWBmtQjJ7w5gB3ffGhhDSHBlxZuKrwhdTiXFXdzrQGMzKyjPjszsMMIYSHdCy3Fr4HuK3gv8+v3cD3wMNHf3+oS+\/sL1FwG\/K2V3xbeziNCi2C7huNd395ZJXrPpBt3vdfc2hBbi7oQupTJfF+171zLWkc2kRJFf7gaOMbP9CIOUXczsODOrbma1o+mdjd39K0LX0H1mto2Z1TCzw6NtDAUuMLO20UygumZ2vJnVK2WfjwFnA6dE9ws9APzRzFoCmFkDMzs11Tfi7q8RPiyfMbOW0Xs4MHpf97v7pwmrn2lmLcxsS2AA8LS7b0h2DErZbU2gFrAMWG9mHYHEKZv\/AxqaWYNU30cxTxKOyTZm1gi4pLQVo\/d3HzAyirlmFH8PM7suhX3VI4wDLAO2MLO\/AGV9K69HGDxeZWZ7AhcmLHsR2NHMroimLdeLkjaE47JL4ayx6O\/rVeCfZlbfzKqZ2a5m1i6FuDGz30d\/fzWAHwmTGjYm7Ku0hAWhy\/JvZtY8+vvd18waprJfKZ0SRR5x92XA\/wF\/cfdFhAHlPxE+LBYRvpUV\/s7PInzz\/pgweH1FtI0pwHmEpv8KwoB07yS7HU2YobPU3WckxPIccCvweNSNMRPouJlvqRswHniFMBbzCGEmzaXF1nuY0JpaShhovSyKoaxjsAl3Xxm99knCez89en+Fyz8GRgLzoy6VkrrjkhkALAYWEFpMTxO+eZfmMoq6YL4jdKmcBLyQwr7GEo7bJ4TuuDUk7+oCuJrwnlcSvjA8UbggOjbHAF0Ix\/lT4Iho8VPRz+Vm9kF0\/2xC4p1NOJZPk1pXGoSENjR63ReEbrjbo2UPAi2i4z+qhNfeSfj9vUpIeg8SBsulAqyop0Ak95jZBMJAaixnR1eEmV1IGOhO6Zu2SFzUohDJEDPb0cwOibpi9iBMNX0u7rhEypK2RGFmw83sazObWcpyM7N7zWyemX1oZq3TFYtIlqhJmP2zkjAY\/zxhHEIkq6Wt6ykaHF0F\/J+7713C8k6EvuZOhJO77nH3tsXXExGReKWtReHuEwlz50vTlZBE3N0nA1tH8\/FFRCSLxFmMqxGbzsJYHD33VfEVzawfoc4LdevWbbPnnntmJEARkcoydy6sXg11MjwHa4e1X7DV+u+Y4eu\/cffty7ONnKja6O5DgCEABQUFPmXKlJgjEpFcMmQIPPZY2eulU\/XqcOihMGFCBnZWOKRgBvffD19\/jd100xfl3VyciWIJm56Z2jh6TkSqmHR\/kL\/xRvjZLsaJyK1awemnZ2BHS5bAhRfCaafBGWeE+wA33VTuTcaZKEYDl5jZ44TB7O+jMzpFpIp57DGYPj18mKZDu3bhQ7pfv\/RsPyu4w7BhcPXVsG4dHF95ly1JW6Iws5GEQnXbWbgq2I2EQmG4+wOEGjqdCGf+\/kS4DoCIVFGtWmWoWyYfffYZnHcejB8PRxwBQ4fCrpVX8ipticLde5axvPDCNSKSx1LpVkpna6JK+OgjmDo1HOy+fcPYRCXKicFsEYlPRccPUhkfyFj\/fT6ZORM++ADOPhtOPBHmz4eG6al\/qEQhEqNsmI1TlooOBFeJ8YFM+vlnuPnmcNthB+jeHWrXTluSACUKkYwoLSFkw2ycsuiDPou8+y706QOzZsGZZ8Jdd4UkkWZKFCIZUNqsHn0IS8qWLIHDDgutiBdfrNRZTWVRohCpBGV1IRUmCc3qkc32ySew++7QqBE88QQcdRTUT\/XKsJVDZcZFKmjIEDj\/\/KJupJJosFY223ffhabmnnvCxInhuZNOyniSALUoRMqtsBVRmCAGD1YXklSS0aPDGdVLl8I118Dvfx9rOEoUIuVUOO6gcQapVH37woMPwj77wPPPQ0FB3BEpUYhsrsKWhMYdpNIkFvErKICdd4Zrr4WaNeONK6JEIbKZEpOExh2kwhYtggsugB494Kyzwv0so0QhUg5qSUiFbdwYBrauvRY2bAgD1VlKiUJEJNM+\/TSMRUycCEcfHfozmzWLO6pSKVGIiGTa7Nnw4YcwfDj07l3pRfwqmxKFiEgmzJgRBrd69YKuXUMRv222iTuqlChRSJVV3oJ8Koktm2XtWhg4EP7xD9hxx3Dludq1cyZJgBKF5IHyfuCXtyCfZjtJyt55JxTxmzMnlAO\/886MFPGrbEoUkvPKexlNnSgnabVkSfgj++1vYcwY6Ngx7ojKTYlCckpJrQed+CZZZc4c2GuvUMTvySdDEb969eKOqkKUKCQrbc71G9QVJFlhxQro3x\/+858w7fWww8KV5\/KAEoVkJV2\/QXLKc8\/BRRfBsmXwxz\/GXsSvsilRSNZSd5LkhHPPDa2IVq3gpZegdeu4I6p0ShQiIpsrsYjfgQdC8+Zw9dVQo0a8caWJEoVkxOZOYdW5CpK1vvgiXKnq9NPDlNcq0A+qRCFpUTwxbO45CxqglqyzcSPcfz9cd11oUZx6atwRZYwShVSKshKDBqElp82dG4r4TZoExx4bqr7uskvcUWWMEoVUiuKzlJQYJK\/MnQuzZsGIEaG7KcuL+FU2JQqpNJqlJHll2rTw7eecc+CEE0IRv623jjuqWChRSErKGozW4LPkjTVrYMAAuO22cHZ1z56hPlMVTRIA1eIOQHJDYddSaTT4LHnhrbfCH\/Mtt4QupunTc7KIX2VTi0JSpq4lyWtLlsARR4RWxNixYdBaALUoJAVDhhTNYhLJO7Nnh5+NGsEzz8BHHylJFKNEIWUqHJtQ15LklW+\/DZchbdkyFPED6NIFttoq1rCykbqeJCXt2mmqq+SRZ56Biy+G5cvh+uvhgAPijiirKVHIrxSf4aQZTZJXeveGhx4KxfteeUV\/3ClQopBfKX7ynGY0Sc5LLOJ38MHhwkL9+8MW+ghMRVqPkpl1AO4BqgPD3P0fxZY3BR4Cto7Wuc7dx6QzJildYUtCV4yTvLJgQeg3PfNM6NVLfajlkLZEYWbVgUHAMcBi4H0zG+3usxNWuwF40t3vN7MWwBhgl3TFJJtKVp9JLQjJeRs2wKBB4UJC1arBGWfEHVHOSmeL4gBgnrvPBzCzx4GuQGKicKB+dL8B8GUa45FiVJ9J8tacOdCnD7zzDnTsCA88AE2bxh1VzkpnomgELEp4vBhoW2ydm4BXzexSoC5wdEkbMrN+QD+ApvplVyp1MUlemjcvFPJ7+OHQkqhiRfwqW9znUfQERrh7Y6AT8LCZ\/Somdx\/i7gXuXrD99ttnPMh8M2QItG+fvCSHSM6ZOhWGDw\/3u3QJYxNnnqkkUQnSmSiWAE0SHjeOnkvUB3gSwN3fAWoD26UxJmHTLieNRUjOW706XEyobVv4299CUT+A+vWTv05Sls5E8T7Q3MyamVlNoAcwutg6C4GjAMxsL0KiWJbGmCRS2OWk8QjJaRMnwn77wa23hvMjpk1TEb80SNsYhbuvN7NLgLGEqa\/D3X2WmQ0Aprj7aKA\/MNTMriQMbPd2L5zwLCKSxJIlcNRR0KQJvPZauC9pkdbzKKJzIsYUe+4vCfdnA4ekMwYpUvw8CZGc9NFHsM8+oYjfc8+Fiq9168YdVV6LezBbMqBw8Pr888O5EhqbkJz0zTdw1lmw775FRfw6d1aSyACdv14FFLYidJ6E5CR3eOopuOQSWLECbrwxDFxLxihRVBE6X0JyVq9e4XyIggJ4\/fXQ7SQZpUQhItknsYhfu3ahu+mKK1TELyYao8hjOrFOctL8+XD00TBiRHjcpw9cfbWSRIyUKPKQBq8lJ23YAHffHbqW3n8\/FPKTrKAUnYc0eC05Z\/ZsOPdcePddOP74UMSvceO4o5KIEkWe0uC15JQFC+Czz8K3nB49VJ8pyyhRiEg83n8\/NH3POy+0IubPh3r14o5KSqBOQBHJrJ9+CoPTBx4It9xSVMRPSSJrKVGISOZMmBCmuv7zn6EloSJ+OUFdTzms+KVMC6mWk2SlxYvhmGNg551h3LhQo0lygloUOaxwdlNxmg4rWWXGjPCzcWN4\/nn48EMliRyjFkUOKd6CKGw5aHaTZKVly+Dyy2HkyPBH2q4ddOoUd1RSDkoUOaAwQbzxRnjcrl34qZaDZCV3ePxxuOwy+P57+Otf4aCD4o5KKkCJIouVlCB0Ap1kvbPOgkcfDRVeH3wQWraMOyKpoJQThZlt6e4\/pTMY2ZTOsJacsXFjOEnOLIw\/tGkTWhTVq8cdmVSCMhOFmR0MDAO2Apqa2X7A+e5+UbqDE41BSA6YNy9MdT3rrFCGo0+fuCOSSpbKrKe7gOOA5QDuPgM4PJ1BiUgOWL8e7rgjFPGbNg1q1ow7IkmTlLqe3H2RbVp7ZUN6whGRnDBzJpxzDkyZAl27wn33wU47xR2VpEkqiWJR1P3kZlYDuByYk96wRCSrLVwIX3wRZjd1764ifnkula6nC4CLgUbAEqAVoPGJNNIFhyQrvftu+OOEcD7E\/Plw2mlKElVAKoliD3c\/w913cPffuPuZwF7pDqwqK5ztpPMkJCv8+CNcdVU4F+K222Dt2vD8VlvFG5dkTCqJ4l8pPieVYMiQoqvSTZigKbESs3HjQhG\/u+6CCy6ADz6AWrXijkoyrNQxCjM7CDgY2N7MrkpYVB\/Q5OhKVvzkOrUkJHaLF8Nxx0GzZuEP83BNdqyqkg1m1yScO7EFkFgo\/gfglHQGVRXp5DrJGtOmwf77hyJ+L7wQ\/ijr1Ik7KolRqYnC3d8A3jCzEe7+RQZjqlIKWxIq8Cex+9\/\/wtnUTz5ZVMSvQ4e4o5IskMr02J\/M7HagJfDLFUbc\/ci0RVWFaOBaYuceajNdfjmsWgUDB8LBB8cdlWSRVBLFo8ATQGfCVNlewLJ0BpVPSru4UCG1JCR2p58ezoc46KBQxG8vTWqUTaUy66mhuz8IrHP3N9z9XECtiRSVdnGhQmpJSCw2bgwtCYBjj4V77oE331SSkBKl0qJYF\/38ysyOB74Etk1fSLlNFxeSrPfJJ6GI39lnhwJ+55wTd0SS5VJJFAPNrAHQn3D+RH3girRGlQNK61LSxYUka61fD3feCTfeCLVrayaTpKzMROHuL0Z3vweOADCzQ9IZVC5IHIROpOmtkpU+\/DCUAJ86FU46CQYNgh13jDsqyRHJTrirDnQn1Hh6xd1nmlln4E9AHWD\/zISYvdSlJDlj8WJYtAieegq6dVN9JtksyQazHwT6Ag2Be83sEeAO4DZ3TylJmFkHM5trZvPM7LpS1uluZrPNbJaZJZkfJCKb5e234YEHwv3CIn6nnKIkIZstWddTAbCvu280s9rAUmBXd1+eyoajFskg4BhgMfC+mY1299kJ6zQH\/ggc4u4rzOw35X0jIhJZtQquvx7+9S\/YddcwWF2rFtStG3dkkqOStSh+dveNAO6+BpifapKIHADMc\/f57v4z8DjQtdg65wGD3H1FtJ+vN2P7IlLcq6\/C3nuHJHHxxSriJ5UiWYtiTzP7MLpvwK7RYwPc3fctY9uNgEUJjxcDbYutszuAmb1FKDR4k7u\/UnxDZtYP6AfQtGnTMnYrUkUtWgTHHx9aERMnwqGHxh2R5IlkiSITZ95sATQH2gONgYlmto+7f5e4krsPAYYAFBQUeAbiEskdU6dCmzbQpAmMGQOHHRamv4pUklK7ntz9i2S3FLa9BGiS8Lhx9FyixcBod1\/n7guATwiJI2vp6nOSNZYuhVNPhYKCohN4jjlGSUIqXSolPMrrfaC5mTUzs5pAD2B0sXVGEVoTmNl2hK6o+WmMqdwKE8T55xddWEgn0kks3OGhh6BFi1AG\/OabVcRP0iqVM7PLxd3Xm9klwFjC+MNwd59lZgOAKe4+Olp2rJnNBjYA12zmgHnG6HoRkjV69AilwA85BIYNgz33jDsiyXPmXnaXv5nVAZq6+9z0h5RcQUGBT5kyJeP7bd8+\/NQJdhKLjRvD+Q9moTWxciVcdBFUS2engOQTM5vq7gXleW2Zf2Vm1gWYDrwSPW5lZsW7kEQkXT7+OFyG9MEHw+NeveCSS5QkJGNS+Uu7iXBOxHcA7j4daJbGmEQEYN26MP6w334wezZstVXcEUkVlUqiWOfu3xd7rspMUdUsJ4nF9OlwwAHhDOsTTgiJokePuKOSKiqVwexZZnY6UD0quXEZ8HZ6w8oeulSpxGLp0nB75hk4+eS4o5EqLpVEcSlwPbAWeIwwU2lgOoPKNqoSKxkxaVIoB37RRdChA3z2GWy5ZdxRiaTU9bSnu1\/v7r+PbjdEtZ9EpDKsXBkGpw87DO6+G9auDc8rSUiWSCVR\/NPM5pjZ38xs77RHJFKVjB0bivjddx9cfrmK+ElWKjNRuPsRhCvbLQMGm9lHZnZD2iMTyXeLFkHnzqHlMGlSaE1oZpNkoZQmYrv7Une\/F7iAcE7FX9IalUi+cof33gv3mzSBl1+GadNUgkOyWion3O1lZjeZ2UfAvwgznhqnPTKRfPPVV+EypG3bFhXxO\/poFfGTrJfKrKfhwBPAce7+ZZrjEck\/7jBiBFx1FaxZA7feGuo0ieSIMhOFux+UiUBE8lb37vD002FW07BhsPvucUcksllKTRRm9qS7d4+6nBLPxE71CnciVdeGDaGAX7Vq0KULHHlkqFGv+kySg5K1KC6PfnbORCAieWPOHOjTB845B847D84+O+6IRCok2RXuvoruXlTC1e0uykx4Ijlk3ToYODCcyj93LjRoEHdEIpUilXbwMSU817GyAxHJadOmhUuS\/vnPcNJJoVXRvXvcUYlUimRjFBcSWg6\/M7MPExbVA95Kd2AiOeV\/\/4NvvoFRo6Br17ijEalUycYoHgNeBm4Brkt4fqW7f5vWqERywcSJ8NFHcPHFoYjfvHlQp07cUYlUumRdT+7unwMXAysTbpjZtukPTSRL\/fBDqPDarh3ce29RET8lCclTZbUoOgNTCdNjLWGZA79LY1wi2WnMmDDN9csvwwl0AwaoiJ\/kvVIThbt3jn7qsqciEIr4de0Ke+wRTqBr2zbuiEQyIpVaT4eYWd3o\/plmdqeZNU1\/aCJZwB0mTw73mzSBV18NpcCVJKQKSWV67P3AT2a2H9Af+Ax4OK1RiWSDL7+EE0+Egw4qKuJ3xBFQs2a8cYlkWCqJYr27O9AV+Le7DyJMkRXJT+6hJlOLFqEFcccdKuInVVoq1WNXmtkfgbOAw8ysGlAjvWGJxOiUU+DZZ8OspmHDYLfd4o5IJFaptChOA9YC57r7UsK1KG5Pa1RZYMgQaN8epk+POxLJiA0bYOPGcP\/EE+GBB2DcOCUJEVK7FOpS4FGggZl1Bta4+\/+lPbKYPfZYSBKtWsHpp8cdjaTVzJmha+nBB8Pjs85SpVeRBKnMeuoOvAecCnQH3jWzU9IdWFwSWxKtWsGECdCvX9xRSVr8\/DP89a\/QujV89hlss03cEYlkpVTGKK4Hfu\/uXwOY2fbAa8DT6Qws04YMCa2Iwskt7dqpJZHXpk6F3r1Da+L00+Huu2H77eOOSiQrpZIoqhUmichyUhvbyCmFXU2FCUKtiDy3fDl89x288AJ01iVXRJJJJVG8YmZjgZHR49OAMekLKT6FXU2Sp8aPD0X8LrsMjj0WPv0UateOOyqRrJfKYPY1wGBg3+g2xN2vTXdgIpXm++\/D4PSRR8L99xcV8VOSEElJsutRNAfuAHYFPgKudvclmQpMpFK88AJccAEsXQpXXx0Gr1XET2SzJGtRDAdeBLoRKsj+KyMRiVSWRYugWzdo2DDUa7r9dthyy7ijEsk5ycYo6rn70Oj+XDP7IBMBiVSIO7zzDhx8cFERv4MPVn0mkQpI1qKobWb7m1lrM2sN1Cn2uExm1sHM5prZPDO7Lsl63czMzaxgc9+AyC8WL4YTTggnzxXOc27fXklCpIKStSi+Au5MeLw04bEDRybbsJlVBwYBxwCLgffNbLS7zy62Xj3gcuDdzQu9chSeP1F4gp3koI0bYehQuOYaWL8e7rwTDj007qhE8kayCxcdUcFtHwDMc\/f5AGb2OKEC7exi6\/0NuBW4poL7KxeV6sgD3brBqFFhVtPQofA7XXxRpDKlch5FeTUCFiU8XgxscrWXqAuribu\/ZGalJgoz6wf0A2jatPKvmaTzJ3LQ+vWhFlO1aiFRHH889OkDZmW\/VkQ2S2xnWEflyu8kXAwpKXcf4u4F7l6wvcosyIcfhosJDY3mWpx5JvTtqyQhkibpTBRLgCYJjxtHzxWqB+wNTDCzz4EDgdGZGNAuLPynMuI5Zu1auPFGaNMGvvhCtZlEMiSV6rEWXSv7L9HjpmZ2QArbfh9obmbNzKwm0AMYXbjQ3b939+3cfRd33wWYDJzg7lPK9U42Q+G4BGhsIme8\/36o8jpgAPTsCXPmwMknxx2VSJWQyhjFfcBGwiynAcBK4Bng98le5O7rzewSYCxQHRju7rPMbAAwxd1HJ3t9umlcIsesWAGrVsGYMdCxY9zRiFQpqSSKtu7e2symAbj7iqiFUCZ3H0OxAoLu\/pdS1m2fyjalChk3LhTxu\/zyUMTvk09UfkMkBqmMUayLzolw+OV6FBvTGpVUbd99B+edB0cdBYMHFxXxU5IQiUUqieJe4DngN2b2d2AScHNao5Kq6\/nnoUULGD4c\/vCHcIEhJQiRWJXZ9eTuj5rZVOAowIAT3X1O2iNLA52FneUWLoRTT4W99oLRo6FAFV1EskGZicLMmgI\/AS8kPufuC9MZWDroLOws5A6TJsFhh0HTpvDaa3DggarPJJJFUhnMfokwPmFAbaAZMBdomca40kaznbLIwoXhWhEvvxx+Ke3aweGHxx2ViBSTStfTPomPo7IbF6UtIsl\/GzfCAw\/AtdeGFsW996qIn0gW2+xaT+7+gZm1LXtNkVKcfHIYtD7mmDBwtMsucUckIkmkMkZxVcLDakBr4Mu0RST5KbGI32mnQdeu0Lu36jOJ5IBUpsfWS7jVIn4IvZoAABS1SURBVIxZdE1nUJJnZsyAtm1D6wFCCY5zzlGSEMkRSVsU0Yl29dz96gzFI\/lkzRoYOBBuvRW23RZ++9u4IxKRcig1UZjZFlG9pkMyGZDkiffeg1694OOPw8877wzJQkRyTrIWxXuE8YjpZjYaeAr4sXChuz+b5tgqjU60i8EPP8Dq1fDKK3DccXFHIyIVkMqsp9rAckL12MLzKRzImUShE+0y5NVXYdYsuPJKOPpomDtX5TdE8kCyRPGbaMbTTIoSRCFPa1RpoBPt0mjFCrjqKhgxAlq2hIsuCglCSUIkLySb9VQd2Cq61Uu4X3gTgWefDUX8Hn4Y\/vhHmDJFCUIkzyRrUXzl7gMyFonknoULoUcP2HvvcEGh\/fePOyIRSYNkLQpNcpdfc4c33gj3mzYNFxd6910lCZE8lixRHJWxKCQ3fPFFuAxp+\/ZFyeLQQ6FGjVjDEpH0KjVRuPu3mQxEstjGjfDvf4eB6kmT4F\/\/CmXBRaRKSKWER84aMiR8+Z0+Pe5IctyJJ8Kll4bWw6xZcMkloWaTiFQJm109Npfo\/IkKWLcOqlcPCaFnTzjlFDjrLNVnEqmC8jpRgM6fKJcPPoA+feC888I5ET17xh2RiMRI\/QdSZPXqcC7EAQfA0qXQpEncEYlIFsj7FoWkaPLkULzvk0\/g3HPhjjtgm23ijkpEsoAShQQ\/\/hjGJf7731CnSUQkokRRlb3ySpjF1L8\/HHVUKAles2bcUYlIltEYRVW0fHnoZurYER56CH7+OTyvJCEiJVCiqErc4emnQxG\/xx6DG26A999XghCRpNT1VJUsXBhOKNl333DtiP32izsiEckBalHkO\/dQuA9g553DSSWTJytJiEjKlCjy2YIFcOyxYaC6sIjfwQfDFmpIikjqlCjy0YYNcM894ToR774L99+vIn4iUm76apmPunaFl16CTp3ggQd0hrWIVEhetiiqZNXYdetCOXAIxfseeQRefFFJQkQqLK2Jwsw6mNlcM5tnZteVsPwqM5ttZh+a2etmtnNl7LfKVY2dMgUKCkIXE8Bpp8EZZ6jSq4hUirQlCjOrDgwCOgItgJ5m1qLYatOAAnffF3gauK2y9l9YNbZfv8raYhZavRquvRbatoVly8KsJhGRSpbOFsUBwDx3n+\/uPwOPA10TV3D38e7+U\/RwMtA4jfHkl3feCVNcb7stFPGbPRs6d447KhHJQ+lMFI2ARQmPF0fPlaYP8HJJC8ysn5lNMbMpy5YtK3UDVWpsYvXqMCbx2mswdChsvXXcEYlInsqKWU9mdiZQALQrabm7DwGGABQUFHhp28n7sYkxY0IRv2uugSOPhDlzoEaNuKMSkTyXzkSxBEicctM4em4TZnY0cD3Qzt3XVnSneXlFu2++gSuugEcfDd1Nl18e6jMpSYhIBqSz6+l9oLmZNTOzmkAPYHTiCma2PzAYOMHdvy7vjvK2y8kdHn8c9toLnnwSbrwR3ntPRfxEJKPS1qJw9\/VmdgkwFqgODHf3WWY2AJji7qOB24GtgKcsTOVc6O4nbO6+8rbLaeHCUA58v\/3gwQdhn33ijkhEqqC0jlG4+xhgTLHn\/pJwv9IupZY3XU7u8Prr4SpzO+8cajT9\/vdQvXrckYlIFZWXZ2bnrM8+CwX8jjmmqIjfgQcqSYhIrJQossGGDXDnnaFraepUGDxYRfxEJGtkxfTYKq9LF3j55XDC3P33Q2Oddygi2UOJIi4\/\/xyuC1GtGvTuHQr59eih+kwiknXU9RSH996DNm3gvvvC4+7doWdPJQkRyUpKFJn000\/Qvz8cdBCsWAG77hp3RCIiZcrpRJFTJ9pNmhQGq++8E847L5Ti6Ngx7qhERMqUk2MUQ4aEk+wKZ5C2a5cDJ9qtWxemuY4fH7KbiEiOMPdSa+xlpXr1CnzVqilAUYLI2mtOvPBCKNz3hz+Ex+vXhwFsEZEMM7Op7l5QntfmXNfT6tUhQQwenMUXJlq2LGSwE06AkSPDDCdQkhCRnJRzn1x16mRxqQ73kBguuwx++AEGDAhXoFMRPxHJYTmXKLLawoVwzjmw\/\/6hiF\/LlnFHJCJSYTnX9ZR1Nm6EsWPD\/Z13hjffhLfeUpIQkbyhRFERn34arjTXoQNMnBieO+AAFfETkbyiRFEe69fD7bfDvvuGkzgefFBF\/EQkb2mMojw6dw7dTV27hjIcO+0Ud0QiWWndunUsXryYNWvWxB1KlVG7dm0aN25MjUq8VHJOnkexcuWUzO947dpwjepq1eDpp8PYxKmnqj6TSBILFiygXr16NGzYENP\/Stq5O8uXL2flypU0a9Zsk2VV6jyKWEyeDK1bw6BB4fEpp4RCfvrDF0lqzZo1ShIZZGY0bNiw0ltwShTJ\/PgjXHklHHwwrFwJzZvHHZFIzlGSyKx0HG+NUZTmzTehVy9YsAAuughuuQXq1487KhGRjFOLojTr14cxiTfeCF1OShIiOWvUqFGYGR9\/\/PEvz02YMIHOnTtvsl7v3r15+umngTAQf91119G8eXNat27NQQcdxMsvv1zhWG655RZ222039thjD8YWnoNVzOuvv07r1q1p1aoVhx56KPPmzQNgxIgRbL\/99rRq1YpWrVoxbNiwCseTCiWKRKNGhZYDwBFHhFLghx8eb0wiUmEjR47k0EMPZeTIkSm\/5s9\/\/jNfffUVM2fO5IMPPmDUqFGsXLmyQnHMnj2bxx9\/nFmzZvHKK69w0UUXsWHDhl+td+GFF\/Loo48yffp0Tj\/9dAYOHPjLstNOO43p06czffp0+vbtW6F4UqWuJ4D\/\/Q8uvRSeeioMWvfvH+ozqYifSKW54orKv3ZMq1Zw993J11m1ahWTJk1i\/PjxdOnShb\/+9a9lbvenn35i6NChLFiwgFq1agGwww470L179wrF+\/zzz9OjRw9q1apFs2bN2G233Xjvvfc46KCDNlnPzPjhhx8A+P7779kp5in4VfuT0B0eeST8Ba9aBX\/\/O1xzTehyEpG88Pzzz9OhQwd23313GjZsyNSpU2nTpk3S18ybN4+mTZtSP4Uu5yuvvJLx48f\/6vkePXpw3XXXbfLckiVLOPDAA3953LhxY5YsWfKr1w4bNoxOnTpRp04d6tevz+TJk39Z9swzzzBx4kR233137rrrLpo0aVJmjBVVtRPFwoXQty8UFISzq\/fcM+6IRPJWWd\/802XkyJFcfvnlQPjwHjlyJG3atCl1dtDmzhq66667KhxjSdscM2YMbdu25fbbb+eqq65i2LBhdOnShZ49e1KrVi0GDx5Mr169GDduXKXvv7iqlygKi\/h17BiK+L31Vqj2qvpMInnn22+\/Zdy4cXz00UeYGRs2bMDMuP3222nYsCErVqz41frbbbcdu+22GwsXLuSHH34os1WxOS2KRo0asWjRol8eL168mEaNGm2yzrJly5gxYwZt27YFwphEhw4dAGjYsOEv6\/Xt25c\/FF4ULd3cPaduW23Vxstt7lz3ww5zB\/cJE8q\/HRFJyezZs2Pd\/+DBg71fv36bPHf44Yf7G2+84WvWrPFddtnllxg\/\/\/xzb9q0qX\/33Xfu7n7NNdd47969fe3ate7u\/vXXX\/uTTz5ZoXhmzpzp++67r69Zs8bnz5\/vzZo18\/Xr12+yzrp167xhw4Y+d+5cd3cfNmyYn3zyye7u\/uWXX\/6y3rPPPutt27YtcT8lHXdgipfzc7dqtCjWr4d\/\/hNuvDFc+eg\/\/9FsJpEqYOTIkVx77bWbPNetWzdGjhzJ4YcfziOPPMI555zDmjVrqFGjBsOGDaNBgwYADBw4kBtuuIEWLVpQu3Zt6taty4ABAyoUT8uWLenevTstWrRgiy22YNCgQVSPejM6derEsGHD2GmnnRg6dCjdunWjWrVqbLPNNgwfPhyAe++9l9GjR7PFFluw7bbbMmLEiArFk6qqUevpuOPg1Vfh5JPDORG\/\/W16ghORTcyZM4e99tor7jCqnJKOe0VqPeVvi2LNmjB7qXr1cGHtfv2gW7e4oxIRyTn5ecLdW2+FCdaFRfy6dVOSEBEpp\/xKFKtWwWWXhYsIrVkDavKKxC7XurdzXTqOd\/4kijfegL33hn\/\/Gy65BGbOhGOOiTsqkSqtdu3aLF++XMkiQzy6HkXt2rUrdbv5NUax5Zah6ushh8QdiYgQzjxevHgxy5YtizuUKqPwCneVKbdnPT37LHz8MfzpT+Hxhg06cU5EpARZe4U7M+tgZnPNbJ6ZXVfC8lpm9kS0\/F0z2yWlDS9dGq4y160bPPcc\/PxzeF5JQkSk0qUtUZhZdWAQ0BFoAfQ0sxbFVusDrHD33YC7gFvL2m6DdcvDIPWLL4aS4G+\/HSq9iohIWqSzRXEAMM\/d57v7z8DjQNdi63QFHoruPw0cZWVU5Nph7Rdh0HrGDLjuOlV6FRFJs3QOZjcCFiU8Xgy0LW0dd19vZt8DDYFvElcys35Av+jhWps0aaYqvQKwHcWOVRWmY1FEx6KIjkWRPcr7wpyY9eTuQ4AhAGY2pbwDMvlGx6KIjkURHYsiOhZFzGwzax8VSWfX0xIg8YoajaPnSlzHzLYAGgDL0xiTiIhspnQmiveB5mbWzMxqAj2A0cXWGQ30iu6fAozzXJuvKyKS59LW9RSNOVwCjAWqA8PdfZaZDSDURR8NPAg8bGbzgG8JyaQsQ9IVcw7SsSiiY1FEx6KIjkWRch+LnDvhTkREMit\/aj2JiEhaKFGIiEhSWZso0lb+IwelcCyuMrPZZvahmb1uZjvHEWcmlHUsEtbrZmZuZnk7NTKVY2Fm3aO\/jVlm9limY8yUFP5HmprZeDObFv2fdIojznQzs+Fm9rWZzSxluZnZvdFx+tDMWqe04fJebDudN8Lg92fA74CawAygRbF1LgIeiO73AJ6IO+4Yj8URwJbR\/Qur8rGI1qsHTAQmAwVxxx3j30VzYBqwTfT4N3HHHeOxGAJcGN1vAXwed9xpOhaHA62BmaUs7wS8DBhwIPBuKtvN1hZFWsp\/5Kgyj4W7j3f3n6KHkwnnrOSjVP4uAP5GqBu2JpPBZVgqx+I8YJC7rwBw968zHGOmpHIsHKgf3W8AfJnB+DLG3ScSZpCWpivwfx5MBrY2sx3L2m62JoqSyn80Km0dd18PFJb\/yDepHItEfQjfGPJRmcciako3cfeXMhlYDFL5u9gd2N3M3jKzyWbWIWPRZVYqx+Im4EwzWwyMAS7NTGhZZ3M\/T4AcKeEhqTGzM4ECoF3cscTBzKoBdwK9Yw4lW2xB6H5qT2hlTjSzfdz9u1ijikdPYIS7\/9PMDiKcv7W3u2+MO7BckK0tCpX\/KJLKscDMjgauB05w97UZii3TyjoW9YC9gQlm9jmhD3Z0ng5op\/J3sRgY7e7r3H0B8AkhceSbVI5FH+BJAHd\/B6hNKBhY1aT0eVJctiYKlf8oUuaxMLP9gcGEJJGv\/dBQxrFw9+\/dfTt338XddyGM15zg7uUuhpbFUvkfGUVoTWBm2xG6ouZnMsgMSeVYLASOAjCzvQiJoipen3U0cHY0++lA4Ht3\/6qsF2Vl15Onr\/xHzknxWNwObAU8FY3nL3T3E2ILOk1SPBZVQorHYixwrJnNBjYA17h73rW6UzwW\/YGhZnYlYWC7dz5+sTSzkYQvB9tF4zE3AjUA3P0BwvhMJ2Ae8BNwTkrbzcNjJSIilShbu55ERCRLKFGIiEhSShQiIpKUEoWIiCSlRCEiIkkpUUhWMrMNZjY94bZLknVXVcL+RpjZgmhfH0Rn727uNoaZWYvo\/p+KLXu7ojFG2yk8LjPN7AUz27qM9Vvla6VUyRxNj5WsZGar3H2ryl43yTZGAC+6+9Nmdixwh7vvW4HtVTimsrZrZg8Bn7j735Os35tQQfeSyo5Fqg61KCQnmNlW0bU2PjCzj8zsV1VjzWxHM5uY8I37sOj5Y83snei1T5lZWR\/gE4HdotdeFW1rppldET1X18xeMrMZ0fOnRc9PMLMCM\/sHUCeK49Fo2aro5+NmdnxCzCPM7BQzq25mt5vZ+9F1As5P4bC8Q1TQzcwOiN7jNDN728z2iM5SHgCcFsVyWhT7cDN7L1q3pOq7IpuKu366brqVdCOcSTw9uj1HqCJQP1q2HeHM0sIW8aroZ3\/g+uh+dULtp+0IH\/x1o+evBf5Swv5GAKdE908F3gXaAB8BdQlnvs8C9ge6AUMTXtsg+jmB6PoXhTElrFMY40nAQ9H9moRKnnWAfsAN0fO1gClAsxLiXJXw\/p4COkSP6wNbRPePBp6J7vcG\/p3w+puBM6P7WxPqP9WN+\/etW3bfsrKEhwiw2t1bFT4wsxrAzWZ2OLCR8E16B2BpwmveB4ZH645y9+lm1o5woZq3ovImNQnfxEtyu5ndQKgB1IdQG+g5d\/8xiuFZ4DDgFeCfZnYrobvqzc14Xy8D95hZLaADMNHdV0fdXfua2SnReg0IBfwWFHt9HTObHr3\/OcB\/E9Z\/yMyaE0pU1Chl\/8cCJ5jZ1dHj2kDTaFsiJVKikFxxBrA90Mbd11moDls7cQV3nxglkuOBEWZ2J7AC+K+790xhH9e4+9OFD8zsqJJWcvdPLFz3ohMw0Mxed\/cBqbwJd19jZhOA44DTCBfZgXDFsUvdfWwZm1jt7q3MbEtCbaOLgXsJF2sa7+4nRQP\/E0p5vQHd3H1uKvGKgMYoJHc0AL6OksQRwK+uC27hWuH\/c\/ehwDDCJSEnA4eYWeGYQ10z2z3Ffb4JnGhmW5pZXUK30ZtmthPwk7s\/QijIWNJ1h9dFLZuSPEEoxlbYOoHwoX9h4WvMbPdonyXycEXDy4D+VlRmv7BcdO+EVVcSuuAKjQUutah5ZaHysEhSShSSKx4FCszsI+Bs4OMS1mkPzDCzaYRv6\/e4+zLCB+dIM\/uQ0O20Zyo7dPcPCGMX7xHGLIa5+zRgH+C9qAvoRmBgCS8fAnxYOJhdzKuEi0u95uHSnRAS22zgAzObSSgbn7TFH8XyIeGiPLcBt0TvPfF144EWhYPZhJZHjSi2WdFjkaQ0PVZERJJSi0JERJJSohARkaSUKEREJCklChERSUqJQkREklKiEBGRpJQoREQkqf8Hggy\/dUz7FQUAAAAASUVORK5CYII=\n\"\n><\/p>\n<h1 id=\"D---Fine-tuning-BERT\"><span class=\"ez-toc-section\" id=\"D_%E2%80%93_Fine-tuning_BERT%C2%B6\"><\/span>D &#8211; Fine-tuning BERT<a href=\"#D---Fine-tuning-BERT\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2 id=\"1.-Install-the-Hugging-Face-Library\"><span class=\"ez-toc-section\" id=\"1_Install_the_Hugging_Face_Library%C2%B6\"><\/span>1. Install the Hugging Face Library<a href=\"#1.-Install-the-Hugging-Face-Library\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The transformer library of Hugging Face contains PyTorch implementation of state-of-the-art NLP models including BERT (from Google), GPT (from OpenAI) &#8230; and pre-trained model weights.<\/p>\n<p>In&nbsp;[1]:<\/p>\n<pre>#!pip install transformers\n<\/pre>\n<h2 id=\"2.-Tokenization-and-Input-Formatting\"><span class=\"ez-toc-section\" id=\"2_Tokenization_and_Input_Formatting%C2%B6\"><\/span>2. Tokenization and Input Formatting<a href=\"#2.-Tokenization-and-Input-Formatting\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before tokenizing our text, we will perform some slight processing on our text including removing entity mentions (eg. @united) and some special character. The level of processing here is much less than in previous approachs because BERT was trained with the entire sentences.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>def text_preprocessing(text):\n    &quot;&quot;&quot;\n    - Remove entity mentions (eg. &#39;@united&#39;)\n    - Correct errors (eg. &#39;&amp;amp;&#39; to &#39;&amp;&#39;)\n    @param    text (str): a string to be processed.\n    @return   text (Str): the processed string.\n    &quot;&quot;&quot;\n    # Remove &#39;@name&#39;\n    text = re.sub(r&#39;(@.*?)[s]&#39;, &#39; &#39;, text)\n    # Replace &#39;&amp;amp;&#39; with &#39;&amp;&#39;\n    text = re.sub(r&#39;&amp;amp;&#39;, &#39;&amp;&#39;, text)\n    # Remove trailing whitespace\n    text = re.sub(r&#39;s+&#39;, &#39; &#39;, text).strip()\n    return text\n<\/pre>\n<p>In&nbsp;[0]:<\/p>\n<pre># Print sentence 0\nprint(&#39;Original: &#39;, X[0])\nprint(&#39;Processed: &#39;, text_preprocessing(X[0]))\n<\/pre>\n<pre>Original:  @united I&#39;m having issues. Yesterday I rebooked for 24 hours after I was supposed to fly, now I can&#39;t log on &amp;amp; check in. Can you help?\nProcessed:  I&#39;m having issues. Yesterday I rebooked for 24 hours after I was supposed to fly, now I can&#39;t log on &amp; check in. Can you help?\n<\/pre>\n<h3 id=\"2.1.-BERT-Tokenizer\"><span class=\"ez-toc-section\" id=\"21_BERT_Tokenizer%C2%B6\"><\/span>2.1. BERT Tokenizer<a href=\"#2.1.-BERT-Tokenizer\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In order to apply the pre-trained BERT, we must use the tokenizer provided by the library. This is because (1) the model has a specific, fixed vocabulary and (2) the BERT tokenizer has a particular way of handling out-of-vocabulary words.<\/p>\n<p>In addition, we are required to add special tokens to the start and end of each sentence, pad &amp; truncate all sentences to a single constant length, and explicitly specify what are padding tokens with the &#8220;attention mask&#8221;.<\/p>\n<p>The <code>encode_plus<\/code> method of BERT tokenizer will:<\/p>\n<p>(1) split our text into tokens,<\/p>\n<p>(2) add the special <code>[CLS]<\/code> and <code>[SEP]<\/code> tokens, and<\/p>\n<p>(3) convert these tokens into indexes of the tokenizer vocabulary,<\/p>\n<p>(4) pad or truncate sentences to max length, and<\/p>\n<p>(5) create attention mask.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from transformers import BertTokenizer\n# Load the BERT tokenizer\ntokenizer = BertTokenizer.from_pretrained(&#39;bert-base-uncased&#39;, do_lower_case=True)\n# Create a function to tokenize a set of texts\ndef preprocessing_for_bert(data):\n    &quot;&quot;&quot;Perform required preprocessing steps for pretrained BERT.\n    @param    data (np.array): Array of texts to be processed.\n    @return   input_ids (torch.Tensor): Tensor of token ids to be fed to a model.\n    @return   attention_masks (torch.Tensor): Tensor of indices specifying which\n                  tokens should be attended to by the model.\n    &quot;&quot;&quot;\n    # Create empty lists to store outputs\n    input_ids = []\n    attention_masks = []\n    # For every sentence...\n    for sent in data:\n        # <code>encode_plus<\/code> will:\n        #    (1) Tokenize the sentence\n        #    (2) Add the <code>[CLS]<\/code> and <code>[SEP]<\/code> token to the start and end\n        #    (3) Truncate\/Pad sentence to max length\n        #    (4) Map tokens to their IDs\n        #    (5) Create attention mask\n        #    (6) Return a dictionary of outputs\n        encoded_sent = tokenizer.encode_plus(\n            text=text_preprocessing(sent),  # Preprocess sentence\n            add_special_tokens=True,        # Add <code>[CLS]<\/code> and <code>[SEP]<\/code>\n            max_length=MAX_LEN,                  # Max length to truncate\/pad\n            pad_to_max_length=True,         # Pad sentence to max length\n            #return_tensors=&#39;pt&#39;,           # Return PyTorch tensor\n            return_attention_mask=True      # Return attention mask\n            )\n        # Add the outputs to the lists\n        input_ids.append(encoded_sent.get(&#39;input_ids&#39;))\n        attention_masks.append(encoded_sent.get(&#39;attention_mask&#39;))\n    # Convert lists to tensors\n    input_ids = torch.tensor(input_ids)\n    attention_masks = torch.tensor(attention_masks)\n    return input_ids, attention_masks\n<\/pre>\n<pre>\n<\/pre>\n<p>Before tokenizing, we need to specify the maximum length of our sentences.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre># Concatenate train data and test data\nall_tweets = np.concatenate([data.tweet.values, test_data.tweet.values])\n# Encode our concatenated data\nencoded_tweets = [tokenizer.encode(sent, add_special_tokens=True) for sent in all_tweets]\n# Find the maximum length\nmax_len = max([len(sent) for sent in encoded_tweets])\nprint(&#39;Max length: &#39;, max_len)\n<\/pre>\n<pre>Max length:  68\n<\/pre>\n<p>Now let&#8217;s tokenize our data.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre># Specify <code>MAX_LEN<\/code>\nMAX_LEN = 64\n# Print sentence 0 and its encoded token ids\ntoken_ids = list(preprocessing_for_bert([X[0]])[0].squeeze().numpy())\nprint(&#39;Original: &#39;, X[0])\nprint(&#39;Token IDs: &#39;, token_ids)\n# Run function <code>preprocessing_for_bert<\/code> on the train set and the validation set\nprint(&#39;Tokenizing data...&#39;)\ntrain_inputs, train_masks = preprocessing_for_bert(X_train)\nval_inputs, val_masks = preprocessing_for_bert(X_val)\n<\/pre>\n<pre>Original:  @united I&#39;m having issues. Yesterday I rebooked for 24 hours after I was supposed to fly, now I can&#39;t log on &amp;amp; check in. Can you help?\nToken IDs:  [101, 1045, 1005, 1049, 2383, 3314, 1012, 7483, 1045, 2128, 8654, 2098, 2005, 2484, 2847, 2044, 1045, 2001, 4011, 2000, 4875, 1010, 2085, 1045, 2064, 1005, 1056, 8833, 2006, 1004, 4638, 1999, 1012, 2064, 2017, 2393, 1029, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nTokenizing data...\n<\/pre>\n<h3 id=\"2.2.-Create-PyTorch-DataLoader\"><span class=\"ez-toc-section\" id=\"22_Create_PyTorch_DataLoader%C2%B6\"><\/span>2.2. Create PyTorch DataLoader<a href=\"#2.2.-Create-PyTorch-DataLoader\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>We will create an iterator for our dataset using the torch DataLoader class. This will help save on memory during training and boost the training speed.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from torch.utils.data import TensorDataset, DataLoader, RandomSampler, SequentialSampler\n# Convert other data types to torch.Tensor\ntrain_labels = torch.tensor(y_train)\nval_labels = torch.tensor(y_val)\n# For fine-tuning BERT, the authors recommend a batch size of 16 or 32.\nbatch_size = 32\n# Create the DataLoader for our training set\ntrain_data = TensorDataset(train_inputs, train_masks, train_labels)\ntrain_sampler = RandomSampler(train_data)\ntrain_dataloader = DataLoader(train_data, sampler=train_sampler, batch_size=batch_size)\n# Create the DataLoader for our validation set\nval_data = TensorDataset(val_inputs, val_masks, val_labels)\nval_sampler = SequentialSampler(val_data)\nval_dataloader = DataLoader(val_data, sampler=val_sampler, batch_size=batch_size)\n<\/pre>\n<h2 id=\"3.-Train-Our-Model\"><span class=\"ez-toc-section\" id=\"3_Train_Our_Model%C2%B6\"><\/span>3. Train Our Model<a href=\"#3.-Train-Our-Model\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"3.1.-Create-BertClassifier\"><span class=\"ez-toc-section\" id=\"31_Create_BertClassifier%C2%B6\"><\/span>3.1. Create BertClassifier<a href=\"#3.1.-Create-BertClassifier\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>BERT-base consists of 12 transformer layers, each transformer layer takes in a list of token embeddings, and produces the same number of embeddings with the same hidden size (or dimensions) on the output. The output of the final transformer layer of the <code>[CLS]<\/code> token is used as the features of the sequence to feed a classifier.<\/p>\n<p>The <code>transformers<\/code> library has the <a href=\"https:\/\/huggingface.co\/transformers\/v2.2.0\/model_doc\/bert.html#bertforsequenceclassification\"><code>BertForSequenceClassification<\/code><\/a> class which is designed for classification tasks. However, we will create a new class so we can specify our own choice of classifiers.<\/p>\n<p>Below we will create a BertClassifier class with a BERT model to extract the last hidden layer of the <code>[CLS]<\/code> token and a single-hidden-layer feed-forward neural network as our classifier.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>%%time\nimport torch\nimport torch.nn as nn\nfrom transformers import BertModel\n# Create the BertClassfier class\nclass BertClassifier(nn.Module):\n    &quot;&quot;&quot;Bert Model for Classification Tasks.\n    &quot;&quot;&quot;\n    def __init__(self, freeze_bert=False):\n        &quot;&quot;&quot;\n        @param    bert: a BertModel object\n        @param    classifier: a torch.nn.Module classifier\n        @param    freeze_bert (bool): Set <code>False<\/code> to fine-tune the BERT model\n        &quot;&quot;&quot;\n        super(BertClassifier, self).__init__()\n        # Specify hidden size of BERT, hidden size of our classifier, and number of labels\n        D_in, H, D_out = 768, 50, 2\n        # Instantiate BERT model\n        self.bert = BertModel.from_pretrained(&#39;bert-base-uncased&#39;)\n        # Instantiate an one-layer feed-forward classifier\n        self.classifier = nn.Sequential(\n            nn.Linear(D_in, H),\n            nn.ReLU(),\n            #nn.Dropout(0.5),\n            nn.Linear(H, D_out)\n        )\n        # Freeze the BERT model\n        if freeze_bert:\n            for param in self.bert.parameters():\n                param.requires_grad = False\n    def forward(self, input_ids, attention_mask):\n        &quot;&quot;&quot;\n        Feed input to BERT and the classifier to compute logits.\n        @param    input_ids (torch.Tensor): an input tensor with shape (batch_size,\n                      max_length)\n        @param    attention_mask (torch.Tensor): a tensor that hold attention mask\n                      information with shape (batch_size, max_length)\n        @return   logits (torch.Tensor): an output tensor with shape (batch_size,\n                      num_labels)\n        &quot;&quot;&quot;\n        # Feed input to BERT\n        outputs = self.bert(input_ids=input_ids,\n                            attention_mask=attention_mask)\n        # Extract the last hidden state of the token <code>[CLS]<\/code> for classification task\n        last_hidden_state_cls = outputs[0][:, 0, :]\n        # Feed input to classifier to compute logits\n        logits = self.classifier(last_hidden_state_cls)\n        return logits\n<\/pre>\n<pre>CPU times: user 38 \u00b5s, sys: 0 ns, total: 38 \u00b5s\nWall time: 40.1 \u00b5s\n<\/pre>\n<h3 id=\"3.2.-Optimizer-&amp;-Learning-Rate-Scheduler\">3.2. Optimizer &amp; Learning Rate Scheduler<a href=\"#3.2.-Optimizer-&-Learning-Rate-Scheduler\">&#182;<\/a><\/h3>\n<p>To fine-tune our Bert Classifier, we need to create an optimizer. The authors recommend following hyper-parameters:<\/p>\n<ul>\n<li>Batch size: 16 or 32<\/li>\n<li>Learning rate (Adam): 5e-5, 3e-5 or 2e-5<\/li>\n<li>Number of epochs: 2, 3, 4<\/li>\n<\/ul>\n<p>Huggingface provided the <a href=\"https:\/\/github.com\/huggingface\/transformers\/blob\/5bfcd0485ece086ebcbed2d008813037968a9e58\/examples\/run_glue.py#L109\">run_glue.py<\/a> script, an examples of implementing the <code>transformers<\/code> library. In the script, the AdamW optimizer is used.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>from transformers import AdamW, get_linear_schedule_with_warmup\ndef initialize_model(epochs=4):\n    &quot;&quot;&quot;Initialize the Bert Classifier, the optimizer and the learning rate scheduler.\n    &quot;&quot;&quot;\n    # Instantiate Bert Classifier\n    bert_classifier = BertClassifier(freeze_bert=False)\n    # Tell PyTorch to run the model on GPU\n    bert_classifier.to(device)\n    # Create the optimizer\n    optimizer = AdamW(bert_classifier.parameters(),\n                      lr=5e-5,    # Default learning rate\n                      eps=1e-8    # Default epsilon value\n                      )\n    # Total number of training steps\n    total_steps = len(train_dataloader) * epochs\n    # Set up the learning rate scheduler\n    scheduler = get_linear_schedule_with_warmup(optimizer,\n                                                num_warmup_steps=0, # Default value\n                                                num_training_steps=total_steps)\n    return bert_classifier, optimizer, scheduler\n<\/pre>\n<h3 id=\"3.3.-Training-Loop\"><span class=\"ez-toc-section\" id=\"33_Training_Loop%C2%B6\"><\/span>3.3. Training Loop<a href=\"#3.3.-Training-Loop\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>We will train our Bert Classifier for 4 epochs. In each epoch, we will train our model and evaluate its performance on the validation set. In more details, we will:<\/p>\n<p>Training:<\/p>\n<ul>\n<li>Unpack our data from the dataloader and load the data onto the GPU<\/li>\n<li>Zero out gradients calculated in the previous pass<\/li>\n<li>Perform a forward pass to compute logits and loss<\/li>\n<li>Perform a backward pass to compute gradients (<code>loss.backward()<\/code>)<\/li>\n<li>Clip the norm of the gradients to 1.0 to prevent &#8220;exploding gradients&#8221;<\/li>\n<li>Update the model&#8217;s parameters (<code>optimizer.step()<\/code>)<\/li>\n<li>Update the learning rate (<code>scheduler.step()<\/code>)<\/li>\n<\/ul>\n<p>Evaluation:<\/p>\n<ul>\n<li>Unpack our data and load onto the GPU<\/li>\n<li>Forward pass<\/li>\n<li>Compute loss and accuracy rate over the validation set<\/li>\n<\/ul>\n<p>The script below is commented with the details of our training and evaluation loop.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>import random\nimport time\n# Specify loss function\nloss_fn = nn.CrossEntropyLoss()\ndef set_seed(seed_value=42):\n    &quot;&quot;&quot;Set seed for reproducibility.\n    &quot;&quot;&quot;\n    random.seed(seed_value)\n    np.random.seed(seed_value)\n    torch.manual_seed(seed_value)\n    torch.cuda.manual_seed_all(seed_value)\ndef train(model, train_dataloader, val_dataloader=None, epochs=4, evaluation=False):\n    &quot;&quot;&quot;Train the BertClassifier model.\n    &quot;&quot;&quot;\n    # Start training loop\n    print(&quot;Start training...n&quot;)\n    for epoch_i in range(epochs):\n        # =======================================\n        #               Training\n        # =======================================\n        # Print the header of the result table\n        print(f&quot;{&#39;Epoch&#39;:^7} | {&#39;Batch&#39;:^7} | {&#39;Train Loss&#39;:^12} | {&#39;Val Loss&#39;:^10} | {&#39;Val Acc&#39;:^9} | {&#39;Elapsed&#39;:^9}&quot;)\n        print(&quot;-&quot;*70)\n        # Measure the elapsed time of each epoch\n        t0_epoch, t0_batch = time.time(), time.time()\n        # Reset tracking variables at the beginning of each epoch\n        total_loss, batch_loss, batch_counts = 0, 0, 0\n        # Put the model into the training mode\n        model.train()\n        # For each batch of training data...\n        for step, batch in enumerate(train_dataloader):\n            batch_counts +=1\n            # Load batch to GPU\n            b_input_ids, b_attn_mask, b_labels = tuple(t.to(device) for t in batch)\n            # Zero out any previously calculated gradients\n            model.zero_grad()\n            # Perform a forward pass. This will return logits.\n            logits = model(b_input_ids, b_attn_mask)\n            # Compute loss and accumulate the loss values\n            loss = loss_fn(logits, b_labels)\n            batch_loss += loss.item()\n            total_loss += loss.item()\n            # Perform a backward pass to calculate gradients\n            loss.backward()\n            # Clip the norm of the gradients to 1.0 to prevent &quot;exploding gradients&quot;\n            torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n            # Update parameters and the learning rate\n            optimizer.step()\n            scheduler.step()\n            # Print the loss values and time elapsed for every 20 batches\n            if (step % 20 == 0 and step != 0) or (step == len(train_dataloader) - 1):\n                # Calculate time elapsed for 20 batches\n                time_elapsed = time.time() - t0_batch\n                # Print training results\n                print(f&quot;{epoch_i + 1:^7} | {step:^7} | {batch_loss \/ batch_counts:^12.6f} | {&#39;-&#39;:^10} | {&#39;-&#39;:^9} | {time_elapsed:^9.2f}&quot;)\n                # Reset batch tracking variables\n                batch_loss, batch_counts = 0, 0\n                t0_batch = time.time()\n        # Calculate the average loss over the entire training data\n        avg_train_loss = total_loss \/ len(train_dataloader)\n        print(&quot;-&quot;*70)\n        # =======================================\n        #               Evaluation\n        # =======================================\n        if evaluation == True:\n            # After the completion of each training epoch, measure the model&#39;s performance\n            # on our validation set.\n            val_loss, val_accuracy = evaluate(model, val_dataloader)\n            # Print performance over the entire training data\n            time_elapsed = time.time() - t0_epoch\n            print(f&quot;{epoch_i + 1:^7} | {&#39;-&#39;:^7} | {avg_train_loss:^12.6f} | {val_loss:^10.6f} | {val_accuracy:^9.2f} | {time_elapsed:^9.2f}&quot;)\n            print(&quot;-&quot;*70)\n        print(&quot;n&quot;)\n    print(&quot;Training complete!&quot;)\ndef evaluate(model, val_dataloader):\n    &quot;&quot;&quot;After the completion of each training epoch, measure the model&#39;s performance\n    on our validation set.\n    &quot;&quot;&quot;\n    # Put the model into the evaluation mode. The dropout layers are disabled during\n    # the test time.\n    model.eval()\n    # Tracking variables\n    val_accuracy = []\n    val_loss = []\n    # For each batch in our validation set...\n    for batch in val_dataloader:\n        # Load batch to GPU\n        b_input_ids, b_attn_mask, b_labels = tuple(t.to(device) for t in batch)\n        # Compute logits\n        with torch.no_grad():\n            logits = model(b_input_ids, b_attn_mask)\n        # Compute loss\n        loss = loss_fn(logits, b_labels)\n        val_loss.append(loss.item())\n        # Get the predictions\n        preds = torch.argmax(logits, dim=1).flatten()\n        # Calculate the accuracy rate\n        accuracy = (preds == b_labels).cpu().numpy().mean() * 100\n        val_accuracy.append(accuracy)\n    # Compute the average accuracy and loss over the validation set.\n    val_loss = np.mean(val_loss)\n    val_accuracy = np.mean(val_accuracy)\n    return val_loss, val_accuracy\n<\/pre>\n<p>Now, let&#8217;s start training our BertClassifier!<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>set_seed(42)    # Set seed for reproducibility\nbert_classifier, optimizer, scheduler = initialize_model(epochs=2)\ntrain(bert_classifier, train_dataloader, val_dataloader, epochs=2, evaluation=True)\n<\/pre>\n<pre>\n<\/pre>\n<pre>\nStart training...\n Epoch  |  Batch  |  Train Loss  |  Val Loss  |  Val Acc  |  Elapsed \n----------------------------------------------------------------------\n   1    |   20    |   0.630467   |     -      |     -     |   7.58   \n   1    |   40    |   0.497330   |     -      |     -     |   7.01   \n   1    |   60    |   0.502320   |     -      |     -     |   7.11   \n   1    |   80    |   0.491438   |     -      |     -     |   7.19   \n   1    |   95    |   0.486125   |     -      |     -     |   5.35   \n----------------------------------------------------------------------\n   1    |    -    |   0.524515   |  0.439601  |   78.81   |   35.54  \n----------------------------------------------------------------------\n Epoch  |  Batch  |  Train Loss  |  Val Loss  |  Val Acc  |  Elapsed \n----------------------------------------------------------------------\n   2    |   20    |   0.287401   |     -      |     -     |   7.83   \n   2    |   40    |   0.260870   |     -      |     -     |   7.60   \n   2    |   60    |   0.287706   |     -      |     -     |   7.67   \n   2    |   80    |   0.283311   |     -      |     -     |   7.87   \n   2    |   95    |   0.280315   |     -      |     -     |   5.87   \n----------------------------------------------------------------------\n   2    |    -    |   0.279978   |  0.454067  |   80.40   |   38.31  \n----------------------------------------------------------------------\nTraining complete!\n<\/pre>\n<h3 id=\"3.4.-Evaluation-on-Validation-Set\"><span class=\"ez-toc-section\" id=\"34_Evaluation_on_Validation_Set%C2%B6\"><\/span>3.4. Evaluation on Validation Set<a href=\"#3.4.-Evaluation-on-Validation-Set\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The prediction step is similar to the evaluation step that we did in the training loop, but simpler. We will perform a forward pass to compute logits and apply softmax to calculate probabilities.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>import torch.nn.functional as F\ndef bert_predict(model, test_dataloader):\n    &quot;&quot;&quot;Perform a forward pass on the trained BERT model to predict probabilities\n    on the test set.\n    &quot;&quot;&quot;\n    # Put the model into the evaluation mode. The dropout layers are disabled during\n    # the test time.\n    model.eval()\n    all_logits = []\n    # For each batch in our test set...\n    for batch in test_dataloader:\n        # Load batch to GPU\n        b_input_ids, b_attn_mask = tuple(t.to(device) for t in batch)[:2]\n        # Compute logits\n        with torch.no_grad():\n            logits = model(b_input_ids, b_attn_mask)\n        all_logits.append(logits)\n    # Concatenate logits from each batch\n    all_logits = torch.cat(all_logits, dim=0)\n    # Apply softmax to calculate probabilities\n    probs = F.softmax(all_logits, dim=1).cpu().numpy()\n    return probs\n<\/pre>\n<p>In&nbsp;[0]:<\/p>\n<pre># Compute predicted probabilities on the test set\nprobs = bert_predict(bert_classifier, val_dataloader)\n# Evaluate the Bert classifier\nevaluate_roc(probs, y_val)\n<\/pre>\n<pre>AUC: 0.9048\nAccuracy: 80.59%\n<\/pre>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+\/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3de7xVc\/7H8ddHdEFCGWO6EIUukkRyKxFJiYnEoAwy7pf4jRkzGGNchnGd0BHDuNSQQS7JoCRUutFNpOhCJEVR6dTn98d3HWd3nLPPPpd91r68n4\/Hfpy99lp77c9e55z92d\/vd30\/y9wdERGRsmwRdwAiIpLZlChERCQpJQoREUlKiUJERJJSohARkaSUKEREJCklCqkQM5ttZl3jjiNTmNkfzWxYTK\/9iJndGMdrVzcz+42ZvVrJ5+pvMs2UKLKYmX1qZmvNbI2ZLYs+OLZN52u6ext3H5fO1yhiZnXM7GYzWxS9z4\/N7Cozs5p4\/VLi6WpmSxIfc\/eb3P2cNL2emdklZjbLzL43syVm9rSZ7ZOO16ssM7vezB6vyj7c\/Ql3PzqF1\/pZcqzJv8l8pUSR\/Xq7+7ZAe2A\/4A8xx1NhZrZlGaueBo4EegL1gTOAQcDdaYjBzCzT\/h\/uBi4FLgF2BPYEngOOq+4XSvI7SLs4X1tS5O66ZekN+BQ4KmH578BLCcsHAe8Aq4D3ga4J63YE\/gV8DqwEnktY1wuYET3vHaBdydcEfgWsBXZMWLcf8DWwVbT8W2ButP8xwK4J2zpwIfAxsLCU93YksA5oWuLxTsBGoEW0PA64GZgMfAc8XyKmZMdgHPA34O3ovbQAzopiXg0sAM6Ltt0m2mYTsCa6\/Qq4Hng82ma36H0NABZFx+KahNerBzwaHY+5wP8BS8r43baM3ueBSX7\/jwBDgJeieCcBeySsvxtYHB2XqcBhCeuuB0YCj0frzwEOBN6NjtUXwD+B2gnPaQP8D\/gG+BL4I9AD+BHYEB2T96NtGwAPRftZCtwI1IrWDYyO+Z3AimjdQGBCtN6idV9Fsc0E2hK+JGyIXm8N8ELJ\/wOgVhTXJ9ExmUqJvyHdKvFZE3cAulXhl7f5P0iT6B\/q7mi5cfRP2JPQcuweLe8UrX8J+A+wA7AV0CV6fL\/oH7RT9E83IHqdOqW85hvAuQnx3AY8EN3vA8wHWgFbAn8C3knY1qMPnR2BeqW8t1uAN8t4359R\/AE+Lvogakv4MH+G4g\/u8o7BOMIHepsoxq0I39b3iD6sugA\/AB2i7btS4oOd0hPFg4SksC+wHmiV+J6iY94E+KDk\/hL2+zvgs3J+\/49E7+fAKP4ngBEJ608HGkbrBgPLgLoJcW8AToiOTT1gf0Ji3TJ6L3OBy6Lt6xM+9AcDdaPlTiWPQcJrPwsMjX4nvyAk8qLf2UCgELg4eq16bJ4ojiF8wG8f\/R5aAbskvOcbk\/wfXEX4P9greu6+QMO4\/1ez\/RZ7ALpV4ZcX\/kHWEL45OfA6sH207vfAYyW2H0P44N+F8M14h1L2eT\/w1xKPzaM4kST+U54DvBHdN8K318Oj5dHA2Qn72ILwobtrtOxAtyTvbVjih16JdROJvqkTPuxvSVjXmvCNs1ayY5Dw3BvKOcbPAZdG97uSWqJokrB+MtA\/ur8AOCZh3Tkl95ew7hpgYjmxPQIMS1juCXyYZPuVwL4JcY8vZ\/+XAc9G908Fppex3U\/HIFremZAg6yU8diowNro\/EFhUYh8DKU4U3YCPCElri1Lec7JEMQ\/ok47\/t3y+ZVqfrFTcCe5en\/AhtjfQKHp8V+BkM1tVdAMOJSSJpsA37r6ylP3tCgwu8bymhG6Wkp4BOpvZLsDhhOTzVsJ+7k7YxzeEZNI44fmLk7yvr6NYS7NLtL60\/XxGaBk0IvkxKDUGMzvWzCaa2TfR9j0pPqapWpZw\/weg6ASDX5V4vWTvfwVlv\/9UXgszu9LM5prZt9F7acDm76Xke9\/TzF6MToz4DrgpYfumhO6cVOxK+B18kXDchxJaFqW+diJ3f4PQ7TUE+MrMCsxsuxRfuyJxSoqUKHKEu79J+LZ1e\/TQYsK36e0Tbtu4+y3Ruh3NbPtSdrUY+FuJ523t7sNLec2VwKvAKcBphBaAJ+znvBL7qefu7yTuIslbeg3oZGZNEx80s06ED4M3Eh5O3KYZoUvl63KOwc9iMLM6hOR3O7Czu28PvExIcOXFm4ovCF1OpcVd0utAEzPrWJkXMrPDCGMg\/Qgtx+2Bbyl+L\/Dz93M\/8CHQ0t23I\/T1F22\/GNi9jJcruZ\/FhBZFo4Tjvp27t0nynM136H6Pu+9PaCHuSehSKvd50WvvUc42UkFKFLnlLqC7me1LGKTsbWbHmFktM6sbnd7ZxN2\/IHQN3WdmO5jZVmZ2eLSPB4HfmVmn6EygbczsODOrX8ZrPgmcCZwU3S\/yAPAHM2sDYGYNzOzkVN+Iu79G+LB8xszaRO\/hoOh93e\/uHydsfrqZtTazrYEbgJHuvjHZMSjjZWsDdYDlQKGZHQsknrL5JdDQzBqk+j5KeIpwTHYws8bARWVtGL2\/+4DhUcy1o\/j7m9nVKbxWfcI4wHJgSzO7FijvW3l9wuDxGjPbGzg\/Yd2LwC5mdll02nL9KGlDOC67FZ01Fv19vQr8w8y2M7MtzGwPM+uSQtyY2QHR399WwPeEkxo2JbxWWQkLQpflX82sZfT3287MGqbyulI2JYoc4u7LgX8D17r7YsKA8h8JHxaLCd\/Kin7nZxC+eX9IGLy+LNrHFOBcQtN\/JWFAemCSlx1FOENnmbu\/nxDLs8CtwIioG2MWcGwF31JfYCzwCmEs5nHCmTQXl9juMUJrahlhoPWSKIbyjsFm3H119NynCO\/9tOj9Fa3\/EBgOLIi6VErrjkvmBmAJsJDQYhpJ+OZdlkso7oJZRehSORF4IYXXGkM4bh8RuuPWkbyrC+BKwnteTfjC8J+iFdGx6Q70Jhznj4EjotVPRz9XmNm06P6ZhMQ7h3AsR5JaVxqEhPZg9LzPCN1wt0XrHgJaR8f\/uVKeewfh9\/cqIek9RBgslyqw4p4CkexjZuMIA6mxzI6uCjM7nzDQndI3bZG4qEUhUkPMbBczOyTqitmLcKrps3HHJVKetCUKM3vYzL4ys1llrDczu8fM5pvZB2bWIV2xiGSI2oSzf1YTBuOfJ4xDiGS0tHU9RYOja4B\/u3vbUtb3JPQ19yRM7rrb3TuV3E5EROKVthaFu48nnDtflj6EJOLuPhHYPjofX0REMkicxbgas\/lZGEuix74ouaGZDSLUeWGbbbbZf++9966RAEWk4ubNg7VroZ7ONcoIO6\/\/jG0LV\/G+F37t7jtVZh9ZUbXR3QuAAoCOHTv6lClTYo5IpGoKCuDJJ8vfLhvVqgWHHgrjxsUdSR4rGlIwg\/vvh6++wq6\/\/rPK7i7Os56WsvnM1CbRYyI5q6AAunaF886DN9+MO5r0aN8eTjst7ijy2NKl0KdP8TeR88+H666r0i7jbFGMAi4ysxGEwexvoxmdIlkn1RZCUXLo0iV8mA4alN64JI+4w7BhcOWVsGEDHFd9ly1JW6Iws+GEQnWNLFwV7DpCoTDc\/QFCDZ2ehJm\/PxCuAyCSlZ58EmbMCN+mk1GCkLT45BM491wYOxaOOAIefBD2qL6SV2lLFO5+ajnriy5cIxKr6hgvKEoS6peXWMycCVOnhj\/mc84JYxPVKCsGs0WqorxEkNgdVFnql5caN2sWTJsGZ54JJ5wACxZAw\/TUP1SikJxVlCDKSwTqDpKs8uOPcNNN4bbzztCvH9Stm7YkAUoUkmUq0k2kgWPJOZMmwdlnw+zZcPrpcOedIUmkmRKFZJVUB41BCUJyzNKlcNhhoRXx4ovVelZTeZQoJOto0FjyykcfwZ57QuPG8J\/\/wJFHwnapXhm2eqjMuIhIJlq1KjSH994bxo8Pj514Yo0nCVCLQjJcyTGJVLudRLLaqFFhRvWyZXDVVXDAAbGGoxaFZLSiMYkiOg1Vct4554QSHA0bhsHrW2+NvcKiWhSSVlWdzKaJbJIXEov4dewIu+4Kv\/891K4db1wRJQpJi1TnMJRHLQjJeYsXw+9+B\/37wxlnhPsZRolCqlVpCUKnqIqUYtMmGDo0tBw2bgwD1RlKiUKqhRKESAV8\/HEYixg\/Ho46KvwDNW8ed1RlUqKQalE06KwEIZKCOXPggw\/g4Ydh4MBqL+JX3ZQopEqKWhIadBYpx\/vvh3+UAQPCWU0LFsAOO8QdVUqUKKRSyupqEpES1q+HG2+EW26BXXaBU04J9ZmyJEmAEoWkoLRTXDUWIZKCd98NRfzmzg3lwO+4o0aK+FU3JQopV2mF+JQgRMqxdGn4R\/nlL+Hll+HYY+OOqNKUKKRMGn8QqYS5c6FVq1DE76mnQhG\/+vXjjqpKlCjkJyW7mDT+IFIBK1fC4MHwr3+F014POyxceS4HKFHkobLKapScRa3uJZEUPfssXHABLF8Of\/hD7EX8qpsSRR4q6+I\/SgwilfDb34ZWRPv28NJL0KFD3BFVOyWKPKUxB5EqSCzid9BB0LIlXHklbLVVvHGliRKFiEhFfPYZnHdeaH6feWZeNMF1PYo8UlAAXbtufn0HEUnRpk0wZAi0bQsTJsCGDXFHVGPUosgDmkUtUkXz5oUifhMmwNFHh6qvu+0Wd1Q1RokiD6hgn0gVzZsHs2fDI4+E7qYML+JX3ZQocpgmzIlUwfTp4Z\/nrLPg+ONDEb\/tt487qlgoUWShVC8vqq4mkUpYtw5uuAH+\/vcwu\/rUU0N9pjxNEqDB7KxU1EooT5cuoSt13Dh1N4mk5O23Q\/P75ptDF9OMGVlZxK+6qUWRpdSVJFLNli6FI44IrYgxY8KgtQBqUYhIvpszJ\/xs3BieeQZmzlSSKEGJIgsUzX8oumkehEg1+OabcBnSNm1CET+A3r1h221jDSsTKVFkgZJjEu3ba3BapEqeeQZat4YnnoBrroEDD4w7ooymMYoMptNbRdJg4EB49NFQvO+VV35eHVN+RokigyUmCbUgRKogsYjfwQeHCwsNHgxb6iMwFWk9SmbWA7gbqAUMc\/dbSqxvBjwKbB9tc7W7v5zOmLKNWhIiVbRwYTg\/\/PTTYcAAnSteCWkbozCzWsAQ4FigNXCqmbUusdmfgKfcfT+gP3BfuuLJJireJ1INNm6Ee+4JRfwmTixuVUiFpXMw+0BgvrsvcPcfgRFAnxLbOLBddL8B8Hka48ka6nISqaK5c8OlSC+9NMw8nT07jE1IpaSz66kxsDhheQnQqcQ21wOvmtnFwDbAUaXtyMwGAYMAmjVrVu2BZiJ1OYlUwfz5oZDfY4\/Bb36Td0X8qlvcp8eeCjzi7k2AnsBjZvazmNy9wN07unvHnXbaqcaDFJEsMHUqPPxwuN+7dxibOP10JYlqkM5EsRRomrDcJHos0dnAUwDu\/i5QF2iUxpgyXkFBcTE\/EUnB2rVw9dXQqRP89a+hqB\/Adtslf56kLJ2J4j2gpZk1N7PahMHqUSW2WQQcCWBmrQiJYnkaY8pYRQPY550XljU2IZKC8eNh333h1lvDGMT06SrilwZpG6Nw90IzuwgYQzj19WF3n21mNwBT3H0UMBh40MwuJwxsD3TPz1MTdHEhkQpauhSOPBKaNoXXXgv3JS3SOo8imhPxconHrk24Pwc4JJ0xZBMNYIukYOZM2GefUMTv2WdDxddttok7qpwW92B23lKhP5EK+vprOOMMaNeuuIhfr15KEjVAiSImKvQnkiJ3eOqpUMRvxAi47rowcC01RoVOapgK\/YlU0IABYT5Ex47w+uuh20lqlBJFDdOsa5EUJBbx69IldDdddpmK+MVER72GqCUhkqIFC+Dcc8NkubPOgrPPjjuivKdEkSZFiaFI0SS6otNfRaSEjRvh3nvDhYRq1YIzz4w7IokoUaRJYusBND9CJKk5c+C3v4VJk+C44+CBB6BJk7ijkogSRRqpi0kkRQsXwiefhG9Y\/furPlOGUaIQkXi8915odp97bmhFLFgA9evHHZWUQomikkqOQZSU2O0kIgl++AGuvRbuvBN23TVMoqtbV0kig2nCXSWVnDBXkk5\/FSnFuHHhVNd\/\/CO0JFTELyuoRVEFGoMQqYAlS6B799CKeOONUKNJsoJaFCKSXu+\/H342aQLPPw8ffKAkkWWUKEQkPZYvD\/2v7dsXTyTq2RO23jreuKTC1PUkItXLPRTvu+QS+PZb+MtfoHPnuKOSKlCiKEdZZzfprCaRMpxxBjzxRKjw+tBD0KZN3BFJFaXc9WRmedleLOvsJp3VJJJg06biQn5HHAF33AFvv60kkSPKbVGY2cHAMGBboJmZ7Quc5+4XpDu4TKGzm0SSmD8\/nOp6xhmhDIeK+OWcVFoUdwLHACsA3P194PB0BiUiWaCwEG6\/PVwfYvp0qF077ogkTVIao3D3xbZ57ZWN6QlHRLLCrFmhBPiUKdCnD9x3H\/zqV3FHJWmSSqJYHHU\/uZltBVwKzE1vWCKS0RYtgs8+C2c39eunIn45LpWup98BFwKNgaVAeyDnxycKCqBr1+RlOkTyyqRJ4R8DwnyIBQvglFOUJPJAKi2Kvdz9N4kPmNkhwNvpCSleRafD6kJDIpHvv4c\/\/xnuugt23z1cw7pOHdh227gjkxqSSqK4F+iQwmNZrawEoQsNSV57441wRtOCBXD++XDLLSFJSF4pM1GYWWfgYGAnM7siYdV2QK10B1ZTlCBEyrBkCRxzDDRvHv5BDtfJjvkqWYuiNmHuxJZAYqH474CT0hlUTSqaUKcEIRKZPh322y8U8XvhhfDPUa9e3FFJjMpMFO7+JvCmmT3i7p\/VYEw1pqAgfFHq0kUT6kT48stQn+mpp8I\/RJcu0KNH3FFJBkhljOIHM7sNaAP8dIURd++WtqhqSFENJw1WS15zD7WZLr0U1qyBG2+Egw+OOyrJIKmcHvsE8CHQHPgL8CnwXhpjqlFduqi7SfLcaaeF8ht77RX6Ya+5BrbaKu6oJIOk0qJo6O4PmdmlCd1ROZMoRPLSpk1h\/oMZHH10KAN+4YVQK2fOU5FqlEqLYkP08wszO87M9gN2TGNMIpJOH30UKrw+\/HBYPuusMDahJCFlSKVFcaOZNQAGE+ZPbAdcltaoRKT6FRaG8t\/XXQd16+pMJklZuYnC3V+M7n4LHAE\/zcwWkWzxwQehBPjUqXDiiTBkCOyyS9xRSZZINuGuFtCPUOPpFXefZWa9gD8C9YD9aiZEEamyJUtg8WJ4+mno21f1maRCko1RPAScAzQE7jGzx4Hbgb+7e0pJwsx6mNk8M5tvZleXsU0\/M5tjZrPNrJSLjopIpbzzDjzwQLhfVMTvpJOUJKTCknU9dQTaufsmM6sLLAP2cPcVqew4apEMAboDS4D3zGyUu89J2KYl8AfgEHdfaWa\/qOwbEZHImjXhFNd774U99giD1XXqwDbbxB2ZZKlkLYof3X0TgLuvAxakmiQiBwLz3X2Bu\/8IjAD6lNjmXGCIu6+MXuerCuxfREp69VVo2zYkiQsvhGnTVMRPqixZi2JvM\/sgum\/AHtGyAe7u7crZd2NgccLyEqBTiW32BDCztwmFBq9391dK7sjMBgGDAJo1a1bOy4rkqcWL4bjjQiti\/Hg49NC4I5IckSxRtKqh128JdAWaAOPNbB93X5W4kbsXAAUAHTt29BqISyR7TJ0K++8PTZvCyy\/DYYeF019FqkmZXU\/u\/lmyWwr7Xgo0TVhuEj2WaAkwyt03uPtC4CNC4hCR8ixbBiefDB07FtfJ795dSUKqXSozsyvrPaClmTU3s9pAf2BUiW2eI7QmMLNGhK6oBWmMSST7ucOjj0Lr1qEM+E03qYifpFUqM7Mrxd0LzewiYAxh\/OFhd59tZjcAU9x9VLTuaDObA2wErqrggLlI\/unfP5QCP+QQGDYM9t477ogkx6WUKMysHtDM3edVZOfu\/jLwconHrk2478AV0U1EypJYxK9nzzAOccEFsEU6OwVEgnL\/ysysNzADeCVabm9mJbuQRCRdPvwwXIb0oYfC8oABcNFFShJSY1L5S7ueMCdiFYC7zyBcm0JE0mnDhjD+sO++MGcObLtt3BFJnkql62mDu39rm0\/71ymqIuk0Y0aYUT1jRii7ce+98Mtfxh2V5KlUEsVsMzsNqBWV3LgEeCe9YYnkuWXLwu2ZZ+DXv447GslzqXQ9XUy4XvZ64ElCuXFdj0Kkuk2YAPfdF+736AGffKIkIRkhlUSxt7tf4+4HRLc\/RbWfRKQ6rF4dBqcPOwzuugvWrw+Pb711vHGJRFJJFP8ws7lm9lcza5v2iETyyZgxoYjffffBpZeqiJ9kpHIThbsfQbiy3XJgqJnNNLM\/pT0ykVy3eDH06hVaDhMmhNaEzmySDJTSidjuvszd7wF+R5hTcW05TxGR0rjD5MnhftOmMHo0TJ+uEhyS0VKZcNfKzK43s5nAvYQznpqkPTKRXPPFF+EypJ06FRfxO+ooFfGTjJdKi+JhwmS7Y9y9q7vfn+0XGCoogK5dwynqImnnDv\/6VyjiN3o03HprqNMkkiXKnUfh7p1rIpCa9OSTIUm0bw+nnRZ3NJLz+vWDkSPDWU3DhsGee8YdkUiFlJkozOwpd+8XdTklzsRO9Qp3Ga19exg3Lu4oJGdt3BgK+G2xBfTuDd26wXnnqT6TZKVkLYpLo5+9aiIQkZwxdy6cfXYowXHuuXDmmXFHJFIlya5w90V094JSrm53Qc2EJ5JFNmyAG28MzdV586BBg7gjEqkWqbSDu5fy2LHVHYhIVps+PVyS9M9\/hhNPDK2Kfv3ijkqkWiQbozif0HLY3cw+SFhVH3g73YGJZJUvv4Svv4bnnoM+feKORqRaJRujeBIYDdwMXJ3w+Gp3\/yatUYlkg\/HjYeZMuPDCUMRv\/nyoVy\/uqESqXbKuJ3f3T4ELgdUJN8xsx\/SHJpKhvvsuXIa0Sxe4557iIn5KEpKjkiWKJ6OfU4Ep0c+pCctZRxPtpMpefhnatIGhQ+GKK1TET\/JCmV1P7t4r+pkzlz3VRDupksWLw\/jDXnuFCXSdOsUdkUiNKHdmtpkdAsxw9+\/N7HSgA3CXuy9Ke3RpoIl2UiHuMGkSHHRQKOL36quh\/Ebt2nFHJlJjUjk99n7gBzPbFxgMfAI8ltaoRDLB55\/DCSdA587FRfyOOEJJQvJOKomi0N0d6AP8092HEE6RzRoam5AKcQ81mVq3Di2I229XET\/Ja+V2PQGrzewPwBnAYWa2BbBVesOqHgUFYVyi6Mtgly4am5AUnHQS\/Pe\/4Q9m2DBo0SLuiERilUqiOAU4Dfituy8zs2bAbekNq3oUDV4XJYhBg+KOSDJWYhG\/E06Ao48OdZpUxE8kpTLjy8zsCeAAM+sFTHb3f6c\/tOqhwWsp16xZcM45oZDfuefCGWfEHZFIRknlCnf9gMnAyUA\/YJKZnZTuwETS7scf4S9\/gQ4d4JNPYIcd4o5IJCOl0vV0DXBA0VXtzGwn4DVgZDoDq4qisYmiORMiPzN1KgwcGFoTp50Gd90FO+0Ud1QiGSmVRLFFiUufriC1s6Vio4l1Uq4VK2DVKnjhBeilS66IJJNKonjFzMYAw6PlU4CX0xdS9dDYhPzM2LGhiN8ll4TB6o8\/hrp1445KJOOV2zJw96uAoUC76Fbg7r9Pd2CVofkSUqpvvw2XIe3WDe6\/v7iIn5KESEqSXY+iJXA7sAcwE7jS3ZfWVGCVoS4n+ZkXXoDf\/Q6WLYMrrwyD1yriJ1IhybqeHgb+DYwHegP3Ar+uiaCqQl1O8pPFi6FvX9h773BBoQMOiDsikayULFHUd\/cHo\/vzzGxaTQQkUiXu8O67cPDBxUX8Dj5Y9ZlEqiDZGEVdM9vPzDqYWQegXonlcplZDzObZ2bzzezqJNv1NTM3s44VfQMiP1myBI4\/PtRlKqrb0rWrkoRIFSVrUXwB3JGwvCxh2YFuyXZsZrWAIUB3YAnwnpmNcvc5JbarD1wKTKpY6CKRTZvgwQfhqqugsBDuuAMOPTTuqERyRrILFx1RxX0fCMx39wUAZjaCUIF2Tont\/grcClxV2RfSBLs817dvGIPo1i0kjN13jzsikZySzolzjYHFCctLosd+EnVhNXX3l5LtyMwGmdkUM5uyfPnyn63X2U55qLAwtCQgJIoHH4TXXlOSEEmDVCbcpUVUrvwOYGB527p7AVAA0LFjRy9tG53tlEc++CAU8DvnnDA\/4vTT445IJKels0WxFGiasNwkeqxIfaAtMM7MPgUOAkZpQFvKtH49XHcd7L8\/fPaZajOJ1JBUqseamZ1uZtdGy83M7MAU9v0e0NLMmptZbaA\/MKpopbt\/6+6N3H03d98NmAgc7+5TKvVOJLe9916o8nrDDXDqqTB3Lvw646f1iOSEVFoU9wGdgVOj5dWEs5mScvdC4CJgDDAXeMrdZ5vZDWZ2fCXjlXy1ciWsWQMvvwz\/\/jc0bBh3RCJ5I5Uxik7u3sHMpgO4+8qohVAud3+ZEgUE3f3aMrbtmso+JY+88UYo4nfppaGI30cfqfyGSAxSaVFsiOZEOPx0PYpNaY1K8tuqVeFKc0ceCUOHFhfxU5IQiUUqieIe4FngF2b2N2ACcFNao5L89fzz0Lo1PPww\/N\/\/hQsMKUGIxCqVa2Y\/YWZTgSMBA05w97lpj0zyz6JFcPLJ0KoVjBoFHXUCnEgmKDdRmFkz4AfghcTH3H1ROgOTPOEOEybAYYdBs2Zh0txBB6k+k0gGSWUw+yXC+IQBdYHmwDygTRrjknywaFG4VsTo0WG2ZJcucPjhcUclIiWkcoW7fdy9XfSzJaGG07vpD618uqJdltq0Ce67D9q0gfHj4Z57VMRPJINVuISHu08zs07pCKaiVOMpS\/3612HQunv3kO132y3uiEQkiVTGKK5IWNwC6AB8nraIKkg1nrJEYSFssUW4nXIK9OkDAweCWdyRiUg5Ujk9tn7CrQ5hzKJPOoOSHPP++9CpU2g9QCjBcdZZShIiWSJpiyKaaFff3a+soXgkl6xbBzfeCLfeCjvuCL\/8ZdwRiUgllJkozGxLdy80s0NqMiDJEZMnw4AB8OGH4dzY5tcAABPuSURBVOcdd4RkISJZJ1mLYjJhPGKGmY0Cnga+L1rp7v9Nc2ySzb77DtauhVdegWOOiTsaEamCVM56qgusIFwju2g+hQNKFLK5V1+F2bPh8svhqKNg3jyV3xDJAckSxS+iM55mUZwgipR6lTnJUytXwhVXwCOPhLkRF1wQEoSShEhOSHbWUy1g2+hWP+F+0U0E\/vvfUMTvscfgD3+AKVOUIERyTLIWxRfufkONRVIBBQWbT7aTmCxaBP37Q9u24YJC++0Xd0QikgbJWhQZe5K7ZmTHyB3efDPcb9YsXFxo0iQlCZEclqxFcWSNRVEJmpEdg88+g\/POgzFjiov4qUaTSM4rs0Xh7t\/UZCCSwTZtgn\/+MwxUT5gA994byoKLSF6ocFFAyUMnnAAvvBDmQwwdCrvuGndEIlKDlCikdBs2QK1aoYjfqafCSSfBGWeoPpNIHkqlKKDkm2nT4MAD4YEHwvKpp8KZZypJiOSprEsU8+bpQkVps3ZtmAtx4IGwbBk0bRp3RCKSAbKu62nt2nCijU6LrWYTJ4bifR99BL\/9Ldx+O+ywQ9xRiUgGyLpEUa+eTotNi++\/D+MS\/\/tfqNMkIhLJukQh1eiVV0IRv8GD4cgjQ0nw2rXjjkpEMkzWjVFINVixInQzHXssPPoo\/PhjeFxJQkRKoUSRT9xh5MhQxO\/JJ+FPf4L33lOCEJGk1PWUTxYtCmcBtGsXrh2x775xRyQiWUAtilznHgr3QZhRPW5cOMNJSUJEUqREkcsWLoSjjw4D1UUVXw8+GLZUQ1JEUqdEkYs2boS77w7XiZg0Ce6\/X0X8RKTS9NUyF\/XpAy+9BD17hjIcmmEtIlWgRJErEov4nXFGqM902mmqzyQiVZbWricz62Fm88xsvpldXcr6K8xsjpl9YGavm5nqV1fGlCnQsWPoYgI45RT4zW+UJESkWqQtUZhZLWAIcCzQGjjVzFqX2Gw60NHd2wEjgb+nK56ctHYt\/P730KkTLF+u60SISFqks0VxIDDf3Re4+4\/ACKBP4gbuPtbdf4gWJwJN0hhPbnn33XCK69\/\/Hor4zZkDvXrFHZWI5KB0jlE0BhYnLC8BOiXZ\/mxgdGkrzGwQMAigTp121RVfdlu7Nlyi9LXXwumvIiJpkhGD2WZ2OtAR6FLaencvAAoA6tfv6DUYWmZ5+eVQxO+qq6BbN5g7F7baKu6oRCTHpbPraSmQeF5mk+ixzZjZUcA1wPHuvj6N8WSvr7+G00+H446DJ54oLuKnJCEiNSCdieI9oKWZNTez2kB\/YFTiBma2HzCUkCS+SmMs2ckdRoyAVq3gqafguutg8mQV8RORGpW2rid3LzSzi4AxQC3gYXefbWY3AFPcfRRwG7At8LSFUzkXufvx6Yop6yxaFMqB77svPPQQ7LNP3BGJSB4y9+zq8q9fv6OvXj0l7jDSxx1ef734KnMTJ8IBB4TJdCIilWRmU929Y2Weq1pPmeSTT8IZTN27FxfxO+ggJQkRiZUSRSbYuBHuuCN0LU2dCkOHqoifiGSMjDg9Nu\/17g2jR4cJc\/ffD00071BEMocSRVx+\/DFcF2KLLWDgwFDIr39\/1WcSkYyjrqc4TJ4M++8P990Xlvv1C9VelSREJAMpUdSkH36AwYOhc2dYuRL22CPuiEREyqWup5oyYUKYE7FgAZx3Htx6KzRoEHdUIiLlUqKoKUUXFho7Frp2jTsaEZGUKVGk0wsvhMJ9\/\/d\/cMQRoRT4ljrkIpJdNEaRDsuXh8uQHn88DB9eXMRPSUJEspASRXVyhyefDEX8Ro6EG26ASZNUxE9Espq+4lanRYvgrLNgv\/1CEb82beKOSESkytSiqKpNm2DMmHB\/113hrbfg7beVJEQkZyhRVMXHH4crzfXoAePHh8cOPFBF\/EQkpyhRVEZhIdx2G7RrBzNmhG4mFfETkRylMYrK6NUrdDf16RPKcPzqV3FHJJKRNmzYwJIlS1i3bl3coeSNunXr0qRJE7aqxksl68JFqVq\/PlyjeostwhlNmzbBySerPpNIEgsXLqR+\/fo0bNgQ0\/9K2rk7K1asYPXq1TRv3nyzdbpwUbpNnAgdOsCQIWH5pJNCIT\/94YsktW7dOiWJGmRmNGzYsNpbcEoUyXz\/PVx+ORx8MKxeDS1bxh2RSNZRkqhZ6TjeGqMoy1tvhSJ+CxfCBRfAzTfDdtvFHZWISI1Ti6IshYVhTOLNN0OXk5KESNZ67rnnMDM+\/PDDnx4bN24cvXr12my7gQMHMnLkSCAMxF999dW0bNmSDh060LlzZ0aPHl3lWG6++WZatGjBXnvtxZiiOVglvPHGG3To0IG2bdsyYMAACgsLgTAGcckll9CiRQvatWvHtGnTqhxPKpQoEj33XGg5QCjiN3s2HH54vDGJSJUNHz6cQw89lOHDh6f8nD\/\/+c988cUXzJo1i2nTpvHcc8+xevXqKsUxZ84cRowYwezZs3nllVe44IIL2Lhx42bbbNq0iQEDBjBixAhmzZrFrrvuyqOPPgrA6NGj+fjjj\/n4448pKCjg\/PPPr1I8qVLXE8CXX8LFF8PTT4dB68GDQ30mFfETqTaXXRamHVWn9u3hrruSb7NmzRomTJjA2LFj6d27N3\/5y1\/K3e8PP\/zAgw8+yMKFC6lTpw4AO++8M\/369atSvM8\/\/zz9+\/enTp06NG\/enBYtWjB58mQ6d+780zYrVqygdu3a7LnnngB0796dm2++mbPPPpvnn3+eM888EzPjoIMOYtWqVXzxxRfssssuVYqrPPndonCHxx6D1q3h+efhb38LZzipiJ9Iznj++efp0aMHe+65Jw0bNmTq1KnlPmf+\/Pk0a9aM7VLocr788stp3779z2633HLLz7ZdunQpTZs2\/Wm5SZMmLF26dLNtGjVqRGFhIVOmhGkAI0eOZPHixSk\/Px3y+yvzokVwzjnQsWOYXb333nFHJJKzyvvmny7Dhw\/n0ksvBaB\/\/\/4MHz6c\/fffv8yzgyp61tCdd95Z5RhLvv6IESO4\/PLLWb9+PUcffTS1Yi4LlH+JoqiI37HHhiJ+b78dqr2qPpNIzvnmm2944403mDlzJmbGxo0bMTNuu+02GjZsyMqVK3+2faNGjWjRogWLFi3iu+++K7dVcfnllzN27NifPd6\/f3+uvvrqzR5r3LjxT60DgCVLltC4ceOfPbdz58689dZbALz66qt89NFHFXp+tXP3rLptu+3+Xmnz5rkfdpg7uI8bV\/n9iEhK5syZE+vrDx061AcNGrTZY4cffri\/+eabvm7dOt9tt91+ivHTTz\/1Zs2a+apVq9zd\/aqrrvKBAwf6+vXr3d39q6++8qeeeqpK8cyaNcvbtWvn69at8wULFnjz5s29sLDwZ9t9+eWX7u6+bt0679atm7\/++uvu7v7iiy96jx49fNOmTf7uu+\/6AQccUOrrlHbcgSleyc\/d\/BijKCyEW28NRfxmzoR\/\/UtnM4nkgeHDh3PiiSdu9ljfvn0ZPnw4derU4fHHH+ess86iffv2nHTSSQwbNowGDRoAcOONN7LTTjvRunVr2rZtS69evVIas0imTZs29OvXj9atW9OjRw+GDBnyU7dSz549+fzzzwG47bbbaNWqFe3ataN3795069btp2123313WrRowbnnnst9991XpXhSlR+1no45Bl59FX796zAn4pe\/TE9wIrKZuXPn0qpVq7jDyDulHfeq1HrK3TGKdevChLlatWDQoHDr2zfuqEREsk5udj29\/XY4wbqoiF\/fvkoSIiKVlFuJYs0auOSScBGhdetATV6R2GVb93a2S8fxzp1E8eab0LYt\/POfcNFFMGsWdO8ed1Qiea1u3bqsWLFCyaKGeHQ9irp161brfnNrjGLrrUPV10MOiTsSESHMHF6yZAnLly+PO5S8UXSFu+qU3Wc9\/fe\/8OGH8Mc\/huWNGzVxTkSkFBl7hTsz62Fm88xsvpldXcr6Omb2n2j9JDPbLaUdL1sWrjLXty88+yz8+GN4XElCRKTapS1RmFktYAhwLNAaONXMWpfY7Gxgpbu3AO4Ebi1vvw02rAiD1C++GEqCv\/OOiviJiKRROlsUBwLz3X2Bu\/8IjAD6lNimD\/BodH8kcKSVU5Fr5\/WfhUHr99+Hq68OcyVERCRt0jmY3RhYnLC8BOhU1jbuXmhm3wINga8TNzKzQcCgaHG9TZgwS5VeAWhEiWOVx3QsiulYFNOxKLZXZZ+YFWc9uXsBUABgZlMqOyCTa3QsiulYFNOxKKZjUczMKlj7qFg6u56WAk0TlptEj5W6jZltCTQAVqQxJhERqaB0Jor3gJZm1tzMagP9gVElthkFDIjunwS84dl2vq6ISI5LW9dTNOZwETAGqAU87O6zzewGQl30UcBDwGNmNh\/4hpBMylOQrpizkI5FMR2LYjoWxXQsilX6WGTdhDsREalZuVPrSURE0kKJQkREksrYRJG28h9ZKIVjcYWZzTGzD8zsdTPbNY44a0J5xyJhu75m5maWs6dGpnIszKxf9Lcx28yerOkYa0oK\/yPNzGysmU2P\/k96xhFnupnZw2b2lZnNKmO9mdk90XH6wMw6pLTjyl5sO503wuD3J8DuQG3gfaB1iW0uAB6I7vcH\/hN33DEeiyOAraP75+fzsYi2qw+MByYCHeOOO8a\/i5bAdGCHaPkXcccd47EoAM6P7rcGPo077jQdi8OBDsCsMtb3BEYDBhwETEplv5naokhL+Y8sVe6xcPex7v5DtDiRMGclF6XydwHwV0LdsHU1GVwNS+VYnAsMcfeVAO7+VQ3HWFNSORYObBfdbwB8XoPx1Rh3H084g7QsfYB\/ezAR2N7Mdilvv5maKEor\/9G4rG3cvRAoKv+Ra1I5FonOJnxjyEXlHouoKd3U3V+qycBikMrfxZ7Anmb2tplNNLMeNRZdzUrlWFwPnG5mS4CXgYtrJrSMU9HPEyBLSnhIaszsdKAj0CXuWOJgZlsAdwADYw4lU2xJ6H7qSmhljjezfdx9VaxRxeNU4BF3\/4eZdSbM32rr7pviDiwbZGqLQuU\/iqVyLDCzo4BrgOPdfX0NxVbTyjsW9YG2wDgz+5TQBzsqRwe0U\/m7WAKMcvcN7r4Q+IiQOHJNKsfibOApAHd\/F6hLKBiYb1L6PCkpUxOFyn8UK\/dYmNl+wFBCksjVfmgo51i4+7fu3sjdd3P33QjjNce7e6WLoWWwVP5HniO0JjCzRoSuqAU1GWQNSeVYLAKOBDCzVoREkY\/XZx0FnBmd\/XQQ8K27f1HekzKy68nTV\/4j66R4LG4DtgWejsbzF7n78bEFnSYpHou8kOKxGAMcbWZzgI3AVe6ec63uFI\/FYOBBM7ucMLA9MBe\/WJrZcMKXg0bReMx1wFYA7v4AYXymJzAf+AE4K6X95uCxEhGRapSpXU8iIpIhlChERCQpJQoREUlKiUJERJJSohARkaSUKCQjmdlGM5uRcNstybZrquH1HjGzhdFrTYtm71Z0H8PMrHV0\/48l1r1T1Rij\/RQdl1lm9oKZbV\/O9u1ztVKq1BydHisZyczWuPu21b1tkn08Arzo7iPN7GjgdndvV4X9VTmm8vZrZo8CH7n735JsP5BQQfei6o5F8odaFJIVzGzb6Fob08xsppn9rGqsme1iZuMTvnEfFj1+tJm9Gz33aTMr7wN8PNAieu4V0b5mmdll0WPbmNlLZvZ+9Pgp0ePjzKyjmd0C1IvieCJatyb6OcLMjkuI+REzO8nMapnZbWb2XnSdgPNSOCzvEhV0M7MDo\/c43czeMbO9olnKNwCnRLGcEsX+sJlNjrYtrfquyObirp+um26l3QgziWdEt2cJVQS2i9Y1IswsLWoRr4l+Dgauie7XItR+akT44N8mevz3wLWlvN4jwEnR\/ZOBScD+wExgG8LM99nAfkBf4MGE5zaIfo4juv5FUUwJ2xTFeCLwaHS\/NqGSZz1gEPCn6PE6wBSgeSlxrkl4f08DPaLl7YAto\/tHAc9E9wcC\/0x4\/k3A6dH97Qn1n7aJ+\/etW2bfMrKEhwiw1t3bFy2Y2VbATWZ2OLCJ8E16Z2BZwnPeAx6Otn3O3WeYWRfChWrejsqb1CZ8Ey\/NbWb2J0INoLMJtYGedffvoxj+CxwGvAL8w8xuJXRXvVWB9zUauNvM6gA9gPHuvjbq7mpnZidF2zUgFPBbWOL59cxsRvT+5wL\/S9j+UTNrSShRsVUZr380cLyZXRkt1wWaRfsSKZUShWSL3wA7Afu7+wYL1WHrJm7g7uOjRHIc8IiZ3QGsBP7n7qem8BpXufvIogUzO7K0jdz9IwvXvegJ3Ghmr7v7Dam8CXdfZ2bjgGOAUwgX2YFwxbGL3X1MObtY6+7tzWxrQm2jC4F7CBdrGuvuJ0YD\/+PKeL4Bfd19XirxioDGKCR7NAC+ipLEEcDPrgtu4VrhX7r7g8AwwiUhJwKHmFnRmMM2ZrZniq\/5FnCCmW1tZtsQuo3eMrNfAT+4++OEgoylXXd4Q9SyKc1\/CMXYilonED70zy96jpntGb1mqTxc0fASYLAVl9kvKhc9MGHT1YQuuCJjgIstal5ZqDwskpQShWSLJ4COZjYTOBP4sJRtugLvm9l0wrf1u919OeGDc7iZfUDodto7lRd092mEsYvJhDGLYe4+HdgHmBx1AV0H3FjK0wuAD4oGs0t4lXBxqdc8XLoTQmKbA0wzs1mEsvFJW\/xRLB8QLsrzd+Dm6L0nPm8s0LpoMJvQ8tgqim12tCySlE6PFRGRpNSiEBGRpJQoREQkKSUKERFJSolCRESSUqIQEZGklChERCQpJQoREUnq\/wEmdXE6814P+gAAAABJRU5ErkJggg==\n\"\n><\/p>\n<p>The Bert Classifer achieves 0.90 AUC score and 82.65% accuracy rate on the validation set. This result is 10 points better than the baseline method.<\/p>\n<h3 id=\"3.5.-Train-Our-Model-on-the-Entire-Training-Data\"><span class=\"ez-toc-section\" id=\"35_Train_Our_Model_on_the_Entire_Training_Data%C2%B6\"><\/span>3.5. Train Our Model on the Entire Training Data<a href=\"#3.5.-Train-Our-Model-on-the-Entire-Training-Data\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In&nbsp;[0]:<\/p>\n<pre># Concatenate the train set and the validation set\nfull_train_data = torch.utils.data.ConcatDataset([train_data, val_data])\nfull_train_sampler = RandomSampler(full_train_data)\nfull_train_dataloader = DataLoader(full_train_data, sampler=full_train_sampler, batch_size=32)\n# Train the Bert Classifier on the entire training data\nset_seed(42)\nbert_classifier, optimizer, scheduler = initialize_model(epochs=2)\ntrain(bert_classifier, full_train_dataloader, epochs=2)\n<\/pre>\n<pre>Start training...\n Epoch  |  Batch  |  Train Loss  |  Val Loss  |  Val Acc  |  Elapsed \n----------------------------------------------------------------------\n   1    |   20    |   0.664452   |     -      |     -     |   8.63   \n   1    |   40    |   0.587205   |     -      |     -     |   8.42   \n   1    |   60    |   0.522831   |     -      |     -     |   8.44   \n   1    |   80    |   0.476442   |     -      |     -     |   8.23   \n   1    |   100   |   0.467542   |     -      |     -     |   8.10   \n   1    |   106   |   0.483039   |     -      |     -     |   2.14   \n----------------------------------------------------------------------\n Epoch  |  Batch  |  Train Loss  |  Val Loss  |  Val Acc  |  Elapsed \n----------------------------------------------------------------------\n   2    |   20    |   0.338174   |     -      |     -     |   8.36   \n   2    |   40    |   0.296080   |     -      |     -     |   7.93   \n   2    |   60    |   0.295626   |     -      |     -     |   7.96   \n   2    |   80    |   0.277470   |     -      |     -     |   7.99   \n   2    |   100   |   0.314746   |     -      |     -     |   8.07   \n   2    |   106   |   0.293359   |     -      |     -     |   2.17   \n----------------------------------------------------------------------\nTraining complete!\n<\/pre>\n<h2 id=\"4.-Predictions-on-Test-Set\"><span class=\"ez-toc-section\" id=\"4_Predictions_on_Test_Set%C2%B6\"><\/span>4. Predictions on Test Set<a href=\"#4.-Predictions-on-Test-Set\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"4.1.-Data-Preparation\"><span class=\"ez-toc-section\" id=\"41_Data_Preparation%C2%B6\"><\/span>4.1. Data Preparation<a href=\"#4.1.-Data-Preparation\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Let&#8217;s revisit out test set shortly.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>test_data.sample(5)\n<\/pre>\n<p>    Out[0]:<\/p>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n    .dataframe thead th {\n        text-align: right;\n    }\n<\/style>\n<table border=\"1\">\n<thead>\n<tr style=\"text-align: right;\">\n<th><\/th>\n<th>id<\/th>\n<th>tweet<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>471<\/th>\n<td>18654<\/td>\n<td>Friends and family: Never fly @JetBlue.  Absol&#8230;<\/td>\n<\/tr>\n<tr>\n<th>1971<\/th>\n<td>76265<\/td>\n<td>@DeltaAssist @rogerioad I never have had a pro&#8230;<\/td>\n<\/tr>\n<tr>\n<th>23<\/th>\n<td>672<\/td>\n<td>First flight in weeks. Counting on you @Americ&#8230;<\/td>\n<\/tr>\n<tr>\n<th>2702<\/th>\n<td>103263<\/td>\n<td>&#8220;@USAirways: You know that we can__t stay no m&#8230;<\/td>\n<\/tr>\n<tr>\n<th>135<\/th>\n<td>5137<\/td>\n<td>@southwestair Here at SA Airport watching the &#8230;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Before making predictions on the test set, we need to redo processing and encoding steps done on the training data. Fortunately, we have written the <code>preprocessing_for_bert<\/code> function to do that for us.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre># Run <code>preprocessing_for_bert<\/code> on the test set\nprint(&#39;Tokenizing data...&#39;)\ntest_inputs, test_masks = preprocessing_for_bert(test_data.tweet)\n# Create the DataLoader for our test set\ntest_dataset = TensorDataset(test_inputs, test_masks)\ntest_sampler = SequentialSampler(test_dataset)\ntest_dataloader = DataLoader(test_dataset, sampler=test_sampler, batch_size=32)\n<\/pre>\n<pre>Tokenizing data...\n<\/pre>\n<h3 id=\"4.2.-Predictions\"><span class=\"ez-toc-section\" id=\"42_Predictions%C2%B6\"><\/span>4.2. Predictions<a href=\"#4.2.-Predictions\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>There are about 300 non-negative tweets in our test set. Therefore, we will keep adjusting the decision threshold until we have about 300 non-negative tweets.<\/p>\n<p>The threshold we will use is 0.992, meaning that tweets with a predicted probability greater than 99.2% will be predicted positive. This value is very high compared to the default 0.5 threshold.<\/p>\n<p>After manually examining the test set, I find that the sentiment classification task here is even difficult for human. Therefore, a high threshold will give us safe predictions.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre># Compute predicted probabilities on the test set\nprobs = bert_predict(bert_classifier, test_dataloader)\n# Get predictions from the probabilities\nthreshold = 0.9\npreds = np.where(probs[:, 1] &gt; threshold, 1, 0)\n# Number of tweets predicted non-negative\nprint(&quot;Number of tweets predicted non-negative: &quot;, preds.sum())\n<\/pre>\n<pre>Number of tweets predicted non-negative:  454\n<\/pre>\n<p>Now we will examine 20 random tweets from our predictions. 17 of them are correct, showing that the BERT Classifier acquires about 0.85 precision rate.<\/p>\n<p>In&nbsp;[0]:<\/p>\n<pre>output = test_data[preds==1]\nlist(output.sample(20).tweet)\n<\/pre>\n<p>    Out[0]:<\/p>\n<pre>[&#34;@Delta @DeltaAssist Delta strikes out again. Sky lounge at the country&#39;s busiest airport closed on weekends. Dumb &amp;amp; cheap. miss you @united&#34;,\n &#39;.@SouthwestAir brought back honey roasted peanuts. Is it sad that this realization may be the high point in my day?#SmallThingsInLife&#39;,\n &#39;@DeltaAssist I emailed kana@delta and contactus.delta@delta to resolve issues two weeks ago w\/o response.  advice on who to contact?&#39;,\n &#34;Woman With Kicked Off Flight By @AlaskaAir Because So Has #Cancer Plans to Donate Her Family&#39;s Airfare http:\/\/t.co\/Uj6rispWLb&#34;,\n &#34;@united (2\/2) I didn&#39;t break the bag. If I didn&#39;t have to pay to check it, I wouldn&#39;t be as upset. Rather fly @AmericanAir @SouthwestAir etc&#34;,\n &#34;I&#39;ve flown about every airline &amp;amp; never have I had a better experience than flying @JetBlue. Quality, service, comfort, &amp;amp; affordability. A++&#34;,\n &#39;@JetBlue  Best airline to work for miss u lots #keepingitminty &#39;,\n &#39;Convinced @firetweet to book a last minute trip to join me in Austin tom! Been singing the @VirginAmerica safety song ever since. Poor Eric.&#39;,\n &#39;@AmericanAir waiting patiently to take off from #DFW to #ord http:\/\/t.co\/j1oDSc6fht&#39;,\n &#39;Oh @JetBlue today is a sad day for B6 loyalists. I know you&#39;re touting your new &#34;options&#34; but your service\/no bag fees ARE what make u great&#39;,\n &#39;Things that are good about this flight: @Gogo and the great experience of @VirginAmerica. Not so good: the baby barf\/rotten tuna smell.&#39;,\n &#39;@USAirways @AmericanAir will miss USAir :(&#39;,\n &#39;@altonbrown @united Time to switch to @VirginAmerica&#39;,\n &#39;Its never the wrong time for Chobani, @AmericanAir Admirals Club! #brokenrecord #toomanywasabipeas #lunch&#39;,\n &#34;On my flight, I stole my human&#39;s phone to try out @alaskaair &#39;s new streaming IFE. It&#39;s good! Too bad she doesn&#39;t own an iPad, though.&#34;,\n &#34;Can&#39;t wait for the @USAirways and @AmericanAir merger to be completed, what a hassle for the customer!&#34;,\n &#34;@JetBlue I&#39;m a broke college kid so $150 is a huge deal.&#34;,\n &#34;Can&#39;t wait to fly back to the Bay Area tonight on @SouthwestAir flight 2256!!!!&#34;,\n &#39;Hanging at #SFO waiting for the fog to burn for the next connection @VirginAmerica to #sxsw! #SXSW2015 #Austin&#39;,\n &#34;@DeltaAssist anyway I can switch flights from 1308 to one that isn&#39;t indefinitely delayed.... And get back to dc!&#34;]<\/pre>\n<h1 id=\"E---Conclusion\"><span class=\"ez-toc-section\" id=\"E_%E2%80%93_Conclusion%C2%B6\"><\/span>E &#8211; Conclusion<a href=\"#E---Conclusion\">&#182;<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>By adding a simple one-hidden-layer neural network classifier on top of BERT and fine-tuning BERT, we can achieve near state-of-the-art performance, which is 10 points better than the baseline method although we only have 3,400 data points.<\/p>\n<p>In addition, although BERT is very large, complicated, and have millions of parameters, we only need to fine-tune it in only 2-4 epochs. That result can be achieved because BERT was trained on the huge amount and already encode a lot of information about our language. An impresive performance achieved in a short amount of time, with a small amount of data has shown why BERT is one of the most powerful NLP models available at the moment.<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tutorial: Fine tuning BERT for Sentiment Analysis Originally published by Skim AI&#8217;s Machine Learning Researcher, Chris Tran. BERT_for_Sentiment_Analysis A &#8211; Introduction&#182; In recent years the NLP community has seen many breakthoughs in Natural Language Processing, especially the shift to transfer learning. Models like ELMo, fast.ai&#8217;s ULMFiT, Transformer and OpenAI&#8217;s GPT have allowed researchers to achieves state-of-the-art results on multiple benchmarks and provided the community with large pre-trained models with high performance. This shift in NLP is seen as NLP&#8217;s ImageNet moment, a shift in computer vision a few year ago when lower layers of deep learning networks with million of parameters trained on a specific task can be reused and [&hellip;]<\/p>\n","protected":false},"author":1003,"featured_media":11931,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"single-custom-post-template.php","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[64,67],"tags":[74,81,79,75,90],"class_list":["post-3054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-ml-nlp","tag-bert","tag-fine-tune","tag-how-to","tag-nlp","tag-sentiment-analysis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tutorial: Fine-tuning BERT for Sentiment Analysis - by Skim AI<\/title>\n<meta name=\"description\" content=\"&quot;How to&quot; fine-tune BERT for sentiment analysis using HuggingFace\u2019s transformers library. Part of a series on using BERT for NLP use cases\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/skimai.com\/ja\/\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306e\u30d0\u30fc\u30c8\u306e\u5fae\u8abf\u6574\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Fine-tuning BERT for Sentiment Analysis - by Skim AI\" \/>\n<meta property=\"og:description\" content=\"&quot;How to&quot; fine-tune BERT for sentiment analysis using HuggingFace\u2019s transformers library. Part of a series on using BERT for NLP use cases\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skimai.com\/ja\/\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306e\u30d0\u30fc\u30c8\u306e\u5fae\u8abf\u6574\/\" \/>\n<meta property=\"og:site_name\" content=\"Skim AI\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-15T11:09:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-04T20:47:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1456\" \/>\n\t<meta property=\"og:image:height\" content=\"816\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Greggory Elias\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Greggory Elias\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/\"},\"author\":{\"name\":\"Greggory Elias\",\"@id\":\"https:\/\/skimai.com\/uk\/#\/schema\/person\/7a883b4a2d2ea22040f42a7975eb86c6\"},\"headline\":\"Tutorial: Fine-tuning BERT for Sentiment Analysis\",\"datePublished\":\"2020-04-15T11:09:15+00:00\",\"dateModified\":\"2024-06-04T20:47:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/\"},\"wordCount\":1848,\"publisher\":{\"@id\":\"https:\/\/skimai.com\/uk\/#organization\"},\"image\":{\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg\",\"keywords\":[\"bert\",\"fine tune\",\"how to\",\"nlp\",\"sentiment analysis\"],\"articleSection\":[\"How to\",\"LLMs \/ NLP\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/\",\"url\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/\",\"name\":\"Tutorial: Fine-tuning BERT for Sentiment Analysis - by Skim AI\",\"isPartOf\":{\"@id\":\"https:\/\/skimai.com\/uk\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg\",\"datePublished\":\"2020-04-15T11:09:15+00:00\",\"dateModified\":\"2024-06-04T20:47:42+00:00\",\"description\":\"\\\"How to\\\" fine-tune BERT for sentiment analysis using HuggingFace\u2019s transformers library. Part of a series on using BERT for NLP use cases\",\"breadcrumb\":{\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage\",\"url\":\"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg\",\"contentUrl\":\"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg\",\"width\":1456,\"height\":816,\"caption\":\"nyc ai guy unsplash image of bert from sesame street Fine Tunin f7505b92 8a68 4046 a937 a87bf33dbfa3\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/skimai.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Fine-tuning BERT for Sentiment Analysis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/skimai.com\/uk\/#website\",\"url\":\"https:\/\/skimai.com\/uk\/\",\"name\":\"Skim AI\",\"description\":\"The AI Agent Workforce Platform\",\"publisher\":{\"@id\":\"https:\/\/skimai.com\/uk\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/skimai.com\/uk\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/skimai.com\/uk\/#organization\",\"name\":\"Skim AI\",\"url\":\"https:\/\/skimai.com\/uk\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/skimai.com\/uk\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/skimai.com\/wp-content\/uploads\/2020\/07\/SKIM-AI-Header-Logo.png\",\"contentUrl\":\"http:\/\/skimai.com\/wp-content\/uploads\/2020\/07\/SKIM-AI-Header-Logo.png\",\"width\":194,\"height\":58,\"caption\":\"Skim AI\"},\"image\":{\"@id\":\"https:\/\/skimai.com\/uk\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/skim-ai\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/skimai.com\/uk\/#\/schema\/person\/7a883b4a2d2ea22040f42a7975eb86c6\",\"name\":\"Greggory Elias\",\"url\":\"https:\/\/skimai.com\/ja\/author\/gregg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306eBERT\u306e\u5fae\u8abf\u6574 - Skim AI\u306b\u3088\u308b","description":"\u300cHuggingFace \u306e\u5909\u63db\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3001BERT \u3092\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u7528\u306b\u5fae\u8abf\u6574\u3059\u308b\u65b9\u6cd5\u3002BERT\u3092NLP\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u4f7f\u7528\u3059\u308b\u30b7\u30ea\u30fc\u30ba\u306e\u4e00\u90e8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/skimai.com\/ja\/\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306e\u30d0\u30fc\u30c8\u306e\u5fae\u8abf\u6574\/","og_locale":"ja_JP","og_type":"article","og_title":"Tutorial: Fine-tuning BERT for Sentiment Analysis - by Skim AI","og_description":"\"How to\" fine-tune BERT for sentiment analysis using HuggingFace\u2019s transformers library. Part of a series on using BERT for NLP use cases","og_url":"https:\/\/skimai.com\/ja\/\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306e\u30d0\u30fc\u30c8\u306e\u5fae\u8abf\u6574\/","og_site_name":"Skim AI","article_published_time":"2020-04-15T11:09:15+00:00","article_modified_time":"2024-06-04T20:47:42+00:00","og_image":[{"width":1456,"height":816,"url":"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg","type":"image\/jpeg"}],"author":"Greggory Elias","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"Greggory Elias","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"10\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#article","isPartOf":{"@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/"},"author":{"name":"Greggory Elias","@id":"https:\/\/skimai.com\/uk\/#\/schema\/person\/7a883b4a2d2ea22040f42a7975eb86c6"},"headline":"Tutorial: Fine-tuning BERT for Sentiment Analysis","datePublished":"2020-04-15T11:09:15+00:00","dateModified":"2024-06-04T20:47:42+00:00","mainEntityOfPage":{"@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/"},"wordCount":1848,"publisher":{"@id":"https:\/\/skimai.com\/uk\/#organization"},"image":{"@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg","keywords":["bert","fine tune","how to","nlp","sentiment analysis"],"articleSection":["How to","LLMs \/ NLP"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/","url":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/","name":"\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u306e\u305f\u3081\u306eBERT\u306e\u5fae\u8abf\u6574 - Skim AI\u306b\u3088\u308b","isPartOf":{"@id":"https:\/\/skimai.com\/uk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage"},"image":{"@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg","datePublished":"2020-04-15T11:09:15+00:00","dateModified":"2024-06-04T20:47:42+00:00","description":"\u300cHuggingFace \u306e\u5909\u63db\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3001BERT \u3092\u30bb\u30f3\u30c1\u30e1\u30f3\u30c8\u5206\u6790\u7528\u306b\u5fae\u8abf\u6574\u3059\u308b\u65b9\u6cd5\u3002BERT\u3092NLP\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u4f7f\u7528\u3059\u308b\u30b7\u30ea\u30fc\u30ba\u306e\u4e00\u90e8","breadcrumb":{"@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#primaryimage","url":"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg","contentUrl":"https:\/\/skimai.com\/wp-content\/uploads\/2020\/04\/nyc_ai_guy_unsplash_image_of_bert_from_sesame_street_Fine_Tunin_f7505b92-8a68-4046-a937-a87bf33dbfa3.jpg","width":1456,"height":816,"caption":"nyc ai guy unsplash image of bert from sesame street Fine Tunin f7505b92 8a68 4046 a937 a87bf33dbfa3"},{"@type":"BreadcrumbList","@id":"https:\/\/skimai.com\/fine-tuning-bert-for-sentiment-analysis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skimai.com\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Fine-tuning BERT for Sentiment Analysis"}]},{"@type":"WebSite","@id":"https:\/\/skimai.com\/uk\/#website","url":"https:\/\/skimai.com\/uk\/","name":"\u30b9\u30ad\u30e0AI","description":"AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30fb\u30ef\u30fc\u30af\u30d5\u30a9\u30fc\u30b9\u30fb\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0","publisher":{"@id":"https:\/\/skimai.com\/uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skimai.com\/uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/skimai.com\/uk\/#organization","name":"\u30b9\u30ad\u30e0AI","url":"https:\/\/skimai.com\/uk\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/skimai.com\/uk\/#\/schema\/logo\/image\/","url":"http:\/\/skimai.com\/wp-content\/uploads\/2020\/07\/SKIM-AI-Header-Logo.png","contentUrl":"http:\/\/skimai.com\/wp-content\/uploads\/2020\/07\/SKIM-AI-Header-Logo.png","width":194,"height":58,"caption":"Skim AI"},"image":{"@id":"https:\/\/skimai.com\/uk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/skim-ai"]},{"@type":"Person","@id":"https:\/\/skimai.com\/uk\/#\/schema\/person\/7a883b4a2d2ea22040f42a7975eb86c6","name":"\u30b0\u30ec\u30b4\u30ea\u30fc\u30fb\u30a8\u30ea\u30a2\u30b9","url":"https:\/\/skimai.com\/ja\/author\/gregg\/"}]}},"_links":{"self":[{"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/posts\/3054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/users\/1003"}],"replies":[{"embeddable":true,"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/comments?post=3054"}],"version-history":[{"count":0,"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/posts\/3054\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/media\/11931"}],"wp:attachment":[{"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/media?parent=3054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/categories?post=3054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skimai.com\/ja\/wp-json\/wp\/v2\/tags?post=3054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}