redhat_access 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/insights/app.module.js +1 -0
  3. data/app/helpers/redhat_access/analytics_dashboard_helper.rb +19 -1
  4. data/app/services/redhat_access/telemetry/helper.rb +7 -0
  5. data/app/services/redhat_access/telemetry/look_ups.rb +2 -1
  6. data/app/services/redhat_access/telemetry/messaging_service.rb +57 -2
  7. data/app/views/dashboard/_insights_issues_widget.html.erb +51 -0
  8. data/app/views/dashboard/_insights_risk_widget.html.erb +80 -0
  9. data/app/views/redhat_access/analytics_dashboard/index.html.erb +2 -2
  10. data/lib/redhat_access/engine.rb +2 -0
  11. data/lib/redhat_access/version.rb +1 -1
  12. data/redhat_access.gemspec +1 -10
  13. data/vendor/assets/fonts/fonts/fontawesome-webfont.woff2 +0 -0
  14. data/vendor/assets/images/images/bg1.jpg +0 -0
  15. data/vendor/assets/images/images/bg_ansible.jpg +0 -0
  16. data/vendor/assets/images/images/bg_body.jpg +0 -0
  17. data/vendor/assets/images/images/bg_glow.jpg +0 -0
  18. data/vendor/assets/images/images/bg_landing-hero.jpg +0 -0
  19. data/vendor/assets/images/images/bg_product-select.png +0 -0
  20. data/vendor/assets/images/images/bg_product-select2.jpg +0 -0
  21. data/vendor/assets/images/images/bg_whispy.jpg +0 -0
  22. data/vendor/assets/images/images/email_bg.jpg +0 -0
  23. data/vendor/assets/images/images/email_logo.png +0 -0
  24. data/vendor/assets/images/images/email_rhi.png +0 -0
  25. data/vendor/assets/images/images/g_ansible-venn.png +0 -0
  26. data/vendor/assets/images/images/g_heartbleed.png +0 -0
  27. data/vendor/assets/images/images/heartbleed.svg +19 -0
  28. data/vendor/assets/images/images/i_box.svg +16 -0
  29. data/vendor/assets/images/images/i_playbook.svg +5 -0
  30. data/vendor/assets/images/images/i_severity-critical.svg +61 -0
  31. data/vendor/assets/images/images/i_severity-high.svg +61 -0
  32. data/vendor/assets/images/images/i_severity-low.svg +62 -0
  33. data/vendor/assets/images/images/i_severity-med.svg +62 -0
  34. data/vendor/assets/images/images/i_unknown.svg +33 -0
  35. data/vendor/assets/images/images/i_user-fallback.png +0 -0
  36. data/vendor/assets/images/images/i_user.jpg +0 -0
  37. data/vendor/assets/images/images/img-cfme-appliance-register.jpg +0 -0
  38. data/vendor/assets/images/images/img-cfme-insights-features.png +0 -0
  39. data/vendor/assets/images/images/img-cfme-insights-overview.png +0 -0
  40. data/vendor/assets/images/images/img-cfme-insights-rules.png +0 -0
  41. data/vendor/assets/images/images/img-cfme-insights-systems.png +0 -0
  42. data/vendor/assets/images/images/img-cfme-smartstate-config.png +0 -0
  43. data/vendor/assets/images/images/img-sat6-step2-manage.jpg +0 -0
  44. data/vendor/assets/images/images/img-sat6-step4.jpg +0 -0
  45. data/vendor/assets/images/images/img-sat6-step5-manage.jpg +0 -0
  46. data/vendor/assets/images/images/img-sat6-step5-overview.jpg +0 -0
  47. data/vendor/assets/images/images/img-sat6-step5-rules.jpg +0 -0
  48. data/vendor/assets/images/images/img-sat6-step5-systems.jpg +0 -0
  49. data/vendor/assets/images/images/img_video.png +0 -0
  50. data/vendor/assets/images/images/l_ansible-black.svg +14 -0
  51. data/vendor/assets/images/images/l_ansible-blue.svg +12 -0
  52. data/vendor/assets/images/images/l_ansible-unsupported.svg +16 -0
  53. data/vendor/assets/images/images/l_ansible-white.svg +13 -0
  54. data/vendor/assets/images/images/l_docker.svg +48 -0
  55. data/vendor/assets/images/images/l_osp.svg +95 -0
  56. data/vendor/assets/images/images/l_rhel.svg +74 -0
  57. data/vendor/assets/images/images/l_rhev.svg +86 -0
  58. data/vendor/assets/javascripts/telemetry/insights.js +63 -39
  59. data/vendor/assets/stylesheets/telemetry/sat6.css +8 -8
  60. metadata +46 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47d065b4e0e037360599bb40ce34305ced86765b
4
- data.tar.gz: 4723e3f4898c2dd722591f66d6f5d52312fd9e6d
3
+ metadata.gz: 4de697c1c4c7439692e44c26f10f4aa8dde8718a
4
+ data.tar.gz: 2797621bb4965a46bc6c23d49e46eab5db035cab
5
5
  SHA512:
6
- metadata.gz: 1af2a3ab5854b3ca38fb76c1f5a543d2d9060684c63d289ba9ba0983bfc9f9011fce82fddc7cffb0c6884255df9d0aa81c12cdb12749c49310da715b4f8e4cea
7
- data.tar.gz: fc5133fb5d6a4ae75ebdfc4dabfd9571a62f777071c795d49b3590a9a7a70d45db1febe99fc6af75f48eb65948793607748a21953ec016c08b2bf45899d77e1a
6
+ metadata.gz: d46e13f22eb5c71839087d89b0fa9876befa42d83b2e8788dcf0c962134698af5028970c87e613a1833d73e4cd26de1e7366e925bfae8cd37be9d0d5bd89493d
7
+ data.tar.gz: c3b3b069c3c60364435b22c36fa555b18b2b7a4d4d4f1e6cd0f76c70211bffdc1537adb95502308871af6356b854564677ca41e1768c26712b33484c30cd4538
@@ -53,6 +53,7 @@
53
53
  InsightsConfigProvider.setGettingStartedLink('https://access.redhat.com/insights/getting-started/satellite/6/');
54
54
  InsightsConfigProvider.setAllowExport(true);
55
55
  InsightsConfigProvider.setOverviewKey('overview-satellite6');
56
+ InsightsConfigProvider.setPlannerEnabled(false);
56
57
 
57
58
  }
58
59
  ]).value('SAT_CONFIG', {
@@ -3,11 +3,29 @@ module RedhatAccess
3
3
  include RedhatAccess::Telemetry::LookUps
4
4
 
5
5
  def help_path?
6
- request.path == '/redhat_access/insights/help'
6
+ Rails.logger.info("PATH is #{request.path == '/redhat_access/insights/help'}")
7
+ request.path == '/redhat_access/insights/help'
7
8
  end
8
9
 
9
10
  def manage_path?
10
11
  request.path == '/redhat_access/insights/manage'
11
12
  end
13
+
14
+ def view_preconditions_met?
15
+ if (help_path?)
16
+ return true
17
+
18
+ elsif (!is_org_selected?)
19
+ return false
20
+ elsif !telemetry_enabled?(Organization.current)
21
+ return false
22
+ elsif !is_susbcribed_to_redhat?(Organization.current)
23
+ return false
24
+ elsif disconnected_org?(Organization.current)
25
+ return false
26
+ else
27
+ return true
28
+ end
29
+ end
12
30
  end
13
31
  end
@@ -0,0 +1,7 @@
1
+ module RedhatAccess
2
+ module Telemetry
3
+ class Helper
4
+ include LookUps
5
+ end
6
+ end
7
+ end
@@ -33,6 +33,7 @@ module RedhatAccess
33
33
  end
34
34
 
35
35
  def is_org_selected?
36
+ Rails.logger.debug("Org selected ? #{Organization.current.nil?}")
36
37
  Organization.current.nil? ? false : true
37
38
  end
38
39
 
@@ -67,7 +68,7 @@ module RedhatAccess
67
68
  def get_leaf_id(uuid)
68
69
  system = get_content_host(uuid)
69
70
  if system.nil?
70
- ldebug('Host not found or invalid')
71
+ Rails.logger.debug('Host not found or invalid')
71
72
  raise(RecordNotFound, 'Host not found or invalid')
72
73
  end
73
74
  uuid
@@ -8,16 +8,49 @@ module RedhatAccess
8
8
  include RedhatAccess::Telemetry::LookUps
9
9
 
10
10
  WEEKLY_SUMMARY_PATH = 'v1/messaging/data/weeklyinfo'
11
+ RULE_STATS_PATH = 'v3/stats/rules'
12
+ SYSTEM_STATS_PATH = 'v3/stats/systems'
11
13
 
12
14
  def initialize(org)
13
15
  @org = org
14
- @user_map = current_user_map
15
16
  @branch_id = get_branch_id_for_org(org)
16
17
  end
17
18
 
19
+ def risk_summary
20
+ begin
21
+ rule_counts = rules_stat_summary
22
+ critical_counts = http_get_from_json(SYSTEM_STATS_PATH, {:minSeverity => :CRITICAL}, true)
23
+ return OpenStruct.new({:critical_count => critical_counts.affected,
24
+ :system_count => critical_counts.total,
25
+ :low_percent => percent(rule_counts.info,rule_counts.total),
26
+ :medium_percent => percent(rule_counts.warn,rule_counts.total),
27
+ :high_percent => percent(rule_counts.error,rule_counts.total),
28
+ :critical_percent => percent(rule_counts.critical,rule_counts.total)
29
+ })
30
+ rescue
31
+ return error_response("Unable to get risk summary.")
32
+ end
33
+ # return {:critical_count => 10,
34
+ # :system_count => 100,
35
+ # :low_percent => 1.2,
36
+ # :medium_percent => 38.4,
37
+ # :high_percent => 17.5,
38
+ # :critical_percent => 24.2
39
+ # }
40
+ end
41
+
42
+ def rules_stat_summary
43
+ begin
44
+ http_get_from_json(RULE_STATS_PATH, {}, true)
45
+ rescue
46
+ return error_response("Unable to get rule summary.")
47
+ end
48
+ end
49
+
18
50
 
19
51
  def all_weekly_mail_data
20
52
  data = []
53
+ @user_map = current_user_map
21
54
  current_user_map.each do |key,user|
22
55
  begin
23
56
  user_data = weekly_summary_data(user.login)
@@ -82,9 +115,31 @@ module RedhatAccess
82
115
  end
83
116
 
84
117
 
85
-
86
118
  private
87
119
 
120
+ def percent(fraction, total)
121
+ if (total== 0)
122
+ return 0
123
+ end
124
+ ((fraction.to_f/total)*100).round(1)
125
+ end
126
+
127
+ def error_response(message)
128
+ resp = OpenStruct.new
129
+ resp.query_error = message
130
+ end
131
+
132
+ def http_get_from_json(resource,params,use_subsets=true)
133
+ options = {:method => :GET,
134
+ :resource => resource,
135
+ :params => params,
136
+ :payload => nil,
137
+ :use_subsets => use_subsets
138
+ }
139
+ json_data = http_request(options, true);
140
+ JSON.parse(json_data, object_class: OpenStruct)
141
+ end
142
+
88
143
  def current_user_map
89
144
  map = {}
90
145
  users = ::User.select do |user|
@@ -0,0 +1,51 @@
1
+ <h4 class="header">
2
+ <%= _("Red Hat Insights Actions") %>
3
+ </h4>
4
+ <% helper = RedhatAccess::Telemetry::Helper.new %>
5
+ <% if !Organization.current.present? %>
6
+ <p class="ca"><%= _("Please select an organization to view Red Hat Insights action summary.") %></p>
7
+ <% elsif !helper.telemetry_enabled?(Organization.current) %>
8
+ <p class="ca"><%= _("Insights functionality is disabled.") %></p>
9
+ <% elsif !helper.is_susbcribed_to_redhat?(Organization.current) %>
10
+ <p class="ca"><%= _("Insights data not available.") %></p>
11
+ <% elsif helper.disconnected_org?(Organization.current) %>
12
+ <p class="ca"><%= _("Insights data is not available for disconnected environments.") %></p>
13
+ <% else %>
14
+
15
+ <% api = RedhatAccess::Telemetry::MessagingService.new(Organization.current) %>
16
+ <% data = api.rules_stat_summary %>
17
+ <% if data.query_error %>
18
+ <p class="ca"><%= _("There was an error retrieving Insights data.") %></p>
19
+ <% else %>
20
+ <table class="table table-fixed table-striped table-bordered">
21
+ <thead>
22
+ <tr>
23
+ <th><%= _("Category") %></th>
24
+ <th><%= _("Number of Actions") %></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <tr>
29
+ <td><%= link_to("#{ _("Availability")}", '/redhat_access/insights/actions/availability')%> </td>
30
+ <td style="text-align:right;"><%= link_to("#{data.availability}", '/redhat_access/insights/actions/availability')%> </td>
31
+ </tr>
32
+ <tr>
33
+ <td><%= link_to("#{ _("Stability")}", '/redhat_access/insights/actions/stability')%> </td>
34
+ <td style="text-align:right;"><%= link_to("#{data.stability}", '/redhat_access/insights/actions/stability')%> </td>
35
+ </tr>
36
+ <tr>
37
+ <td><%= link_to("#{ _("Performance")}", '/redhat_access/insights/actions/performance')%> </td>
38
+ <td style="text-align:right;"><%= link_to("#{data.performance}", '/redhat_access/insights/actions/performance')%> </td>
39
+ </tr>
40
+ <tr>
41
+ <td><%= link_to("#{ _("Security")}", '/redhat_access/insights/actions/security')%> </td>
42
+ <td style="text-align:right;"><%= link_to("#{data.security}", '/redhat_access/insights/actions/security')%> </td>
43
+ </tr>
44
+ <tr>
45
+ <td><h4><%= _("Total") %></h4></td>
46
+ <td style="text-align:right;"><%= data.total %></td>
47
+ </tr>
48
+ </tbody>
49
+ </table>
50
+ <% end %>
51
+ <% end %>
@@ -0,0 +1,80 @@
1
+ <h4 class="header">
2
+ <%= _("Red Hat Insights Risk Summary") %>
3
+ </h4>
4
+
5
+ <% helper = RedhatAccess::Telemetry::Helper.new %>
6
+ <% if !Organization.current.present? %>
7
+ <p class="ca"><%= _("Please select an organization to view Red Hat Insights risk summary.") %></p>
8
+ <% elsif !helper.telemetry_enabled?(Organization.current) %>
9
+ <p class="ca"><%= _("Insights functionality is disabled.") %></p>
10
+ <% elsif !helper.is_susbcribed_to_redhat?(Organization.current) %>
11
+ <p class="ca"><%= _("Insights data not available.") %></p>
12
+ <% elsif helper.disconnected_org?(Organization.current) %>
13
+ <p class="ca"><%= _("Insights is data not available for disconnected environments.") %></p>
14
+ <% else %>
15
+ <% api = RedhatAccess::Telemetry::MessagingService.new(Organization.current) %>
16
+ <% risk_data = api.risk_summary %>
17
+ <% if risk_data.query_error %>
18
+ <p class="ca"><%= _("There was an error retrieving Insights data.") %></p>
19
+ <% else %>
20
+ <table class="table table-fixed table-striped table-bordered">
21
+ <thead>
22
+ <tr>
23
+ <th><%= _("Risk Level") %></th>
24
+ <th><%= _("Percentage") %></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <tr>
29
+ <h4>
30
+ <%= link_to('/redhat_access/insights/actions/critical-risk') do %>
31
+ <i class="label " style="margin-right: 6px">&nbsp;</i> <%= risk_data.critical_count %> <%= _('system(s) have critical issues.') %>
32
+ <% end %>
33
+
34
+ </h4>
35
+ </tr>
36
+ <tr>
37
+ <td>
38
+ <%= link_to('/redhat_access/insights/actions/low-risk') do %>
39
+ <i class="label label-info" style="margin-right: 6px">&nbsp;</i><%= _("Low") %>
40
+ <% end %>
41
+ </td>
42
+ <td style="text-align:right">
43
+ <%= link_to("#{risk_data.low_percent}%", '/redhat_access/insights/actions/low-risk') %>
44
+ </td>
45
+ </tr>
46
+ <tr>
47
+ <td>
48
+ <%= link_to('/redhat_access/insights/actions/medium-risk') do %>
49
+ <i class="label label-success" style="margin-right: 6px">&nbsp;</i><%= _("Medium") %>
50
+ <% end %>
51
+ </td>
52
+ <td style="text-align:right">
53
+ <%= link_to("#{risk_data[:medium_percent]}%", '/redhat_access/insights/actions/medium-risk') %>
54
+ </td>
55
+ </tr>
56
+ <tr>
57
+ <td>
58
+ <%= link_to('/redhat_access/insights/actions/high-risk') do %>
59
+ <i class="label label-warning" style="margin-right: 6px">&nbsp;</i><%= _("High") %>
60
+ <% end %>
61
+ </td>
62
+ <td style="text-align:right">
63
+ <%= link_to("#{risk_data.high_percent}%", '/redhat_access/insights/actions/high-risk') %>
64
+ </td>
65
+ </tr>
66
+ <tr>
67
+ <td>
68
+ <%= link_to('/redhat_access/insights/actions/critical-risk') do %>
69
+ <i class="label label-danger" style="margin-right: 6px">&nbsp;</i><%= _("Critical") %>
70
+ <% end %>
71
+ </td>
72
+ <td style="text-align:right">
73
+ <%= link_to("#{risk_data.critical_percent}%", '/redhat_access/insights/actions/critical-risk') %>
74
+ </td>
75
+ </tr>
76
+ </tbody>
77
+ </table>
78
+ <% end %>
79
+
80
+ <% end %>
@@ -1,6 +1,6 @@
1
- <% if ((!help_path? && !manage_path?) || (manage_path? && !is_org_selected?)) && (!is_org_selected? || !telemetry_enabled?(Organization.current) || !is_susbcribed_to_redhat?(Organization.current) || disconnected_org?(Organization.current)) %>
1
+ <% if (not view_preconditions_met?) %>
2
2
  <article id='content'>
3
- <%if !is_org_selected? && !help_path %>
3
+ <%if !is_org_selected? %>
4
4
  <section>
5
5
  <h1>
6
6
  <%= _("Organization Selection Required") %>
@@ -213,6 +213,8 @@ module RedhatAccess
213
213
  :engine => RedhatAccess::Engine,
214
214
  :turbolinks => false
215
215
  end
216
+ widget 'insights_issues_widget', :name => 'Red Hat Insights Actions', :sizey => 1, :sizex => 6
217
+ widget 'insights_risk_widget', :name => 'Red Hat Insights Risk Summary', :sizey => 1, :sizex => 6
216
218
  end
217
219
  end
218
220
  end
@@ -1,3 +1,3 @@
1
1
  module RedhatAccess
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  end
@@ -15,16 +15,7 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.files = Dir["{app,config,db,lib,vendor,public,script,ca,locale}/**/*"] + ["LICENSE.txt", "Rakefile", "README.rdoc", "redhat_access.gemspec", "Gemfile"]
17
17
  s.test_files = Dir["test/**/*"]
18
-
19
- #s.add_dependency "rails", "~> 3.2"
20
18
  s.add_dependency "redhat_access_lib" , ">=1.0.1"
21
-
22
- #s.add_dependency "haml-rails"
23
- #s.add_dependency "requirejs-rails"
24
- #-------------s.add_dependency "bootstrap-sass", "~> 3.0.3.0"
25
- # s.add_dependency "jquery-rails"
26
19
  s.add_dependency "angular-rails-templates", ">=0.0.4"
27
- #s.add_development_dependency "sqlite3"
28
- #s.add_development_dependency "sprockets", "~>2.2.2"
29
- #s.add_development_dependency "redhat_access_lib"
20
+
30
21
  end
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#CB2027;}
7
+ </style>
8
+ <g>
9
+ <g>
10
+ <path class="st0" d="M185.8,56.7c0-14.4-5.6-27.9-15.7-38c-19.1-19-49.1-20.8-70.1-5.1C78.9-2.1,48.9-0.4,29.9,18.7
11
+ c-10.1,10.1-15.7,23.6-15.7,38c0,14.4,5.6,27.9,15.7,38l18.5,18.5v33.5c0,2.3,1.9,4.2,4.2,4.2c2.3,0,4.2-1.9,4.2-4.2v-25.2l3.1,3
12
+ v56c0,1.3,1.1,2.4,2.4,2.4c1.3,0,2.4-1.1,2.4-2.4v-51.2l4.4,4.4v24.9c0,1.5,1.2,2.6,2.6,2.6s2.6-1.2,2.6-2.6v-19.6l25.8,25.7
13
+ l20.1-20.1v46.7c0,1.3,1.1,2.4,2.4,2.4c1.3,0,2.4-1.1,2.4-2.4v-51.5l6.3-6.3v20.7c0,2.3,1.9,4.2,4.2,4.2s4.2-1.9,4.2-4.2v-29
14
+ l30.6-30.5C180.3,84.5,185.8,71.1,185.8,56.7z M158.3,82.9L100,141.1L41.7,82.9c-7-7-10.8-16.3-10.8-26.2
15
+ c0-9.9,3.8-19.2,10.8-26.2c7.2-7.2,16.7-10.8,26.2-10.8c9.5,0,19,3.6,26.2,10.8l5.9,5.9l5.9-5.9c14.5-14.4,38-14.4,52.5,0
16
+ c7,7,10.8,16.3,10.8,26.2C169.2,66.6,165.3,75.9,158.3,82.9z"/>
17
+ </g>
18
+ </g>
19
+ </svg>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 1600 1600" style="enable-background:new 0 0 1600 1600;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#FFFFFF;}
7
+ </style>
8
+ <path class="st0" d="M1173.9,584.8c-0.2-1.8-0.6-3.6-1.3-5.4l-1.9-4.4l-0.6-0.6c-1.2-1.8-2.6-3.4-4.2-4.8l-1.7-1.3
9
+ c-0.7-0.5-2-1.5-3.7-2.3L811.5,395.9c-6.9-3.3-15.1-3.3-22,0l-349,170c-1.8,0.9-3,1.8-3.2,2l-2.1,1.5c-1.7,1.5-3.2,3.2-4.4,5
10
+ l-2.5,5.1c-0.6,1.5-0.9,3.1-1.1,4.5l-0.4,428.4c0,9.1,5.4,17.5,13.7,21.5l348.3,169.7l2.7,1.5l1.1,0.1c1.8,0.6,3.6,1,5.5,1.2
11
+ l2.4,0.2l2.3-0.1c2.1-0.2,4.1-0.6,5.7-1.2l351.9-171.2c8.3-4,13.7-12.5,13.7-21.5L1173.9,584.8z M1094.3,587.5L800.5,730.6
12
+ l-119.3-58.1L975,529.4L1094.3,587.5z M775.8,937.8c-2.9-1.7-6.2-2.7-9.8-2.7c-10.6,0-19.2,8.4-19.2,18.7v155.1
13
+ c0,10.3,8.6,18.7,19.2,18.7c3.6,0,6.9-1,9.8-2.7v18.7L476.2,997.6V626.4l299.6,145.9V937.8z M506.7,587.5l293.8-143.1l131.6,64.1
14
+ L638.3,651.6L506.7,587.5z M1124.8,894.7c-2-0.7-4-1.1-6.2-1.1c-10.6,0-19.2,8.4-19.2,18.7v68l-110.5,53.8
15
+ c-9.5,4.6-13.3,15.8-8.5,25.2c1.3,2.5,3.2,4.4,5.3,6.1l-160.4,78.1V772.4l299.6-145.9V894.7z"/>
16
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="86.697pt" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 86.697382 92.46" height="92.46pt">
3
+ <path d="m27.016 42.32a1.249 1.249 0 0 0 1.765 0l4.414-4.414 4.41 4.414a1.249 1.249 0 0 0 1.77 0 1.252 1.252 0 0 0 0 -1.77l-4.41-4.41 4.41-4.413a1.247 1.247 0 0 0 0 -1.766 1.252 1.252 0 0 0 -1.77 0l-4.41 4.41-4.414-4.41a1.247 1.247 0 0 0 -1.765 0 1.247 1.247 0 0 0 0 1.766l4.41 4.414-4.41 4.41a1.252 1.252 0 0 0 0 1.77zm51.047-2.976c-2.352-11.965-10.172-21.2-21.024-24.989l0.328-1.296a0.232 0.232 0 0 0 -0.058 -0.223 0.227 0.227 0 0 0 -0.215 -0.074l-4.672 0.843a0.239 0.239 0 0 0 -0.192 0.176c-0.02 0.09 0.008 0.188 0.083 0.246l3.703 3c0.062 0.051 0.148 0.067 0.226 0.043a0.24 0.24 0 0 0 0.156 -0.172l0.27-1.066c10.27 3.64 17.672 12.434 19.91 23.805 2.457 12.484-2.691 26.433-12.816 35.066a5.887 5.887 0 0 0 -4.461 -2.05 5.912 5.912 0 0 0 -5.906 5.906 5.91 5.91 0 0 0 5.905 5.901 5.91 5.91 0 0 0 5.902 -5.902c0-0.926-0.223-1.801-0.601-2.579 10.625-8.972 16.03-23.57 13.46-36.636zm-18.766 42.616a3.408 3.408 0 0 1 -3.402 -3.402 3.403 3.403 0 1 1 3.402 3.402z"/>
4
+ <path d="m54.117 51.566a1.248 1.248 0 0 0 1.77 0l4.41-4.41 4.414 4.41c0.242 0.246 0.562 0.368 0.883 0.368 0.32 0 0.64-0.121 0.883-0.368a1.247 1.247 0 0 0 0 -1.765l-4.41-4.414 4.41-4.414a1.247 1.247 0 0 0 0 -1.766 1.247 1.247 0 0 0 -1.766 0l-4.414 4.41-4.41-4.41a1.247 1.247 0 0 0 -1.766 0 1.247 1.247 0 0 0 0 1.766l4.41 4.414-4.414 4.414a1.247 1.247 0 0 0 0 1.765zm-14.515 19.512a1.254 1.254 0 0 0 -1.766 0l-4.414 4.414-4.414-4.414a1.247 1.247 0 0 0 -1.766 0 1.252 1.252 0 0 0 0 1.77l4.41 4.414-4.41 4.41a1.252 1.252 0 0 0 0 1.77c0.242 0.242 0.563 0.363 0.883 0.363s0.64-0.121 0.883-0.364l4.414-4.414 4.41 4.414a1.26 1.26 0 0 0 1.77 0 1.252 1.252 0 0 0 0 -1.77l-4.414-4.41 4.414-4.413a1.252 1.252 0 0 0 0 -1.77zm9.132-10.949c-0.816 0-1.593 0.168-2.3 0.465l-7.118-13.024 3.618-1.98-0.72-1.317-8.554 4.676 0.719 1.317 3.621-1.98 7.14 13.07a5.896 5.896 0 0 0 -2.308 4.675 5.907 5.907 0 0 0 5.902 5.903 5.91 5.91 0 0 0 5.903 -5.903 5.907 5.907 0 0 0 -5.903 -5.902zm0 9.309a3.405 3.405 0 0 1 0 -6.809 3.408 3.408 0 0 1 3.403 3.402 3.408 3.408 0 0 1 -3.403 3.406zm-25.355-7.536a0.231 0.231 0 0 0 -0.23 0.008l-1.04 0.621-12.511-18.113c-0.618-6.41 2.039-13.375 7.285-19.117 4.972-5.442 11.691-9.184 18.566-10.371 0.489 2.765 2.903 4.875 5.809 4.875a5.91 5.91 0 0 0 5.902 -5.903 5.91 5.91 0 0 0 -5.902 -5.902 5.907 5.907 0 0 0 -5.88 5.406c-7.32 1.223-14.468 5.2-19.722 11.016-5.511 6.101-8.261 13.52-7.543 20.348l0.016 0.16 12.68 18.383-1.063 0.632a0.245 0.245 0 0 0 -0.117 0.196c0 0.086 0.035 0.16 0.101 0.207l3.903 2.707c0.074 0.05 0.176 0.058 0.258 0.007a0.239 0.239 0 0 0 0.117 -0.23l-0.496-4.738a0.238 0.238 0 0 0 -0.133 -0.192zm17.879-51.402a3.408 3.408 0 0 1 3.402 3.402 3.405 3.405 0 0 1 -3.402 3.403 3.403 3.403 0 0 1 0 -6.805z"/>
5
+ </svg>
@@ -0,0 +1,61 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Layer_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 146 166"
17
+ style="enable-background:new 0 0 146 166;"
18
+ xml:space="preserve"
19
+ sodipodi:docname="i_critical.svg"
20
+ inkscape:version="0.92.1 r"><metadata
21
+ id="metadata4612"><rdf:RDF><cc:Work
22
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
23
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
24
+ id="defs4610" /><sodipodi:namedview
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1"
28
+ objecttolerance="10"
29
+ gridtolerance="10"
30
+ guidetolerance="10"
31
+ inkscape:pageopacity="0"
32
+ inkscape:pageshadow="2"
33
+ inkscape:window-width="1920"
34
+ inkscape:window-height="1055"
35
+ id="namedview4608"
36
+ showgrid="false"
37
+ inkscape:zoom="1.4216867"
38
+ inkscape:cx="73"
39
+ inkscape:cy="83"
40
+ inkscape:window-x="0"
41
+ inkscape:window-y="1050"
42
+ inkscape:window-maximized="1"
43
+ inkscape:current-layer="Layer_1" /><style
44
+ type="text/css"
45
+ id="style4593">
46
+ .st0{fill:#808080;}
47
+ .st1{fill:#CC0000;}
48
+ </style><g
49
+ id="g4605"><path
50
+ class="st1"
51
+ d="M114.6,143.3H31c-7.2,0-13-4.8-13-10.6l0,0c0-5.9,5.9-10.6,13-10.6h83.6c7.2,0,13,4.8,13,10.6l0,0 C127.7,138.5,121.8,143.3,114.6,143.3z"
52
+ id="path4597" /><path
53
+ class="st1"
54
+ d="M114.6,110.2H31c-7.2,0-13-4.8-13-10.6l0,0C18,93.7,23.9,89,31,89h83.6c7.2,0,13,4.8,13,10.6l0,0 C127.7,105.4,121.8,110.2,114.6,110.2z"
55
+ id="path4599" /><path
56
+ class="st1"
57
+ d="M115,77.1H31.4c-7.2,0-13-4.8-13-10.6l0,0c0-5.9,5.9-10.6,13-10.6H115c7.2,0,13,4.8,13,10.6l0,0 C128,72.3,122.1,77.1,115,77.1z"
58
+ id="path4601" /><path
59
+ class="st1"
60
+ d="M114.6,44H31c-7.2,0-13-4.8-13-10.6l0,0c0-5.9,5.9-10.7,13-10.7h83.6c7.2,0,13,4.8,13,10.6l0,0 C127.7,39.2,121.8,44,114.6,44z"
61
+ id="path4603" /></g></svg>