From acd8d3d44db4e20e81312c92c56bb17dd633917d Mon Sep 17 00:00:00 2001 From: Cesar Blum Silveira Date: Mon, 2 Nov 2015 15:32:44 -0800 Subject: [PATCH] Strong name everything. --- .../Properties/AssemblyInfo.cs | 14 +++++++------- .../project.json | 3 ++- .../Properties/AssemblyInfo.cs | 2 +- .../project.json | 3 ++- .../Properties/AssemblyInfo.cs | 2 +- .../project.json | 3 ++- .../Properties/AssemblyInfo.cs | 2 +- .../project.json | 3 ++- .../project.json | 3 ++- .../project.json | 3 ++- .../Properties/AssemblyInfo.cs | 4 ++-- src/Microsoft.AspNet.DataProtection/project.json | 3 ++- .../Properties/AssemblyInfo.cs | 2 +- .../project.json | 3 ++- .../Properties/AssemblyInfo.cs | 2 +- .../project.json | 3 ++- .../project.json | 3 ++- .../project.json | 3 ++- .../Properties/AssemblyInfo.cs | 2 +- .../project.json | 4 +++- tools/Key.snk | Bin 0 -> 596 bytes 21 files changed, 40 insertions(+), 27 deletions(-) create mode 100644 tools/Key.snk diff --git a/src/Microsoft.AspNet.Cryptography.Internal/Properties/AssemblyInfo.cs b/src/Microsoft.AspNet.Cryptography.Internal/Properties/AssemblyInfo.cs index bc9a2929e1..f9bcc24835 100644 --- a/src/Microsoft.AspNet.Cryptography.Internal/Properties/AssemblyInfo.cs +++ b/src/Microsoft.AspNet.Cryptography.Internal/Properties/AssemblyInfo.cs @@ -9,12 +9,12 @@ using System.Runtime.InteropServices; // we only ever p/invoke into DLLs known to be in the System32 folder [assembly: DefaultDllImportSearchPaths(DllImportSearchPath.System32)] -[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.Internal.Test")] -[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.KeyDerivation")] -[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.KeyDerivation.Test")] -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection")] -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Abstractions.Test")] -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Extensions.Test")] -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Test")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.Internal.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.KeyDerivation, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.KeyDerivation.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Abstractions.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Extensions.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: AssemblyMetadata("Serviceable", "True")] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Microsoft.AspNet.Cryptography.Internal/project.json b/src/Microsoft.AspNet.Cryptography.Internal/project.json index e57e13d42b..88a1331835 100644 --- a/src/Microsoft.AspNet.Cryptography.Internal/project.json +++ b/src/Microsoft.AspNet.Cryptography.Internal/project.json @@ -20,6 +20,7 @@ }, "compilationOptions": { "allowUnsafe": true, - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.Cryptography.KeyDerivation/Properties/AssemblyInfo.cs b/src/Microsoft.AspNet.Cryptography.KeyDerivation/Properties/AssemblyInfo.cs index 19dcc92ab2..5a85d1db36 100644 --- a/src/Microsoft.AspNet.Cryptography.KeyDerivation/Properties/AssemblyInfo.cs +++ b/src/Microsoft.AspNet.Cryptography.KeyDerivation/Properties/AssemblyInfo.cs @@ -5,6 +5,6 @@ using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.KeyDerivation.Test")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.Cryptography.KeyDerivation.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: AssemblyMetadata("Serviceable", "True")] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Microsoft.AspNet.Cryptography.KeyDerivation/project.json b/src/Microsoft.AspNet.Cryptography.KeyDerivation/project.json index 4b0e59d4b2..27ec014052 100644 --- a/src/Microsoft.AspNet.Cryptography.KeyDerivation/project.json +++ b/src/Microsoft.AspNet.Cryptography.KeyDerivation/project.json @@ -20,6 +20,7 @@ }, "compilationOptions": { "allowUnsafe": true, - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.DataProtection.Abstractions/Properties/AssemblyInfo.cs b/src/Microsoft.AspNet.DataProtection.Abstractions/Properties/AssemblyInfo.cs index c1bee7c37f..568d44be98 100644 --- a/src/Microsoft.AspNet.DataProtection.Abstractions/Properties/AssemblyInfo.cs +++ b/src/Microsoft.AspNet.DataProtection.Abstractions/Properties/AssemblyInfo.cs @@ -6,6 +6,6 @@ using System.Resources; using System.Runtime.CompilerServices; // for unit testing -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Abstractions.Test")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Abstractions.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: AssemblyMetadata("Serviceable", "True")] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Microsoft.AspNet.DataProtection.Abstractions/project.json b/src/Microsoft.AspNet.DataProtection.Abstractions/project.json index bda1b76edd..390ca65bed 100644 --- a/src/Microsoft.AspNet.DataProtection.Abstractions/project.json +++ b/src/Microsoft.AspNet.DataProtection.Abstractions/project.json @@ -26,6 +26,7 @@ } }, "compilationOptions": { - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.DataProtection.Extensions/Properties/AssemblyInfo.cs b/src/Microsoft.AspNet.DataProtection.Extensions/Properties/AssemblyInfo.cs index f1012ed502..b14a9ed7cb 100644 --- a/src/Microsoft.AspNet.DataProtection.Extensions/Properties/AssemblyInfo.cs +++ b/src/Microsoft.AspNet.DataProtection.Extensions/Properties/AssemblyInfo.cs @@ -5,6 +5,6 @@ using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Extensions.Test")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Extensions.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: AssemblyMetadata("Serviceable", "True")] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Microsoft.AspNet.DataProtection.Extensions/project.json b/src/Microsoft.AspNet.DataProtection.Extensions/project.json index 5070099791..a77cbdb168 100644 --- a/src/Microsoft.AspNet.DataProtection.Extensions/project.json +++ b/src/Microsoft.AspNet.DataProtection.Extensions/project.json @@ -18,6 +18,7 @@ "dotnet5.4": {} }, "compilationOptions": { - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.DataProtection.Sources/project.json b/src/Microsoft.AspNet.DataProtection.Sources/project.json index 3417f84587..0ac9ef2265 100644 --- a/src/Microsoft.AspNet.DataProtection.Sources/project.json +++ b/src/Microsoft.AspNet.DataProtection.Sources/project.json @@ -17,6 +17,7 @@ }, "shared": "**\\*.cs", "compilationOptions": { - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.DataProtection.SystemWeb/project.json b/src/Microsoft.AspNet.DataProtection.SystemWeb/project.json index 239f6b2ed0..a23a97b559 100644 --- a/src/Microsoft.AspNet.DataProtection.SystemWeb/project.json +++ b/src/Microsoft.AspNet.DataProtection.SystemWeb/project.json @@ -19,7 +19,8 @@ } }, "compilationOptions": { - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" }, "packInclude": { "content/net451/": "web.config.transform" diff --git a/src/Microsoft.AspNet.DataProtection/Properties/AssemblyInfo.cs b/src/Microsoft.AspNet.DataProtection/Properties/AssemblyInfo.cs index a859f1608f..7467d96a44 100644 --- a/src/Microsoft.AspNet.DataProtection/Properties/AssemblyInfo.cs +++ b/src/Microsoft.AspNet.DataProtection/Properties/AssemblyInfo.cs @@ -6,7 +6,7 @@ using System.Resources; using System.Runtime.CompilerServices; // for unit testing -[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Test")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("Microsoft.AspNet.DataProtection.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: AssemblyMetadata("Serviceable", "True")] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Microsoft.AspNet.DataProtection/project.json b/src/Microsoft.AspNet.DataProtection/project.json index fa1e0919e8..dd62c8981c 100644 --- a/src/Microsoft.AspNet.DataProtection/project.json +++ b/src/Microsoft.AspNet.DataProtection/project.json @@ -40,6 +40,7 @@ }, "compilationOptions": { "allowUnsafe": true, - "warningsAsErrors": true + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } \ No newline at end of file diff --git a/test/Microsoft.AspNet.Cryptography.Internal.Test/Properties/AssemblyInfo.cs b/test/Microsoft.AspNet.Cryptography.Internal.Test/Properties/AssemblyInfo.cs index aa00750af3..36cdb8d8aa 100644 --- a/test/Microsoft.AspNet.Cryptography.Internal.Test/Properties/AssemblyInfo.cs +++ b/test/Microsoft.AspNet.Cryptography.Internal.Test/Properties/AssemblyInfo.cs @@ -5,4 +5,4 @@ using System; using System.Runtime.CompilerServices; // for unit testing -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/Microsoft.AspNet.Cryptography.Internal.Test/project.json b/test/Microsoft.AspNet.Cryptography.Internal.Test/project.json index 3ad4052791..e1bf23c336 100644 --- a/test/Microsoft.AspNet.Cryptography.Internal.Test/project.json +++ b/test/Microsoft.AspNet.Cryptography.Internal.Test/project.json @@ -13,6 +13,7 @@ "test": "xunit.runner.aspnet" }, "compilationOptions": { - "allowUnsafe": true + "allowUnsafe": true, + "keyFile": "../../tools/Key.snk" } } diff --git a/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/Properties/AssemblyInfo.cs b/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/Properties/AssemblyInfo.cs index aa00750af3..36cdb8d8aa 100644 --- a/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/Properties/AssemblyInfo.cs +++ b/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/Properties/AssemblyInfo.cs @@ -5,4 +5,4 @@ using System; using System.Runtime.CompilerServices; // for unit testing -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/project.json b/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/project.json index 79e645fd53..d03d6526fd 100644 --- a/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/project.json +++ b/test/Microsoft.AspNet.Cryptography.KeyDerivation.Test/project.json @@ -14,6 +14,7 @@ "test": "xunit.runner.aspnet" }, "compilationOptions": { - "allowUnsafe": true + "allowUnsafe": true, + "keyFile": "../../tools/Key.snk" } } diff --git a/test/Microsoft.AspNet.DataProtection.Abstractions.Test/project.json b/test/Microsoft.AspNet.DataProtection.Abstractions.Test/project.json index 5651458299..dd7ede7811 100644 --- a/test/Microsoft.AspNet.DataProtection.Abstractions.Test/project.json +++ b/test/Microsoft.AspNet.DataProtection.Abstractions.Test/project.json @@ -14,6 +14,7 @@ }, "compile": "..\\common\\**\\*.cs", "compilationOptions": { - + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } diff --git a/test/Microsoft.AspNet.DataProtection.Extensions.Test/project.json b/test/Microsoft.AspNet.DataProtection.Extensions.Test/project.json index f839a2023e..1a3581591b 100644 --- a/test/Microsoft.AspNet.DataProtection.Extensions.Test/project.json +++ b/test/Microsoft.AspNet.DataProtection.Extensions.Test/project.json @@ -14,6 +14,7 @@ "test": "xunit.runner.aspnet" }, "compilationOptions": { - + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } diff --git a/test/Microsoft.AspNet.DataProtection.Test/Properties/AssemblyInfo.cs b/test/Microsoft.AspNet.DataProtection.Test/Properties/AssemblyInfo.cs index aa00750af3..36cdb8d8aa 100644 --- a/test/Microsoft.AspNet.DataProtection.Test/Properties/AssemblyInfo.cs +++ b/test/Microsoft.AspNet.DataProtection.Test/Properties/AssemblyInfo.cs @@ -5,4 +5,4 @@ using System; using System.Runtime.CompilerServices; // for unit testing -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/test/Microsoft.AspNet.DataProtection.Test/project.json b/test/Microsoft.AspNet.DataProtection.Test/project.json index 380927c2f1..b63e75ac4d 100644 --- a/test/Microsoft.AspNet.DataProtection.Test/project.json +++ b/test/Microsoft.AspNet.DataProtection.Test/project.json @@ -14,6 +14,8 @@ "test": "xunit.runner.aspnet" }, "compilationOptions": { - "allowUnsafe": true + "allowUnsafe": true, + "warningsAsErrors": true, + "keyFile": "../../tools/Key.snk" } } diff --git a/tools/Key.snk b/tools/Key.snk new file mode 100644 index 0000000000000000000000000000000000000000..e10e4889c125d3120cd9e81582243d70f7cbb806 GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50098=Iw=HCsnz~#iVhm& zj%TU(_THUee?3yHBjk$37ysB?i5#7WD$={H zV4B!OxRPrb|8)HPg~A}8P>^=#y<)56#=E&NzcjOtPK~<4n6GHt=K$ro*T(lhby_@U zEk(hLzk1H)0yXj{A_5>fk-TgNoP|q6(tP2xo8zt8i%212CWM#AeCd?`hS|4~L({h~Moo(~vy&3Z z1uI}`fd^*>o=rwbAGymj6RM^pZm(*Kfhs+Y1#`-2JPWZMK8@;ZWCk2+9bX4YP);~fj-BU*R zQPvWv$89!{Rl9wM+zR>_TSkn^voYxA?2G iKnV#iZ6Ah`K>b=@=IjYJXrxL124zR(38)nxe+&q_$QXwJ literal 0 HcmV?d00001