How to convert raw pdf from server to pdf document
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
add a comment |
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
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 25 '18 at 3:53
add a comment |
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
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
java pdf kotlin
edited Nov 23 '18 at 9:47
Jim Clermonts
asked Nov 22 '18 at 17:55
Jim ClermontsJim Clermonts
35521134
35521134
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 25 '18 at 3:53
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 25 '18 at 3:53
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 25 '18 at 3:53
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 25 '18 at 3:53
add a comment |
1 Answer
1
active
oldest
votes
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)
}
}
With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 '18 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 '18 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 '18 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 '18 at 11:23
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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)
}
}
With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 '18 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 '18 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 '18 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 '18 at 11:23
add a comment |
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)
}
}
With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 '18 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 '18 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 '18 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 '18 at 11:23
add a comment |
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)
}
}
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)
}
}
answered Nov 23 '18 at 10:36
yoleyole
60.6k11153145
60.6k11153145
With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 '18 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 '18 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 '18 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 '18 at 11:23
add a comment |
With this solution I have to request write permissions to the Android user and we can't do that.
– Jim Clermonts
Nov 23 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 at 11:23
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 25 '18 at 3:53