How to convert raw pdf from server to pdf document












-2














This is my code that converts the Retrofit HTTP ResponseBody to a raw String:



Method 1:



fun ByteArray.toHexString(): String {
var cnt = ""
var cnter = 0

return this.joinToString(cnt) {
if (cnter % 2 == 0)
cnt = " "
else
cnt = ""
cnter++
String.format("%02x", it)
}
}

fun convert() {
val result = response.byteStream().readBytes(response.contentLength().toInt())
val rawHtml = result.toHexString()
}


Method 1 result (snippet). It should have a whitespace after every 4th Byte:



255044462d312e340d0a25aaabacad0d0a312030206f626a0d0a3c3c0d0a2f4e616d65732032203020520d0a2f4f7574707574496e74656e7473205b3c3c0d0a2f446573744f757470757450726f66696c652033203020520d0a2f53202f4754535f50444641310d0a2f496e666f202863850eea75051264315790c769f97999de290d0a2f52656769737472794e616d652028290d0a2f4f7574707574436f6e646974696f6e2028290d0a2f54797065202f4f7574707574496e74656e740d0a2f4f7574707574436f6e646974696f6e4964656e746966696572202853a23adc3a21290d0a3e3e0d0a5d0d0a2f5669657765725072...


Method 2:



private fun getRawHTML(responseBody: ResponseBody): String {
val bodyString = responseBody.byteStream()

val reader = BufferedReader(InputStreamReader(bodyString, "iso-8859-1"), 16)
val sb = StringBuilder()
var line: String?

line = reader.readLine()

while (line != null) {
sb.append(line + "n")
line = reader.readLine()
}

bodyString.close()

return sb.toString()
}


Method 2 result (snippet):



%PDF-1.4
1 0 obj
<<
/Title (þÿ��M��i���n��p��e��n��s��o��v��e��r��z��i��c�.��n��l)
/Creator (þÿ��w�m��p��d��f�� ��0��1��2��.��1��.��2)
/Producer (þÿ�t�� ��4����6)
/CreationDate (D:20181122184902+01'00')
>>
endobj
3 0 obj
<<
/Type /ExtGState
/SA true
/SM 0.02
/ca 1.0
/CA 1.0
/AIS false
/SMask /None>>
/Filter /FlateDecode
>>
stream
xí]MGr½Ï¯èó*å÷` )Ñ ðÁðÁàZ^,FË{ðß÷{YÕ]


When scrolling down in this PDF it shows that the encoding is /Identity-H:



/Name /FBUKTZ+Verdana
/Type /Font
/Subtype /Type0
/BaseFont /FBUKTZ+Verdana
/Encoding /Identity-H
/ToUnicode 28 0 R
/DescendantFonts [29 0 R]
>>


Which charset corresponds to this?



I want to convert this to a PDF file that can be opened by Adobe acrobat reader and shows the original PDF. When I open a correct PDF file with sublime editor, I see this:



2550 4446 2d31 2e37 0a25 e2e3 cfd3 0a31
2030 206f 626a 0a3c 3c2f 416c 7465 726e
6174 652f 4465 7669 6365 5247 422f 4e20
332f 4c65 6e67 7468 2032 3631 352f 4669


Maybe I could rephrase the question to how can I convert the small snippet to this format? I'm using Kotlin and Java.










share|improve this question
























  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 25 at 3:53
















-2














This is my code that converts the Retrofit HTTP ResponseBody to a raw String:



Method 1:



fun ByteArray.toHexString(): String {
var cnt = ""
var cnter = 0

return this.joinToString(cnt) {
if (cnter % 2 == 0)
cnt = " "
else
cnt = ""
cnter++
String.format("%02x", it)
}
}

fun convert() {
val result = response.byteStream().readBytes(response.contentLength().toInt())
val rawHtml = result.toHexString()
}


Method 1 result (snippet). It should have a whitespace after every 4th Byte:



255044462d312e340d0a25aaabacad0d0a312030206f626a0d0a3c3c0d0a2f4e616d65732032203020520d0a2f4f7574707574496e74656e7473205b3c3c0d0a2f446573744f757470757450726f66696c652033203020520d0a2f53202f4754535f50444641310d0a2f496e666f202863850eea75051264315790c769f97999de290d0a2f52656769737472794e616d652028290d0a2f4f7574707574436f6e646974696f6e2028290d0a2f54797065202f4f7574707574496e74656e740d0a2f4f7574707574436f6e646974696f6e4964656e746966696572202853a23adc3a21290d0a3e3e0d0a5d0d0a2f5669657765725072...


Method 2:



private fun getRawHTML(responseBody: ResponseBody): String {
val bodyString = responseBody.byteStream()

val reader = BufferedReader(InputStreamReader(bodyString, "iso-8859-1"), 16)
val sb = StringBuilder()
var line: String?

line = reader.readLine()

while (line != null) {
sb.append(line + "n")
line = reader.readLine()
}

bodyString.close()

return sb.toString()
}


Method 2 result (snippet):



%PDF-1.4
1 0 obj
<<
/Title (þÿ��M��i���n��p��e��n��s��o��v��e��r��z��i��c�.��n��l)
/Creator (þÿ��w�m��p��d��f�� ��0��1��2��.��1��.��2)
/Producer (þÿ�t�� ��4����6)
/CreationDate (D:20181122184902+01'00')
>>
endobj
3 0 obj
<<
/Type /ExtGState
/SA true
/SM 0.02
/ca 1.0
/CA 1.0
/AIS false
/SMask /None>>
/Filter /FlateDecode
>>
stream
xí]MGr½Ï¯èó*å÷` )Ñ ðÁðÁàZ^,FË{ðß÷{YÕ]


When scrolling down in this PDF it shows that the encoding is /Identity-H:



/Name /FBUKTZ+Verdana
/Type /Font
/Subtype /Type0
/BaseFont /FBUKTZ+Verdana
/Encoding /Identity-H
/ToUnicode 28 0 R
/DescendantFonts [29 0 R]
>>


Which charset corresponds to this?



I want to convert this to a PDF file that can be opened by Adobe acrobat reader and shows the original PDF. When I open a correct PDF file with sublime editor, I see this:



2550 4446 2d31 2e37 0a25 e2e3 cfd3 0a31
2030 206f 626a 0a3c 3c2f 416c 7465 726e
6174 652f 4465 7669 6365 5247 422f 4e20
332f 4c65 6e67 7468 2032 3631 352f 4669


Maybe I could rephrase the question to how can I convert the small snippet to this format? I'm using Kotlin and Java.










share|improve this question
























  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 25 at 3:53














-2












-2








-2







This is my code that converts the Retrofit HTTP ResponseBody to a raw String:



Method 1:



fun ByteArray.toHexString(): String {
var cnt = ""
var cnter = 0

return this.joinToString(cnt) {
if (cnter % 2 == 0)
cnt = " "
else
cnt = ""
cnter++
String.format("%02x", it)
}
}

fun convert() {
val result = response.byteStream().readBytes(response.contentLength().toInt())
val rawHtml = result.toHexString()
}


Method 1 result (snippet). It should have a whitespace after every 4th Byte:



255044462d312e340d0a25aaabacad0d0a312030206f626a0d0a3c3c0d0a2f4e616d65732032203020520d0a2f4f7574707574496e74656e7473205b3c3c0d0a2f446573744f757470757450726f66696c652033203020520d0a2f53202f4754535f50444641310d0a2f496e666f202863850eea75051264315790c769f97999de290d0a2f52656769737472794e616d652028290d0a2f4f7574707574436f6e646974696f6e2028290d0a2f54797065202f4f7574707574496e74656e740d0a2f4f7574707574436f6e646974696f6e4964656e746966696572202853a23adc3a21290d0a3e3e0d0a5d0d0a2f5669657765725072...


Method 2:



private fun getRawHTML(responseBody: ResponseBody): String {
val bodyString = responseBody.byteStream()

val reader = BufferedReader(InputStreamReader(bodyString, "iso-8859-1"), 16)
val sb = StringBuilder()
var line: String?

line = reader.readLine()

while (line != null) {
sb.append(line + "n")
line = reader.readLine()
}

bodyString.close()

return sb.toString()
}


Method 2 result (snippet):



%PDF-1.4
1 0 obj
<<
/Title (þÿ��M��i���n��p��e��n��s��o��v��e��r��z��i��c�.��n��l)
/Creator (þÿ��w�m��p��d��f�� ��0��1��2��.��1��.��2)
/Producer (þÿ�t�� ��4����6)
/CreationDate (D:20181122184902+01'00')
>>
endobj
3 0 obj
<<
/Type /ExtGState
/SA true
/SM 0.02
/ca 1.0
/CA 1.0
/AIS false
/SMask /None>>
/Filter /FlateDecode
>>
stream
xí]MGr½Ï¯èó*å÷` )Ñ ðÁðÁàZ^,FË{ðß÷{YÕ]


When scrolling down in this PDF it shows that the encoding is /Identity-H:



/Name /FBUKTZ+Verdana
/Type /Font
/Subtype /Type0
/BaseFont /FBUKTZ+Verdana
/Encoding /Identity-H
/ToUnicode 28 0 R
/DescendantFonts [29 0 R]
>>


Which charset corresponds to this?



I want to convert this to a PDF file that can be opened by Adobe acrobat reader and shows the original PDF. When I open a correct PDF file with sublime editor, I see this:



2550 4446 2d31 2e37 0a25 e2e3 cfd3 0a31
2030 206f 626a 0a3c 3c2f 416c 7465 726e
6174 652f 4465 7669 6365 5247 422f 4e20
332f 4c65 6e67 7468 2032 3631 352f 4669


Maybe I could rephrase the question to how can I convert the small snippet to this format? I'm using Kotlin and Java.










share|improve this question















This is my code that converts the Retrofit HTTP ResponseBody to a raw String:



Method 1:



fun ByteArray.toHexString(): String {
var cnt = ""
var cnter = 0

return this.joinToString(cnt) {
if (cnter % 2 == 0)
cnt = " "
else
cnt = ""
cnter++
String.format("%02x", it)
}
}

fun convert() {
val result = response.byteStream().readBytes(response.contentLength().toInt())
val rawHtml = result.toHexString()
}


Method 1 result (snippet). It should have a whitespace after every 4th Byte:



255044462d312e340d0a25aaabacad0d0a312030206f626a0d0a3c3c0d0a2f4e616d65732032203020520d0a2f4f7574707574496e74656e7473205b3c3c0d0a2f446573744f757470757450726f66696c652033203020520d0a2f53202f4754535f50444641310d0a2f496e666f202863850eea75051264315790c769f97999de290d0a2f52656769737472794e616d652028290d0a2f4f7574707574436f6e646974696f6e2028290d0a2f54797065202f4f7574707574496e74656e740d0a2f4f7574707574436f6e646974696f6e4964656e746966696572202853a23adc3a21290d0a3e3e0d0a5d0d0a2f5669657765725072...


Method 2:



private fun getRawHTML(responseBody: ResponseBody): String {
val bodyString = responseBody.byteStream()

val reader = BufferedReader(InputStreamReader(bodyString, "iso-8859-1"), 16)
val sb = StringBuilder()
var line: String?

line = reader.readLine()

while (line != null) {
sb.append(line + "n")
line = reader.readLine()
}

bodyString.close()

return sb.toString()
}


Method 2 result (snippet):



%PDF-1.4
1 0 obj
<<
/Title (þÿ��M��i���n��p��e��n��s��o��v��e��r��z��i��c�.��n��l)
/Creator (þÿ��w�m��p��d��f�� ��0��1��2��.��1��.��2)
/Producer (þÿ�t�� ��4����6)
/CreationDate (D:20181122184902+01'00')
>>
endobj
3 0 obj
<<
/Type /ExtGState
/SA true
/SM 0.02
/ca 1.0
/CA 1.0
/AIS false
/SMask /None>>
/Filter /FlateDecode
>>
stream
xí]MGr½Ï¯èó*å÷` )Ñ ðÁðÁàZ^,FË{ðß÷{YÕ]


When scrolling down in this PDF it shows that the encoding is /Identity-H:



/Name /FBUKTZ+Verdana
/Type /Font
/Subtype /Type0
/BaseFont /FBUKTZ+Verdana
/Encoding /Identity-H
/ToUnicode 28 0 R
/DescendantFonts [29 0 R]
>>


Which charset corresponds to this?



I want to convert this to a PDF file that can be opened by Adobe acrobat reader and shows the original PDF. When I open a correct PDF file with sublime editor, I see this:



2550 4446 2d31 2e37 0a25 e2e3 cfd3 0a31
2030 206f 626a 0a3c 3c2f 416c 7465 726e
6174 652f 4465 7669 6365 5247 422f 4e20
332f 4c65 6e67 7468 2032 3631 352f 4669


Maybe I could rephrase the question to how can I convert the small snippet to this format? I'm using Kotlin and Java.







java pdf kotlin






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 at 9:47

























asked Nov 22 at 17:55









Jim Clermonts

34121030




34121030












  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 25 at 3:53


















  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Samuel Liew
    Nov 25 at 3:53
















Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew
Nov 25 at 3:53




Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew
Nov 25 at 3:53












1 Answer
1






active

oldest

votes


















0














Here's a Kotlin program that downloads a PDF file from a server and saves it in a way that allows it to be opened in a PDF viewer:



import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.ResponseBody
import java.io.FileOutputStream

fun savePDF(response: ResponseBody) {
val fileOutputStream = FileOutputStream("my.pdf")
val data = response.byteStream().readBytes()
fileOutputStream.write(data)
}

fun main(args: Array<String>) {
val request = Request.Builder()
.url("http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf")
.build()
val client = OkHttpClient()
val response = client.newCall(request).execute()
val responseBody = response.body()
if (responseBody != null) {
savePDF(responseBody)
}
}





share|improve this answer





















  • With this solution I have to request write permissions to the Android user and we can't do that.
    – Jim Clermonts
    Nov 23 at 11:13










  • This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
    – yole
    Nov 23 at 11:21












  • Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
    – Jim Clermonts
    Nov 23 at 11:22






  • 1




    If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
    – yole
    Nov 23 at 11:23













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53436145%2fhow-to-convert-raw-pdf-from-server-to-pdf-document%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














Here's a Kotlin program that downloads a PDF file from a server and saves it in a way that allows it to be opened in a PDF viewer:



import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.ResponseBody
import java.io.FileOutputStream

fun savePDF(response: ResponseBody) {
val fileOutputStream = FileOutputStream("my.pdf")
val data = response.byteStream().readBytes()
fileOutputStream.write(data)
}

fun main(args: Array<String>) {
val request = Request.Builder()
.url("http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf")
.build()
val client = OkHttpClient()
val response = client.newCall(request).execute()
val responseBody = response.body()
if (responseBody != null) {
savePDF(responseBody)
}
}





share|improve this answer





















  • With this solution I have to request write permissions to the Android user and we can't do that.
    – Jim Clermonts
    Nov 23 at 11:13










  • This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
    – yole
    Nov 23 at 11:21












  • Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
    – Jim Clermonts
    Nov 23 at 11:22






  • 1




    If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
    – yole
    Nov 23 at 11:23


















0














Here's a Kotlin program that downloads a PDF file from a server and saves it in a way that allows it to be opened in a PDF viewer:



import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.ResponseBody
import java.io.FileOutputStream

fun savePDF(response: ResponseBody) {
val fileOutputStream = FileOutputStream("my.pdf")
val data = response.byteStream().readBytes()
fileOutputStream.write(data)
}

fun main(args: Array<String>) {
val request = Request.Builder()
.url("http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf")
.build()
val client = OkHttpClient()
val response = client.newCall(request).execute()
val responseBody = response.body()
if (responseBody != null) {
savePDF(responseBody)
}
}





share|improve this answer





















  • With this solution I have to request write permissions to the Android user and we can't do that.
    – Jim Clermonts
    Nov 23 at 11:13










  • This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
    – yole
    Nov 23 at 11:21












  • Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
    – Jim Clermonts
    Nov 23 at 11:22






  • 1




    If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
    – yole
    Nov 23 at 11:23
















0












0








0






Here's a Kotlin program that downloads a PDF file from a server and saves it in a way that allows it to be opened in a PDF viewer:



import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.ResponseBody
import java.io.FileOutputStream

fun savePDF(response: ResponseBody) {
val fileOutputStream = FileOutputStream("my.pdf")
val data = response.byteStream().readBytes()
fileOutputStream.write(data)
}

fun main(args: Array<String>) {
val request = Request.Builder()
.url("http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf")
.build()
val client = OkHttpClient()
val response = client.newCall(request).execute()
val responseBody = response.body()
if (responseBody != null) {
savePDF(responseBody)
}
}





share|improve this answer












Here's a Kotlin program that downloads a PDF file from a server and saves it in a way that allows it to be opened in a PDF viewer:



import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.ResponseBody
import java.io.FileOutputStream

fun savePDF(response: ResponseBody) {
val fileOutputStream = FileOutputStream("my.pdf")
val data = response.byteStream().readBytes()
fileOutputStream.write(data)
}

fun main(args: Array<String>) {
val request = Request.Builder()
.url("http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf")
.build()
val client = OkHttpClient()
val response = client.newCall(request).execute()
val responseBody = response.body()
if (responseBody != null) {
savePDF(responseBody)
}
}






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 23 at 10:36









yole

58.4k11141139




58.4k11141139












  • With this solution I have to request write permissions to the Android user and we can't do that.
    – Jim Clermonts
    Nov 23 at 11:13










  • This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
    – yole
    Nov 23 at 11:21












  • Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
    – Jim Clermonts
    Nov 23 at 11:22






  • 1




    If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
    – yole
    Nov 23 at 11:23




















  • With this solution I have to request write permissions to the Android user and we can't do that.
    – Jim Clermonts
    Nov 23 at 11:13










  • This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
    – yole
    Nov 23 at 11:21












  • Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
    – Jim Clermonts
    Nov 23 at 11:22






  • 1




    If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
    – yole
    Nov 23 at 11:23


















With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 at 11:13




With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 at 11:13












This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
– yole
Nov 23 at 11:21






This is a program that you can run locally to understand how downloading PDF files works. If you actually need to send the file to another server, you can also do this, and you don't need any permissions for this.
– yole
Nov 23 at 11:21














Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
– Jim Clermonts
Nov 23 at 11:22




Yeah but when opening the file it is not a PDF. This solution doesn't solve the question.
– Jim Clermonts
Nov 23 at 11:22




1




1




If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
– yole
Nov 23 at 11:23






If you run this program and open my.pdf, it is a PDF. I can't give you a solution that will work with uploading data to your server without knowing anything about your server.
– yole
Nov 23 at 11:23




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53436145%2fhow-to-convert-raw-pdf-from-server-to-pdf-document%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Trompette piccolo

Slow SSRS Report in dynamic grouping and multiple parameters

Simon Yates (cyclisme)