appmap 0.31.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +5 -0
  3. data/.gitignore +17 -0
  4. data/.rubocop.yml +27 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +44 -0
  7. data/CHANGELOG.md +199 -0
  8. data/Dockerfile.appmap +5 -0
  9. data/Gemfile +5 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +300 -0
  12. data/Rakefile +132 -0
  13. data/appmap.gemspec +44 -0
  14. data/appmap.yml +8 -0
  15. data/examples/install.rb +76 -0
  16. data/examples/mock_webapp/Gemfile +1 -0
  17. data/examples/mock_webapp/appmap.yml +2 -0
  18. data/examples/mock_webapp/exe/mock_webapp_request +12 -0
  19. data/examples/mock_webapp/lib/mock_webapp/controller.rb +23 -0
  20. data/examples/mock_webapp/lib/mock_webapp/request.rb +12 -0
  21. data/examples/mock_webapp/lib/mock_webapp/user.rb +18 -0
  22. data/exe/appmap +154 -0
  23. data/lib/appmap.rb +87 -0
  24. data/lib/appmap/algorithm/prune_class_map.rb +67 -0
  25. data/lib/appmap/algorithm/stats.rb +91 -0
  26. data/lib/appmap/class_map.rb +135 -0
  27. data/lib/appmap/command/record.rb +38 -0
  28. data/lib/appmap/command/stats.rb +14 -0
  29. data/lib/appmap/config.rb +91 -0
  30. data/lib/appmap/cucumber.rb +89 -0
  31. data/lib/appmap/event.rb +168 -0
  32. data/lib/appmap/hook.rb +130 -0
  33. data/lib/appmap/metadata.rb +62 -0
  34. data/lib/appmap/middleware/remote_recording.rb +114 -0
  35. data/lib/appmap/minitest.rb +141 -0
  36. data/lib/appmap/rails/action_handler.rb +91 -0
  37. data/lib/appmap/rails/sql_handler.rb +145 -0
  38. data/lib/appmap/railtie.rb +45 -0
  39. data/lib/appmap/record.rb +27 -0
  40. data/lib/appmap/rspec.rb +301 -0
  41. data/lib/appmap/trace.rb +96 -0
  42. data/lib/appmap/util.rb +40 -0
  43. data/lib/appmap/version.rb +9 -0
  44. data/lore/pages/2019-05-21-install-and-record/index.pug +51 -0
  45. data/lore/pages/2019-05-21-install-and-record/install_example_appmap.png +0 -0
  46. data/lore/pages/2019-05-21-install-and-record/metadata.yml +5 -0
  47. data/lore/pages/layout.pug +66 -0
  48. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-grid.css +1912 -0
  49. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-grid.css.map +1 -0
  50. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-grid.min.css +7 -0
  51. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-grid.min.css.map +1 -0
  52. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-reboot.css +331 -0
  53. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-reboot.css.map +1 -0
  54. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-reboot.min.css +8 -0
  55. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap-reboot.min.css.map +1 -0
  56. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap.css +9030 -0
  57. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap.css.map +1 -0
  58. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap.min.css +7 -0
  59. data/lore/public/lib/bootstrap-4.1.3/css/bootstrap.min.css.map +1 -0
  60. data/lore/public/stylesheets/style.css +8 -0
  61. data/package-lock.json +1064 -0
  62. data/package.json +24 -0
  63. data/spec/abstract_controller4_base_spec.rb +67 -0
  64. data/spec/abstract_controller_base_spec.rb +72 -0
  65. data/spec/config_spec.rb +25 -0
  66. data/spec/fixtures/hook/attr_accessor.rb +5 -0
  67. data/spec/fixtures/hook/compare.rb +7 -0
  68. data/spec/fixtures/hook/constructor.rb +7 -0
  69. data/spec/fixtures/hook/exception_method.rb +11 -0
  70. data/spec/fixtures/hook/instance_method.rb +23 -0
  71. data/spec/fixtures/hook/openssl_sign.rb +87 -0
  72. data/spec/fixtures/hook/singleton_method.rb +54 -0
  73. data/spec/fixtures/rack_users_app/.dockerignore +2 -0
  74. data/spec/fixtures/rack_users_app/.gitignore +2 -0
  75. data/spec/fixtures/rack_users_app/Dockerfile +32 -0
  76. data/spec/fixtures/rack_users_app/Gemfile +10 -0
  77. data/spec/fixtures/rack_users_app/appmap.yml +3 -0
  78. data/spec/fixtures/rack_users_app/config.ru +2 -0
  79. data/spec/fixtures/rack_users_app/docker-compose.yml +9 -0
  80. data/spec/fixtures/rack_users_app/lib/app.rb +36 -0
  81. data/spec/fixtures/rails4_users_app/.gitignore +13 -0
  82. data/spec/fixtures/rails4_users_app/.rbenv-gemsets +2 -0
  83. data/spec/fixtures/rails4_users_app/.ruby-version +1 -0
  84. data/spec/fixtures/rails4_users_app/Dockerfile +30 -0
  85. data/spec/fixtures/rails4_users_app/Dockerfile.pg +3 -0
  86. data/spec/fixtures/rails4_users_app/Gemfile +77 -0
  87. data/spec/fixtures/rails4_users_app/README.rdoc +28 -0
  88. data/spec/fixtures/rails4_users_app/Rakefile +6 -0
  89. data/spec/fixtures/rails4_users_app/app/assets/images/.keep +0 -0
  90. data/spec/fixtures/rails4_users_app/app/assets/javascripts/application.js +16 -0
  91. data/spec/fixtures/rails4_users_app/app/assets/stylesheets/application.css +15 -0
  92. data/spec/fixtures/rails4_users_app/app/controllers/api/users_controller.rb +27 -0
  93. data/spec/fixtures/rails4_users_app/app/controllers/application_controller.rb +5 -0
  94. data/spec/fixtures/rails4_users_app/app/controllers/concerns/.keep +0 -0
  95. data/spec/fixtures/rails4_users_app/app/controllers/health_controller.rb +5 -0
  96. data/spec/fixtures/rails4_users_app/app/controllers/users_controller.rb +5 -0
  97. data/spec/fixtures/rails4_users_app/app/helpers/application_helper.rb +2 -0
  98. data/spec/fixtures/rails4_users_app/app/mailers/.keep +0 -0
  99. data/spec/fixtures/rails4_users_app/app/models/.keep +0 -0
  100. data/spec/fixtures/rails4_users_app/app/models/concerns/.keep +0 -0
  101. data/spec/fixtures/rails4_users_app/app/models/user.rb +18 -0
  102. data/spec/fixtures/rails4_users_app/app/views/layouts/application.html.haml +7 -0
  103. data/spec/fixtures/rails4_users_app/app/views/users/index.html.haml +7 -0
  104. data/spec/fixtures/rails4_users_app/appmap.yml +3 -0
  105. data/spec/fixtures/rails4_users_app/bin/rails +9 -0
  106. data/spec/fixtures/rails4_users_app/bin/setup +29 -0
  107. data/spec/fixtures/rails4_users_app/bin/spring +17 -0
  108. data/spec/fixtures/rails4_users_app/config.ru +4 -0
  109. data/spec/fixtures/rails4_users_app/config/application.rb +26 -0
  110. data/spec/fixtures/rails4_users_app/config/boot.rb +3 -0
  111. data/spec/fixtures/rails4_users_app/config/database.yml +18 -0
  112. data/spec/fixtures/rails4_users_app/config/environment.rb +5 -0
  113. data/spec/fixtures/rails4_users_app/config/environments/development.rb +41 -0
  114. data/spec/fixtures/rails4_users_app/config/environments/production.rb +79 -0
  115. data/spec/fixtures/rails4_users_app/config/environments/test.rb +42 -0
  116. data/spec/fixtures/rails4_users_app/config/initializers/assets.rb +11 -0
  117. data/spec/fixtures/rails4_users_app/config/initializers/backtrace_silencers.rb +7 -0
  118. data/spec/fixtures/rails4_users_app/config/initializers/cookies_serializer.rb +3 -0
  119. data/spec/fixtures/rails4_users_app/config/initializers/filter_parameter_logging.rb +4 -0
  120. data/spec/fixtures/rails4_users_app/config/initializers/inflections.rb +16 -0
  121. data/spec/fixtures/rails4_users_app/config/initializers/mime_types.rb +4 -0
  122. data/spec/fixtures/rails4_users_app/config/initializers/session_store.rb +3 -0
  123. data/spec/fixtures/rails4_users_app/config/initializers/to_time_preserves_timezone.rb +10 -0
  124. data/spec/fixtures/rails4_users_app/config/initializers/wrap_parameters.rb +14 -0
  125. data/spec/fixtures/rails4_users_app/config/locales/en.yml +23 -0
  126. data/spec/fixtures/rails4_users_app/config/routes.rb +12 -0
  127. data/spec/fixtures/rails4_users_app/config/secrets.yml +22 -0
  128. data/spec/fixtures/rails4_users_app/create_app +23 -0
  129. data/spec/fixtures/rails4_users_app/db/migrate/20191127112304_create_users.rb +10 -0
  130. data/spec/fixtures/rails4_users_app/db/schema.rb +26 -0
  131. data/spec/fixtures/rails4_users_app/db/seeds.rb +7 -0
  132. data/spec/fixtures/rails4_users_app/docker-compose.yml +26 -0
  133. data/spec/fixtures/rails4_users_app/lib/assets/.keep +0 -0
  134. data/spec/fixtures/rails4_users_app/lib/tasks/.keep +0 -0
  135. data/spec/fixtures/rails4_users_app/log/.keep +0 -0
  136. data/spec/fixtures/rails4_users_app/public/404.html +67 -0
  137. data/spec/fixtures/rails4_users_app/public/422.html +67 -0
  138. data/spec/fixtures/rails4_users_app/public/500.html +66 -0
  139. data/spec/fixtures/rails4_users_app/public/favicon.ico +0 -0
  140. data/spec/fixtures/rails4_users_app/public/robots.txt +5 -0
  141. data/spec/fixtures/rails4_users_app/spec/controllers/users_controller_api_spec.rb +49 -0
  142. data/spec/fixtures/rails4_users_app/spec/rails_helper.rb +95 -0
  143. data/spec/fixtures/rails4_users_app/spec/spec_helper.rb +96 -0
  144. data/spec/fixtures/rails4_users_app/test/fixtures/users.yml +9 -0
  145. data/spec/fixtures/rails_users_app/.dockerignore +1 -0
  146. data/spec/fixtures/rails_users_app/.gitignore +39 -0
  147. data/spec/fixtures/rails_users_app/.rspec +1 -0
  148. data/spec/fixtures/rails_users_app/.ruby-version +1 -0
  149. data/spec/fixtures/rails_users_app/Dockerfile +29 -0
  150. data/spec/fixtures/rails_users_app/Dockerfile.pg +3 -0
  151. data/spec/fixtures/rails_users_app/Gemfile +52 -0
  152. data/spec/fixtures/rails_users_app/Rakefile +6 -0
  153. data/spec/fixtures/rails_users_app/app/controllers/api/users_controller.rb +27 -0
  154. data/spec/fixtures/rails_users_app/app/controllers/application_controller.rb +2 -0
  155. data/spec/fixtures/rails_users_app/app/controllers/concerns/.keep +0 -0
  156. data/spec/fixtures/rails_users_app/app/controllers/health_controller.rb +5 -0
  157. data/spec/fixtures/rails_users_app/app/controllers/users_controller.rb +5 -0
  158. data/spec/fixtures/rails_users_app/app/models/activerecord/user.rb +18 -0
  159. data/spec/fixtures/rails_users_app/app/models/concerns/.keep +0 -0
  160. data/spec/fixtures/rails_users_app/app/models/sequel/user.rb +25 -0
  161. data/spec/fixtures/rails_users_app/app/views/layouts/application.html.haml +7 -0
  162. data/spec/fixtures/rails_users_app/app/views/users/index.html.haml +7 -0
  163. data/spec/fixtures/rails_users_app/appmap.yml +3 -0
  164. data/spec/fixtures/rails_users_app/bin/appmap +29 -0
  165. data/spec/fixtures/rails_users_app/bin/byebug +29 -0
  166. data/spec/fixtures/rails_users_app/bin/gli +29 -0
  167. data/spec/fixtures/rails_users_app/bin/htmldiff +29 -0
  168. data/spec/fixtures/rails_users_app/bin/ldiff +29 -0
  169. data/spec/fixtures/rails_users_app/bin/nokogiri +29 -0
  170. data/spec/fixtures/rails_users_app/bin/rackup +29 -0
  171. data/spec/fixtures/rails_users_app/bin/rails +4 -0
  172. data/spec/fixtures/rails_users_app/bin/rake +29 -0
  173. data/spec/fixtures/rails_users_app/bin/rspec +29 -0
  174. data/spec/fixtures/rails_users_app/bin/ruby-parse +29 -0
  175. data/spec/fixtures/rails_users_app/bin/ruby-rewrite +29 -0
  176. data/spec/fixtures/rails_users_app/bin/sequel +29 -0
  177. data/spec/fixtures/rails_users_app/bin/setup +25 -0
  178. data/spec/fixtures/rails_users_app/bin/sprockets +29 -0
  179. data/spec/fixtures/rails_users_app/bin/thor +29 -0
  180. data/spec/fixtures/rails_users_app/bin/update +25 -0
  181. data/spec/fixtures/rails_users_app/config.ru +5 -0
  182. data/spec/fixtures/rails_users_app/config/application.rb +51 -0
  183. data/spec/fixtures/rails_users_app/config/boot.rb +3 -0
  184. data/spec/fixtures/rails_users_app/config/credentials.yml.enc +1 -0
  185. data/spec/fixtures/rails_users_app/config/database.yml +18 -0
  186. data/spec/fixtures/rails_users_app/config/environment.rb +5 -0
  187. data/spec/fixtures/rails_users_app/config/environments/development.rb +40 -0
  188. data/spec/fixtures/rails_users_app/config/environments/production.rb +68 -0
  189. data/spec/fixtures/rails_users_app/config/environments/test.rb +36 -0
  190. data/spec/fixtures/rails_users_app/config/initializers/application_controller_renderer.rb +8 -0
  191. data/spec/fixtures/rails_users_app/config/initializers/backtrace_silencers.rb +7 -0
  192. data/spec/fixtures/rails_users_app/config/initializers/cors.rb +16 -0
  193. data/spec/fixtures/rails_users_app/config/initializers/filter_parameter_logging.rb +4 -0
  194. data/spec/fixtures/rails_users_app/config/initializers/inflections.rb +16 -0
  195. data/spec/fixtures/rails_users_app/config/initializers/mime_types.rb +4 -0
  196. data/spec/fixtures/rails_users_app/config/initializers/record_button.rb +3 -0
  197. data/spec/fixtures/rails_users_app/config/initializers/wrap_parameters.rb +9 -0
  198. data/spec/fixtures/rails_users_app/config/locales/en.yml +33 -0
  199. data/spec/fixtures/rails_users_app/config/routes.rb +11 -0
  200. data/spec/fixtures/rails_users_app/create_app +27 -0
  201. data/spec/fixtures/rails_users_app/db/migrate/20190728211408_create_users.rb +9 -0
  202. data/spec/fixtures/rails_users_app/db/schema.rb +23 -0
  203. data/spec/fixtures/rails_users_app/docker-compose.yml +28 -0
  204. data/spec/fixtures/rails_users_app/features/api_users.feature +13 -0
  205. data/spec/fixtures/rails_users_app/features/support/env.rb +4 -0
  206. data/spec/fixtures/rails_users_app/features/support/hooks.rb +11 -0
  207. data/spec/fixtures/rails_users_app/features/support/steps.rb +18 -0
  208. data/spec/fixtures/rails_users_app/lib/tasks/.keep +0 -0
  209. data/spec/fixtures/rails_users_app/log/.keep +0 -0
  210. data/spec/fixtures/rails_users_app/public/robots.txt +1 -0
  211. data/spec/fixtures/rails_users_app/spec/controllers/users_controller_api_spec.rb +29 -0
  212. data/spec/fixtures/rails_users_app/spec/models/user_spec.rb +39 -0
  213. data/spec/fixtures/rails_users_app/spec/rails_helper.rb +66 -0
  214. data/spec/fixtures/rails_users_app/spec/spec_helper.rb +96 -0
  215. data/spec/fixtures/rails_users_app/users_app/.gitignore +20 -0
  216. data/spec/hook_spec.rb +576 -0
  217. data/spec/rails_spec_helper.rb +60 -0
  218. data/spec/railtie_spec.rb +44 -0
  219. data/spec/record_sql_rails4_pg_spec.rb +76 -0
  220. data/spec/record_sql_rails_pg_spec.rb +68 -0
  221. data/spec/remote_recording_spec.rb +117 -0
  222. data/spec/rspec_feature_metadata_spec.rb +32 -0
  223. data/spec/spec_helper.rb +15 -0
  224. data/spec/util_spec.rb +21 -0
  225. data/test/cli_test.rb +116 -0
  226. data/test/cucumber_test.rb +72 -0
  227. data/test/fixtures/cli_record_test/appmap.yml +3 -0
  228. data/test/fixtures/cli_record_test/lib/cli_record_test/main.rb +9 -0
  229. data/test/fixtures/cucumber4_recorder/Gemfile +5 -0
  230. data/test/fixtures/cucumber4_recorder/appmap.yml +3 -0
  231. data/test/fixtures/cucumber4_recorder/features/say_hello.feature +5 -0
  232. data/test/fixtures/cucumber4_recorder/features/support/env.rb +5 -0
  233. data/test/fixtures/cucumber4_recorder/features/support/hooks.rb +11 -0
  234. data/test/fixtures/cucumber4_recorder/features/support/steps.rb +9 -0
  235. data/test/fixtures/cucumber4_recorder/lib/hello.rb +7 -0
  236. data/test/fixtures/cucumber_recorder/Gemfile +5 -0
  237. data/test/fixtures/cucumber_recorder/appmap.yml +3 -0
  238. data/test/fixtures/cucumber_recorder/features/say_hello.feature +5 -0
  239. data/test/fixtures/cucumber_recorder/features/support/env.rb +5 -0
  240. data/test/fixtures/cucumber_recorder/features/support/hooks.rb +11 -0
  241. data/test/fixtures/cucumber_recorder/features/support/steps.rb +9 -0
  242. data/test/fixtures/cucumber_recorder/lib/hello.rb +7 -0
  243. data/test/fixtures/minitest_recorder/Gemfile +5 -0
  244. data/test/fixtures/minitest_recorder/appmap.yml +3 -0
  245. data/test/fixtures/minitest_recorder/lib/hello.rb +5 -0
  246. data/test/fixtures/minitest_recorder/test/hello_test.rb +12 -0
  247. data/test/fixtures/process_recorder/appmap.yml +3 -0
  248. data/test/fixtures/process_recorder/hello.rb +9 -0
  249. data/test/fixtures/rspec_recorder/Gemfile +5 -0
  250. data/test/fixtures/rspec_recorder/appmap.yml +3 -0
  251. data/test/fixtures/rspec_recorder/lib/hello.rb +5 -0
  252. data/test/fixtures/rspec_recorder/spec/decorated_hello_spec.rb +21 -0
  253. data/test/fixtures/rspec_recorder/spec/labeled_hello_spec.rb +9 -0
  254. data/test/fixtures/rspec_recorder/spec/plain_hello_spec.rb +9 -0
  255. data/test/minitest_test.rb +38 -0
  256. data/test/record_process_test.rb +35 -0
  257. data/test/rspec_test.rb +82 -0
  258. data/test/test_helper.rb +4 -0
  259. metadata +525 -0
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppMap
4
+ module Util
5
+ class << self
6
+ # scenario_filename builds a suitable file name from a scenario name.
7
+ # Special characters are removed, and the file name is truncated to fit within
8
+ # shell limitations.
9
+ def scenario_filename(name, max_length: 255, separator: '_', extension: '.appmap.json')
10
+ # Cribbed from v5 version of ActiveSupport:Inflector#parameterize:
11
+ # https://github.com/rails/rails/blob/v5.2.4/activesupport/lib/active_support/inflector/transliterate.rb#L92
12
+ # Replace accented chars with their ASCII equivalents.
13
+
14
+ fname = name.encode('utf-8', invalid: :replace, undef: :replace, replace: '_')
15
+
16
+ # Turn unwanted chars into the separator.
17
+ fname.gsub!(/[^a-z0-9\-_]+/i, separator)
18
+
19
+ re_sep = Regexp.escape(separator)
20
+ re_duplicate_separator = /#{re_sep}{2,}/
21
+ re_leading_trailing_separator = /^#{re_sep}|#{re_sep}$/i
22
+
23
+ # No more than one of the separator in a row.
24
+ fname.gsub!(re_duplicate_separator, separator)
25
+
26
+ # Finally, Remove leading/trailing separator.
27
+ fname.gsub!(re_leading_trailing_separator, '')
28
+
29
+ if (fname.length + extension.length) > max_length
30
+ require 'base64'
31
+ require 'digest'
32
+ fname_digest = Base64.urlsafe_encode64 Digest::MD5.digest(fname), padding: false
33
+ fname[max_length - fname_digest.length - extension.length - 1..-1] = [ '-', fname_digest ].join
34
+ end
35
+
36
+ [ fname, extension ].join
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppMap
4
+ URL = 'https://github.com/applandinc/appmap-ruby'
5
+
6
+ VERSION = '0.31.0'
7
+
8
+ APPMAP_FORMAT_VERSION = '1.2'
9
+ end
@@ -0,0 +1,51 @@
1
+ extends ../layout
2
+
3
+ block objective
4
+ div.
5
+ Installation of the AppMap client for Ruby is a key step in the user adoption flow.
6
+ Let's create an example program which installs the #[code appmap] Ruby gem and runs it to record a
7
+ scenario of a sample app.
8
+
9
+ block approach
10
+ :markdown-it
11
+ The [examples](https://github.com/applandinc/appmap-ruby/blob/master/examples/) folder in this project contains a sample project called `mock_webapp`, which
12
+ performs the following:
13
+
14
+ * Requests a `User` object by id ("alice").
15
+ * The request is handled by a `Controller`.
16
+ * The `Controller` looks up the id in a `User` model.
17
+ * The `User` model looks up the id and returns a `User` object, or raises an error.
18
+ * The `Controller` renders the response as a Hash and returns it to the client.
19
+
20
+ A test program called `install.rb` installs the `appmap` Ruby gem and then records the `mock_webapp`.
21
+ To create an appmap of `install.rb`:
22
+
23
+ ```
24
+ bundle exec exe/record examples/install.rb
25
+ ```
26
+
27
+ To upload the AppMap to AppLand:
28
+
29
+ ```
30
+ bundle exec exe/upload appmap.json
31
+ ```
32
+
33
+ block results
34
+ :markdown-it
35
+ ## AppMap of `install.rb`
36
+
37
+ [![AppMap of `install.rb`](install_example_appmap.png)](https://appland-staging.herokuapp.com/scenarios/ba2fc385-a96d-42bf-9ef8-cdbdab8a475d)
38
+
39
+ button(onclick="document.querySelector('#show-test-program').style.display = 'block';") Show test program code
40
+ div#show-test-program(style='display: none;')
41
+ pre
42
+ include ../../../examples/install.rb
43
+
44
+ block next_steps
45
+ :markdown-it
46
+
47
+ A related feature is the AppLand server receiving the scenario file and displaying it.
48
+
49
+ Here is an [AppMap of the server receiving a scenario file](https://appland-staging.herokuapp.com/scenarios/beb49bc7-b2ca-49b6-bac3-5d2eec2df062).
50
+
51
+
@@ -0,0 +1,5 @@
1
+ title: Install the AppMap Rubygem and record a scenario
2
+ authors:
3
+ - Kevin Gilpin
4
+ tags:
5
+ []
@@ -0,0 +1,66 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title= title
5
+ block styles
6
+ link(rel='stylesheet', href='/stylesheets/style.css')
7
+ link(rel='stylesheet', href='/lib/bootstrap-4.1.3/css/bootstrap.css')
8
+ if maincss
9
+ link(rel='stylesheet', href=maincss)
10
+ block scripts
11
+ if mainjs
12
+ script(src=mainjs, type="module")
13
+
14
+ body
15
+ .container
16
+ .row
17
+ .col-md-12
18
+ h2.title
19
+ a(href='/') AppMap Lore
20
+ span &nbsp; > &nbsp;
21
+ = title
22
+
23
+ .row
24
+ .col-md-12
25
+ h1 Objective
26
+ .row
27
+ .content-column.col-md-12
28
+ #objective.commentable
29
+ block objective
30
+ p TODO
31
+
32
+ .comment-column.col-md-4.hidden
33
+
34
+ .row
35
+ .col-md-12
36
+ h1 Approach
37
+ .row
38
+ .content-column.col-md-12
39
+ #approach.commentable
40
+ block approach
41
+ p TODO
42
+
43
+ .comment-column.col-md-4.hidden
44
+
45
+ .row
46
+ .col-md-12
47
+ h1 Results
48
+ .row
49
+ .content-column.col-md-12
50
+ #results.commentable
51
+ block results
52
+ p TODO
53
+
54
+ .comment-column.col-md-4.hidden
55
+
56
+ .row
57
+ .col-md-12
58
+ h1 Next Steps
59
+ .row
60
+
61
+ .content-column.col-md-12
62
+ #next-steps.commentable
63
+ block next_steps
64
+ p TODO
65
+
66
+ .comment-column.col-md-4.hidden
@@ -0,0 +1,1912 @@
1
+ /*!
2
+ * Bootstrap Grid v4.1.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */
7
+ @-ms-viewport {
8
+ width: device-width;
9
+ }
10
+
11
+ html {
12
+ box-sizing: border-box;
13
+ -ms-overflow-style: scrollbar;
14
+ }
15
+
16
+ *,
17
+ *::before,
18
+ *::after {
19
+ box-sizing: inherit;
20
+ }
21
+
22
+ .container {
23
+ width: 100%;
24
+ padding-right: 15px;
25
+ padding-left: 15px;
26
+ margin-right: auto;
27
+ margin-left: auto;
28
+ }
29
+
30
+ @media (min-width: 576px) {
31
+ .container {
32
+ max-width: 540px;
33
+ }
34
+ }
35
+
36
+ @media (min-width: 768px) {
37
+ .container {
38
+ max-width: 720px;
39
+ }
40
+ }
41
+
42
+ @media (min-width: 992px) {
43
+ .container {
44
+ max-width: 960px;
45
+ }
46
+ }
47
+
48
+ @media (min-width: 1200px) {
49
+ .container {
50
+ max-width: 1140px;
51
+ }
52
+ }
53
+
54
+ .container-fluid {
55
+ width: 100%;
56
+ padding-right: 15px;
57
+ padding-left: 15px;
58
+ margin-right: auto;
59
+ margin-left: auto;
60
+ }
61
+
62
+ .row {
63
+ display: -ms-flexbox;
64
+ display: flex;
65
+ -ms-flex-wrap: wrap;
66
+ flex-wrap: wrap;
67
+ margin-right: -15px;
68
+ margin-left: -15px;
69
+ }
70
+
71
+ .no-gutters {
72
+ margin-right: 0;
73
+ margin-left: 0;
74
+ }
75
+
76
+ .no-gutters > .col,
77
+ .no-gutters > [class*="col-"] {
78
+ padding-right: 0;
79
+ padding-left: 0;
80
+ }
81
+
82
+ .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
83
+ .col-auto, .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, .col-sm,
84
+ .col-sm-auto, .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, .col-md,
85
+ .col-md-auto, .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, .col-lg,
86
+ .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
87
+ .col-xl-auto {
88
+ position: relative;
89
+ width: 100%;
90
+ min-height: 1px;
91
+ padding-right: 15px;
92
+ padding-left: 15px;
93
+ }
94
+
95
+ .col {
96
+ -ms-flex-preferred-size: 0;
97
+ flex-basis: 0;
98
+ -ms-flex-positive: 1;
99
+ flex-grow: 1;
100
+ max-width: 100%;
101
+ }
102
+
103
+ .col-auto {
104
+ -ms-flex: 0 0 auto;
105
+ flex: 0 0 auto;
106
+ width: auto;
107
+ max-width: none;
108
+ }
109
+
110
+ .col-1 {
111
+ -ms-flex: 0 0 8.333333%;
112
+ flex: 0 0 8.333333%;
113
+ max-width: 8.333333%;
114
+ }
115
+
116
+ .col-2 {
117
+ -ms-flex: 0 0 16.666667%;
118
+ flex: 0 0 16.666667%;
119
+ max-width: 16.666667%;
120
+ }
121
+
122
+ .col-3 {
123
+ -ms-flex: 0 0 25%;
124
+ flex: 0 0 25%;
125
+ max-width: 25%;
126
+ }
127
+
128
+ .col-4 {
129
+ -ms-flex: 0 0 33.333333%;
130
+ flex: 0 0 33.333333%;
131
+ max-width: 33.333333%;
132
+ }
133
+
134
+ .col-5 {
135
+ -ms-flex: 0 0 41.666667%;
136
+ flex: 0 0 41.666667%;
137
+ max-width: 41.666667%;
138
+ }
139
+
140
+ .col-6 {
141
+ -ms-flex: 0 0 50%;
142
+ flex: 0 0 50%;
143
+ max-width: 50%;
144
+ }
145
+
146
+ .col-7 {
147
+ -ms-flex: 0 0 58.333333%;
148
+ flex: 0 0 58.333333%;
149
+ max-width: 58.333333%;
150
+ }
151
+
152
+ .col-8 {
153
+ -ms-flex: 0 0 66.666667%;
154
+ flex: 0 0 66.666667%;
155
+ max-width: 66.666667%;
156
+ }
157
+
158
+ .col-9 {
159
+ -ms-flex: 0 0 75%;
160
+ flex: 0 0 75%;
161
+ max-width: 75%;
162
+ }
163
+
164
+ .col-10 {
165
+ -ms-flex: 0 0 83.333333%;
166
+ flex: 0 0 83.333333%;
167
+ max-width: 83.333333%;
168
+ }
169
+
170
+ .col-11 {
171
+ -ms-flex: 0 0 91.666667%;
172
+ flex: 0 0 91.666667%;
173
+ max-width: 91.666667%;
174
+ }
175
+
176
+ .col-12 {
177
+ -ms-flex: 0 0 100%;
178
+ flex: 0 0 100%;
179
+ max-width: 100%;
180
+ }
181
+
182
+ .order-first {
183
+ -ms-flex-order: -1;
184
+ order: -1;
185
+ }
186
+
187
+ .order-last {
188
+ -ms-flex-order: 13;
189
+ order: 13;
190
+ }
191
+
192
+ .order-0 {
193
+ -ms-flex-order: 0;
194
+ order: 0;
195
+ }
196
+
197
+ .order-1 {
198
+ -ms-flex-order: 1;
199
+ order: 1;
200
+ }
201
+
202
+ .order-2 {
203
+ -ms-flex-order: 2;
204
+ order: 2;
205
+ }
206
+
207
+ .order-3 {
208
+ -ms-flex-order: 3;
209
+ order: 3;
210
+ }
211
+
212
+ .order-4 {
213
+ -ms-flex-order: 4;
214
+ order: 4;
215
+ }
216
+
217
+ .order-5 {
218
+ -ms-flex-order: 5;
219
+ order: 5;
220
+ }
221
+
222
+ .order-6 {
223
+ -ms-flex-order: 6;
224
+ order: 6;
225
+ }
226
+
227
+ .order-7 {
228
+ -ms-flex-order: 7;
229
+ order: 7;
230
+ }
231
+
232
+ .order-8 {
233
+ -ms-flex-order: 8;
234
+ order: 8;
235
+ }
236
+
237
+ .order-9 {
238
+ -ms-flex-order: 9;
239
+ order: 9;
240
+ }
241
+
242
+ .order-10 {
243
+ -ms-flex-order: 10;
244
+ order: 10;
245
+ }
246
+
247
+ .order-11 {
248
+ -ms-flex-order: 11;
249
+ order: 11;
250
+ }
251
+
252
+ .order-12 {
253
+ -ms-flex-order: 12;
254
+ order: 12;
255
+ }
256
+
257
+ .offset-1 {
258
+ margin-left: 8.333333%;
259
+ }
260
+
261
+ .offset-2 {
262
+ margin-left: 16.666667%;
263
+ }
264
+
265
+ .offset-3 {
266
+ margin-left: 25%;
267
+ }
268
+
269
+ .offset-4 {
270
+ margin-left: 33.333333%;
271
+ }
272
+
273
+ .offset-5 {
274
+ margin-left: 41.666667%;
275
+ }
276
+
277
+ .offset-6 {
278
+ margin-left: 50%;
279
+ }
280
+
281
+ .offset-7 {
282
+ margin-left: 58.333333%;
283
+ }
284
+
285
+ .offset-8 {
286
+ margin-left: 66.666667%;
287
+ }
288
+
289
+ .offset-9 {
290
+ margin-left: 75%;
291
+ }
292
+
293
+ .offset-10 {
294
+ margin-left: 83.333333%;
295
+ }
296
+
297
+ .offset-11 {
298
+ margin-left: 91.666667%;
299
+ }
300
+
301
+ @media (min-width: 576px) {
302
+ .col-sm {
303
+ -ms-flex-preferred-size: 0;
304
+ flex-basis: 0;
305
+ -ms-flex-positive: 1;
306
+ flex-grow: 1;
307
+ max-width: 100%;
308
+ }
309
+ .col-sm-auto {
310
+ -ms-flex: 0 0 auto;
311
+ flex: 0 0 auto;
312
+ width: auto;
313
+ max-width: none;
314
+ }
315
+ .col-sm-1 {
316
+ -ms-flex: 0 0 8.333333%;
317
+ flex: 0 0 8.333333%;
318
+ max-width: 8.333333%;
319
+ }
320
+ .col-sm-2 {
321
+ -ms-flex: 0 0 16.666667%;
322
+ flex: 0 0 16.666667%;
323
+ max-width: 16.666667%;
324
+ }
325
+ .col-sm-3 {
326
+ -ms-flex: 0 0 25%;
327
+ flex: 0 0 25%;
328
+ max-width: 25%;
329
+ }
330
+ .col-sm-4 {
331
+ -ms-flex: 0 0 33.333333%;
332
+ flex: 0 0 33.333333%;
333
+ max-width: 33.333333%;
334
+ }
335
+ .col-sm-5 {
336
+ -ms-flex: 0 0 41.666667%;
337
+ flex: 0 0 41.666667%;
338
+ max-width: 41.666667%;
339
+ }
340
+ .col-sm-6 {
341
+ -ms-flex: 0 0 50%;
342
+ flex: 0 0 50%;
343
+ max-width: 50%;
344
+ }
345
+ .col-sm-7 {
346
+ -ms-flex: 0 0 58.333333%;
347
+ flex: 0 0 58.333333%;
348
+ max-width: 58.333333%;
349
+ }
350
+ .col-sm-8 {
351
+ -ms-flex: 0 0 66.666667%;
352
+ flex: 0 0 66.666667%;
353
+ max-width: 66.666667%;
354
+ }
355
+ .col-sm-9 {
356
+ -ms-flex: 0 0 75%;
357
+ flex: 0 0 75%;
358
+ max-width: 75%;
359
+ }
360
+ .col-sm-10 {
361
+ -ms-flex: 0 0 83.333333%;
362
+ flex: 0 0 83.333333%;
363
+ max-width: 83.333333%;
364
+ }
365
+ .col-sm-11 {
366
+ -ms-flex: 0 0 91.666667%;
367
+ flex: 0 0 91.666667%;
368
+ max-width: 91.666667%;
369
+ }
370
+ .col-sm-12 {
371
+ -ms-flex: 0 0 100%;
372
+ flex: 0 0 100%;
373
+ max-width: 100%;
374
+ }
375
+ .order-sm-first {
376
+ -ms-flex-order: -1;
377
+ order: -1;
378
+ }
379
+ .order-sm-last {
380
+ -ms-flex-order: 13;
381
+ order: 13;
382
+ }
383
+ .order-sm-0 {
384
+ -ms-flex-order: 0;
385
+ order: 0;
386
+ }
387
+ .order-sm-1 {
388
+ -ms-flex-order: 1;
389
+ order: 1;
390
+ }
391
+ .order-sm-2 {
392
+ -ms-flex-order: 2;
393
+ order: 2;
394
+ }
395
+ .order-sm-3 {
396
+ -ms-flex-order: 3;
397
+ order: 3;
398
+ }
399
+ .order-sm-4 {
400
+ -ms-flex-order: 4;
401
+ order: 4;
402
+ }
403
+ .order-sm-5 {
404
+ -ms-flex-order: 5;
405
+ order: 5;
406
+ }
407
+ .order-sm-6 {
408
+ -ms-flex-order: 6;
409
+ order: 6;
410
+ }
411
+ .order-sm-7 {
412
+ -ms-flex-order: 7;
413
+ order: 7;
414
+ }
415
+ .order-sm-8 {
416
+ -ms-flex-order: 8;
417
+ order: 8;
418
+ }
419
+ .order-sm-9 {
420
+ -ms-flex-order: 9;
421
+ order: 9;
422
+ }
423
+ .order-sm-10 {
424
+ -ms-flex-order: 10;
425
+ order: 10;
426
+ }
427
+ .order-sm-11 {
428
+ -ms-flex-order: 11;
429
+ order: 11;
430
+ }
431
+ .order-sm-12 {
432
+ -ms-flex-order: 12;
433
+ order: 12;
434
+ }
435
+ .offset-sm-0 {
436
+ margin-left: 0;
437
+ }
438
+ .offset-sm-1 {
439
+ margin-left: 8.333333%;
440
+ }
441
+ .offset-sm-2 {
442
+ margin-left: 16.666667%;
443
+ }
444
+ .offset-sm-3 {
445
+ margin-left: 25%;
446
+ }
447
+ .offset-sm-4 {
448
+ margin-left: 33.333333%;
449
+ }
450
+ .offset-sm-5 {
451
+ margin-left: 41.666667%;
452
+ }
453
+ .offset-sm-6 {
454
+ margin-left: 50%;
455
+ }
456
+ .offset-sm-7 {
457
+ margin-left: 58.333333%;
458
+ }
459
+ .offset-sm-8 {
460
+ margin-left: 66.666667%;
461
+ }
462
+ .offset-sm-9 {
463
+ margin-left: 75%;
464
+ }
465
+ .offset-sm-10 {
466
+ margin-left: 83.333333%;
467
+ }
468
+ .offset-sm-11 {
469
+ margin-left: 91.666667%;
470
+ }
471
+ }
472
+
473
+ @media (min-width: 768px) {
474
+ .col-md {
475
+ -ms-flex-preferred-size: 0;
476
+ flex-basis: 0;
477
+ -ms-flex-positive: 1;
478
+ flex-grow: 1;
479
+ max-width: 100%;
480
+ }
481
+ .col-md-auto {
482
+ -ms-flex: 0 0 auto;
483
+ flex: 0 0 auto;
484
+ width: auto;
485
+ max-width: none;
486
+ }
487
+ .col-md-1 {
488
+ -ms-flex: 0 0 8.333333%;
489
+ flex: 0 0 8.333333%;
490
+ max-width: 8.333333%;
491
+ }
492
+ .col-md-2 {
493
+ -ms-flex: 0 0 16.666667%;
494
+ flex: 0 0 16.666667%;
495
+ max-width: 16.666667%;
496
+ }
497
+ .col-md-3 {
498
+ -ms-flex: 0 0 25%;
499
+ flex: 0 0 25%;
500
+ max-width: 25%;
501
+ }
502
+ .col-md-4 {
503
+ -ms-flex: 0 0 33.333333%;
504
+ flex: 0 0 33.333333%;
505
+ max-width: 33.333333%;
506
+ }
507
+ .col-md-5 {
508
+ -ms-flex: 0 0 41.666667%;
509
+ flex: 0 0 41.666667%;
510
+ max-width: 41.666667%;
511
+ }
512
+ .col-md-6 {
513
+ -ms-flex: 0 0 50%;
514
+ flex: 0 0 50%;
515
+ max-width: 50%;
516
+ }
517
+ .col-md-7 {
518
+ -ms-flex: 0 0 58.333333%;
519
+ flex: 0 0 58.333333%;
520
+ max-width: 58.333333%;
521
+ }
522
+ .col-md-8 {
523
+ -ms-flex: 0 0 66.666667%;
524
+ flex: 0 0 66.666667%;
525
+ max-width: 66.666667%;
526
+ }
527
+ .col-md-9 {
528
+ -ms-flex: 0 0 75%;
529
+ flex: 0 0 75%;
530
+ max-width: 75%;
531
+ }
532
+ .col-md-10 {
533
+ -ms-flex: 0 0 83.333333%;
534
+ flex: 0 0 83.333333%;
535
+ max-width: 83.333333%;
536
+ }
537
+ .col-md-11 {
538
+ -ms-flex: 0 0 91.666667%;
539
+ flex: 0 0 91.666667%;
540
+ max-width: 91.666667%;
541
+ }
542
+ .col-md-12 {
543
+ -ms-flex: 0 0 100%;
544
+ flex: 0 0 100%;
545
+ max-width: 100%;
546
+ }
547
+ .order-md-first {
548
+ -ms-flex-order: -1;
549
+ order: -1;
550
+ }
551
+ .order-md-last {
552
+ -ms-flex-order: 13;
553
+ order: 13;
554
+ }
555
+ .order-md-0 {
556
+ -ms-flex-order: 0;
557
+ order: 0;
558
+ }
559
+ .order-md-1 {
560
+ -ms-flex-order: 1;
561
+ order: 1;
562
+ }
563
+ .order-md-2 {
564
+ -ms-flex-order: 2;
565
+ order: 2;
566
+ }
567
+ .order-md-3 {
568
+ -ms-flex-order: 3;
569
+ order: 3;
570
+ }
571
+ .order-md-4 {
572
+ -ms-flex-order: 4;
573
+ order: 4;
574
+ }
575
+ .order-md-5 {
576
+ -ms-flex-order: 5;
577
+ order: 5;
578
+ }
579
+ .order-md-6 {
580
+ -ms-flex-order: 6;
581
+ order: 6;
582
+ }
583
+ .order-md-7 {
584
+ -ms-flex-order: 7;
585
+ order: 7;
586
+ }
587
+ .order-md-8 {
588
+ -ms-flex-order: 8;
589
+ order: 8;
590
+ }
591
+ .order-md-9 {
592
+ -ms-flex-order: 9;
593
+ order: 9;
594
+ }
595
+ .order-md-10 {
596
+ -ms-flex-order: 10;
597
+ order: 10;
598
+ }
599
+ .order-md-11 {
600
+ -ms-flex-order: 11;
601
+ order: 11;
602
+ }
603
+ .order-md-12 {
604
+ -ms-flex-order: 12;
605
+ order: 12;
606
+ }
607
+ .offset-md-0 {
608
+ margin-left: 0;
609
+ }
610
+ .offset-md-1 {
611
+ margin-left: 8.333333%;
612
+ }
613
+ .offset-md-2 {
614
+ margin-left: 16.666667%;
615
+ }
616
+ .offset-md-3 {
617
+ margin-left: 25%;
618
+ }
619
+ .offset-md-4 {
620
+ margin-left: 33.333333%;
621
+ }
622
+ .offset-md-5 {
623
+ margin-left: 41.666667%;
624
+ }
625
+ .offset-md-6 {
626
+ margin-left: 50%;
627
+ }
628
+ .offset-md-7 {
629
+ margin-left: 58.333333%;
630
+ }
631
+ .offset-md-8 {
632
+ margin-left: 66.666667%;
633
+ }
634
+ .offset-md-9 {
635
+ margin-left: 75%;
636
+ }
637
+ .offset-md-10 {
638
+ margin-left: 83.333333%;
639
+ }
640
+ .offset-md-11 {
641
+ margin-left: 91.666667%;
642
+ }
643
+ }
644
+
645
+ @media (min-width: 992px) {
646
+ .col-lg {
647
+ -ms-flex-preferred-size: 0;
648
+ flex-basis: 0;
649
+ -ms-flex-positive: 1;
650
+ flex-grow: 1;
651
+ max-width: 100%;
652
+ }
653
+ .col-lg-auto {
654
+ -ms-flex: 0 0 auto;
655
+ flex: 0 0 auto;
656
+ width: auto;
657
+ max-width: none;
658
+ }
659
+ .col-lg-1 {
660
+ -ms-flex: 0 0 8.333333%;
661
+ flex: 0 0 8.333333%;
662
+ max-width: 8.333333%;
663
+ }
664
+ .col-lg-2 {
665
+ -ms-flex: 0 0 16.666667%;
666
+ flex: 0 0 16.666667%;
667
+ max-width: 16.666667%;
668
+ }
669
+ .col-lg-3 {
670
+ -ms-flex: 0 0 25%;
671
+ flex: 0 0 25%;
672
+ max-width: 25%;
673
+ }
674
+ .col-lg-4 {
675
+ -ms-flex: 0 0 33.333333%;
676
+ flex: 0 0 33.333333%;
677
+ max-width: 33.333333%;
678
+ }
679
+ .col-lg-5 {
680
+ -ms-flex: 0 0 41.666667%;
681
+ flex: 0 0 41.666667%;
682
+ max-width: 41.666667%;
683
+ }
684
+ .col-lg-6 {
685
+ -ms-flex: 0 0 50%;
686
+ flex: 0 0 50%;
687
+ max-width: 50%;
688
+ }
689
+ .col-lg-7 {
690
+ -ms-flex: 0 0 58.333333%;
691
+ flex: 0 0 58.333333%;
692
+ max-width: 58.333333%;
693
+ }
694
+ .col-lg-8 {
695
+ -ms-flex: 0 0 66.666667%;
696
+ flex: 0 0 66.666667%;
697
+ max-width: 66.666667%;
698
+ }
699
+ .col-lg-9 {
700
+ -ms-flex: 0 0 75%;
701
+ flex: 0 0 75%;
702
+ max-width: 75%;
703
+ }
704
+ .col-lg-10 {
705
+ -ms-flex: 0 0 83.333333%;
706
+ flex: 0 0 83.333333%;
707
+ max-width: 83.333333%;
708
+ }
709
+ .col-lg-11 {
710
+ -ms-flex: 0 0 91.666667%;
711
+ flex: 0 0 91.666667%;
712
+ max-width: 91.666667%;
713
+ }
714
+ .col-lg-12 {
715
+ -ms-flex: 0 0 100%;
716
+ flex: 0 0 100%;
717
+ max-width: 100%;
718
+ }
719
+ .order-lg-first {
720
+ -ms-flex-order: -1;
721
+ order: -1;
722
+ }
723
+ .order-lg-last {
724
+ -ms-flex-order: 13;
725
+ order: 13;
726
+ }
727
+ .order-lg-0 {
728
+ -ms-flex-order: 0;
729
+ order: 0;
730
+ }
731
+ .order-lg-1 {
732
+ -ms-flex-order: 1;
733
+ order: 1;
734
+ }
735
+ .order-lg-2 {
736
+ -ms-flex-order: 2;
737
+ order: 2;
738
+ }
739
+ .order-lg-3 {
740
+ -ms-flex-order: 3;
741
+ order: 3;
742
+ }
743
+ .order-lg-4 {
744
+ -ms-flex-order: 4;
745
+ order: 4;
746
+ }
747
+ .order-lg-5 {
748
+ -ms-flex-order: 5;
749
+ order: 5;
750
+ }
751
+ .order-lg-6 {
752
+ -ms-flex-order: 6;
753
+ order: 6;
754
+ }
755
+ .order-lg-7 {
756
+ -ms-flex-order: 7;
757
+ order: 7;
758
+ }
759
+ .order-lg-8 {
760
+ -ms-flex-order: 8;
761
+ order: 8;
762
+ }
763
+ .order-lg-9 {
764
+ -ms-flex-order: 9;
765
+ order: 9;
766
+ }
767
+ .order-lg-10 {
768
+ -ms-flex-order: 10;
769
+ order: 10;
770
+ }
771
+ .order-lg-11 {
772
+ -ms-flex-order: 11;
773
+ order: 11;
774
+ }
775
+ .order-lg-12 {
776
+ -ms-flex-order: 12;
777
+ order: 12;
778
+ }
779
+ .offset-lg-0 {
780
+ margin-left: 0;
781
+ }
782
+ .offset-lg-1 {
783
+ margin-left: 8.333333%;
784
+ }
785
+ .offset-lg-2 {
786
+ margin-left: 16.666667%;
787
+ }
788
+ .offset-lg-3 {
789
+ margin-left: 25%;
790
+ }
791
+ .offset-lg-4 {
792
+ margin-left: 33.333333%;
793
+ }
794
+ .offset-lg-5 {
795
+ margin-left: 41.666667%;
796
+ }
797
+ .offset-lg-6 {
798
+ margin-left: 50%;
799
+ }
800
+ .offset-lg-7 {
801
+ margin-left: 58.333333%;
802
+ }
803
+ .offset-lg-8 {
804
+ margin-left: 66.666667%;
805
+ }
806
+ .offset-lg-9 {
807
+ margin-left: 75%;
808
+ }
809
+ .offset-lg-10 {
810
+ margin-left: 83.333333%;
811
+ }
812
+ .offset-lg-11 {
813
+ margin-left: 91.666667%;
814
+ }
815
+ }
816
+
817
+ @media (min-width: 1200px) {
818
+ .col-xl {
819
+ -ms-flex-preferred-size: 0;
820
+ flex-basis: 0;
821
+ -ms-flex-positive: 1;
822
+ flex-grow: 1;
823
+ max-width: 100%;
824
+ }
825
+ .col-xl-auto {
826
+ -ms-flex: 0 0 auto;
827
+ flex: 0 0 auto;
828
+ width: auto;
829
+ max-width: none;
830
+ }
831
+ .col-xl-1 {
832
+ -ms-flex: 0 0 8.333333%;
833
+ flex: 0 0 8.333333%;
834
+ max-width: 8.333333%;
835
+ }
836
+ .col-xl-2 {
837
+ -ms-flex: 0 0 16.666667%;
838
+ flex: 0 0 16.666667%;
839
+ max-width: 16.666667%;
840
+ }
841
+ .col-xl-3 {
842
+ -ms-flex: 0 0 25%;
843
+ flex: 0 0 25%;
844
+ max-width: 25%;
845
+ }
846
+ .col-xl-4 {
847
+ -ms-flex: 0 0 33.333333%;
848
+ flex: 0 0 33.333333%;
849
+ max-width: 33.333333%;
850
+ }
851
+ .col-xl-5 {
852
+ -ms-flex: 0 0 41.666667%;
853
+ flex: 0 0 41.666667%;
854
+ max-width: 41.666667%;
855
+ }
856
+ .col-xl-6 {
857
+ -ms-flex: 0 0 50%;
858
+ flex: 0 0 50%;
859
+ max-width: 50%;
860
+ }
861
+ .col-xl-7 {
862
+ -ms-flex: 0 0 58.333333%;
863
+ flex: 0 0 58.333333%;
864
+ max-width: 58.333333%;
865
+ }
866
+ .col-xl-8 {
867
+ -ms-flex: 0 0 66.666667%;
868
+ flex: 0 0 66.666667%;
869
+ max-width: 66.666667%;
870
+ }
871
+ .col-xl-9 {
872
+ -ms-flex: 0 0 75%;
873
+ flex: 0 0 75%;
874
+ max-width: 75%;
875
+ }
876
+ .col-xl-10 {
877
+ -ms-flex: 0 0 83.333333%;
878
+ flex: 0 0 83.333333%;
879
+ max-width: 83.333333%;
880
+ }
881
+ .col-xl-11 {
882
+ -ms-flex: 0 0 91.666667%;
883
+ flex: 0 0 91.666667%;
884
+ max-width: 91.666667%;
885
+ }
886
+ .col-xl-12 {
887
+ -ms-flex: 0 0 100%;
888
+ flex: 0 0 100%;
889
+ max-width: 100%;
890
+ }
891
+ .order-xl-first {
892
+ -ms-flex-order: -1;
893
+ order: -1;
894
+ }
895
+ .order-xl-last {
896
+ -ms-flex-order: 13;
897
+ order: 13;
898
+ }
899
+ .order-xl-0 {
900
+ -ms-flex-order: 0;
901
+ order: 0;
902
+ }
903
+ .order-xl-1 {
904
+ -ms-flex-order: 1;
905
+ order: 1;
906
+ }
907
+ .order-xl-2 {
908
+ -ms-flex-order: 2;
909
+ order: 2;
910
+ }
911
+ .order-xl-3 {
912
+ -ms-flex-order: 3;
913
+ order: 3;
914
+ }
915
+ .order-xl-4 {
916
+ -ms-flex-order: 4;
917
+ order: 4;
918
+ }
919
+ .order-xl-5 {
920
+ -ms-flex-order: 5;
921
+ order: 5;
922
+ }
923
+ .order-xl-6 {
924
+ -ms-flex-order: 6;
925
+ order: 6;
926
+ }
927
+ .order-xl-7 {
928
+ -ms-flex-order: 7;
929
+ order: 7;
930
+ }
931
+ .order-xl-8 {
932
+ -ms-flex-order: 8;
933
+ order: 8;
934
+ }
935
+ .order-xl-9 {
936
+ -ms-flex-order: 9;
937
+ order: 9;
938
+ }
939
+ .order-xl-10 {
940
+ -ms-flex-order: 10;
941
+ order: 10;
942
+ }
943
+ .order-xl-11 {
944
+ -ms-flex-order: 11;
945
+ order: 11;
946
+ }
947
+ .order-xl-12 {
948
+ -ms-flex-order: 12;
949
+ order: 12;
950
+ }
951
+ .offset-xl-0 {
952
+ margin-left: 0;
953
+ }
954
+ .offset-xl-1 {
955
+ margin-left: 8.333333%;
956
+ }
957
+ .offset-xl-2 {
958
+ margin-left: 16.666667%;
959
+ }
960
+ .offset-xl-3 {
961
+ margin-left: 25%;
962
+ }
963
+ .offset-xl-4 {
964
+ margin-left: 33.333333%;
965
+ }
966
+ .offset-xl-5 {
967
+ margin-left: 41.666667%;
968
+ }
969
+ .offset-xl-6 {
970
+ margin-left: 50%;
971
+ }
972
+ .offset-xl-7 {
973
+ margin-left: 58.333333%;
974
+ }
975
+ .offset-xl-8 {
976
+ margin-left: 66.666667%;
977
+ }
978
+ .offset-xl-9 {
979
+ margin-left: 75%;
980
+ }
981
+ .offset-xl-10 {
982
+ margin-left: 83.333333%;
983
+ }
984
+ .offset-xl-11 {
985
+ margin-left: 91.666667%;
986
+ }
987
+ }
988
+
989
+ .d-none {
990
+ display: none !important;
991
+ }
992
+
993
+ .d-inline {
994
+ display: inline !important;
995
+ }
996
+
997
+ .d-inline-block {
998
+ display: inline-block !important;
999
+ }
1000
+
1001
+ .d-block {
1002
+ display: block !important;
1003
+ }
1004
+
1005
+ .d-table {
1006
+ display: table !important;
1007
+ }
1008
+
1009
+ .d-table-row {
1010
+ display: table-row !important;
1011
+ }
1012
+
1013
+ .d-table-cell {
1014
+ display: table-cell !important;
1015
+ }
1016
+
1017
+ .d-flex {
1018
+ display: -ms-flexbox !important;
1019
+ display: flex !important;
1020
+ }
1021
+
1022
+ .d-inline-flex {
1023
+ display: -ms-inline-flexbox !important;
1024
+ display: inline-flex !important;
1025
+ }
1026
+
1027
+ @media (min-width: 576px) {
1028
+ .d-sm-none {
1029
+ display: none !important;
1030
+ }
1031
+ .d-sm-inline {
1032
+ display: inline !important;
1033
+ }
1034
+ .d-sm-inline-block {
1035
+ display: inline-block !important;
1036
+ }
1037
+ .d-sm-block {
1038
+ display: block !important;
1039
+ }
1040
+ .d-sm-table {
1041
+ display: table !important;
1042
+ }
1043
+ .d-sm-table-row {
1044
+ display: table-row !important;
1045
+ }
1046
+ .d-sm-table-cell {
1047
+ display: table-cell !important;
1048
+ }
1049
+ .d-sm-flex {
1050
+ display: -ms-flexbox !important;
1051
+ display: flex !important;
1052
+ }
1053
+ .d-sm-inline-flex {
1054
+ display: -ms-inline-flexbox !important;
1055
+ display: inline-flex !important;
1056
+ }
1057
+ }
1058
+
1059
+ @media (min-width: 768px) {
1060
+ .d-md-none {
1061
+ display: none !important;
1062
+ }
1063
+ .d-md-inline {
1064
+ display: inline !important;
1065
+ }
1066
+ .d-md-inline-block {
1067
+ display: inline-block !important;
1068
+ }
1069
+ .d-md-block {
1070
+ display: block !important;
1071
+ }
1072
+ .d-md-table {
1073
+ display: table !important;
1074
+ }
1075
+ .d-md-table-row {
1076
+ display: table-row !important;
1077
+ }
1078
+ .d-md-table-cell {
1079
+ display: table-cell !important;
1080
+ }
1081
+ .d-md-flex {
1082
+ display: -ms-flexbox !important;
1083
+ display: flex !important;
1084
+ }
1085
+ .d-md-inline-flex {
1086
+ display: -ms-inline-flexbox !important;
1087
+ display: inline-flex !important;
1088
+ }
1089
+ }
1090
+
1091
+ @media (min-width: 992px) {
1092
+ .d-lg-none {
1093
+ display: none !important;
1094
+ }
1095
+ .d-lg-inline {
1096
+ display: inline !important;
1097
+ }
1098
+ .d-lg-inline-block {
1099
+ display: inline-block !important;
1100
+ }
1101
+ .d-lg-block {
1102
+ display: block !important;
1103
+ }
1104
+ .d-lg-table {
1105
+ display: table !important;
1106
+ }
1107
+ .d-lg-table-row {
1108
+ display: table-row !important;
1109
+ }
1110
+ .d-lg-table-cell {
1111
+ display: table-cell !important;
1112
+ }
1113
+ .d-lg-flex {
1114
+ display: -ms-flexbox !important;
1115
+ display: flex !important;
1116
+ }
1117
+ .d-lg-inline-flex {
1118
+ display: -ms-inline-flexbox !important;
1119
+ display: inline-flex !important;
1120
+ }
1121
+ }
1122
+
1123
+ @media (min-width: 1200px) {
1124
+ .d-xl-none {
1125
+ display: none !important;
1126
+ }
1127
+ .d-xl-inline {
1128
+ display: inline !important;
1129
+ }
1130
+ .d-xl-inline-block {
1131
+ display: inline-block !important;
1132
+ }
1133
+ .d-xl-block {
1134
+ display: block !important;
1135
+ }
1136
+ .d-xl-table {
1137
+ display: table !important;
1138
+ }
1139
+ .d-xl-table-row {
1140
+ display: table-row !important;
1141
+ }
1142
+ .d-xl-table-cell {
1143
+ display: table-cell !important;
1144
+ }
1145
+ .d-xl-flex {
1146
+ display: -ms-flexbox !important;
1147
+ display: flex !important;
1148
+ }
1149
+ .d-xl-inline-flex {
1150
+ display: -ms-inline-flexbox !important;
1151
+ display: inline-flex !important;
1152
+ }
1153
+ }
1154
+
1155
+ @media print {
1156
+ .d-print-none {
1157
+ display: none !important;
1158
+ }
1159
+ .d-print-inline {
1160
+ display: inline !important;
1161
+ }
1162
+ .d-print-inline-block {
1163
+ display: inline-block !important;
1164
+ }
1165
+ .d-print-block {
1166
+ display: block !important;
1167
+ }
1168
+ .d-print-table {
1169
+ display: table !important;
1170
+ }
1171
+ .d-print-table-row {
1172
+ display: table-row !important;
1173
+ }
1174
+ .d-print-table-cell {
1175
+ display: table-cell !important;
1176
+ }
1177
+ .d-print-flex {
1178
+ display: -ms-flexbox !important;
1179
+ display: flex !important;
1180
+ }
1181
+ .d-print-inline-flex {
1182
+ display: -ms-inline-flexbox !important;
1183
+ display: inline-flex !important;
1184
+ }
1185
+ }
1186
+
1187
+ .flex-row {
1188
+ -ms-flex-direction: row !important;
1189
+ flex-direction: row !important;
1190
+ }
1191
+
1192
+ .flex-column {
1193
+ -ms-flex-direction: column !important;
1194
+ flex-direction: column !important;
1195
+ }
1196
+
1197
+ .flex-row-reverse {
1198
+ -ms-flex-direction: row-reverse !important;
1199
+ flex-direction: row-reverse !important;
1200
+ }
1201
+
1202
+ .flex-column-reverse {
1203
+ -ms-flex-direction: column-reverse !important;
1204
+ flex-direction: column-reverse !important;
1205
+ }
1206
+
1207
+ .flex-wrap {
1208
+ -ms-flex-wrap: wrap !important;
1209
+ flex-wrap: wrap !important;
1210
+ }
1211
+
1212
+ .flex-nowrap {
1213
+ -ms-flex-wrap: nowrap !important;
1214
+ flex-wrap: nowrap !important;
1215
+ }
1216
+
1217
+ .flex-wrap-reverse {
1218
+ -ms-flex-wrap: wrap-reverse !important;
1219
+ flex-wrap: wrap-reverse !important;
1220
+ }
1221
+
1222
+ .flex-fill {
1223
+ -ms-flex: 1 1 auto !important;
1224
+ flex: 1 1 auto !important;
1225
+ }
1226
+
1227
+ .flex-grow-0 {
1228
+ -ms-flex-positive: 0 !important;
1229
+ flex-grow: 0 !important;
1230
+ }
1231
+
1232
+ .flex-grow-1 {
1233
+ -ms-flex-positive: 1 !important;
1234
+ flex-grow: 1 !important;
1235
+ }
1236
+
1237
+ .flex-shrink-0 {
1238
+ -ms-flex-negative: 0 !important;
1239
+ flex-shrink: 0 !important;
1240
+ }
1241
+
1242
+ .flex-shrink-1 {
1243
+ -ms-flex-negative: 1 !important;
1244
+ flex-shrink: 1 !important;
1245
+ }
1246
+
1247
+ .justify-content-start {
1248
+ -ms-flex-pack: start !important;
1249
+ justify-content: flex-start !important;
1250
+ }
1251
+
1252
+ .justify-content-end {
1253
+ -ms-flex-pack: end !important;
1254
+ justify-content: flex-end !important;
1255
+ }
1256
+
1257
+ .justify-content-center {
1258
+ -ms-flex-pack: center !important;
1259
+ justify-content: center !important;
1260
+ }
1261
+
1262
+ .justify-content-between {
1263
+ -ms-flex-pack: justify !important;
1264
+ justify-content: space-between !important;
1265
+ }
1266
+
1267
+ .justify-content-around {
1268
+ -ms-flex-pack: distribute !important;
1269
+ justify-content: space-around !important;
1270
+ }
1271
+
1272
+ .align-items-start {
1273
+ -ms-flex-align: start !important;
1274
+ align-items: flex-start !important;
1275
+ }
1276
+
1277
+ .align-items-end {
1278
+ -ms-flex-align: end !important;
1279
+ align-items: flex-end !important;
1280
+ }
1281
+
1282
+ .align-items-center {
1283
+ -ms-flex-align: center !important;
1284
+ align-items: center !important;
1285
+ }
1286
+
1287
+ .align-items-baseline {
1288
+ -ms-flex-align: baseline !important;
1289
+ align-items: baseline !important;
1290
+ }
1291
+
1292
+ .align-items-stretch {
1293
+ -ms-flex-align: stretch !important;
1294
+ align-items: stretch !important;
1295
+ }
1296
+
1297
+ .align-content-start {
1298
+ -ms-flex-line-pack: start !important;
1299
+ align-content: flex-start !important;
1300
+ }
1301
+
1302
+ .align-content-end {
1303
+ -ms-flex-line-pack: end !important;
1304
+ align-content: flex-end !important;
1305
+ }
1306
+
1307
+ .align-content-center {
1308
+ -ms-flex-line-pack: center !important;
1309
+ align-content: center !important;
1310
+ }
1311
+
1312
+ .align-content-between {
1313
+ -ms-flex-line-pack: justify !important;
1314
+ align-content: space-between !important;
1315
+ }
1316
+
1317
+ .align-content-around {
1318
+ -ms-flex-line-pack: distribute !important;
1319
+ align-content: space-around !important;
1320
+ }
1321
+
1322
+ .align-content-stretch {
1323
+ -ms-flex-line-pack: stretch !important;
1324
+ align-content: stretch !important;
1325
+ }
1326
+
1327
+ .align-self-auto {
1328
+ -ms-flex-item-align: auto !important;
1329
+ align-self: auto !important;
1330
+ }
1331
+
1332
+ .align-self-start {
1333
+ -ms-flex-item-align: start !important;
1334
+ align-self: flex-start !important;
1335
+ }
1336
+
1337
+ .align-self-end {
1338
+ -ms-flex-item-align: end !important;
1339
+ align-self: flex-end !important;
1340
+ }
1341
+
1342
+ .align-self-center {
1343
+ -ms-flex-item-align: center !important;
1344
+ align-self: center !important;
1345
+ }
1346
+
1347
+ .align-self-baseline {
1348
+ -ms-flex-item-align: baseline !important;
1349
+ align-self: baseline !important;
1350
+ }
1351
+
1352
+ .align-self-stretch {
1353
+ -ms-flex-item-align: stretch !important;
1354
+ align-self: stretch !important;
1355
+ }
1356
+
1357
+ @media (min-width: 576px) {
1358
+ .flex-sm-row {
1359
+ -ms-flex-direction: row !important;
1360
+ flex-direction: row !important;
1361
+ }
1362
+ .flex-sm-column {
1363
+ -ms-flex-direction: column !important;
1364
+ flex-direction: column !important;
1365
+ }
1366
+ .flex-sm-row-reverse {
1367
+ -ms-flex-direction: row-reverse !important;
1368
+ flex-direction: row-reverse !important;
1369
+ }
1370
+ .flex-sm-column-reverse {
1371
+ -ms-flex-direction: column-reverse !important;
1372
+ flex-direction: column-reverse !important;
1373
+ }
1374
+ .flex-sm-wrap {
1375
+ -ms-flex-wrap: wrap !important;
1376
+ flex-wrap: wrap !important;
1377
+ }
1378
+ .flex-sm-nowrap {
1379
+ -ms-flex-wrap: nowrap !important;
1380
+ flex-wrap: nowrap !important;
1381
+ }
1382
+ .flex-sm-wrap-reverse {
1383
+ -ms-flex-wrap: wrap-reverse !important;
1384
+ flex-wrap: wrap-reverse !important;
1385
+ }
1386
+ .flex-sm-fill {
1387
+ -ms-flex: 1 1 auto !important;
1388
+ flex: 1 1 auto !important;
1389
+ }
1390
+ .flex-sm-grow-0 {
1391
+ -ms-flex-positive: 0 !important;
1392
+ flex-grow: 0 !important;
1393
+ }
1394
+ .flex-sm-grow-1 {
1395
+ -ms-flex-positive: 1 !important;
1396
+ flex-grow: 1 !important;
1397
+ }
1398
+ .flex-sm-shrink-0 {
1399
+ -ms-flex-negative: 0 !important;
1400
+ flex-shrink: 0 !important;
1401
+ }
1402
+ .flex-sm-shrink-1 {
1403
+ -ms-flex-negative: 1 !important;
1404
+ flex-shrink: 1 !important;
1405
+ }
1406
+ .justify-content-sm-start {
1407
+ -ms-flex-pack: start !important;
1408
+ justify-content: flex-start !important;
1409
+ }
1410
+ .justify-content-sm-end {
1411
+ -ms-flex-pack: end !important;
1412
+ justify-content: flex-end !important;
1413
+ }
1414
+ .justify-content-sm-center {
1415
+ -ms-flex-pack: center !important;
1416
+ justify-content: center !important;
1417
+ }
1418
+ .justify-content-sm-between {
1419
+ -ms-flex-pack: justify !important;
1420
+ justify-content: space-between !important;
1421
+ }
1422
+ .justify-content-sm-around {
1423
+ -ms-flex-pack: distribute !important;
1424
+ justify-content: space-around !important;
1425
+ }
1426
+ .align-items-sm-start {
1427
+ -ms-flex-align: start !important;
1428
+ align-items: flex-start !important;
1429
+ }
1430
+ .align-items-sm-end {
1431
+ -ms-flex-align: end !important;
1432
+ align-items: flex-end !important;
1433
+ }
1434
+ .align-items-sm-center {
1435
+ -ms-flex-align: center !important;
1436
+ align-items: center !important;
1437
+ }
1438
+ .align-items-sm-baseline {
1439
+ -ms-flex-align: baseline !important;
1440
+ align-items: baseline !important;
1441
+ }
1442
+ .align-items-sm-stretch {
1443
+ -ms-flex-align: stretch !important;
1444
+ align-items: stretch !important;
1445
+ }
1446
+ .align-content-sm-start {
1447
+ -ms-flex-line-pack: start !important;
1448
+ align-content: flex-start !important;
1449
+ }
1450
+ .align-content-sm-end {
1451
+ -ms-flex-line-pack: end !important;
1452
+ align-content: flex-end !important;
1453
+ }
1454
+ .align-content-sm-center {
1455
+ -ms-flex-line-pack: center !important;
1456
+ align-content: center !important;
1457
+ }
1458
+ .align-content-sm-between {
1459
+ -ms-flex-line-pack: justify !important;
1460
+ align-content: space-between !important;
1461
+ }
1462
+ .align-content-sm-around {
1463
+ -ms-flex-line-pack: distribute !important;
1464
+ align-content: space-around !important;
1465
+ }
1466
+ .align-content-sm-stretch {
1467
+ -ms-flex-line-pack: stretch !important;
1468
+ align-content: stretch !important;
1469
+ }
1470
+ .align-self-sm-auto {
1471
+ -ms-flex-item-align: auto !important;
1472
+ align-self: auto !important;
1473
+ }
1474
+ .align-self-sm-start {
1475
+ -ms-flex-item-align: start !important;
1476
+ align-self: flex-start !important;
1477
+ }
1478
+ .align-self-sm-end {
1479
+ -ms-flex-item-align: end !important;
1480
+ align-self: flex-end !important;
1481
+ }
1482
+ .align-self-sm-center {
1483
+ -ms-flex-item-align: center !important;
1484
+ align-self: center !important;
1485
+ }
1486
+ .align-self-sm-baseline {
1487
+ -ms-flex-item-align: baseline !important;
1488
+ align-self: baseline !important;
1489
+ }
1490
+ .align-self-sm-stretch {
1491
+ -ms-flex-item-align: stretch !important;
1492
+ align-self: stretch !important;
1493
+ }
1494
+ }
1495
+
1496
+ @media (min-width: 768px) {
1497
+ .flex-md-row {
1498
+ -ms-flex-direction: row !important;
1499
+ flex-direction: row !important;
1500
+ }
1501
+ .flex-md-column {
1502
+ -ms-flex-direction: column !important;
1503
+ flex-direction: column !important;
1504
+ }
1505
+ .flex-md-row-reverse {
1506
+ -ms-flex-direction: row-reverse !important;
1507
+ flex-direction: row-reverse !important;
1508
+ }
1509
+ .flex-md-column-reverse {
1510
+ -ms-flex-direction: column-reverse !important;
1511
+ flex-direction: column-reverse !important;
1512
+ }
1513
+ .flex-md-wrap {
1514
+ -ms-flex-wrap: wrap !important;
1515
+ flex-wrap: wrap !important;
1516
+ }
1517
+ .flex-md-nowrap {
1518
+ -ms-flex-wrap: nowrap !important;
1519
+ flex-wrap: nowrap !important;
1520
+ }
1521
+ .flex-md-wrap-reverse {
1522
+ -ms-flex-wrap: wrap-reverse !important;
1523
+ flex-wrap: wrap-reverse !important;
1524
+ }
1525
+ .flex-md-fill {
1526
+ -ms-flex: 1 1 auto !important;
1527
+ flex: 1 1 auto !important;
1528
+ }
1529
+ .flex-md-grow-0 {
1530
+ -ms-flex-positive: 0 !important;
1531
+ flex-grow: 0 !important;
1532
+ }
1533
+ .flex-md-grow-1 {
1534
+ -ms-flex-positive: 1 !important;
1535
+ flex-grow: 1 !important;
1536
+ }
1537
+ .flex-md-shrink-0 {
1538
+ -ms-flex-negative: 0 !important;
1539
+ flex-shrink: 0 !important;
1540
+ }
1541
+ .flex-md-shrink-1 {
1542
+ -ms-flex-negative: 1 !important;
1543
+ flex-shrink: 1 !important;
1544
+ }
1545
+ .justify-content-md-start {
1546
+ -ms-flex-pack: start !important;
1547
+ justify-content: flex-start !important;
1548
+ }
1549
+ .justify-content-md-end {
1550
+ -ms-flex-pack: end !important;
1551
+ justify-content: flex-end !important;
1552
+ }
1553
+ .justify-content-md-center {
1554
+ -ms-flex-pack: center !important;
1555
+ justify-content: center !important;
1556
+ }
1557
+ .justify-content-md-between {
1558
+ -ms-flex-pack: justify !important;
1559
+ justify-content: space-between !important;
1560
+ }
1561
+ .justify-content-md-around {
1562
+ -ms-flex-pack: distribute !important;
1563
+ justify-content: space-around !important;
1564
+ }
1565
+ .align-items-md-start {
1566
+ -ms-flex-align: start !important;
1567
+ align-items: flex-start !important;
1568
+ }
1569
+ .align-items-md-end {
1570
+ -ms-flex-align: end !important;
1571
+ align-items: flex-end !important;
1572
+ }
1573
+ .align-items-md-center {
1574
+ -ms-flex-align: center !important;
1575
+ align-items: center !important;
1576
+ }
1577
+ .align-items-md-baseline {
1578
+ -ms-flex-align: baseline !important;
1579
+ align-items: baseline !important;
1580
+ }
1581
+ .align-items-md-stretch {
1582
+ -ms-flex-align: stretch !important;
1583
+ align-items: stretch !important;
1584
+ }
1585
+ .align-content-md-start {
1586
+ -ms-flex-line-pack: start !important;
1587
+ align-content: flex-start !important;
1588
+ }
1589
+ .align-content-md-end {
1590
+ -ms-flex-line-pack: end !important;
1591
+ align-content: flex-end !important;
1592
+ }
1593
+ .align-content-md-center {
1594
+ -ms-flex-line-pack: center !important;
1595
+ align-content: center !important;
1596
+ }
1597
+ .align-content-md-between {
1598
+ -ms-flex-line-pack: justify !important;
1599
+ align-content: space-between !important;
1600
+ }
1601
+ .align-content-md-around {
1602
+ -ms-flex-line-pack: distribute !important;
1603
+ align-content: space-around !important;
1604
+ }
1605
+ .align-content-md-stretch {
1606
+ -ms-flex-line-pack: stretch !important;
1607
+ align-content: stretch !important;
1608
+ }
1609
+ .align-self-md-auto {
1610
+ -ms-flex-item-align: auto !important;
1611
+ align-self: auto !important;
1612
+ }
1613
+ .align-self-md-start {
1614
+ -ms-flex-item-align: start !important;
1615
+ align-self: flex-start !important;
1616
+ }
1617
+ .align-self-md-end {
1618
+ -ms-flex-item-align: end !important;
1619
+ align-self: flex-end !important;
1620
+ }
1621
+ .align-self-md-center {
1622
+ -ms-flex-item-align: center !important;
1623
+ align-self: center !important;
1624
+ }
1625
+ .align-self-md-baseline {
1626
+ -ms-flex-item-align: baseline !important;
1627
+ align-self: baseline !important;
1628
+ }
1629
+ .align-self-md-stretch {
1630
+ -ms-flex-item-align: stretch !important;
1631
+ align-self: stretch !important;
1632
+ }
1633
+ }
1634
+
1635
+ @media (min-width: 992px) {
1636
+ .flex-lg-row {
1637
+ -ms-flex-direction: row !important;
1638
+ flex-direction: row !important;
1639
+ }
1640
+ .flex-lg-column {
1641
+ -ms-flex-direction: column !important;
1642
+ flex-direction: column !important;
1643
+ }
1644
+ .flex-lg-row-reverse {
1645
+ -ms-flex-direction: row-reverse !important;
1646
+ flex-direction: row-reverse !important;
1647
+ }
1648
+ .flex-lg-column-reverse {
1649
+ -ms-flex-direction: column-reverse !important;
1650
+ flex-direction: column-reverse !important;
1651
+ }
1652
+ .flex-lg-wrap {
1653
+ -ms-flex-wrap: wrap !important;
1654
+ flex-wrap: wrap !important;
1655
+ }
1656
+ .flex-lg-nowrap {
1657
+ -ms-flex-wrap: nowrap !important;
1658
+ flex-wrap: nowrap !important;
1659
+ }
1660
+ .flex-lg-wrap-reverse {
1661
+ -ms-flex-wrap: wrap-reverse !important;
1662
+ flex-wrap: wrap-reverse !important;
1663
+ }
1664
+ .flex-lg-fill {
1665
+ -ms-flex: 1 1 auto !important;
1666
+ flex: 1 1 auto !important;
1667
+ }
1668
+ .flex-lg-grow-0 {
1669
+ -ms-flex-positive: 0 !important;
1670
+ flex-grow: 0 !important;
1671
+ }
1672
+ .flex-lg-grow-1 {
1673
+ -ms-flex-positive: 1 !important;
1674
+ flex-grow: 1 !important;
1675
+ }
1676
+ .flex-lg-shrink-0 {
1677
+ -ms-flex-negative: 0 !important;
1678
+ flex-shrink: 0 !important;
1679
+ }
1680
+ .flex-lg-shrink-1 {
1681
+ -ms-flex-negative: 1 !important;
1682
+ flex-shrink: 1 !important;
1683
+ }
1684
+ .justify-content-lg-start {
1685
+ -ms-flex-pack: start !important;
1686
+ justify-content: flex-start !important;
1687
+ }
1688
+ .justify-content-lg-end {
1689
+ -ms-flex-pack: end !important;
1690
+ justify-content: flex-end !important;
1691
+ }
1692
+ .justify-content-lg-center {
1693
+ -ms-flex-pack: center !important;
1694
+ justify-content: center !important;
1695
+ }
1696
+ .justify-content-lg-between {
1697
+ -ms-flex-pack: justify !important;
1698
+ justify-content: space-between !important;
1699
+ }
1700
+ .justify-content-lg-around {
1701
+ -ms-flex-pack: distribute !important;
1702
+ justify-content: space-around !important;
1703
+ }
1704
+ .align-items-lg-start {
1705
+ -ms-flex-align: start !important;
1706
+ align-items: flex-start !important;
1707
+ }
1708
+ .align-items-lg-end {
1709
+ -ms-flex-align: end !important;
1710
+ align-items: flex-end !important;
1711
+ }
1712
+ .align-items-lg-center {
1713
+ -ms-flex-align: center !important;
1714
+ align-items: center !important;
1715
+ }
1716
+ .align-items-lg-baseline {
1717
+ -ms-flex-align: baseline !important;
1718
+ align-items: baseline !important;
1719
+ }
1720
+ .align-items-lg-stretch {
1721
+ -ms-flex-align: stretch !important;
1722
+ align-items: stretch !important;
1723
+ }
1724
+ .align-content-lg-start {
1725
+ -ms-flex-line-pack: start !important;
1726
+ align-content: flex-start !important;
1727
+ }
1728
+ .align-content-lg-end {
1729
+ -ms-flex-line-pack: end !important;
1730
+ align-content: flex-end !important;
1731
+ }
1732
+ .align-content-lg-center {
1733
+ -ms-flex-line-pack: center !important;
1734
+ align-content: center !important;
1735
+ }
1736
+ .align-content-lg-between {
1737
+ -ms-flex-line-pack: justify !important;
1738
+ align-content: space-between !important;
1739
+ }
1740
+ .align-content-lg-around {
1741
+ -ms-flex-line-pack: distribute !important;
1742
+ align-content: space-around !important;
1743
+ }
1744
+ .align-content-lg-stretch {
1745
+ -ms-flex-line-pack: stretch !important;
1746
+ align-content: stretch !important;
1747
+ }
1748
+ .align-self-lg-auto {
1749
+ -ms-flex-item-align: auto !important;
1750
+ align-self: auto !important;
1751
+ }
1752
+ .align-self-lg-start {
1753
+ -ms-flex-item-align: start !important;
1754
+ align-self: flex-start !important;
1755
+ }
1756
+ .align-self-lg-end {
1757
+ -ms-flex-item-align: end !important;
1758
+ align-self: flex-end !important;
1759
+ }
1760
+ .align-self-lg-center {
1761
+ -ms-flex-item-align: center !important;
1762
+ align-self: center !important;
1763
+ }
1764
+ .align-self-lg-baseline {
1765
+ -ms-flex-item-align: baseline !important;
1766
+ align-self: baseline !important;
1767
+ }
1768
+ .align-self-lg-stretch {
1769
+ -ms-flex-item-align: stretch !important;
1770
+ align-self: stretch !important;
1771
+ }
1772
+ }
1773
+
1774
+ @media (min-width: 1200px) {
1775
+ .flex-xl-row {
1776
+ -ms-flex-direction: row !important;
1777
+ flex-direction: row !important;
1778
+ }
1779
+ .flex-xl-column {
1780
+ -ms-flex-direction: column !important;
1781
+ flex-direction: column !important;
1782
+ }
1783
+ .flex-xl-row-reverse {
1784
+ -ms-flex-direction: row-reverse !important;
1785
+ flex-direction: row-reverse !important;
1786
+ }
1787
+ .flex-xl-column-reverse {
1788
+ -ms-flex-direction: column-reverse !important;
1789
+ flex-direction: column-reverse !important;
1790
+ }
1791
+ .flex-xl-wrap {
1792
+ -ms-flex-wrap: wrap !important;
1793
+ flex-wrap: wrap !important;
1794
+ }
1795
+ .flex-xl-nowrap {
1796
+ -ms-flex-wrap: nowrap !important;
1797
+ flex-wrap: nowrap !important;
1798
+ }
1799
+ .flex-xl-wrap-reverse {
1800
+ -ms-flex-wrap: wrap-reverse !important;
1801
+ flex-wrap: wrap-reverse !important;
1802
+ }
1803
+ .flex-xl-fill {
1804
+ -ms-flex: 1 1 auto !important;
1805
+ flex: 1 1 auto !important;
1806
+ }
1807
+ .flex-xl-grow-0 {
1808
+ -ms-flex-positive: 0 !important;
1809
+ flex-grow: 0 !important;
1810
+ }
1811
+ .flex-xl-grow-1 {
1812
+ -ms-flex-positive: 1 !important;
1813
+ flex-grow: 1 !important;
1814
+ }
1815
+ .flex-xl-shrink-0 {
1816
+ -ms-flex-negative: 0 !important;
1817
+ flex-shrink: 0 !important;
1818
+ }
1819
+ .flex-xl-shrink-1 {
1820
+ -ms-flex-negative: 1 !important;
1821
+ flex-shrink: 1 !important;
1822
+ }
1823
+ .justify-content-xl-start {
1824
+ -ms-flex-pack: start !important;
1825
+ justify-content: flex-start !important;
1826
+ }
1827
+ .justify-content-xl-end {
1828
+ -ms-flex-pack: end !important;
1829
+ justify-content: flex-end !important;
1830
+ }
1831
+ .justify-content-xl-center {
1832
+ -ms-flex-pack: center !important;
1833
+ justify-content: center !important;
1834
+ }
1835
+ .justify-content-xl-between {
1836
+ -ms-flex-pack: justify !important;
1837
+ justify-content: space-between !important;
1838
+ }
1839
+ .justify-content-xl-around {
1840
+ -ms-flex-pack: distribute !important;
1841
+ justify-content: space-around !important;
1842
+ }
1843
+ .align-items-xl-start {
1844
+ -ms-flex-align: start !important;
1845
+ align-items: flex-start !important;
1846
+ }
1847
+ .align-items-xl-end {
1848
+ -ms-flex-align: end !important;
1849
+ align-items: flex-end !important;
1850
+ }
1851
+ .align-items-xl-center {
1852
+ -ms-flex-align: center !important;
1853
+ align-items: center !important;
1854
+ }
1855
+ .align-items-xl-baseline {
1856
+ -ms-flex-align: baseline !important;
1857
+ align-items: baseline !important;
1858
+ }
1859
+ .align-items-xl-stretch {
1860
+ -ms-flex-align: stretch !important;
1861
+ align-items: stretch !important;
1862
+ }
1863
+ .align-content-xl-start {
1864
+ -ms-flex-line-pack: start !important;
1865
+ align-content: flex-start !important;
1866
+ }
1867
+ .align-content-xl-end {
1868
+ -ms-flex-line-pack: end !important;
1869
+ align-content: flex-end !important;
1870
+ }
1871
+ .align-content-xl-center {
1872
+ -ms-flex-line-pack: center !important;
1873
+ align-content: center !important;
1874
+ }
1875
+ .align-content-xl-between {
1876
+ -ms-flex-line-pack: justify !important;
1877
+ align-content: space-between !important;
1878
+ }
1879
+ .align-content-xl-around {
1880
+ -ms-flex-line-pack: distribute !important;
1881
+ align-content: space-around !important;
1882
+ }
1883
+ .align-content-xl-stretch {
1884
+ -ms-flex-line-pack: stretch !important;
1885
+ align-content: stretch !important;
1886
+ }
1887
+ .align-self-xl-auto {
1888
+ -ms-flex-item-align: auto !important;
1889
+ align-self: auto !important;
1890
+ }
1891
+ .align-self-xl-start {
1892
+ -ms-flex-item-align: start !important;
1893
+ align-self: flex-start !important;
1894
+ }
1895
+ .align-self-xl-end {
1896
+ -ms-flex-item-align: end !important;
1897
+ align-self: flex-end !important;
1898
+ }
1899
+ .align-self-xl-center {
1900
+ -ms-flex-item-align: center !important;
1901
+ align-self: center !important;
1902
+ }
1903
+ .align-self-xl-baseline {
1904
+ -ms-flex-item-align: baseline !important;
1905
+ align-self: baseline !important;
1906
+ }
1907
+ .align-self-xl-stretch {
1908
+ -ms-flex-item-align: stretch !important;
1909
+ align-self: stretch !important;
1910
+ }
1911
+ }
1912
+ /*# sourceMappingURL=bootstrap-grid.css.map */