sonic-screwdriver 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile.lock +26 -2
  4. data/README.md +156 -23
  5. data/bin/sonic +8 -1
  6. data/docs/.gitignore +4 -0
  7. data/docs/CNAME +1 -0
  8. data/docs/Gemfile +3 -0
  9. data/docs/LICENSE +21 -0
  10. data/docs/README.md +21 -0
  11. data/docs/_config.yml +69 -0
  12. data/docs/_docs/commands.md +10 -0
  13. data/docs/_docs/how-it-works.md +34 -0
  14. data/docs/_docs/install.md +75 -0
  15. data/docs/_docs/next-steps.md +18 -0
  16. data/docs/_docs/settings.md +73 -0
  17. data/docs/_docs/sonic-ecs-exec.md +7 -0
  18. data/docs/_docs/sonic-ecs-run.md +7 -0
  19. data/docs/_docs/sonic-execute.md +7 -0
  20. data/docs/_docs/sonic-help.md +7 -0
  21. data/docs/_docs/sonic-list.md +7 -0
  22. data/docs/_docs/sonic-ssh.md +7 -0
  23. data/docs/_docs/tutorial-ecs-exec.md +69 -0
  24. data/docs/_docs/tutorial-ecs-run.md +94 -0
  25. data/docs/_docs/tutorial-execute.md +38 -0
  26. data/docs/_docs/tutorial-ssh.md +119 -0
  27. data/docs/_docs/tutorial.md +11 -0
  28. data/docs/_docs/why.md +27 -0
  29. data/docs/_includes/about.html +19 -0
  30. data/docs/_includes/commands.html +28 -0
  31. data/docs/_includes/contact.html +17 -0
  32. data/docs/_includes/contact_disqus.html +16 -0
  33. data/docs/_includes/contact_static.html +17 -0
  34. data/docs/_includes/content.html +21 -0
  35. data/docs/_includes/css/bootstrap.min.css +7 -0
  36. data/docs/_includes/css/main.css +481 -0
  37. data/docs/_includes/css/quotes.css +102 -0
  38. data/docs/_includes/css/sonic.css +163 -0
  39. data/docs/_includes/css/syntax.css +60 -0
  40. data/docs/_includes/css/table.css +53 -0
  41. data/docs/_includes/css/timeline.css +201 -0
  42. data/docs/_includes/edit-on-github.html +11 -0
  43. data/docs/_includes/example.html +21 -0
  44. data/docs/_includes/footer.html +49 -0
  45. data/docs/_includes/head.html +32 -0
  46. data/docs/_includes/header.html +15 -0
  47. data/docs/_includes/js.html +28 -0
  48. data/docs/_includes/js_disqus.html +21 -0
  49. data/docs/_includes/modals.html +40 -0
  50. data/docs/_includes/nav.html +27 -0
  51. data/docs/_includes/quotes.html +19 -0
  52. data/docs/_includes/subnav.html +35 -0
  53. data/docs/_includes/ufo-ship-options.md +13 -0
  54. data/docs/_includes/uses.html +19 -0
  55. data/docs/_layouts/default.html +11 -0
  56. data/docs/_layouts/style.css +6 -0
  57. data/docs/articles.md +5 -0
  58. data/docs/css/font-awesome/css/font-awesome.css +1566 -0
  59. data/docs/css/font-awesome/css/font-awesome.min.css +4 -0
  60. data/docs/css/font-awesome/fonts/FontAwesome.otf +0 -0
  61. data/docs/css/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  62. data/docs/css/font-awesome/fonts/fontawesome-webfont.svg +504 -0
  63. data/docs/css/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  64. data/docs/css/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  65. data/docs/docs.md +21 -0
  66. data/docs/img/logos/boltops-logo-full.png +0 -0
  67. data/docs/img/logos/boltops-logo.png +0 -0
  68. data/docs/img/sonic-screwdriver.jpg +0 -0
  69. data/docs/img/tutorials/ec2-console-public-ip.png +0 -0
  70. data/docs/img/ufo.jpg +0 -0
  71. data/docs/index.html +9 -0
  72. data/docs/js/bootstrap.js +2114 -0
  73. data/docs/js/bootstrap.min.js +6 -0
  74. data/docs/js/cbpAnimatedHeader.js +44 -0
  75. data/docs/js/cbpAnimatedHeader.min.js +11 -0
  76. data/docs/js/classie.js +80 -0
  77. data/docs/js/contact_me.js +70 -0
  78. data/docs/js/contact_me_static.js +23 -0
  79. data/docs/js/freelancer.js +37 -0
  80. data/docs/js/jqBootstrapValidation.js +912 -0
  81. data/docs/js/jquery-1.11.0.js +4 -0
  82. data/docs/js/jquery.easing.min.js +44 -0
  83. data/docs/js/nav.js +53 -0
  84. data/docs/quick-start.md +39 -0
  85. data/docs/style.css +3 -0
  86. data/lib/bash_scripts/docker-exec.sh +15 -0
  87. data/lib/bash_scripts/docker-run.sh +15 -0
  88. data/lib/sonic.rb +11 -2
  89. data/lib/sonic/aws_services.rb +19 -0
  90. data/lib/sonic/cli.rb +37 -8
  91. data/lib/sonic/cli/help.rb +123 -3
  92. data/lib/sonic/default/settings.yml +12 -0
  93. data/lib/sonic/docker.rb +128 -0
  94. data/lib/sonic/execute.rb +131 -0
  95. data/lib/sonic/list.rb +85 -0
  96. data/lib/sonic/settings.rb +80 -0
  97. data/lib/sonic/ssh.rb +136 -0
  98. data/lib/sonic/ssh/ec2_tag.rb +59 -0
  99. data/lib/sonic/ssh/identifier_detector.rb +145 -0
  100. data/lib/sonic/ui.rb +26 -0
  101. data/lib/sonic/version.rb +2 -2
  102. data/qa.md +21 -0
  103. data/sonic.gemspec +3 -1
  104. data/spec/fixtures/home/.gitkeep +0 -0
  105. data/spec/fixtures/project/.gitkeep +0 -0
  106. data/spec/fixtures/project/command.txt +2 -0
  107. data/spec/lib/cli_spec.rb +16 -6
  108. data/spec/lib/sonic/execute_spec.rb +35 -0
  109. data/spec/spec_helper.rb +5 -3
  110. metadata +133 -3
@@ -0,0 +1,11 @@
1
+ <div class="edit-on-github">
2
+
3
+ <h2>Edit this page</h2>
4
+ <p>See a typo or an error? You can improve this page. This website is available on <a href="{{ site.gh_url }}">GitHub</a> and contributions are encouraged and welcomed. We love pull requests from you!
5
+ </p>
6
+ <ul>
7
+ <li><a href="{{ site.gh_url }}/blob/master/docs/{{ page.path }}" target="_blank">Suggest an edit to this page</a> (here's the <a href="{{ site.gh_url }}/blob/master/CONTRIBUTING.md" target="_blank">contributing guide</a>).</li>
8
+ <li><a href="{{ site.gh_url }}/issues/new?body=This%20issue%20is%20about%20<http://sonic-screwdriver.cloud{{ page.url }}>%20(source%20file%3A%20<{{ site.gh_url }}/blob/master/docs/{{ page.path }}>)" target="_blank">Open an issue about this page</a> to report a problem.</li>
9
+ </ul>
10
+
11
+ </div>
@@ -0,0 +1,21 @@
1
+ <section id="screenshot">
2
+ <div class="container">
3
+ <div class="row">
4
+ <div class="col-lg-12 text-center">
5
+ <h2>Example</h2>
6
+ <hr class="star-primary">
7
+ </div>
8
+ </div>
9
+ <div class='row'>
10
+ <div class='col-md-offset-1 col-md-10'>
11
+ <p>With one command you can go from your local machine into a live ECS running docker container. Boom!</p>
12
+ {% highlight sh %}
13
+ $ sonic ecs-exec hi-web-prod --cluster stag
14
+ Running: scp -r /tmp/sonic ec2-user@ec2-52-24-216-170.us-west-2.compute.amazonaws.com:/tmp/sonic > /dev/null
15
+ => ssh -t ec2-user@ec2-52-24-216-170.us-west-2.compute.amazonaws.com bash /tmp/sonic/bash_scripts/docker-exec.sh
16
+ root@b371924fce50:/app#
17
+ {% endhighlight %}
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </section>
@@ -0,0 +1,49 @@
1
+ <!-- Footer -->
2
+ <footer class="text-center">
3
+ <div class="footer-above">
4
+ <div class="container">
5
+ <div class="row">
6
+ <div class="footer-col col-md-4">
7
+ <h3>More Tools</h3>
8
+ <ul class="list-unstyled tools">
9
+ <li><a href="http://jack-eb.com">Jack</a></li>
10
+ <li><a href="http://lono.cloud">Lono</a></li>
11
+ <li><a href="http://ufoships.com">Ufo</a></li>
12
+ <li><a href="https://boltops.com/toolbelt">Toolbelt</a></li>
13
+ </ul>
14
+ </div>
15
+ <div class="footer-col col-md-4">
16
+ <h3><a href="https://boltops.com"><img class="footer-logo" src="/img/logos/boltops-logo-full.png" /></a></h3>
17
+ <ul class="list-inline">
18
+ {% for network in site.social %}
19
+ <li>
20
+ <a href="{{ network.url }}" class="btn-social btn-outline"><i class="fa fa-fw fa-{{ network.title }}"></i></a>
21
+ </li>
22
+ {% endfor %}
23
+ </ul>
24
+ </div>
25
+ <div class="footer-col col-md-4">
26
+ <h3>Contact</h3>
27
+ <p>{{ site.footer.contact }}</p>
28
+ <p>{{ site.footer.phone }}</p>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ <div class="footer-below">
34
+ <div class="container">
35
+ <div class="row">
36
+ <div class="col-lg-12">
37
+ Maintained by &copy; {{ site.footer.copyright }} 20{{ site.time | date: '%y' }}
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </footer>
43
+
44
+ <!-- Scroll to Top Button (Only visible on small and extra-small screen sizes) -->
45
+ <div class="scroll-top page-scroll visible-xs visible-sm">
46
+ <a id="next" class="btn btn-primary" href="#page-top">
47
+ <i class="fa fa-chevron-up"></i>
48
+ </a>
49
+ </div>
@@ -0,0 +1,32 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
5
+ <meta name="viewport" content="width=device-width">
6
+ <meta name="description" content="{{ site.description }}">
7
+ <meta name="keywords" content="{{ site.keywords }}" />
8
+ {% if site.meta_author %}<meta name="author" content="{{ site.meta_author }}">{% endif %}
9
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.url }}">
10
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml">
11
+
12
+ <!-- Custom CSS & Bootstrap Core CSS - Uses Bootswatch Flatly Theme: http://bootswatch.com/flatly/ -->
13
+ <link rel="stylesheet" href="{{ "/style.css" | site.baseurl }}">
14
+
15
+ <!-- Google verification -->
16
+ {% if site.google_verify %}<meta name="google-site-verification" content="{{ site.google_verify }}">{% endif %}
17
+
18
+ <!-- Bing Verification -->
19
+ {% if site.bing_verify %}<meta name="msvalidate.01" content="{{ site.bing_verify }}">{% endif %}
20
+
21
+ <!-- Custom Fonts -->
22
+ <link rel="stylesheet" href="{{ "/css/font-awesome/css/font-awesome.min.css" }}">
23
+ <link href="//fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
24
+ <link href="//fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic" rel="stylesheet" type="text/css">
25
+
26
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
27
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
28
+ <!--[if lt IE 9]>
29
+ <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
30
+ <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
31
+ <![endif]-->
32
+ </head>
@@ -0,0 +1,15 @@
1
+ <!-- Header -->
2
+ <header>
3
+ <div class="container">
4
+ <div class="row">
5
+ <div class="col-lg-12">
6
+ <img class="img-responsive" src="/img/sonic-screwdriver.jpg" alt="">
7
+ <div class="intro-text">
8
+ <span class="name">{{ site.title }}</span>
9
+ <hr class="star-light">
10
+ <span class="skills">{{ site.description }}</span>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ </header>
@@ -0,0 +1,28 @@
1
+ <!-- jQuery Version 1.11.0 -->
2
+ <script src="{{ "/js/jquery-1.11.0.js" }}"></script>
3
+
4
+ <!-- Bootstrap Core JavaScript -->
5
+ <script src="{{ "/js/bootstrap.min.js" }}"></script>
6
+
7
+ <!-- Plugin JavaScript -->
8
+ <script src="{{ "/js/jquery.easing.min.js" }}"></script>
9
+ <script src="{{ "/js/classie.js" }}"></script>
10
+ <script src="{{ "/js/cbpAnimatedHeader.js" }}"></script>
11
+
12
+ <!-- Contact Form JavaScript -->
13
+ <script src="{{ "/js/jqBootstrapValidation.js" }}"></script>
14
+ {% if site.contact == "static" %}
15
+ <script src="{{ "/js/contact_me_static.js" }}"></script>
16
+ {% else %}
17
+ <script src="{{ "/js/contact_me.js" }}"></script>
18
+ {% endif %}
19
+
20
+ <!-- Custom Theme JavaScript -->
21
+ <script src="{{ "/js/freelancer.js" }}"></script>
22
+
23
+ {% if site.contact == "disqus" %}
24
+ <!-- Disqus Stuff -->
25
+ {% include js_disqus.html %}
26
+ {% endif %}
27
+
28
+ <script src="{{ "/js/nav.js" }}"></script>
@@ -0,0 +1,21 @@
1
+ <script type="text/javascript">
2
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
3
+ var disqus_shortname = '{{ site.disqus_shortname }}'; // required: replace example with your forum shortname
4
+
5
+ /* * * DON'T EDIT BELOW THIS LINE * * */
6
+ (function() {
7
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
8
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
9
+ document.getElementById('disqus_thread').appendChild(dsq);
10
+ })();
11
+
12
+ /* * * DON'T EDIT BELOW THIS LINE * * */
13
+ (function () {
14
+ var s = document.createElement('script'); s.async = true;
15
+ s.type = 'text/javascript';
16
+ s.src = '//' + disqus_shortname + '.disqus.com/count.js';
17
+ document.getElementById('disqus_thread').appendChild(s);
18
+ }());
19
+ </script>
20
+ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
21
+ <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
@@ -0,0 +1,40 @@
1
+ <!-- Portfolio Modals -->
2
+ {% for post in site.posts %}
3
+ <div class="portfolio-modal modal fade" id="portfolioModal-{{ post.modal-id }}" tabindex="-1" role="dialog" aria-hidden="true">
4
+ <div class="modal-content">
5
+ <div class="close-modal" data-dismiss="modal">
6
+ <div class="lr">
7
+ <div class="rl">
8
+ </div>
9
+ </div>
10
+ </div>
11
+ <div class="container">
12
+ <div class="row">
13
+ <div class="col-lg-8 col-lg-offset-2">
14
+ <div class="modal-body">
15
+ <h2>{{ post.title }}</h2>
16
+ <hr class="star-primary">
17
+ <img src="/img/portfolio/{{ post.img }}" class="img-responsive img-centered" alt="{{ post.alt }}">
18
+ <p>{{ post.description }}</p>
19
+ <ul class="list-inline item-details">
20
+ <li>Client:
21
+ <strong><a href="http://startbootstrap.com">{{ post.client }}</a>
22
+ </strong>
23
+ </li>
24
+ <li>Date:
25
+ <strong><a href="http://startbootstrap.com">{{ post.project-date }}</a>
26
+ </strong>
27
+ </li>
28
+ <li>Service:
29
+ <strong><a href="http://startbootstrap.com">{{ post.category }}</a>
30
+ </strong>
31
+ </li>
32
+ </ul>
33
+ <button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-times"></i> Close</button>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ {% endfor %}
@@ -0,0 +1,27 @@
1
+ <!-- Navigation -->
2
+ <nav class="navbar navbar-default navbar-fixed-top">
3
+ <div class="container">
4
+ <!-- Brand and toggle get grouped for better mobile display -->
5
+ <div class="navbar-header page-scroll">
6
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
7
+ <span class="sr-only">Toggle navigation</span>
8
+ <span class="icon-bar"></span>
9
+ <span class="icon-bar"></span>
10
+ <span class="icon-bar"></span>
11
+ </button>
12
+ <a class="navbar-brand" href="/#page-top"><img class="navbar-logo" src="/img/logos/boltops-logo.png" />{{ site.title }}</a>
13
+ </div>
14
+
15
+ <!-- Collect the nav links, forms, and other content for toggling -->
16
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
17
+ <ul class="nav navbar-nav navbar-right">
18
+ <li class="hidden"><a href="#page-top"></a></li>
19
+ <li class="page-scroll"><a href="{% link quick-start.md %}">Quick Start</a></li>
20
+ <li class="page-scroll"><a href="{% link docs.md %}">Docs</a></li>
21
+ <li class="page-scroll"><a href="https://github.com/boltopslabs/sonic">GitHub</a></li>
22
+ </ul>
23
+ </div>
24
+ <!-- /.navbar-collapse -->
25
+ </div>
26
+ <!-- /.container-fluid -->
27
+ </nav>
@@ -0,0 +1,19 @@
1
+ <section id="quotes">
2
+ <div class="container">
3
+ <div class='row'>
4
+ <div class='col-md-offset-2 col-md-8'>
5
+ <blockquote>
6
+ <div class="row">
7
+ <div class="col-sm-3 text-center">
8
+ <img class="img-circle" src="/img/quotes/ben.jpg" style="width: 100px;height:100px;">
9
+ </div>
10
+ <div class="col-sm-9">
11
+ <p>Jack is really cool and useful while also making it so easy to start using EB. Thank you for updating the build and for the detailed instructions, it just took me under 10 minutes to set everything up initially for it- I’m shocked at how simple it was.</p>
12
+ <small>Benjamin Kanter of Tuli</small>
13
+ </div>
14
+ </div>
15
+ </blockquote>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </section>
@@ -0,0 +1,35 @@
1
+ <div class="col-md-3 content-nav">
2
+ <ul>
3
+ <li><a href="{% link quick-start.md %}">Quick Start</a></li>
4
+ <li><a href="{% link docs.md %}">Docs</a>
5
+ <ul>
6
+ <li><a href="{% link _docs/install.md %}">Installation</a></li>
7
+ </ul>
8
+ </li>
9
+ <li><a href="{% link _docs/tutorial.md %}">Tutorial</a>
10
+ <ul class="tutorial">
11
+ <li><a href="{% link _docs/tutorial-ssh.md %}">SSH</a></li>
12
+ <li><a href="{% link _docs/tutorial-ecs-exec.md %}">ECS Exec</a></li>
13
+ <li><a href="{% link _docs/tutorial-ecs-run.md %}">ECS Run</a></li>
14
+ <li><a href="{% link _docs/tutorial-execute.md %}">Execute</a></li>
15
+ </ul>
16
+ </li>
17
+ <!--
18
+ <li><a href="{% link _docs/commands.md %}">Commands</a>
19
+ <ul>
20
+ <li><a href="{% link _docs/sonic-ssh.md %}">sonic ssh</a></li>
21
+ <li><a href="{% link _docs/sonic-ecs-exec.md %}">sonic ecs-exec</a></li>
22
+ <li><a href="{% link _docs/sonic-ecs-run.md %}">sonic ecs-run</a></li>
23
+ <li><a href="{% link _docs/sonic-list.md %}">sonic list</a></li>
24
+ <li><a href="{% link _docs/sonic-execute.md %}">sonic execute</a></li>
25
+ <li><a href="{% link _docs/sonic-help.md %}">sonic help</a></li>
26
+ </ul>
27
+ </li>
28
+ -->
29
+ <li><a href="{% link _docs/settings.md %}">Settings</a></li>
30
+ <li><a href="{% link _docs/why.md %}">Why</a></li>
31
+ <li><a href="{% link _docs/how-it-works.md %}">How It Works</a></li>
32
+ <li><a href="{% link _docs/next-steps.md %}">Next Steps</a></li>
33
+ <!-- <li><a href="{% link articles.md %}">Articles</a></li> -->
34
+ </ul>
35
+ </div>
@@ -0,0 +1,13 @@
1
+ {:.ship-options}
2
+ Option | Description
3
+ ------------- | -------------
4
+ `--task` | By convention sonic uses the same name for both the ECS service and task definition. You can override this convention with this option. The conventions are covered on the [Conventions]({% link _docs/conventions.md %}) page.
5
+ `--target-group` | The ELB target group to use for the ECS service. This is respected if the ECS service is being created the first time. If the ECS service already exists, this option gets ignored.
6
+ `--target-group-prompt` | This boolean option allows you to bypass setting the ELB target group if desired.
7
+ `--docker` | This boolean option determines whether to build the docker image first as part of the ship process.
8
+ `--tasks` | This boolean option determines where to build and register the task definitions.
9
+ `--wait` | This boolean option determines if sonic blocks and waits until the service has been deployed before continuing.
10
+ `--pretty` | This boolean option determines sonic generates the task definitions in output in a pretty human readable format.
11
+ `--stop-old-tasks` | This boolean option determines if sonic will call ecs stop-task on the old tasks after deployment. Sometimes old tasks hang around for a little bit with ECS this forces them along a little quicker.
12
+ `--ecr-keep` | This integer option determines how many old docker images to keep around. Ufo will automatically delete and clean up docker images at the end of this process. The default is reasonable large at 30.
13
+ `--cluster` | This decides what cluster to use. This can also be set in sonic/settings.yml covered in [Settings]({% link _docs/sonic-settings.md %}). The cli option takes highest precedence.
@@ -0,0 +1,19 @@
1
+ <section id="timeline">
2
+ <div class="container">
3
+ <div class="row">
4
+ <div class="col-lg-12 text-center">
5
+ <h2 class="section-heading">Example Uses</h2>
6
+ <!-- <h3 class="section-subheading text-muted">Workflow process.</h3> -->
7
+ </div>
8
+ </div>
9
+ <div class="row">
10
+ <div class="col-lg-6 col-lg-offset-3">
11
+ <ul class="use-cases">
12
+ <li>Allows codification of the infrastructure by downloading the configuration. You can save the downloaded configs into version control.</li>
13
+ <li>Safely upload new configs by previewing the changes before actually uploading and applying the configuration to the infrastructure.</li>
14
+ <li>Moving EB enviroments from one EB application to another EB application. EB provides a way to clone environments within an application but is unable to move the enivornment to an entirely new application. This is useful if you want to "rename" the EB application.</li>
15
+ </ul>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </section>
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ {% include head.html %}
4
+ <body id="page-top" class="index">
5
+ {% include nav.html %}
6
+ {% include content.html %}
7
+ {% include footer.html %}
8
+ {% include modals.html %}
9
+ {% include js.html %}
10
+ </body>
11
+ </html>
@@ -0,0 +1,6 @@
1
+ {% include css/bootstrap.min.css %}
2
+ {% include css/main.css %}
3
+ {% include css/syntax.css %}
4
+ {% include css/timeline.css %}
5
+ {% include css/table.css %}
6
+ {% include css/sonic.css %}
data/docs/articles.md ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: Articles
3
+ ---
4
+
5
+ <a id="prev" class="btn btn-basic" href="{% link _docs/next-steps.md %}">Back</a>
@@ -0,0 +1,1566 @@
1
+ /*!
2
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+ /* FONT PATH
6
+ * -------------------------- */
7
+ @font-face {
8
+ font-family: 'FontAwesome';
9
+ src: url('../fonts/fontawesome-webfont.eot?v=4.1.0');
10
+ src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
11
+ font-weight: normal;
12
+ font-style: normal;
13
+ }
14
+ .fa {
15
+ display: inline-block;
16
+ font-family: FontAwesome;
17
+ font-style: normal;
18
+ font-weight: normal;
19
+ line-height: 1;
20
+ -webkit-font-smoothing: antialiased;
21
+ -moz-osx-font-smoothing: grayscale;
22
+ }
23
+ /* makes the font 33% larger relative to the icon container */
24
+ .fa-lg {
25
+ font-size: 1.33333333em;
26
+ line-height: 0.75em;
27
+ vertical-align: -15%;
28
+ }
29
+ .fa-2x {
30
+ font-size: 2em;
31
+ }
32
+ .fa-3x {
33
+ font-size: 3em;
34
+ }
35
+ .fa-4x {
36
+ font-size: 4em;
37
+ }
38
+ .fa-5x {
39
+ font-size: 5em;
40
+ }
41
+ .fa-fw {
42
+ width: 1.28571429em;
43
+ text-align: center;
44
+ }
45
+ .fa-ul {
46
+ padding-left: 0;
47
+ margin-left: 2.14285714em;
48
+ list-style-type: none;
49
+ }
50
+ .fa-ul > li {
51
+ position: relative;
52
+ }
53
+ .fa-li {
54
+ position: absolute;
55
+ left: -2.14285714em;
56
+ width: 2.14285714em;
57
+ top: 0.14285714em;
58
+ text-align: center;
59
+ }
60
+ .fa-li.fa-lg {
61
+ left: -1.85714286em;
62
+ }
63
+ .fa-border {
64
+ padding: .2em .25em .15em;
65
+ border: solid 0.08em #eeeeee;
66
+ border-radius: .1em;
67
+ }
68
+ .pull-right {
69
+ float: right;
70
+ }
71
+ .pull-left {
72
+ float: left;
73
+ }
74
+ .fa.pull-left {
75
+ margin-right: .3em;
76
+ }
77
+ .fa.pull-right {
78
+ margin-left: .3em;
79
+ }
80
+ .fa-spin {
81
+ -webkit-animation: spin 2s infinite linear;
82
+ -moz-animation: spin 2s infinite linear;
83
+ -o-animation: spin 2s infinite linear;
84
+ animation: spin 2s infinite linear;
85
+ }
86
+ @-moz-keyframes spin {
87
+ 0% {
88
+ -moz-transform: rotate(0deg);
89
+ }
90
+ 100% {
91
+ -moz-transform: rotate(359deg);
92
+ }
93
+ }
94
+ @-webkit-keyframes spin {
95
+ 0% {
96
+ -webkit-transform: rotate(0deg);
97
+ }
98
+ 100% {
99
+ -webkit-transform: rotate(359deg);
100
+ }
101
+ }
102
+ @-o-keyframes spin {
103
+ 0% {
104
+ -o-transform: rotate(0deg);
105
+ }
106
+ 100% {
107
+ -o-transform: rotate(359deg);
108
+ }
109
+ }
110
+ @keyframes spin {
111
+ 0% {
112
+ -webkit-transform: rotate(0deg);
113
+ transform: rotate(0deg);
114
+ }
115
+ 100% {
116
+ -webkit-transform: rotate(359deg);
117
+ transform: rotate(359deg);
118
+ }
119
+ }
120
+ .fa-rotate-90 {
121
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
122
+ -webkit-transform: rotate(90deg);
123
+ -moz-transform: rotate(90deg);
124
+ -ms-transform: rotate(90deg);
125
+ -o-transform: rotate(90deg);
126
+ transform: rotate(90deg);
127
+ }
128
+ .fa-rotate-180 {
129
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
130
+ -webkit-transform: rotate(180deg);
131
+ -moz-transform: rotate(180deg);
132
+ -ms-transform: rotate(180deg);
133
+ -o-transform: rotate(180deg);
134
+ transform: rotate(180deg);
135
+ }
136
+ .fa-rotate-270 {
137
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
138
+ -webkit-transform: rotate(270deg);
139
+ -moz-transform: rotate(270deg);
140
+ -ms-transform: rotate(270deg);
141
+ -o-transform: rotate(270deg);
142
+ transform: rotate(270deg);
143
+ }
144
+ .fa-flip-horizontal {
145
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
146
+ -webkit-transform: scale(-1, 1);
147
+ -moz-transform: scale(-1, 1);
148
+ -ms-transform: scale(-1, 1);
149
+ -o-transform: scale(-1, 1);
150
+ transform: scale(-1, 1);
151
+ }
152
+ .fa-flip-vertical {
153
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
154
+ -webkit-transform: scale(1, -1);
155
+ -moz-transform: scale(1, -1);
156
+ -ms-transform: scale(1, -1);
157
+ -o-transform: scale(1, -1);
158
+ transform: scale(1, -1);
159
+ }
160
+ .fa-stack {
161
+ position: relative;
162
+ display: inline-block;
163
+ width: 2em;
164
+ height: 2em;
165
+ line-height: 2em;
166
+ vertical-align: middle;
167
+ }
168
+ .fa-stack-1x,
169
+ .fa-stack-2x {
170
+ position: absolute;
171
+ left: 0;
172
+ width: 100%;
173
+ text-align: center;
174
+ }
175
+ .fa-stack-1x {
176
+ line-height: inherit;
177
+ }
178
+ .fa-stack-2x {
179
+ font-size: 2em;
180
+ }
181
+ .fa-inverse {
182
+ color: #ffffff;
183
+ }
184
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
185
+ readers do not read off random characters that represent icons */
186
+ .fa-glass:before {
187
+ content: "\f000";
188
+ }
189
+ .fa-music:before {
190
+ content: "\f001";
191
+ }
192
+ .fa-search:before {
193
+ content: "\f002";
194
+ }
195
+ .fa-envelope-o:before {
196
+ content: "\f003";
197
+ }
198
+ .fa-heart:before {
199
+ content: "\f004";
200
+ }
201
+ .fa-star:before {
202
+ content: "\f005";
203
+ }
204
+ .fa-star-o:before {
205
+ content: "\f006";
206
+ }
207
+ .fa-user:before {
208
+ content: "\f007";
209
+ }
210
+ .fa-film:before {
211
+ content: "\f008";
212
+ }
213
+ .fa-th-large:before {
214
+ content: "\f009";
215
+ }
216
+ .fa-th:before {
217
+ content: "\f00a";
218
+ }
219
+ .fa-th-list:before {
220
+ content: "\f00b";
221
+ }
222
+ .fa-check:before {
223
+ content: "\f00c";
224
+ }
225
+ .fa-times:before {
226
+ content: "\f00d";
227
+ }
228
+ .fa-search-plus:before {
229
+ content: "\f00e";
230
+ }
231
+ .fa-search-minus:before {
232
+ content: "\f010";
233
+ }
234
+ .fa-power-off:before {
235
+ content: "\f011";
236
+ }
237
+ .fa-signal:before {
238
+ content: "\f012";
239
+ }
240
+ .fa-gear:before,
241
+ .fa-cog:before {
242
+ content: "\f013";
243
+ }
244
+ .fa-trash-o:before {
245
+ content: "\f014";
246
+ }
247
+ .fa-home:before {
248
+ content: "\f015";
249
+ }
250
+ .fa-file-o:before {
251
+ content: "\f016";
252
+ }
253
+ .fa-clock-o:before {
254
+ content: "\f017";
255
+ }
256
+ .fa-road:before {
257
+ content: "\f018";
258
+ }
259
+ .fa-download:before {
260
+ content: "\f019";
261
+ }
262
+ .fa-arrow-circle-o-down:before {
263
+ content: "\f01a";
264
+ }
265
+ .fa-arrow-circle-o-up:before {
266
+ content: "\f01b";
267
+ }
268
+ .fa-inbox:before {
269
+ content: "\f01c";
270
+ }
271
+ .fa-play-circle-o:before {
272
+ content: "\f01d";
273
+ }
274
+ .fa-rotate-right:before,
275
+ .fa-repeat:before {
276
+ content: "\f01e";
277
+ }
278
+ .fa-refresh:before {
279
+ content: "\f021";
280
+ }
281
+ .fa-list-alt:before {
282
+ content: "\f022";
283
+ }
284
+ .fa-lock:before {
285
+ content: "\f023";
286
+ }
287
+ .fa-flag:before {
288
+ content: "\f024";
289
+ }
290
+ .fa-headphones:before {
291
+ content: "\f025";
292
+ }
293
+ .fa-volume-off:before {
294
+ content: "\f026";
295
+ }
296
+ .fa-volume-down:before {
297
+ content: "\f027";
298
+ }
299
+ .fa-volume-up:before {
300
+ content: "\f028";
301
+ }
302
+ .fa-qrcode:before {
303
+ content: "\f029";
304
+ }
305
+ .fa-barcode:before {
306
+ content: "\f02a";
307
+ }
308
+ .fa-tag:before {
309
+ content: "\f02b";
310
+ }
311
+ .fa-tags:before {
312
+ content: "\f02c";
313
+ }
314
+ .fa-book:before {
315
+ content: "\f02d";
316
+ }
317
+ .fa-bookmark:before {
318
+ content: "\f02e";
319
+ }
320
+ .fa-print:before {
321
+ content: "\f02f";
322
+ }
323
+ .fa-camera:before {
324
+ content: "\f030";
325
+ }
326
+ .fa-font:before {
327
+ content: "\f031";
328
+ }
329
+ .fa-bold:before {
330
+ content: "\f032";
331
+ }
332
+ .fa-italic:before {
333
+ content: "\f033";
334
+ }
335
+ .fa-text-height:before {
336
+ content: "\f034";
337
+ }
338
+ .fa-text-width:before {
339
+ content: "\f035";
340
+ }
341
+ .fa-align-left:before {
342
+ content: "\f036";
343
+ }
344
+ .fa-align-center:before {
345
+ content: "\f037";
346
+ }
347
+ .fa-align-right:before {
348
+ content: "\f038";
349
+ }
350
+ .fa-align-justify:before {
351
+ content: "\f039";
352
+ }
353
+ .fa-list:before {
354
+ content: "\f03a";
355
+ }
356
+ .fa-dedent:before,
357
+ .fa-outdent:before {
358
+ content: "\f03b";
359
+ }
360
+ .fa-indent:before {
361
+ content: "\f03c";
362
+ }
363
+ .fa-video-camera:before {
364
+ content: "\f03d";
365
+ }
366
+ .fa-photo:before,
367
+ .fa-image:before,
368
+ .fa-picture-o:before {
369
+ content: "\f03e";
370
+ }
371
+ .fa-pencil:before {
372
+ content: "\f040";
373
+ }
374
+ .fa-map-marker:before {
375
+ content: "\f041";
376
+ }
377
+ .fa-adjust:before {
378
+ content: "\f042";
379
+ }
380
+ .fa-tint:before {
381
+ content: "\f043";
382
+ }
383
+ .fa-edit:before,
384
+ .fa-pencil-square-o:before {
385
+ content: "\f044";
386
+ }
387
+ .fa-share-square-o:before {
388
+ content: "\f045";
389
+ }
390
+ .fa-check-square-o:before {
391
+ content: "\f046";
392
+ }
393
+ .fa-arrows:before {
394
+ content: "\f047";
395
+ }
396
+ .fa-step-backward:before {
397
+ content: "\f048";
398
+ }
399
+ .fa-fast-backward:before {
400
+ content: "\f049";
401
+ }
402
+ .fa-backward:before {
403
+ content: "\f04a";
404
+ }
405
+ .fa-play:before {
406
+ content: "\f04b";
407
+ }
408
+ .fa-pause:before {
409
+ content: "\f04c";
410
+ }
411
+ .fa-stop:before {
412
+ content: "\f04d";
413
+ }
414
+ .fa-forward:before {
415
+ content: "\f04e";
416
+ }
417
+ .fa-fast-forward:before {
418
+ content: "\f050";
419
+ }
420
+ .fa-step-forward:before {
421
+ content: "\f051";
422
+ }
423
+ .fa-eject:before {
424
+ content: "\f052";
425
+ }
426
+ .fa-chevron-left:before {
427
+ content: "\f053";
428
+ }
429
+ .fa-chevron-right:before {
430
+ content: "\f054";
431
+ }
432
+ .fa-plus-circle:before {
433
+ content: "\f055";
434
+ }
435
+ .fa-minus-circle:before {
436
+ content: "\f056";
437
+ }
438
+ .fa-times-circle:before {
439
+ content: "\f057";
440
+ }
441
+ .fa-check-circle:before {
442
+ content: "\f058";
443
+ }
444
+ .fa-question-circle:before {
445
+ content: "\f059";
446
+ }
447
+ .fa-info-circle:before {
448
+ content: "\f05a";
449
+ }
450
+ .fa-crosshairs:before {
451
+ content: "\f05b";
452
+ }
453
+ .fa-times-circle-o:before {
454
+ content: "\f05c";
455
+ }
456
+ .fa-check-circle-o:before {
457
+ content: "\f05d";
458
+ }
459
+ .fa-ban:before {
460
+ content: "\f05e";
461
+ }
462
+ .fa-arrow-left:before {
463
+ content: "\f060";
464
+ }
465
+ .fa-arrow-right:before {
466
+ content: "\f061";
467
+ }
468
+ .fa-arrow-up:before {
469
+ content: "\f062";
470
+ }
471
+ .fa-arrow-down:before {
472
+ content: "\f063";
473
+ }
474
+ .fa-mail-forward:before,
475
+ .fa-share:before {
476
+ content: "\f064";
477
+ }
478
+ .fa-expand:before {
479
+ content: "\f065";
480
+ }
481
+ .fa-compress:before {
482
+ content: "\f066";
483
+ }
484
+ .fa-plus:before {
485
+ content: "\f067";
486
+ }
487
+ .fa-minus:before {
488
+ content: "\f068";
489
+ }
490
+ .fa-asterisk:before {
491
+ content: "\f069";
492
+ }
493
+ .fa-exclamation-circle:before {
494
+ content: "\f06a";
495
+ }
496
+ .fa-gift:before {
497
+ content: "\f06b";
498
+ }
499
+ .fa-leaf:before {
500
+ content: "\f06c";
501
+ }
502
+ .fa-fire:before {
503
+ content: "\f06d";
504
+ }
505
+ .fa-eye:before {
506
+ content: "\f06e";
507
+ }
508
+ .fa-eye-slash:before {
509
+ content: "\f070";
510
+ }
511
+ .fa-warning:before,
512
+ .fa-exclamation-triangle:before {
513
+ content: "\f071";
514
+ }
515
+ .fa-plane:before {
516
+ content: "\f072";
517
+ }
518
+ .fa-calendar:before {
519
+ content: "\f073";
520
+ }
521
+ .fa-random:before {
522
+ content: "\f074";
523
+ }
524
+ .fa-comment:before {
525
+ content: "\f075";
526
+ }
527
+ .fa-magnet:before {
528
+ content: "\f076";
529
+ }
530
+ .fa-chevron-up:before {
531
+ content: "\f077";
532
+ }
533
+ .fa-chevron-down:before {
534
+ content: "\f078";
535
+ }
536
+ .fa-retweet:before {
537
+ content: "\f079";
538
+ }
539
+ .fa-shopping-cart:before {
540
+ content: "\f07a";
541
+ }
542
+ .fa-folder:before {
543
+ content: "\f07b";
544
+ }
545
+ .fa-folder-open:before {
546
+ content: "\f07c";
547
+ }
548
+ .fa-arrows-v:before {
549
+ content: "\f07d";
550
+ }
551
+ .fa-arrows-h:before {
552
+ content: "\f07e";
553
+ }
554
+ .fa-bar-chart-o:before {
555
+ content: "\f080";
556
+ }
557
+ .fa-twitter-square:before {
558
+ content: "\f081";
559
+ }
560
+ .fa-facebook-square:before {
561
+ content: "\f082";
562
+ }
563
+ .fa-camera-retro:before {
564
+ content: "\f083";
565
+ }
566
+ .fa-key:before {
567
+ content: "\f084";
568
+ }
569
+ .fa-gears:before,
570
+ .fa-cogs:before {
571
+ content: "\f085";
572
+ }
573
+ .fa-comments:before {
574
+ content: "\f086";
575
+ }
576
+ .fa-thumbs-o-up:before {
577
+ content: "\f087";
578
+ }
579
+ .fa-thumbs-o-down:before {
580
+ content: "\f088";
581
+ }
582
+ .fa-star-half:before {
583
+ content: "\f089";
584
+ }
585
+ .fa-heart-o:before {
586
+ content: "\f08a";
587
+ }
588
+ .fa-sign-out:before {
589
+ content: "\f08b";
590
+ }
591
+ .fa-linkedin-square:before {
592
+ content: "\f08c";
593
+ }
594
+ .fa-thumb-tack:before {
595
+ content: "\f08d";
596
+ }
597
+ .fa-external-link:before {
598
+ content: "\f08e";
599
+ }
600
+ .fa-sign-in:before {
601
+ content: "\f090";
602
+ }
603
+ .fa-trophy:before {
604
+ content: "\f091";
605
+ }
606
+ .fa-github-square:before {
607
+ content: "\f092";
608
+ }
609
+ .fa-upload:before {
610
+ content: "\f093";
611
+ }
612
+ .fa-lemon-o:before {
613
+ content: "\f094";
614
+ }
615
+ .fa-phone:before {
616
+ content: "\f095";
617
+ }
618
+ .fa-square-o:before {
619
+ content: "\f096";
620
+ }
621
+ .fa-bookmark-o:before {
622
+ content: "\f097";
623
+ }
624
+ .fa-phone-square:before {
625
+ content: "\f098";
626
+ }
627
+ .fa-twitter:before {
628
+ content: "\f099";
629
+ }
630
+ .fa-facebook:before {
631
+ content: "\f09a";
632
+ }
633
+ .fa-github:before {
634
+ content: "\f09b";
635
+ }
636
+ .fa-unlock:before {
637
+ content: "\f09c";
638
+ }
639
+ .fa-credit-card:before {
640
+ content: "\f09d";
641
+ }
642
+ .fa-rss:before {
643
+ content: "\f09e";
644
+ }
645
+ .fa-hdd-o:before {
646
+ content: "\f0a0";
647
+ }
648
+ .fa-bullhorn:before {
649
+ content: "\f0a1";
650
+ }
651
+ .fa-bell:before {
652
+ content: "\f0f3";
653
+ }
654
+ .fa-certificate:before {
655
+ content: "\f0a3";
656
+ }
657
+ .fa-hand-o-right:before {
658
+ content: "\f0a4";
659
+ }
660
+ .fa-hand-o-left:before {
661
+ content: "\f0a5";
662
+ }
663
+ .fa-hand-o-up:before {
664
+ content: "\f0a6";
665
+ }
666
+ .fa-hand-o-down:before {
667
+ content: "\f0a7";
668
+ }
669
+ .fa-arrow-circle-left:before {
670
+ content: "\f0a8";
671
+ }
672
+ .fa-arrow-circle-right:before {
673
+ content: "\f0a9";
674
+ }
675
+ .fa-arrow-circle-up:before {
676
+ content: "\f0aa";
677
+ }
678
+ .fa-arrow-circle-down:before {
679
+ content: "\f0ab";
680
+ }
681
+ .fa-globe:before {
682
+ content: "\f0ac";
683
+ }
684
+ .fa-wrench:before {
685
+ content: "\f0ad";
686
+ }
687
+ .fa-tasks:before {
688
+ content: "\f0ae";
689
+ }
690
+ .fa-filter:before {
691
+ content: "\f0b0";
692
+ }
693
+ .fa-briefcase:before {
694
+ content: "\f0b1";
695
+ }
696
+ .fa-arrows-alt:before {
697
+ content: "\f0b2";
698
+ }
699
+ .fa-group:before,
700
+ .fa-users:before {
701
+ content: "\f0c0";
702
+ }
703
+ .fa-chain:before,
704
+ .fa-link:before {
705
+ content: "\f0c1";
706
+ }
707
+ .fa-cloud:before {
708
+ content: "\f0c2";
709
+ }
710
+ .fa-flask:before {
711
+ content: "\f0c3";
712
+ }
713
+ .fa-cut:before,
714
+ .fa-scissors:before {
715
+ content: "\f0c4";
716
+ }
717
+ .fa-copy:before,
718
+ .fa-files-o:before {
719
+ content: "\f0c5";
720
+ }
721
+ .fa-paperclip:before {
722
+ content: "\f0c6";
723
+ }
724
+ .fa-save:before,
725
+ .fa-floppy-o:before {
726
+ content: "\f0c7";
727
+ }
728
+ .fa-square:before {
729
+ content: "\f0c8";
730
+ }
731
+ .fa-navicon:before,
732
+ .fa-reorder:before,
733
+ .fa-bars:before {
734
+ content: "\f0c9";
735
+ }
736
+ .fa-list-ul:before {
737
+ content: "\f0ca";
738
+ }
739
+ .fa-list-ol:before {
740
+ content: "\f0cb";
741
+ }
742
+ .fa-strikethrough:before {
743
+ content: "\f0cc";
744
+ }
745
+ .fa-underline:before {
746
+ content: "\f0cd";
747
+ }
748
+ .fa-table:before {
749
+ content: "\f0ce";
750
+ }
751
+ .fa-magic:before {
752
+ content: "\f0d0";
753
+ }
754
+ .fa-truck:before {
755
+ content: "\f0d1";
756
+ }
757
+ .fa-pinterest:before {
758
+ content: "\f0d2";
759
+ }
760
+ .fa-pinterest-square:before {
761
+ content: "\f0d3";
762
+ }
763
+ .fa-google-plus-square:before {
764
+ content: "\f0d4";
765
+ }
766
+ .fa-google-plus:before {
767
+ content: "\f0d5";
768
+ }
769
+ .fa-money:before {
770
+ content: "\f0d6";
771
+ }
772
+ .fa-caret-down:before {
773
+ content: "\f0d7";
774
+ }
775
+ .fa-caret-up:before {
776
+ content: "\f0d8";
777
+ }
778
+ .fa-caret-left:before {
779
+ content: "\f0d9";
780
+ }
781
+ .fa-caret-right:before {
782
+ content: "\f0da";
783
+ }
784
+ .fa-columns:before {
785
+ content: "\f0db";
786
+ }
787
+ .fa-unsorted:before,
788
+ .fa-sort:before {
789
+ content: "\f0dc";
790
+ }
791
+ .fa-sort-down:before,
792
+ .fa-sort-desc:before {
793
+ content: "\f0dd";
794
+ }
795
+ .fa-sort-up:before,
796
+ .fa-sort-asc:before {
797
+ content: "\f0de";
798
+ }
799
+ .fa-envelope:before {
800
+ content: "\f0e0";
801
+ }
802
+ .fa-linkedin:before {
803
+ content: "\f0e1";
804
+ }
805
+ .fa-rotate-left:before,
806
+ .fa-undo:before {
807
+ content: "\f0e2";
808
+ }
809
+ .fa-legal:before,
810
+ .fa-gavel:before {
811
+ content: "\f0e3";
812
+ }
813
+ .fa-dashboard:before,
814
+ .fa-tachometer:before {
815
+ content: "\f0e4";
816
+ }
817
+ .fa-comment-o:before {
818
+ content: "\f0e5";
819
+ }
820
+ .fa-comments-o:before {
821
+ content: "\f0e6";
822
+ }
823
+ .fa-flash:before,
824
+ .fa-bolt:before {
825
+ content: "\f0e7";
826
+ }
827
+ .fa-sitemap:before {
828
+ content: "\f0e8";
829
+ }
830
+ .fa-umbrella:before {
831
+ content: "\f0e9";
832
+ }
833
+ .fa-paste:before,
834
+ .fa-clipboard:before {
835
+ content: "\f0ea";
836
+ }
837
+ .fa-lightbulb-o:before {
838
+ content: "\f0eb";
839
+ }
840
+ .fa-exchange:before {
841
+ content: "\f0ec";
842
+ }
843
+ .fa-cloud-download:before {
844
+ content: "\f0ed";
845
+ }
846
+ .fa-cloud-upload:before {
847
+ content: "\f0ee";
848
+ }
849
+ .fa-user-md:before {
850
+ content: "\f0f0";
851
+ }
852
+ .fa-stethoscope:before {
853
+ content: "\f0f1";
854
+ }
855
+ .fa-suitcase:before {
856
+ content: "\f0f2";
857
+ }
858
+ .fa-bell-o:before {
859
+ content: "\f0a2";
860
+ }
861
+ .fa-coffee:before {
862
+ content: "\f0f4";
863
+ }
864
+ .fa-cutlery:before {
865
+ content: "\f0f5";
866
+ }
867
+ .fa-file-text-o:before {
868
+ content: "\f0f6";
869
+ }
870
+ .fa-building-o:before {
871
+ content: "\f0f7";
872
+ }
873
+ .fa-hospital-o:before {
874
+ content: "\f0f8";
875
+ }
876
+ .fa-ambulance:before {
877
+ content: "\f0f9";
878
+ }
879
+ .fa-medkit:before {
880
+ content: "\f0fa";
881
+ }
882
+ .fa-fighter-jet:before {
883
+ content: "\f0fb";
884
+ }
885
+ .fa-beer:before {
886
+ content: "\f0fc";
887
+ }
888
+ .fa-h-square:before {
889
+ content: "\f0fd";
890
+ }
891
+ .fa-plus-square:before {
892
+ content: "\f0fe";
893
+ }
894
+ .fa-angle-double-left:before {
895
+ content: "\f100";
896
+ }
897
+ .fa-angle-double-right:before {
898
+ content: "\f101";
899
+ }
900
+ .fa-angle-double-up:before {
901
+ content: "\f102";
902
+ }
903
+ .fa-angle-double-down:before {
904
+ content: "\f103";
905
+ }
906
+ .fa-angle-left:before {
907
+ content: "\f104";
908
+ }
909
+ .fa-angle-right:before {
910
+ content: "\f105";
911
+ }
912
+ .fa-angle-up:before {
913
+ content: "\f106";
914
+ }
915
+ .fa-angle-down:before {
916
+ content: "\f107";
917
+ }
918
+ .fa-desktop:before {
919
+ content: "\f108";
920
+ }
921
+ .fa-laptop:before {
922
+ content: "\f109";
923
+ }
924
+ .fa-tablet:before {
925
+ content: "\f10a";
926
+ }
927
+ .fa-mobile-phone:before,
928
+ .fa-mobile:before {
929
+ content: "\f10b";
930
+ }
931
+ .fa-circle-o:before {
932
+ content: "\f10c";
933
+ }
934
+ .fa-quote-left:before {
935
+ content: "\f10d";
936
+ }
937
+ .fa-quote-right:before {
938
+ content: "\f10e";
939
+ }
940
+ .fa-spinner:before {
941
+ content: "\f110";
942
+ }
943
+ .fa-circle:before {
944
+ content: "\f111";
945
+ }
946
+ .fa-mail-reply:before,
947
+ .fa-reply:before {
948
+ content: "\f112";
949
+ }
950
+ .fa-github-alt:before {
951
+ content: "\f113";
952
+ }
953
+ .fa-folder-o:before {
954
+ content: "\f114";
955
+ }
956
+ .fa-folder-open-o:before {
957
+ content: "\f115";
958
+ }
959
+ .fa-smile-o:before {
960
+ content: "\f118";
961
+ }
962
+ .fa-frown-o:before {
963
+ content: "\f119";
964
+ }
965
+ .fa-meh-o:before {
966
+ content: "\f11a";
967
+ }
968
+ .fa-gamepad:before {
969
+ content: "\f11b";
970
+ }
971
+ .fa-keyboard-o:before {
972
+ content: "\f11c";
973
+ }
974
+ .fa-flag-o:before {
975
+ content: "\f11d";
976
+ }
977
+ .fa-flag-checkered:before {
978
+ content: "\f11e";
979
+ }
980
+ .fa-terminal:before {
981
+ content: "\f120";
982
+ }
983
+ .fa-code:before {
984
+ content: "\f121";
985
+ }
986
+ .fa-mail-reply-all:before,
987
+ .fa-reply-all:before {
988
+ content: "\f122";
989
+ }
990
+ .fa-star-half-empty:before,
991
+ .fa-star-half-full:before,
992
+ .fa-star-half-o:before {
993
+ content: "\f123";
994
+ }
995
+ .fa-location-arrow:before {
996
+ content: "\f124";
997
+ }
998
+ .fa-crop:before {
999
+ content: "\f125";
1000
+ }
1001
+ .fa-code-fork:before {
1002
+ content: "\f126";
1003
+ }
1004
+ .fa-unlink:before,
1005
+ .fa-chain-broken:before {
1006
+ content: "\f127";
1007
+ }
1008
+ .fa-question:before {
1009
+ content: "\f128";
1010
+ }
1011
+ .fa-info:before {
1012
+ content: "\f129";
1013
+ }
1014
+ .fa-exclamation:before {
1015
+ content: "\f12a";
1016
+ }
1017
+ .fa-superscript:before {
1018
+ content: "\f12b";
1019
+ }
1020
+ .fa-subscript:before {
1021
+ content: "\f12c";
1022
+ }
1023
+ .fa-eraser:before {
1024
+ content: "\f12d";
1025
+ }
1026
+ .fa-puzzle-piece:before {
1027
+ content: "\f12e";
1028
+ }
1029
+ .fa-microphone:before {
1030
+ content: "\f130";
1031
+ }
1032
+ .fa-microphone-slash:before {
1033
+ content: "\f131";
1034
+ }
1035
+ .fa-shield:before {
1036
+ content: "\f132";
1037
+ }
1038
+ .fa-calendar-o:before {
1039
+ content: "\f133";
1040
+ }
1041
+ .fa-fire-extinguisher:before {
1042
+ content: "\f134";
1043
+ }
1044
+ .fa-rocket:before {
1045
+ content: "\f135";
1046
+ }
1047
+ .fa-maxcdn:before {
1048
+ content: "\f136";
1049
+ }
1050
+ .fa-chevron-circle-left:before {
1051
+ content: "\f137";
1052
+ }
1053
+ .fa-chevron-circle-right:before {
1054
+ content: "\f138";
1055
+ }
1056
+ .fa-chevron-circle-up:before {
1057
+ content: "\f139";
1058
+ }
1059
+ .fa-chevron-circle-down:before {
1060
+ content: "\f13a";
1061
+ }
1062
+ .fa-html5:before {
1063
+ content: "\f13b";
1064
+ }
1065
+ .fa-css3:before {
1066
+ content: "\f13c";
1067
+ }
1068
+ .fa-anchor:before {
1069
+ content: "\f13d";
1070
+ }
1071
+ .fa-unlock-alt:before {
1072
+ content: "\f13e";
1073
+ }
1074
+ .fa-bullseye:before {
1075
+ content: "\f140";
1076
+ }
1077
+ .fa-ellipsis-h:before {
1078
+ content: "\f141";
1079
+ }
1080
+ .fa-ellipsis-v:before {
1081
+ content: "\f142";
1082
+ }
1083
+ .fa-rss-square:before {
1084
+ content: "\f143";
1085
+ }
1086
+ .fa-play-circle:before {
1087
+ content: "\f144";
1088
+ }
1089
+ .fa-ticket:before {
1090
+ content: "\f145";
1091
+ }
1092
+ .fa-minus-square:before {
1093
+ content: "\f146";
1094
+ }
1095
+ .fa-minus-square-o:before {
1096
+ content: "\f147";
1097
+ }
1098
+ .fa-level-up:before {
1099
+ content: "\f148";
1100
+ }
1101
+ .fa-level-down:before {
1102
+ content: "\f149";
1103
+ }
1104
+ .fa-check-square:before {
1105
+ content: "\f14a";
1106
+ }
1107
+ .fa-pencil-square:before {
1108
+ content: "\f14b";
1109
+ }
1110
+ .fa-external-link-square:before {
1111
+ content: "\f14c";
1112
+ }
1113
+ .fa-share-square:before {
1114
+ content: "\f14d";
1115
+ }
1116
+ .fa-compass:before {
1117
+ content: "\f14e";
1118
+ }
1119
+ .fa-toggle-down:before,
1120
+ .fa-caret-square-o-down:before {
1121
+ content: "\f150";
1122
+ }
1123
+ .fa-toggle-up:before,
1124
+ .fa-caret-square-o-up:before {
1125
+ content: "\f151";
1126
+ }
1127
+ .fa-toggle-right:before,
1128
+ .fa-caret-square-o-right:before {
1129
+ content: "\f152";
1130
+ }
1131
+ .fa-euro:before,
1132
+ .fa-eur:before {
1133
+ content: "\f153";
1134
+ }
1135
+ .fa-gbp:before {
1136
+ content: "\f154";
1137
+ }
1138
+ .fa-dollar:before,
1139
+ .fa-usd:before {
1140
+ content: "\f155";
1141
+ }
1142
+ .fa-rupee:before,
1143
+ .fa-inr:before {
1144
+ content: "\f156";
1145
+ }
1146
+ .fa-cny:before,
1147
+ .fa-rmb:before,
1148
+ .fa-yen:before,
1149
+ .fa-jpy:before {
1150
+ content: "\f157";
1151
+ }
1152
+ .fa-ruble:before,
1153
+ .fa-rouble:before,
1154
+ .fa-rub:before {
1155
+ content: "\f158";
1156
+ }
1157
+ .fa-won:before,
1158
+ .fa-krw:before {
1159
+ content: "\f159";
1160
+ }
1161
+ .fa-bitcoin:before,
1162
+ .fa-btc:before {
1163
+ content: "\f15a";
1164
+ }
1165
+ .fa-file:before {
1166
+ content: "\f15b";
1167
+ }
1168
+ .fa-file-text:before {
1169
+ content: "\f15c";
1170
+ }
1171
+ .fa-sort-alpha-asc:before {
1172
+ content: "\f15d";
1173
+ }
1174
+ .fa-sort-alpha-desc:before {
1175
+ content: "\f15e";
1176
+ }
1177
+ .fa-sort-amount-asc:before {
1178
+ content: "\f160";
1179
+ }
1180
+ .fa-sort-amount-desc:before {
1181
+ content: "\f161";
1182
+ }
1183
+ .fa-sort-numeric-asc:before {
1184
+ content: "\f162";
1185
+ }
1186
+ .fa-sort-numeric-desc:before {
1187
+ content: "\f163";
1188
+ }
1189
+ .fa-thumbs-up:before {
1190
+ content: "\f164";
1191
+ }
1192
+ .fa-thumbs-down:before {
1193
+ content: "\f165";
1194
+ }
1195
+ .fa-youtube-square:before {
1196
+ content: "\f166";
1197
+ }
1198
+ .fa-youtube:before {
1199
+ content: "\f167";
1200
+ }
1201
+ .fa-xing:before {
1202
+ content: "\f168";
1203
+ }
1204
+ .fa-xing-square:before {
1205
+ content: "\f169";
1206
+ }
1207
+ .fa-youtube-play:before {
1208
+ content: "\f16a";
1209
+ }
1210
+ .fa-dropbox:before {
1211
+ content: "\f16b";
1212
+ }
1213
+ .fa-stack-overflow:before {
1214
+ content: "\f16c";
1215
+ }
1216
+ .fa-instagram:before {
1217
+ content: "\f16d";
1218
+ }
1219
+ .fa-flickr:before {
1220
+ content: "\f16e";
1221
+ }
1222
+ .fa-adn:before {
1223
+ content: "\f170";
1224
+ }
1225
+ .fa-bitbucket:before {
1226
+ content: "\f171";
1227
+ }
1228
+ .fa-bitbucket-square:before {
1229
+ content: "\f172";
1230
+ }
1231
+ .fa-tumblr:before {
1232
+ content: "\f173";
1233
+ }
1234
+ .fa-tumblr-square:before {
1235
+ content: "\f174";
1236
+ }
1237
+ .fa-long-arrow-down:before {
1238
+ content: "\f175";
1239
+ }
1240
+ .fa-long-arrow-up:before {
1241
+ content: "\f176";
1242
+ }
1243
+ .fa-long-arrow-left:before {
1244
+ content: "\f177";
1245
+ }
1246
+ .fa-long-arrow-right:before {
1247
+ content: "\f178";
1248
+ }
1249
+ .fa-apple:before {
1250
+ content: "\f179";
1251
+ }
1252
+ .fa-windows:before {
1253
+ content: "\f17a";
1254
+ }
1255
+ .fa-android:before {
1256
+ content: "\f17b";
1257
+ }
1258
+ .fa-linux:before {
1259
+ content: "\f17c";
1260
+ }
1261
+ .fa-dribbble:before {
1262
+ content: "\f17d";
1263
+ }
1264
+ .fa-skype:before {
1265
+ content: "\f17e";
1266
+ }
1267
+ .fa-foursquare:before {
1268
+ content: "\f180";
1269
+ }
1270
+ .fa-trello:before {
1271
+ content: "\f181";
1272
+ }
1273
+ .fa-female:before {
1274
+ content: "\f182";
1275
+ }
1276
+ .fa-male:before {
1277
+ content: "\f183";
1278
+ }
1279
+ .fa-gittip:before {
1280
+ content: "\f184";
1281
+ }
1282
+ .fa-sun-o:before {
1283
+ content: "\f185";
1284
+ }
1285
+ .fa-moon-o:before {
1286
+ content: "\f186";
1287
+ }
1288
+ .fa-archive:before {
1289
+ content: "\f187";
1290
+ }
1291
+ .fa-bug:before {
1292
+ content: "\f188";
1293
+ }
1294
+ .fa-vk:before {
1295
+ content: "\f189";
1296
+ }
1297
+ .fa-weibo:before {
1298
+ content: "\f18a";
1299
+ }
1300
+ .fa-renren:before {
1301
+ content: "\f18b";
1302
+ }
1303
+ .fa-pagelines:before {
1304
+ content: "\f18c";
1305
+ }
1306
+ .fa-stack-exchange:before {
1307
+ content: "\f18d";
1308
+ }
1309
+ .fa-arrow-circle-o-right:before {
1310
+ content: "\f18e";
1311
+ }
1312
+ .fa-arrow-circle-o-left:before {
1313
+ content: "\f190";
1314
+ }
1315
+ .fa-toggle-left:before,
1316
+ .fa-caret-square-o-left:before {
1317
+ content: "\f191";
1318
+ }
1319
+ .fa-dot-circle-o:before {
1320
+ content: "\f192";
1321
+ }
1322
+ .fa-wheelchair:before {
1323
+ content: "\f193";
1324
+ }
1325
+ .fa-vimeo-square:before {
1326
+ content: "\f194";
1327
+ }
1328
+ .fa-turkish-lira:before,
1329
+ .fa-try:before {
1330
+ content: "\f195";
1331
+ }
1332
+ .fa-plus-square-o:before {
1333
+ content: "\f196";
1334
+ }
1335
+ .fa-space-shuttle:before {
1336
+ content: "\f197";
1337
+ }
1338
+ .fa-slack:before {
1339
+ content: "\f198";
1340
+ }
1341
+ .fa-envelope-square:before {
1342
+ content: "\f199";
1343
+ }
1344
+ .fa-wordpress:before {
1345
+ content: "\f19a";
1346
+ }
1347
+ .fa-openid:before {
1348
+ content: "\f19b";
1349
+ }
1350
+ .fa-institution:before,
1351
+ .fa-bank:before,
1352
+ .fa-university:before {
1353
+ content: "\f19c";
1354
+ }
1355
+ .fa-mortar-board:before,
1356
+ .fa-graduation-cap:before {
1357
+ content: "\f19d";
1358
+ }
1359
+ .fa-yahoo:before {
1360
+ content: "\f19e";
1361
+ }
1362
+ .fa-google:before {
1363
+ content: "\f1a0";
1364
+ }
1365
+ .fa-reddit:before {
1366
+ content: "\f1a1";
1367
+ }
1368
+ .fa-reddit-square:before {
1369
+ content: "\f1a2";
1370
+ }
1371
+ .fa-stumbleupon-circle:before {
1372
+ content: "\f1a3";
1373
+ }
1374
+ .fa-stumbleupon:before {
1375
+ content: "\f1a4";
1376
+ }
1377
+ .fa-delicious:before {
1378
+ content: "\f1a5";
1379
+ }
1380
+ .fa-digg:before {
1381
+ content: "\f1a6";
1382
+ }
1383
+ .fa-pied-piper-square:before,
1384
+ .fa-pied-piper:before {
1385
+ content: "\f1a7";
1386
+ }
1387
+ .fa-pied-piper-alt:before {
1388
+ content: "\f1a8";
1389
+ }
1390
+ .fa-drupal:before {
1391
+ content: "\f1a9";
1392
+ }
1393
+ .fa-joomla:before {
1394
+ content: "\f1aa";
1395
+ }
1396
+ .fa-language:before {
1397
+ content: "\f1ab";
1398
+ }
1399
+ .fa-fax:before {
1400
+ content: "\f1ac";
1401
+ }
1402
+ .fa-building:before {
1403
+ content: "\f1ad";
1404
+ }
1405
+ .fa-child:before {
1406
+ content: "\f1ae";
1407
+ }
1408
+ .fa-paw:before {
1409
+ content: "\f1b0";
1410
+ }
1411
+ .fa-spoon:before {
1412
+ content: "\f1b1";
1413
+ }
1414
+ .fa-cube:before {
1415
+ content: "\f1b2";
1416
+ }
1417
+ .fa-cubes:before {
1418
+ content: "\f1b3";
1419
+ }
1420
+ .fa-behance:before {
1421
+ content: "\f1b4";
1422
+ }
1423
+ .fa-behance-square:before {
1424
+ content: "\f1b5";
1425
+ }
1426
+ .fa-steam:before {
1427
+ content: "\f1b6";
1428
+ }
1429
+ .fa-steam-square:before {
1430
+ content: "\f1b7";
1431
+ }
1432
+ .fa-recycle:before {
1433
+ content: "\f1b8";
1434
+ }
1435
+ .fa-automobile:before,
1436
+ .fa-car:before {
1437
+ content: "\f1b9";
1438
+ }
1439
+ .fa-cab:before,
1440
+ .fa-taxi:before {
1441
+ content: "\f1ba";
1442
+ }
1443
+ .fa-tree:before {
1444
+ content: "\f1bb";
1445
+ }
1446
+ .fa-spotify:before {
1447
+ content: "\f1bc";
1448
+ }
1449
+ .fa-deviantart:before {
1450
+ content: "\f1bd";
1451
+ }
1452
+ .fa-soundcloud:before {
1453
+ content: "\f1be";
1454
+ }
1455
+ .fa-database:before {
1456
+ content: "\f1c0";
1457
+ }
1458
+ .fa-file-pdf-o:before {
1459
+ content: "\f1c1";
1460
+ }
1461
+ .fa-file-word-o:before {
1462
+ content: "\f1c2";
1463
+ }
1464
+ .fa-file-excel-o:before {
1465
+ content: "\f1c3";
1466
+ }
1467
+ .fa-file-powerpoint-o:before {
1468
+ content: "\f1c4";
1469
+ }
1470
+ .fa-file-photo-o:before,
1471
+ .fa-file-picture-o:before,
1472
+ .fa-file-image-o:before {
1473
+ content: "\f1c5";
1474
+ }
1475
+ .fa-file-zip-o:before,
1476
+ .fa-file-archive-o:before {
1477
+ content: "\f1c6";
1478
+ }
1479
+ .fa-file-sound-o:before,
1480
+ .fa-file-audio-o:before {
1481
+ content: "\f1c7";
1482
+ }
1483
+ .fa-file-movie-o:before,
1484
+ .fa-file-video-o:before {
1485
+ content: "\f1c8";
1486
+ }
1487
+ .fa-file-code-o:before {
1488
+ content: "\f1c9";
1489
+ }
1490
+ .fa-vine:before {
1491
+ content: "\f1ca";
1492
+ }
1493
+ .fa-codepen:before {
1494
+ content: "\f1cb";
1495
+ }
1496
+ .fa-jsfiddle:before {
1497
+ content: "\f1cc";
1498
+ }
1499
+ .fa-life-bouy:before,
1500
+ .fa-life-saver:before,
1501
+ .fa-support:before,
1502
+ .fa-life-ring:before {
1503
+ content: "\f1cd";
1504
+ }
1505
+ .fa-circle-o-notch:before {
1506
+ content: "\f1ce";
1507
+ }
1508
+ .fa-ra:before,
1509
+ .fa-rebel:before {
1510
+ content: "\f1d0";
1511
+ }
1512
+ .fa-ge:before,
1513
+ .fa-empire:before {
1514
+ content: "\f1d1";
1515
+ }
1516
+ .fa-git-square:before {
1517
+ content: "\f1d2";
1518
+ }
1519
+ .fa-git:before {
1520
+ content: "\f1d3";
1521
+ }
1522
+ .fa-hacker-news:before {
1523
+ content: "\f1d4";
1524
+ }
1525
+ .fa-tencent-weibo:before {
1526
+ content: "\f1d5";
1527
+ }
1528
+ .fa-qq:before {
1529
+ content: "\f1d6";
1530
+ }
1531
+ .fa-wechat:before,
1532
+ .fa-weixin:before {
1533
+ content: "\f1d7";
1534
+ }
1535
+ .fa-send:before,
1536
+ .fa-paper-plane:before {
1537
+ content: "\f1d8";
1538
+ }
1539
+ .fa-send-o:before,
1540
+ .fa-paper-plane-o:before {
1541
+ content: "\f1d9";
1542
+ }
1543
+ .fa-history:before {
1544
+ content: "\f1da";
1545
+ }
1546
+ .fa-circle-thin:before {
1547
+ content: "\f1db";
1548
+ }
1549
+ .fa-header:before {
1550
+ content: "\f1dc";
1551
+ }
1552
+ .fa-paragraph:before {
1553
+ content: "\f1dd";
1554
+ }
1555
+ .fa-sliders:before {
1556
+ content: "\f1de";
1557
+ }
1558
+ .fa-share-alt:before {
1559
+ content: "\f1e0";
1560
+ }
1561
+ .fa-share-alt-square:before {
1562
+ content: "\f1e1";
1563
+ }
1564
+ .fa-bomb:before {
1565
+ content: "\f1e2";
1566
+ }