rubygems-update 3.1.4 → 3.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4182b07cf1a7f54ac5ac57eb202fb98aeeec4cc8069e549a5f966f8496ff7e73
4
- data.tar.gz: 7784e28ab8b43c6199702d49d531484304e4e0af5bbe3e35bb7626a93d704e64
3
+ metadata.gz: cf1897c1f4290a7c09ac7fc031441915d225aaa7ffab473229a244310eaa39ac
4
+ data.tar.gz: d6aef4fc02c767b99957e4dfaff7818399b9fb59de550d23bee19256b618a5f6
5
5
  SHA512:
6
- metadata.gz: 2cea3e83459b735337d934e1086cabf75979e6018edcb73fa1334b4ebbd107a7b8b316b9456b46f4d85b9a39d3988b77f32f4e87a6aa8cecbd3e6036cf2ee870
7
- data.tar.gz: b0d7b6ac35d9c6bae856c2323bf48175945ff423302db5db729d07a5554df373de77489f4fbe23e442289646f51a9166c66a253be9132a0fbedb1a54e03b1d49
6
+ metadata.gz: 2421931e30162b92a93891c80eb17bd3d78a135da9019f49a18ce701bf4ca1fa7731260f4cc6de1342a74accceb8df21024ccd5042cbefa9a89cf67c69528a54
7
+ data.tar.gz: 131eb583b3864dec611fab7574a8ebf75cc796288ed2a4c43e96d6b53d24509f282e83fa36b2851ad5e5c21b6d8f78fc3fadc3da974575428b3489d3d28d3a88
data/History.txt CHANGED
@@ -1,5 +1,22 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 3.1.6 / 2021-01-26
4
+
5
+ Minor enhancements:
6
+
7
+ * Improve require. Pull request #3133 by David Rodríguez.
8
+ * Simplify nested gem activation exceptions. Pull request #3450 by David
9
+ Rodríguez.
10
+ * Fix correctness and performance regression in `require`. Pull request
11
+ #3639 by David Rodríguez.
12
+
13
+ === 3.1.5 / 2020-12-09
14
+
15
+ Minor enhancements:
16
+
17
+ * Add GlobalSign Root CA - R3 cert and remove outdated certs. Pull request #4100
18
+ by Aditya Prakash.
19
+
3
20
  === 3.1.4 / 2020-06-03
4
21
 
5
22
  Minor enhancements:
data/Manifest.txt CHANGED
@@ -497,9 +497,8 @@ lib/rubygems/spec_fetcher.rb
497
497
  lib/rubygems/specification.rb
498
498
  lib/rubygems/specification_policy.rb
499
499
  lib/rubygems/ssl_certs/.document
500
- lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem
501
- lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
502
- lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
500
+ lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
501
+ lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
503
502
  lib/rubygems/stub_specification.rb
504
503
  lib/rubygems/syck_hack.rb
505
504
  lib/rubygems/test_case.rb
data/Rakefile CHANGED
@@ -151,7 +151,7 @@ file "pkg/rubygems-#{v}.tgz" => "pkg/rubygems-#{v}" do
151
151
  sh "7z a -ttar rubygems-#{v}.tar rubygems-#{v}"
152
152
  sh "7z a -tgzip rubygems-#{v}.tgz rubygems-#{v}.tar"
153
153
  else
154
- sh "tar -czf rubygems-#{v}.tgz rubygems-#{v}"
154
+ sh "tar -czf rubygems-#{v}.tgz --owner=rubygems:0 --group=rubygems:0 rubygems-#{v}"
155
155
  end
156
156
  end
157
157
  end
@@ -4,7 +4,7 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2020-06-03".freeze
7
+ @built_at = "2021-01-26".freeze
8
8
  @git_commit_sha = "32a4159325".freeze
9
9
  @release = false
10
10
  # end ivars
@@ -39,49 +39,40 @@ module Kernel
39
39
 
40
40
  path = path.to_path if path.respond_to? :to_path
41
41
 
42
- # Ensure -I beats a default gem
43
- # https://github.com/rubygems/rubygems/pull/1868
44
- resolved_path = begin
45
- rp = nil
46
- $LOAD_PATH[0...Gem.load_path_insert_index || -1].each do |lp|
47
- safe_lp = lp.dup.tap(&Gem::UNTAINT)
48
- begin
49
- if File.symlink? safe_lp # for backward compatibility
50
- next
51
- end
52
- rescue SecurityError
53
- RUBYGEMS_ACTIVATION_MONITOR.exit
54
- raise
55
- end
56
-
42
+ if spec = Gem.find_unresolved_default_spec(path)
43
+ # Ensure -I beats a default gem
44
+ resolved_path = begin
45
+ rp = nil
46
+ load_path_check_index = Gem.load_path_insert_index - Gem.activated_gem_paths
57
47
  Gem.suffixes.each do |s|
58
- full_path = File.expand_path(File.join(safe_lp, "#{path}#{s}"))
59
- if File.file?(full_path)
60
- rp = full_path
61
- break
48
+ $LOAD_PATH[0...load_path_check_index].each do |lp|
49
+ safe_lp = lp.dup.tap(&Gem::UNTAINT)
50
+ begin
51
+ if File.symlink? safe_lp # for backward compatibility
52
+ next
53
+ end
54
+ rescue SecurityError
55
+ RUBYGEMS_ACTIVATION_MONITOR.exit
56
+ raise
57
+ end
58
+
59
+ full_path = File.expand_path(File.join(safe_lp, "#{path}#{s}"))
60
+ if File.file?(full_path)
61
+ rp = full_path
62
+ break
63
+ end
62
64
  end
65
+ break if rp
63
66
  end
64
- break if rp
65
- end
66
- rp
67
- end
68
-
69
- if resolved_path
70
- begin
71
- RUBYGEMS_ACTIVATION_MONITOR.exit
72
- return gem_original_require(resolved_path)
73
- rescue LoadError
74
- RUBYGEMS_ACTIVATION_MONITOR.enter
67
+ rp
75
68
  end
76
- end
77
69
 
78
- if spec = Gem.find_unresolved_default_spec(path)
79
70
  begin
80
71
  Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease)
81
72
  rescue Exception
82
73
  RUBYGEMS_ACTIVATION_MONITOR.exit
83
74
  raise
84
- end
75
+ end unless resolved_path
85
76
  end
86
77
 
87
78
  # If there are no unresolved deps, then we can use just try
@@ -157,8 +148,7 @@ module Kernel
157
148
  RUBYGEMS_ACTIVATION_MONITOR.enter
158
149
 
159
150
  begin
160
- if load_error.message.start_with?("Could not find") or
161
- (load_error.message.end_with?(path) and Gem.try_activate(path))
151
+ if load_error.message.end_with?(path) and Gem.try_activate(path)
162
152
  require_again = true
163
153
  end
164
154
  ensure
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
3
+ A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
4
+ Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
5
+ MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
6
+ A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
7
+ hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
8
+ RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
9
+ gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
10
+ KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
11
+ QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
12
+ XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
13
+ DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
14
+ LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
15
+ RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
16
+ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
17
+ 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
18
+ mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
19
+ Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
20
+ WD9f
21
+ -----END CERTIFICATE-----
@@ -385,6 +385,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
385
385
  Gem::Security.reset
386
386
 
387
387
  Gem.loaded_specs.clear
388
+ Gem.instance_variable_set(:@activated_gem_paths, 0)
388
389
  Gem.clear_default_specs
389
390
  Bundler.reset!
390
391
 
data/lib/rubygems.rb CHANGED
@@ -9,7 +9,7 @@
9
9
  require 'rbconfig'
10
10
 
11
11
  module Gem
12
- VERSION = "3.1.4".freeze
12
+ VERSION = "3.1.6".freeze
13
13
  end
14
14
 
15
15
  # Must be first since it unloads the prelude from 1.9.2
@@ -659,22 +659,25 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
659
659
 
660
660
  index = $LOAD_PATH.index RbConfig::CONFIG['sitelibdir']
661
661
 
662
- index
662
+ index || 0
663
+ end
664
+
665
+ ##
666
+ # The number of paths in the `$LOAD_PATH` from activated gems. Used to
667
+ # prioritize `-I` and `ENV['RUBYLIB`]` entries during `require`.
668
+
669
+ def self.activated_gem_paths
670
+ @activated_gem_paths ||= 0
663
671
  end
664
672
 
665
673
  ##
666
674
  # Add a list of paths to the $LOAD_PATH at the proper place.
667
675
 
668
676
  def self.add_to_load_path(*paths)
669
- insert_index = load_path_insert_index
677
+ @activated_gem_paths = activated_gem_paths + paths.size
670
678
 
671
- if insert_index
672
- # gem directories must come after -I and ENV['RUBYLIB']
673
- $LOAD_PATH.insert(insert_index, *paths)
674
- else
675
- # we are probably testing in core, -I and RUBYLIB don't apply
676
- $LOAD_PATH.unshift(*paths)
677
- end
679
+ # gem directories must come after -I and ENV['RUBYLIB']
680
+ $LOAD_PATH.insert(Gem.load_path_insert_index, *paths)
678
681
  end
679
682
 
680
683
  @yaml_loaded = false
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.1.4"
5
+ s.version = "3.1.6"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -51,12 +51,16 @@ if ENV["CI"] || ENV["TEST_SSL"]
51
51
  assert_https('rubygems.org')
52
52
  end
53
53
 
54
- def test_accessing_fastly
55
- assert_https('rubygems.global.ssl.fastly.net')
54
+ def test_accessing_www_rubygems
55
+ assert_https('www.rubygems.org')
56
+ end
57
+
58
+ def test_accessing_staging
59
+ assert_https('staging.rubygems.org')
56
60
  end
57
61
 
58
62
  def test_accessing_new_index
59
- assert_https('fastly.rubygems.org')
63
+ assert_https('index.rubygems.org')
60
64
  end
61
65
 
62
66
  end
@@ -91,6 +91,25 @@ class TestKernel < Gem::TestCase
91
91
  refute $:.any? { |p| %r{a-1/bin} =~ p }
92
92
  end
93
93
 
94
+ def test_gem_failing_inside_require_doesnt_cause_double_exceptions
95
+ File.write("activate.rb", "gem('a', '= 999')\n")
96
+
97
+ require "open3"
98
+
99
+ output, _ = Open3.capture2e(
100
+ { "GEM_HOME" => Gem.paths.home },
101
+ Gem.ruby,
102
+ "-I",
103
+ File.expand_path("../../lib", __dir__),
104
+ "-r",
105
+ "./activate.rb"
106
+ )
107
+
108
+ load_errors = output.split("\n").select { |line| line.include?("Could not find")}
109
+
110
+ assert_equal 1, load_errors.size
111
+ end
112
+
94
113
  def test_gem_bundler
95
114
  quick_gem 'bundler', '1'
96
115
  quick_gem 'bundler', '2.a'
@@ -45,6 +45,35 @@ class TestGemRequire < Gem::TestCase
45
45
  refute require(path), "'#{path}' was not yet required"
46
46
  end
47
47
 
48
+ def test_respect_loaded_features_caching_like_standard_require
49
+ dir = Dir.mktmpdir("test_require", @tempdir)
50
+
51
+ lp1 = File.join dir, 'foo1'
52
+ foo1 = File.join lp1, 'foo.rb'
53
+
54
+ FileUtils.mkdir_p lp1
55
+ File.open(foo1, 'w') { |f| f.write "class Object; HELLO = 'foo1' end" }
56
+
57
+ lp = $LOAD_PATH.dup
58
+
59
+ $LOAD_PATH.unshift lp1
60
+ assert_require 'foo'
61
+ assert_equal "foo1", ::Object::HELLO
62
+
63
+ lp2 = File.join dir, 'foo2'
64
+ foo2 = File.join lp2, 'foo.rb'
65
+
66
+ FileUtils.mkdir_p lp2
67
+ File.open(foo2, 'w') { |f| f.write "class Object; HELLO = 'foo2' end" }
68
+
69
+ $LOAD_PATH.unshift lp2
70
+ refute_require 'foo'
71
+ assert_equal "foo1", ::Object::HELLO
72
+ ensure
73
+ $LOAD_PATH.replace lp
74
+ Object.send :remove_const, :HELLO if Object.const_defined? :HELLO
75
+ end
76
+
48
77
  # Providing -I on the commandline should always beat gems
49
78
  def test_dash_i_beats_gems
50
79
  a1 = util_spec "a", "1", {"b" => "= 1"}, "lib/test_gem_require_a.rb"
@@ -120,6 +149,24 @@ class TestGemRequire < Gem::TestCase
120
149
  Object.send :remove_const, :HELLO if Object.const_defined? :HELLO
121
150
  end
122
151
 
152
+ def test_dash_i_respects_default_library_extension_priority
153
+ skip "extensions don't quite work on jruby" if Gem.java_platform?
154
+
155
+ dash_i_ext_arg = util_install_extension_file('a')
156
+ dash_i_lib_arg = util_install_ruby_file('a')
157
+
158
+ lp = $LOAD_PATH.dup
159
+
160
+ begin
161
+ $LOAD_PATH.unshift dash_i_lib_arg
162
+ $LOAD_PATH.unshift dash_i_ext_arg
163
+ assert_require 'a'
164
+ assert_match(/a\.rb$/, $LOADED_FEATURES.last)
165
+ ensure
166
+ $LOAD_PATH.replace lp
167
+ end
168
+ end
169
+
123
170
  def test_concurrent_require
124
171
  Object.const_set :FILE_ENTERED_LATCH, Latch.new(2)
125
172
  Object.const_set :FILE_EXIT_LATCH, Latch.new(1)
@@ -364,6 +411,17 @@ class TestGemRequire < Gem::TestCase
364
411
  assert_equal 0, times_called
365
412
  end
366
413
 
414
+ def test_second_gem_require_does_not_resolve_path_manually_before_going_through_standard_require
415
+ a1 = util_spec "a", "1", nil, "lib/test_gem_require_a.rb"
416
+ install_gem a1
417
+
418
+ assert_require "test_gem_require_a"
419
+
420
+ stub(:gem_original_require, ->(path) { assert_equal "test_gem_require_a", path }) do
421
+ require "test_gem_require_a"
422
+ end
423
+ end
424
+
367
425
  def test_realworld_default_gem
368
426
  testing_ruby_repo = !ENV["GEM_COMMAND"].nil?
369
427
  skip "this test can't work under ruby-core setup" if testing_ruby_repo || java_platform?
@@ -539,4 +597,50 @@ class TestGemRequire < Gem::TestCase
539
597
  $VERBOSE = old_verbose
540
598
  end
541
599
 
600
+ def util_install_extension_file(name)
601
+ spec = quick_gem name
602
+ util_build_gem spec
603
+
604
+ spec.extensions << "extconf.rb"
605
+ write_file File.join(@tempdir, "extconf.rb") do |io|
606
+ io.write <<-RUBY
607
+ require "mkmf"
608
+ CONFIG['LDSHARED'] = '$(TOUCH) $@ ||'
609
+ create_makefile("#{name}")
610
+ RUBY
611
+ end
612
+
613
+ write_file File.join(@tempdir, "#{name}.c") do |io|
614
+ io.write <<-C
615
+ void Init_#{name}() { }
616
+ C
617
+ end
618
+
619
+ write_file File.join(@tempdir, "depend")
620
+
621
+ spec.files += ["extconf.rb", "depend", "#{name}.c"]
622
+
623
+ so = File.join(spec.gem_dir, "#{name}.#{RbConfig::CONFIG["DLEXT"]}")
624
+ refute_path_exists so
625
+
626
+ path = Gem::Package.build spec
627
+ installer = Gem::Installer.at path
628
+ installer.install
629
+ assert_path_exists so
630
+
631
+ spec.gem_dir
632
+ end
633
+
634
+ def util_install_ruby_file(name)
635
+ dir_lib = Dir.mktmpdir("test_require_lib", @tempdir)
636
+ dash_i_lib_arg = File.join dir_lib
637
+
638
+ a_rb = File.join dash_i_lib_arg, "#{name}.rb"
639
+
640
+ FileUtils.mkdir_p File.dirname a_rb
641
+ File.open(a_rb, 'w') { |f| f.write "# #{name}.rb" }
642
+
643
+ dash_i_lib_arg
644
+ end
645
+
542
646
  end
@@ -5,14 +5,12 @@ require 'fileutils'
5
5
 
6
6
  URIS = [
7
7
  URI('https://rubygems.org'),
8
+ URI('https://www.rubygems.org'),
8
9
  URI('https://index.rubygems.org'),
9
10
  URI('https://staging.rubygems.org'),
10
- URI('https://fastly.rubygems.org'),
11
- URI('https://rubygems.global.ssl.fastly.net'),
12
11
  ].freeze
13
12
 
14
13
  HOSTNAMES_TO_MAP = [
15
- 'rubygems.global.ssl.fastly.net',
16
14
  'rubygems.org',
17
15
  'index.rubygems.org'
18
16
  ].freeze
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
4
+ version: 3.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2020-06-03 00:00:00.000000000 Z
19
+ date: 2021-01-26 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -578,9 +578,8 @@ files:
578
578
  - lib/rubygems/specification.rb
579
579
  - lib/rubygems/specification_policy.rb
580
580
  - lib/rubygems/ssl_certs/.document
581
- - lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem
582
- - lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
583
- - lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
581
+ - lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
582
+ - lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
584
583
  - lib/rubygems/stub_specification.rb
585
584
  - lib/rubygems/syck_hack.rb
586
585
  - lib/rubygems/test_case.rb
@@ -820,7 +819,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
820
819
  - !ruby/object:Gem::Version
821
820
  version: '0'
822
821
  requirements: []
823
- rubygems_version: 3.0.3
822
+ rubygems_version: 3.0.3.1
824
823
  signing_key:
825
824
  specification_version: 4
826
825
  summary: RubyGems is a package management framework for Ruby.
@@ -1,23 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
3
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
4
- d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
5
- ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
6
- MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
7
- LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
8
- RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
9
- +9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
10
- PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
11
- xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
12
- Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
13
- hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
14
- EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
15
- MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
16
- FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
17
- nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
18
- eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
19
- hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
20
- Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
21
- vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
22
- +OkuE6N36B9K
23
- -----END CERTIFICATE-----
@@ -1,25 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
3
- MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
4
- IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
5
- MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
6
- FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
7
- bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
8
- dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
9
- H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
10
- uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
11
- mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
12
- a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
13
- E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
14
- WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
15
- VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
16
- Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
17
- cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
18
- IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
19
- AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
20
- YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
21
- 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
22
- Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
23
- c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
24
- mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
25
- -----END CERTIFICATE-----