sys-cpu 0.7.1 → 0.7.2

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5a8e944d3ba7367653fde3b252a10381b3e20871
4
+ data.tar.gz: 9791c3ff4bd7adcc847a67d7064517bd818e9f0f
5
+ SHA512:
6
+ metadata.gz: a71eca1b427859d7486637ca9016f209fad1c1cccce23b6c370ed0f33090b93077ec4946485621bfdeddd9d54c9a5852aa5c4ebfe5888921e38e8c17b7070dab
7
+ data.tar.gz: 86571ddb4165ba50cf9afa7c073d55b345cf36f4a6dceb56af67672ec209b01a1c6d7160da137c17233de79b09e379621cd425fd7fb5c3473abe17d09f589776
Binary file
Binary file
data/CHANGES CHANGED
@@ -1,3 +1,10 @@
1
+ == 0.7.2 - 5-Sep-2015
2
+ * Replaced a global array with a constant in the Linux version. Thanks go
3
+ to Yorick Peterse for the patch.
4
+ * Added method comments back to the Unix version.
5
+ * Added a sys-cpu.rb stub file for your convenience.
6
+ * This gem is now signed.
7
+
1
8
  == 0.7.1 - 2-May-2013
2
9
  * Added a workaround for a win32ole bug in the Windows version.
3
10
  * Reorganized code so that there is now a single gem rather than three
data/MANIFEST CHANGED
@@ -4,6 +4,7 @@
4
4
  * Rakefile
5
5
  * README
6
6
  * sys-cpu.gemspec
7
+ * certs/djberg96_pub.pem
7
8
  * doc/bsd.txt
8
9
  * doc/hpux.txt
9
10
  * doc/linux.txt
data/README CHANGED
@@ -61,7 +61,7 @@
61
61
  Artistic 2.0
62
62
 
63
63
  = Copyright
64
- (C) 2003-2013 Daniel J. Berger, All Rights Reserved
64
+ (C) 2003-2015 Daniel J. Berger, All Rights Reserved
65
65
 
66
66
  = Warranty
67
67
  This package is provided "as is" and without any express or
data/Rakefile CHANGED
@@ -9,14 +9,16 @@ CLEAN.include('**/*.gem', '**/*.rbc', '**/*.rbx')
9
9
  namespace 'gem' do
10
10
  desc "Create the sys-cpu gem"
11
11
  task :create => [:clean] do
12
+ require 'rubygems/package'
12
13
  spec = eval(IO.read('sys-cpu.gemspec'))
13
- Gem::Builder.new(spec).build
14
+ spec.signing_key = File.join(Dir.home, '.ssh', 'gem-private_key.pem')
15
+ Gem::Package.build(spec)
14
16
  end
15
17
 
16
18
  desc "Install the sys-cpu gem"
17
19
  task :install => [:create] do
18
20
  file = Dir["*.gem"].first
19
- sh "gem install #{file}"
21
+ sh "gem install -l #{file}"
20
22
  end
21
23
  end
22
24
 
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
3
+ cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
4
+ MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
5
+ ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
6
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
7
+ Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
8
+ S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
9
+ gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
10
+ FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
11
+ zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
12
+ DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
13
+ nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
14
+ bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
15
+ ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
16
+ tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
17
+ /sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
18
+ wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
19
+ EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
20
+ tGSHgAmcLlkdGgan182qsE/4kKM=
21
+ -----END CERTIFICATE-----
@@ -0,0 +1 @@
1
+ require_relative 'sys/cpu'
@@ -2,6 +2,13 @@
2
2
  # depending on which platform you're on.
3
3
  require 'rbconfig'
4
4
 
5
+ module Sys
6
+ class CPU
7
+ # The version of the sys-cpu gem.
8
+ VERSION = '0.7.2'
9
+ end
10
+ end
11
+
5
12
  case RbConfig::CONFIG['host_os']
6
13
  when /linux/i
7
14
  require File.join(File.dirname(__FILE__), 'linux', 'sys', 'cpu')
@@ -7,7 +7,7 @@ module Sys
7
7
 
8
8
  cpu_file = "/proc/cpuinfo"
9
9
  cpu_hash = {}
10
- $cpu_array = []
10
+ CPU_ARRAY = []
11
11
 
12
12
  # Parse the info out of the /proc/cpuinfo file
13
13
  IO.foreach(cpu_file){ |line|
@@ -21,7 +21,7 @@ module Sys
21
21
  val.strip! if val
22
22
 
23
23
  if cpu_hash.has_key?(key)
24
- $cpu_array.push(cpu_hash.dup)
24
+ CPU_ARRAY.push(cpu_hash.dup)
25
25
  cpu_hash.clear
26
26
  end
27
27
 
@@ -35,18 +35,15 @@ module Sys
35
35
  cpu_hash[key] = val
36
36
  }
37
37
 
38
- $cpu_array.push(cpu_hash)
38
+ CPU_ARRAY.push(cpu_hash)
39
39
 
40
40
  # :startdoc:
41
41
 
42
42
  class CPU
43
43
 
44
- # The version of the sys-cpu library.
45
- VERSION = '0.7.1'
46
-
47
44
  # :stopdoc:
48
45
 
49
- CPUStruct = Struct.new("CPUStruct", *$cpu_array.first.keys)
46
+ CPUStruct = Struct.new("CPUStruct", *CPU_ARRAY.first.keys)
50
47
 
51
48
  # :startdoc:
52
49
 
@@ -57,7 +54,7 @@ module Sys
57
54
  #
58
55
  def self.processors
59
56
  array = []
60
- $cpu_array.each{ |hash|
57
+ CPU_ARRAY.each{ |hash|
61
58
  struct = CPUStruct.new
62
59
  struct.members.each{ |m| struct.send("#{m}=", hash["#{m}"]) }
63
60
  if block_given?
@@ -74,10 +71,10 @@ module Sys
74
71
  # Create singleton methods for each of the attributes.
75
72
  #
76
73
  def self.method_missing(id, arg=0)
77
- rv = $cpu_array[arg][id.to_s]
74
+ rv = CPU_ARRAY[arg][id.to_s]
78
75
  if rv.nil?
79
76
  id = id.to_s + "?"
80
- rv = $cpu_array[arg][id]
77
+ rv = CPU_ARRAY[arg][id]
81
78
  end
82
79
  rv
83
80
  end
@@ -9,9 +9,6 @@ module Sys
9
9
  # Error raised if any of the CPU methods fail.
10
10
  class Error < StandardError; end
11
11
 
12
- # The version of the sys-cpu library
13
- VERSION = '0.7.1'
14
-
15
12
  CTL_HW = 6 # Generic hardware/cpu
16
13
 
17
14
  HW_MACHINE = 1 # Machine class
@@ -89,6 +86,10 @@ module Sys
89
86
  )
90
87
  end
91
88
 
89
+ # Returns the cpu's architecture. On most systems this will be identical
90
+ # to the CPU.machine method. On OpenBSD it will be identical to the CPU.model
91
+ # method.
92
+ #
92
93
  def self.architecture
93
94
  if respond_to?(:sysinfo, true)
94
95
  buf = 0.chr * 257
@@ -131,6 +132,10 @@ module Sys
131
132
  end
132
133
  end
133
134
 
135
+ # Returns the number of cpu's on your system. Note that each core on
136
+ # multi-core systems are counted as a cpu, e.g. one dual core cpu would
137
+ # return 2, not 1.
138
+ #
134
139
  def self.num_cpu
135
140
  if respond_to?(:sysctlbyname, true)
136
141
  optr = FFI::MemoryPointer.new(:long)
@@ -167,6 +172,10 @@ module Sys
167
172
  end
168
173
  end
169
174
 
175
+ # Returns the cpu's class type. On most systems this will be identical
176
+ # to the CPU.architecture method. On OpenBSD it will be identical to the
177
+ # CPU.model method.
178
+ #
170
179
  def self.machine
171
180
  if respond_to?(:sysctl, true)
172
181
  buf = 0.chr * 32
@@ -192,6 +201,8 @@ module Sys
192
201
  end
193
202
  end
194
203
 
204
+ # Returns a string indicating the cpu model.
205
+ #
195
206
  def self.model
196
207
  if RbConfig::CONFIG['host_os'] =~ /darwin/i
197
208
  ptr = FFI::MemoryPointer.new(:long)
@@ -242,6 +253,8 @@ module Sys
242
253
  end
243
254
  end
244
255
 
256
+ # Returns an integer indicating the speed of the CPU.
257
+ #
245
258
  def self.freq
246
259
  if respond_to?(:sysctlbyname, true)
247
260
  optr = FFI::MemoryPointer.new(:long)
@@ -291,6 +304,9 @@ module Sys
291
304
  end
292
305
  end
293
306
 
307
+ # Returns an array of three floats indicating the 1, 5 and 15 minute load
308
+ # average.
309
+ #
294
310
  def self.load_avg
295
311
  if respond_to?(:getloadavg, true)
296
312
  loadavg = FFI::MemoryPointer.new(:double, 3)
@@ -303,6 +319,10 @@ module Sys
303
319
  end
304
320
  end
305
321
 
322
+ # Returns the floating point processor type.
323
+ #
324
+ # Not supported on all platforms.
325
+ #
306
326
  def self.fpu_type
307
327
  raise NoMethodError unless respond_to?(:processor_info, true)
308
328
 
@@ -317,6 +337,11 @@ module Sys
317
337
  pinfo[:pi_fputypes].to_s
318
338
  end
319
339
 
340
+ # Returns the current state of processor +num+, or 0 if no number is
341
+ # specified.
342
+ #
343
+ # Not supported on all platforms.
344
+ #
320
345
  def self.state(num = 0)
321
346
  raise NoMethodError unless respond_to?(:processor_info, true)
322
347
 
@@ -17,9 +17,6 @@ module Sys
17
17
  # Error raised if any of the Sys::CPU methods fail.
18
18
  class Error < StandardError; end
19
19
 
20
- # The version of the sys-cpu library
21
- VERSION = '0.7.1'
22
-
23
20
  private
24
21
 
25
22
  # Base connect string
@@ -1,24 +1,26 @@
1
1
  require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
- spec.name = 'sys-cpu'
5
- spec.version = '0.7.1'
6
- spec.author = 'Daniel J. Berger'
7
- spec.email = 'djberg96 at nospam at gmail dot com'
8
- spec.homepage = 'https://github.com/djberg96/sys-cpu'
9
- spec.summary = 'A Ruby interface for providing CPU information'
10
- spec.test_file = 'test/test_sys_cpu.rb'
11
- spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
4
+ spec.name = 'sys-cpu'
5
+ spec.version = '0.7.2'
6
+ spec.author = 'Daniel J. Berger'
7
+ spec.email = 'djberg96 at nospam at gmail dot com'
8
+ spec.license = 'Artistic 2.0'
9
+ spec.homepage = 'https://github.com/djberg96/sys-cpu'
10
+ spec.summary = 'A Ruby interface for providing CPU information'
11
+ spec.test_file = 'test/test_sys_cpu.rb'
12
+ spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
13
+ spec.cert_chain = ['certs/djberg96_pub.pem']
12
14
 
13
- spec.rubyforge_project = 'sysutils'
14
15
  spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST']
15
16
 
16
17
  # The ffi dependency is only relevent for the Unix version. Given the
17
18
  # ubiquity of ffi these days, I felt a bogus dependency on ffi for Windows
18
- # and Linux was worth the tradeoff of having to create 3 separate gems.
19
- spec.add_dependency('ffi', '>= 1.0.0')
19
+ # and Linux was worth the tradeoff of not having to create 3 separate gems.
20
+ spec.add_dependency('ffi')
20
21
 
21
- spec.add_development_dependency('test-unit', '>= 2.4.0')
22
+ spec.add_development_dependency('test-unit')
23
+ spec.add_development_dependency('rake')
22
24
 
23
25
  spec.description = <<-EOF
24
26
  The sys-cpu library provides an interface for gathering information
@@ -10,6 +10,6 @@ require 'test-unit'
10
10
 
11
11
  class TC_Sys_CPU_VERSION < Test::Unit::TestCase
12
12
  test "version number is set to the expected value" do
13
- assert_equal('0.7.1', Sys::CPU::VERSION)
13
+ assert_equal('0.7.2', Sys::CPU::VERSION)
14
14
  end
15
15
  end
metadata CHANGED
@@ -1,51 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-cpu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
5
- prerelease:
4
+ version: 0.7.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Daniel J. Berger
9
8
  autorequire:
10
9
  bindir: bin
11
- cert_chain: []
12
- date: 2013-05-07 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
14
+ cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
16
+ ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
18
+ Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
19
+ S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
20
+ gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
21
+ FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
22
+ zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
23
+ DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
24
+ nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
25
+ bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
26
+ ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
27
+ tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
28
+ /sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
29
+ wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
30
+ EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
31
+ tGSHgAmcLlkdGgan182qsE/4kKM=
32
+ -----END CERTIFICATE-----
33
+ date: 2015-09-05 00:00:00.000000000 Z
13
34
  dependencies:
14
35
  - !ruby/object:Gem::Dependency
15
36
  name: ffi
16
37
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
38
  requirements:
19
- - - ! '>='
39
+ - - ">="
20
40
  - !ruby/object:Gem::Version
21
- version: 1.0.0
41
+ version: '0'
22
42
  type: :runtime
23
43
  prerelease: false
24
44
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
45
  requirements:
27
- - - ! '>='
46
+ - - ">="
28
47
  - !ruby/object:Gem::Version
29
- version: 1.0.0
48
+ version: '0'
30
49
  - !ruby/object:Gem::Dependency
31
50
  name: test-unit
32
51
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
52
  requirements:
35
- - - ! '>='
53
+ - - ">="
36
54
  - !ruby/object:Gem::Version
37
- version: 2.4.0
55
+ version: '0'
38
56
  type: :development
39
57
  prerelease: false
40
58
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
59
  requirements:
43
- - - ! '>='
60
+ - - ">="
44
61
  - !ruby/object:Gem::Version
45
- version: 2.4.0
46
- description: ! " The sys-cpu library provides an interface for gathering information\n
47
- \ about your system's processor(s). Information includes speed, type,\n and
48
- load average.\n"
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ description: |2
78
+ The sys-cpu library provides an interface for gathering information
79
+ about your system's processor(s). Information includes speed, type,
80
+ and load average.
49
81
  email: djberg96 at nospam at gmail dot com
50
82
  executables: []
51
83
  extensions: []
@@ -54,56 +86,58 @@ extra_rdoc_files:
54
86
  - README
55
87
  - MANIFEST
56
88
  files:
57
- - doc/windows.txt
58
- - doc/sunos.txt
89
+ - CHANGES
90
+ - MANIFEST
91
+ - README
92
+ - Rakefile
93
+ - certs/djberg96_pub.pem
59
94
  - doc/bsd.txt
60
95
  - doc/hpux.txt
61
96
  - doc/linux.txt
62
- - test/test_sys_cpu_version.rb
63
- - test/test_sys_cpu_linux.rb
64
- - test/test_sys_cpu_windows.rb
65
- - test/test_sys_cpu_bsd.rb
66
- - test/test_sys_cpu.rb
67
- - test/test_sys_cpu_sunos.rb
68
- - test/test_sys_cpu_hpux.rb
69
- - Rakefile
70
- - MANIFEST
71
- - CHANGES
72
- - sys-cpu.gemspec
97
+ - doc/sunos.txt
98
+ - doc/windows.txt
99
+ - examples/example_sys_cpu_bsd.rb
100
+ - examples/example_sys_cpu_hpux.rb
101
+ - examples/example_sys_cpu_linux.rb
102
+ - examples/example_sys_cpu_sunos.rb
103
+ - examples/example_sys_cpu_windows.rb
104
+ - install.rb
105
+ - lib/sys-cpu.rb
73
106
  - lib/sys/cpu.rb
74
- - lib/sys/unix/sys/cpu.rb
75
107
  - lib/sys/linux/sys/cpu.rb
108
+ - lib/sys/unix/sys/cpu.rb
76
109
  - lib/sys/windows/sys/cpu.rb
77
- - install.rb
78
- - README
79
- - examples/example_sys_cpu_windows.rb
80
- - examples/example_sys_cpu_hpux.rb
81
- - examples/example_sys_cpu_sunos.rb
82
- - examples/example_sys_cpu_linux.rb
83
- - examples/example_sys_cpu_bsd.rb
110
+ - sys-cpu.gemspec
111
+ - test/test_sys_cpu.rb
112
+ - test/test_sys_cpu_bsd.rb
113
+ - test/test_sys_cpu_hpux.rb
114
+ - test/test_sys_cpu_linux.rb
115
+ - test/test_sys_cpu_sunos.rb
116
+ - test/test_sys_cpu_version.rb
117
+ - test/test_sys_cpu_windows.rb
84
118
  homepage: https://github.com/djberg96/sys-cpu
85
- licenses: []
119
+ licenses:
120
+ - Artistic 2.0
121
+ metadata: {}
86
122
  post_install_message:
87
123
  rdoc_options: []
88
124
  require_paths:
89
125
  - lib
90
126
  required_ruby_version: !ruby/object:Gem::Requirement
91
- none: false
92
127
  requirements:
93
- - - ! '>='
128
+ - - ">="
94
129
  - !ruby/object:Gem::Version
95
130
  version: '0'
96
131
  required_rubygems_version: !ruby/object:Gem::Requirement
97
- none: false
98
132
  requirements:
99
- - - ! '>='
133
+ - - ">="
100
134
  - !ruby/object:Gem::Version
101
135
  version: '0'
102
136
  requirements: []
103
- rubyforge_project: sysutils
104
- rubygems_version: 1.8.23
137
+ rubyforge_project:
138
+ rubygems_version: 2.4.5
105
139
  signing_key:
106
- specification_version: 3
140
+ specification_version: 4
107
141
  summary: A Ruby interface for providing CPU information
108
142
  test_files:
109
143
  - test/test_sys_cpu.rb
@@ -0,0 +1,2 @@
1
+ U��2�����kKl h��k�Qp��`�����V~�1���8m�'9�=:�x���L��!c�
2
+ �ڢ%��c�U5����<�¶6�