Skip to content

Commit

Permalink
Merge pull request #1104 from microsoft/dev/auto-sync/microsoft/relea…
Browse files Browse the repository at this point in the history
…se-branch.go1.20

Update submodule to latest `release-branch.go1.20` in `microsoft/release-branch.go1.20`
  • Loading branch information
dagood authored Jan 11, 2024
2 parents f0f2cfc + c5d59fd commit 947ab30
Show file tree
Hide file tree
Showing 6 changed files with 1,311 additions and 401 deletions.
19 changes: 10 additions & 9 deletions patches/0003-Add-crypto-backend-foundation.patch
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ Subject: [PATCH] Add crypto backend foundation
src/crypto/ed25519/ed25519_test.go | 2 +-
src/crypto/hmac/hmac.go | 2 +-
src/crypto/hmac/hmac_test.go | 2 +-
src/crypto/internal/backend/backend_test.go | 30 ++++++
src/crypto/internal/backend/backend_test.go | 30 +++++
src/crypto/internal/backend/bbig/big.go | 17 +++
src/crypto/internal/backend/common.go | 65 +++++++++++
src/crypto/internal/backend/iscgo.go | 10 ++
src/crypto/internal/backend/nobackend.go | 114 ++++++++++++++++++++
src/crypto/internal/backend/nobackend.go | 115 ++++++++++++++++++++
src/crypto/internal/backend/nocgo.go | 10 ++
src/crypto/internal/backend/stub.s | 10 ++
src/crypto/rand/rand_unix.go | 2 +-
Expand All @@ -38,7 +38,7 @@ Subject: [PATCH] Add crypto backend foundation
src/crypto/tls/cipher_suites.go | 2 +-
src/go/build/deps_test.go | 2 +
src/runtime/runtime_boring.go | 5 +
34 files changed, 292 insertions(+), 29 deletions(-)
34 files changed, 293 insertions(+), 29 deletions(-)
create mode 100644 src/crypto/internal/backend/backend_test.go
create mode 100644 src/crypto/internal/backend/bbig/big.go
create mode 100644 src/crypto/internal/backend/common.go
Expand Down Expand Up @@ -128,7 +128,7 @@ index 275c60b4de49eb..61e70f981db4eb 100644
"math/big"
)
diff --git a/src/crypto/ecdsa/ecdsa.go b/src/crypto/ecdsa/ecdsa.go
index 68272af41fc137..a4ed9c19f4f78d 100644
index 03a9a72ddd8cf8..166fe0b7bde07d 100644
--- a/src/crypto/ecdsa/ecdsa.go
+++ b/src/crypto/ecdsa/ecdsa.go
@@ -26,9 +26,9 @@ import (
Expand Down Expand Up @@ -343,10 +343,10 @@ index 00000000000000..1e0d3cf8c18b55
+const iscgo = true
diff --git a/src/crypto/internal/backend/nobackend.go b/src/crypto/internal/backend/nobackend.go
new file mode 100644
index 00000000000000..5cbd86907a135b
index 00000000000000..6a6b9dad8ea47e
--- /dev/null
+++ b/src/crypto/internal/backend/nobackend.go
@@ -0,0 +1,114 @@
@@ -0,0 +1,115 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
Expand Down Expand Up @@ -387,6 +387,7 @@ index 00000000000000..5cbd86907a135b
+
+func NewAESCipher(key []byte) (cipher.Block, error) { panic("cryptobackend: not available") }
+func NewGCMTLS(c cipher.Block) (cipher.AEAD, error) { panic("cryptobackend: not available") }
+func NewGCMTLS13(c cipher.Block) (cipher.AEAD, error) { panic("cryptobackend: not available") }
+
+type PublicKeyECDSA struct{ _ int }
+type PrivateKeyECDSA struct{ _ int }
Expand Down Expand Up @@ -561,7 +562,7 @@ index f7d23b55ef811a..f2f2a64ed35e23 100644
"hash"
"io"
diff --git a/src/crypto/rsa/rsa.go b/src/crypto/rsa/rsa.go
index 11f87e8e4973e3..512e4a4d6616e5 100644
index 63bc8dad1aa964..a4de095f38417b 100644
--- a/src/crypto/rsa/rsa.go
+++ b/src/crypto/rsa/rsa.go
@@ -27,9 +27,9 @@ package rsa
Expand Down Expand Up @@ -668,7 +669,7 @@ index 921cdbb7bbd477..2fef7ddae07480 100644
"encoding"
"encoding/hex"
diff --git a/src/crypto/tls/cipher_suites.go b/src/crypto/tls/cipher_suites.go
index 04e6dfe0189b47..68598961fda6e4 100644
index 197930dc5c0751..2c8e8f63f53c1a 100644
--- a/src/crypto/tls/cipher_suites.go
+++ b/src/crypto/tls/cipher_suites.go
@@ -10,7 +10,7 @@ import (
Expand All @@ -681,7 +682,7 @@ index 04e6dfe0189b47..68598961fda6e4 100644
"crypto/sha1"
"crypto/sha256"
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 08452c7b1d27f4..40f53b1ea43d02 100644
index 1ec6ee7c27a4a1..c7255cba9a5bc5 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -399,6 +399,7 @@ var depsRules = `
Expand Down
9 changes: 5 additions & 4 deletions patches/0004-Add-BoringSSL-crypto-backend.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Subject: [PATCH] Add BoringSSL crypto backend

---
.../internal/backend/bbig/big_boring.go | 12 ++
src/crypto/internal/backend/boring_linux.go | 135 ++++++++++++++++++
2 files changed, 147 insertions(+)
src/crypto/internal/backend/boring_linux.go | 136 ++++++++++++++++++
2 files changed, 148 insertions(+)
create mode 100644 src/crypto/internal/backend/bbig/big_boring.go
create mode 100644 src/crypto/internal/backend/boring_linux.go

Expand All @@ -30,10 +30,10 @@ index 00000000000000..0b62cef68546d0
+var Dec = bbig.Dec
diff --git a/src/crypto/internal/backend/boring_linux.go b/src/crypto/internal/backend/boring_linux.go
new file mode 100644
index 00000000000000..b22886bb6cc88f
index 00000000000000..ba4f290a8e394d
--- /dev/null
+++ b/src/crypto/internal/backend/boring_linux.go
@@ -0,0 +1,135 @@
@@ -0,0 +1,136 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
Expand Down Expand Up @@ -72,6 +72,7 @@ index 00000000000000..b22886bb6cc88f
+
+func NewAESCipher(key []byte) (cipher.Block, error) { return boring.NewAESCipher(key) }
+func NewGCMTLS(c cipher.Block) (cipher.AEAD, error) { return boring.NewGCMTLS(c) }
+func NewGCMTLS13(c cipher.Block) (cipher.AEAD, error) { return boring.NewGCMTLS13(c) }
+
+type PublicKeyECDSA = boring.PublicKeyECDSA
+type PrivateKeyECDSA = boring.PrivateKeyECDSA
Expand Down
29 changes: 15 additions & 14 deletions patches/0005-Add-OpenSSL-crypto-backend.patch
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Subject: [PATCH] Add OpenSSL crypto backend
src/crypto/internal/backend/bbig/big.go | 2 +-
.../internal/backend/bbig/big_openssl.go | 12 ++
src/crypto/internal/backend/nobackend.go | 2 +-
src/crypto/internal/backend/openssl_linux.go | 203 ++++++++++++++++++
src/crypto/internal/backend/openssl_linux.go | 204 ++++++++++++++++++
src/crypto/internal/boring/fipstls/stub.s | 2 +-
src/crypto/internal/boring/fipstls/tls.go | 2 +-
src/crypto/rsa/boring.go | 2 +-
Expand All @@ -38,7 +38,7 @@ Subject: [PATCH] Add OpenSSL crypto backend
.../goexperiment/exp_opensslcrypto_on.go | 9 +
src/internal/goexperiment/flags.go | 1 +
src/os/exec/exec_test.go | 9 +
34 files changed, 296 insertions(+), 25 deletions(-)
34 files changed, 297 insertions(+), 25 deletions(-)
create mode 100644 src/crypto/internal/backend/bbig/big_openssl.go
create mode 100644 src/crypto/internal/backend/openssl_linux.go
create mode 100644 src/internal/goexperiment/exp_opensslcrypto_off.go
Expand Down Expand Up @@ -222,7 +222,7 @@ index 00000000000000..61ef3fdd90b607
+var Enc = bbig.Enc
+var Dec = bbig.Dec
diff --git a/src/crypto/internal/backend/nobackend.go b/src/crypto/internal/backend/nobackend.go
index 5cbd86907a135b..fcdea7f8ab5a9d 100644
index 6a6b9dad8ea47e..649867fe4414a4 100644
--- a/src/crypto/internal/backend/nobackend.go
+++ b/src/crypto/internal/backend/nobackend.go
@@ -2,7 +2,7 @@
Expand All @@ -236,10 +236,10 @@ index 5cbd86907a135b..fcdea7f8ab5a9d 100644

diff --git a/src/crypto/internal/backend/openssl_linux.go b/src/crypto/internal/backend/openssl_linux.go
new file mode 100644
index 00000000000000..68ea43ea892e1d
index 00000000000000..f6378d6b9977d3
--- /dev/null
+++ b/src/crypto/internal/backend/openssl_linux.go
@@ -0,0 +1,203 @@
@@ -0,0 +1,204 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
Expand Down Expand Up @@ -346,6 +346,7 @@ index 00000000000000..68ea43ea892e1d
+
+func NewAESCipher(key []byte) (cipher.Block, error) { return openssl.NewAESCipher(key) }
+func NewGCMTLS(c cipher.Block) (cipher.AEAD, error) { return openssl.NewGCMTLS(c) }
+func NewGCMTLS13(c cipher.Block) (cipher.AEAD, error) { return openssl.NewGCMTLS13(c) }
+
+type PublicKeyECDSA = openssl.PublicKeyECDSA
+type PrivateKeyECDSA = openssl.PrivateKeyECDSA
Expand Down Expand Up @@ -523,7 +524,7 @@ index 95f4b8e98d2fb0..3bb307e7bddc48 100644

msg := []byte{0xed, 0x36, 0x90, 0x8d, 0xbe, 0xfc, 0x35, 0x40, 0x70, 0x4f, 0xf5, 0x9d, 0x6e, 0xc2, 0xeb, 0xf5, 0x27, 0xae, 0x65, 0xb0, 0x59, 0x29, 0x45, 0x25, 0x8c, 0xc1, 0x91, 0x22}
diff --git a/src/crypto/tls/boring.go b/src/crypto/tls/boring.go
index 1827f764589b58..70baa62d63754a 100644
index aad96b1c747784..9ee834e5a5952b 100644
--- a/src/crypto/tls/boring.go
+++ b/src/crypto/tls/boring.go
@@ -2,7 +2,7 @@
Expand All @@ -536,7 +537,7 @@ index 1827f764589b58..70baa62d63754a 100644
package tls

diff --git a/src/crypto/tls/boring_test.go b/src/crypto/tls/boring_test.go
index ba68f355eb037c..929111d8679cc2 100644
index 96dfc93e286f4c..e2543f53d77990 100644
--- a/src/crypto/tls/boring_test.go
+++ b/src/crypto/tls/boring_test.go
@@ -2,7 +2,7 @@
Expand Down Expand Up @@ -575,7 +576,7 @@ index f8485dc3ca1c29..9c1d3d279c472f 100644
package fipsonly

diff --git a/src/crypto/tls/notboring.go b/src/crypto/tls/notboring.go
index 7d85b39c59319e..1aaabd5ef486aa 100644
index edccb44d87a553..cae24d19c9f444 100644
--- a/src/crypto/tls/notboring.go
+++ b/src/crypto/tls/notboring.go
@@ -2,7 +2,7 @@
Expand All @@ -588,7 +589,7 @@ index 7d85b39c59319e..1aaabd5ef486aa 100644
package tls

diff --git a/src/crypto/x509/boring.go b/src/crypto/x509/boring.go
index 095b58c31590d4..9aec21dbcd3bff 100644
index e6237e96bb3b17..e4086bd90feb83 100644
--- a/src/crypto/x509/boring.go
+++ b/src/crypto/x509/boring.go
@@ -2,7 +2,7 @@
Expand Down Expand Up @@ -627,24 +628,24 @@ index c83a7272c9f01f..a0548a7f9179c5 100644
package x509

diff --git a/src/go.mod b/src/go.mod
index 7a15940c8896b0..a6aa641e8ca024 100644
index 7a15940c8896b0..ea439ef9245f35 100644
--- a/src/go.mod
+++ b/src/go.mod
@@ -3,6 +3,7 @@ module std
go 1.20

require (
+ github.com/microsoft/go-crypto-openssl v0.2.8
+ github.com/microsoft/go-crypto-openssl v0.2.9-0.20240110181346-cf2e349f6f4f
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a
golang.org/x/net v0.4.1-0.20231027154331-b8c2abfc1559
)
diff --git a/src/go.sum b/src/go.sum
index 3ab018e39e5512..9f22fa9f954901 100644
index 3ab018e39e5512..3d29523d5345ac 100644
--- a/src/go.sum
+++ b/src/go.sum
@@ -1,3 +1,5 @@
+github.com/microsoft/go-crypto-openssl v0.2.8 h1:16B6DVeBCimOAG0B92PSySOnVDq6Qr/siI3TyyMHXoI=
+github.com/microsoft/go-crypto-openssl v0.2.8/go.mod h1:xOSmQnWz4xvNB2+KQN2g2UUwMG9vqDHBk9nk/NdmyRw=
+github.com/microsoft/go-crypto-openssl v0.2.9-0.20240110181346-cf2e349f6f4f h1:HRNz2SIk2d4O4KVVzzrLNvwefELKnlAeKMgS5RMPZ9A=
+github.com/microsoft/go-crypto-openssl v0.2.9-0.20240110181346-cf2e349f6f4f/go.mod h1:xOSmQnWz4xvNB2+KQN2g2UUwMG9vqDHBk9nk/NdmyRw=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a h1:diz9pEYuTIuLMJLs3rGDkeaTsNyRs6duYdFyPAxzE/U=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/net v0.4.1-0.20231027154331-b8c2abfc1559 h1:ZYA0bvgfxBB+JecyQpRCT/HUR/bSwdk6OJUhJ3CNLxg=
Expand Down
42 changes: 23 additions & 19 deletions patches/0006-Add-CNG-crypto-backend.patch
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Subject: [PATCH] Add CNG crypto backend
src/crypto/internal/backend/backend_test.go | 4 +-
src/crypto/internal/backend/bbig/big.go | 2 +-
src/crypto/internal/backend/bbig/big_cng.go | 12 +
src/crypto/internal/backend/cng_windows.go | 205 ++++++++++++++++++
src/crypto/internal/backend/cng_windows.go | 209 ++++++++++++++++++
src/crypto/internal/backend/common.go | 38 +++-
src/crypto/internal/backend/nobackend.go | 2 +-
src/crypto/internal/boring/fipstls/stub.s | 2 +-
Expand Down Expand Up @@ -49,7 +49,7 @@ Subject: [PATCH] Add CNG crypto backend
.../goexperiment/exp_cngcrypto_off.go | 9 +
src/internal/goexperiment/exp_cngcrypto_on.go | 9 +
src/internal/goexperiment/flags.go | 1 +
45 files changed, 405 insertions(+), 47 deletions(-)
45 files changed, 409 insertions(+), 47 deletions(-)
create mode 100644 src/crypto/internal/backend/bbig/big_cng.go
create mode 100644 src/crypto/internal/backend/cng_windows.go
create mode 100644 src/internal/goexperiment/exp_cngcrypto_off.go
Expand Down Expand Up @@ -168,10 +168,10 @@ index 00000000000000..92623031fd87d0
+var Dec = bbig.Dec
diff --git a/src/crypto/internal/backend/cng_windows.go b/src/crypto/internal/backend/cng_windows.go
new file mode 100644
index 00000000000000..9d1bbf010c0fb6
index 00000000000000..80cc3651c0f225
--- /dev/null
+++ b/src/crypto/internal/backend/cng_windows.go
@@ -0,0 +1,205 @@
@@ -0,0 +1,209 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
Expand Down Expand Up @@ -259,6 +259,10 @@ index 00000000000000..9d1bbf010c0fb6
+ return cng.NewGCMTLS(c)
+}
+
+func NewGCMTLS13(c cipher.Block) (cipher.AEAD, error) {
+ return cng.NewGCMTLS13(c)
+}
+
+type PublicKeyECDSA = cng.PublicKeyECDSA
+type PrivateKeyECDSA = cng.PrivateKeyECDSA
+
Expand Down Expand Up @@ -446,7 +450,7 @@ index 007d8070538247..114f72c3d10ee4 100644
+ return !goexperiment.CNGCrypto
+}
diff --git a/src/crypto/internal/backend/nobackend.go b/src/crypto/internal/backend/nobackend.go
index fcdea7f8ab5a9d..503e49212f972c 100644
index 649867fe4414a4..48c4bcbbe5b2e5 100644
--- a/src/crypto/internal/backend/nobackend.go
+++ b/src/crypto/internal/backend/nobackend.go
@@ -2,7 +2,7 @@
Expand Down Expand Up @@ -916,7 +920,7 @@ index 2fef7ddae07480..979e4c69ab710c 100644

h := New()
diff --git a/src/crypto/tls/boring.go b/src/crypto/tls/boring.go
index 70baa62d63754a..ecd0f5a7b3e9ed 100644
index 9ee834e5a5952b..5444d9b0fc0942 100644
--- a/src/crypto/tls/boring.go
+++ b/src/crypto/tls/boring.go
@@ -2,7 +2,7 @@
Expand All @@ -929,7 +933,7 @@ index 70baa62d63754a..ecd0f5a7b3e9ed 100644
package tls

diff --git a/src/crypto/tls/boring_test.go b/src/crypto/tls/boring_test.go
index 929111d8679cc2..3e63ba6a053c42 100644
index e2543f53d77990..b2b4a57ea1d195 100644
--- a/src/crypto/tls/boring_test.go
+++ b/src/crypto/tls/boring_test.go
@@ -2,7 +2,7 @@
Expand Down Expand Up @@ -968,7 +972,7 @@ index 9c1d3d279c472f..0ca7a863b73690 100644
package fipsonly

diff --git a/src/crypto/tls/handshake_server_tls13.go b/src/crypto/tls/handshake_server_tls13.go
index b7b568cd84ac80..d1c5780533bf6a 100644
index bf592f22c74862..2980ff58e65d31 100644
--- a/src/crypto/tls/handshake_server_tls13.go
+++ b/src/crypto/tls/handshake_server_tls13.go
@@ -13,6 +13,7 @@ import (
Expand All @@ -979,7 +983,7 @@ index b7b568cd84ac80..d1c5780533bf6a 100644
"io"
"time"
)
@@ -343,6 +344,15 @@ func cloneHash(in hash.Hash, h crypto.Hash) hash.Hash {
@@ -342,6 +343,15 @@ func cloneHash(in hash.Hash, h crypto.Hash) hash.Hash {
}
marshaler, ok := in.(binaryMarshaler)
if !ok {
Expand All @@ -996,7 +1000,7 @@ index b7b568cd84ac80..d1c5780533bf6a 100644
}
state, err := marshaler.MarshalBinary()
diff --git a/src/crypto/tls/notboring.go b/src/crypto/tls/notboring.go
index 1aaabd5ef486aa..5a133c9b2f94c7 100644
index cae24d19c9f444..7625ccb867dd92 100644
--- a/src/crypto/tls/notboring.go
+++ b/src/crypto/tls/notboring.go
@@ -2,7 +2,7 @@
Expand All @@ -1009,7 +1013,7 @@ index 1aaabd5ef486aa..5a133c9b2f94c7 100644
package tls

diff --git a/src/crypto/x509/boring.go b/src/crypto/x509/boring.go
index 9aec21dbcd3bff..05324f731bedc4 100644
index e4086bd90feb83..674990c63c0539 100644
--- a/src/crypto/x509/boring.go
+++ b/src/crypto/x509/boring.go
@@ -2,7 +2,7 @@
Expand Down Expand Up @@ -1048,26 +1052,26 @@ index a0548a7f9179c5..ae6117a1554b7f 100644
package x509

diff --git a/src/go.mod b/src/go.mod
index a6aa641e8ca024..e267b55d07af47 100644
index ea439ef9245f35..73288becb9d706 100644
--- a/src/go.mod
+++ b/src/go.mod
@@ -4,6 +4,7 @@ go 1.20

require (
github.com/microsoft/go-crypto-openssl v0.2.8
+ github.com/microsoft/go-crypto-winnative v0.0.0-20230125071228-ef6c7cb780c6
github.com/microsoft/go-crypto-openssl v0.2.9-0.20240110181346-cf2e349f6f4f
+ github.com/microsoft/go-crypto-winnative v0.0.0-20240109184443-a968e40d3103
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a
golang.org/x/net v0.4.1-0.20231027154331-b8c2abfc1559
)
diff --git a/src/go.sum b/src/go.sum
index 9f22fa9f954901..e6dffe246212cc 100644
index 3d29523d5345ac..9cf3b6d28b1671 100644
--- a/src/go.sum
+++ b/src/go.sum
@@ -1,5 +1,7 @@
github.com/microsoft/go-crypto-openssl v0.2.8 h1:16B6DVeBCimOAG0B92PSySOnVDq6Qr/siI3TyyMHXoI=
github.com/microsoft/go-crypto-openssl v0.2.8/go.mod h1:xOSmQnWz4xvNB2+KQN2g2UUwMG9vqDHBk9nk/NdmyRw=
+github.com/microsoft/go-crypto-winnative v0.0.0-20230125071228-ef6c7cb780c6 h1:6DT0+Xkuu2MOaGrK41ATNUB4AhqUVq1/wWcOsCTAkck=
+github.com/microsoft/go-crypto-winnative v0.0.0-20230125071228-ef6c7cb780c6/go.mod h1:fveERXKbeK+XLmOyU24caKnIT/S5nniAX9XCRHfnrM4=
github.com/microsoft/go-crypto-openssl v0.2.9-0.20240110181346-cf2e349f6f4f h1:HRNz2SIk2d4O4KVVzzrLNvwefELKnlAeKMgS5RMPZ9A=
github.com/microsoft/go-crypto-openssl v0.2.9-0.20240110181346-cf2e349f6f4f/go.mod h1:xOSmQnWz4xvNB2+KQN2g2UUwMG9vqDHBk9nk/NdmyRw=
+github.com/microsoft/go-crypto-winnative v0.0.0-20240109184443-a968e40d3103 h1:KQsPPal3pKvKzAPTaR7sEriaqrHmRWw0dWG/7E5FNNk=
+github.com/microsoft/go-crypto-winnative v0.0.0-20240109184443-a968e40d3103/go.mod h1:fveERXKbeK+XLmOyU24caKnIT/S5nniAX9XCRHfnrM4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a h1:diz9pEYuTIuLMJLs3rGDkeaTsNyRs6duYdFyPAxzE/U=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/net v0.4.1-0.20231027154331-b8c2abfc1559 h1:ZYA0bvgfxBB+JecyQpRCT/HUR/bSwdk6OJUhJ3CNLxg=
Expand Down
Loading

0 comments on commit 947ab30

Please sign in to comment.